рдпрд╕рдорд╛ рдмрдЧрд╣рд░реВ рдЦреЛрдЬреНрдиреБрдХреЛ рд╕рдЯреНрдЯрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдорд╛ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд▓рд╛рдЧреВ рдЧрд░реНрдиреБрд╣реЛрд╕реН

рдорд▓рд╛рдИ рдпреЛ рд▓реЗрдЦ рд▓реЗрдЦреНрди рдкреНрд░реЗрд░рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдорд╛ рдзреЗрд░реИ рд╕рдВрдЦреНрдпрд╛рдорд╛ рд╕рд╛рдордЧреНрд░реАрд╣рд░реВ рдЬреБрди рдмрдвреНрджреЛ рд░реВрдкрдорд╛ рдЖрдЙрдБрджреИрдЫред рдкрд╣рд┐рд▓реЛ, рдпреЛ PVS-studio рдмреНрд▓рдЧ, рдЬрд╕рд▓реЗ рд╕рдХреНрд░рд┐рдп рд░реВрдкрдорд╛ Habr├й рдорд╛ рдЙрдиреАрд╣рд░реВрдХреЛ рдЙрдкрдХрд░рдгрджреНрд╡рд╛рд░рд╛ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдорд╛ рдлреЗрд▓рд╛ рдкрд░реЗрдХрд╛ рддреНрд░реБрдЯрд┐рд╣рд░реВрдХреЛ рд╕рдореАрдХреНрд╖рд╛рдХреЛ рд╕рд╛рде рдкреНрд░рдЪрд╛рд░ рдЧрд░реНрджрдЫред PVS-studio рднрд░реНрдЦрд░реИ рд▓рд╛рдЧреВ рдЧрд░рд┐рдпреЛ рдЬрд╛рднрд╛ рд╕рдорд░реНрдерди, рд░, рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, IntelliJ IDEA рдХрд╛ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВ, рдЬрд╕рдХреЛ рдмрд┐рд▓реНрдЯ-рдЗрди рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╕рдореНрднрд╡рддрдГ рдЖрдЬ рдЬрд╛рднрд╛рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдмреИрднрдиреНрджрд╛ рдЙрдиреНрдирдд рдЫ, рдЯрд╛рдврд╛ рд░рд╣рди рд╕рдХреЗрди.

рддреНрдпрд╕реНрддрд╛ рд╕рдореАрдХреНрд╖рд╛рд╣рд░реВ рдкрдвреНрджрд╛, рд╣рд╛рдореА рдПрдХ рдЬрд╛рджреБрдИ рдЕрдореГрддрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреБрд░рд╛ рдЧрд░реНрджреИрдЫреМрдВ рднрдиреНрдиреЗ рдорд╣рд╕реБрд╕ рд╣реБрдиреНрдЫ: рдмрдЯрди рдерд┐рдЪреНрдиреБрд╣реЛрд╕реН, рд░ рдпреЛ рдпрд╣рд╛рдБ рдЫ - рддрдкрд╛рдИрдВрдХреЛ рдЖрдБрдЦрд╛рдХреЛ рдЕрдЧрд╛рдбрд┐ рджреЛрд╖рд╣рд░реВрдХреЛ рд╕реВрдЪреАред рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ рдХрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд╣рд░реВ рд╕реБрдзрд╛рд░ рд╣реБрдБрджреИ рдЬрд╛рдБрджрд╛, рддреНрдпрд╣рд╛рдБ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдзреЗрд░реИ рд░ рдзреЗрд░реИ рдмрдЧрд╣рд░реВ рд╣реБрдиреЗрдЫрдиреН, рд░ рдпреА рд░реЛрдмреЛрдЯрд╣рд░реВрджреНрд╡рд╛рд░рд╛ рд╕реНрдХреНрдпрд╛рди рдЧрд░рд┐рдПрдХрд╛ рдЙрддреНрдкрд╛рджрдирд╣рд░реВ рд╣рд╛рдореНрд░реЛ рддрд░реНрдлрдмрд╛рдЯ рдХреБрдиреИ рдкреНрд░рдпрд╛рд╕ рдмрд┐рдирд╛ рдиреИ рд░рд╛рдореНрд░реЛ рд░ рд░рд╛рдореНрд░реЛ рд╣реБрдБрджреИ рдЬрд╛рдиреЗрдЫрдиреНред

рддрд░ рддреНрдпрд╣рд╛рдБ рдХреБрдиреИ рдЬрд╛рджреБрдИ рдЕрдореГрддрд╣рд░реВ рдЫреИрдирдиреНред рдо "рд╣рд╛рдореНрд░реЛ рд░реЛрдмреЛрдЯрд▓реЗ рднреЗрдЯреНрдЯрд╛рдЙрди рд╕рдХреНрдиреЗ рдХреБрд░рд╛рд╣рд░реВ рдпрд╣рд╛рдБ рдЫрдиреН" рдЬрд╕реНрддрд╛ рдкреЛрд╖реНрдЯрд╣рд░реВрдорд╛ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдЫрд▓рдлрд▓ рдирдЧрд░рд┐рдиреЗ рдХреБрд░рд╛рд╣рд░реВ рдмрд╛рд░реЗ рдХреБрд░рд╛ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреБ: рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд╣рд░реВрд▓реЗ рдХреЗ рдЧрд░реНрди рд╕рдХреНрджреИрдирдиреН, рд╕рдлреНрдЯрд╡реЗрдпрд░ рдбреЗрд▓рд┐рднрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдорд╛ рдЙрдиреАрд╣рд░реВрдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рднреВрдорд┐рдХрд╛ рд░ рд╕реНрдерд╛рди рдХреЗ рд╣реЛ, рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдХрд╕рд░реА рд╕рд╣реА рд░реВрдкрдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреЗред

рдпрд╕рдорд╛ рдмрдЧрд╣рд░реВ рдЦреЛрдЬреНрдиреБрдХреЛ рд╕рдЯреНрдЯрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдорд╛ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд▓рд╛рдЧреВ рдЧрд░реНрдиреБрд╣реЛрд╕реН
рд░реНрдпрд╛рдЪреЗрдЯ (рд╕реНрд░реЛрдд: рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛).

рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд╣рд░реВрд▓реЗ рдХреЗ рдЧрд░реНрди рд╕рдХреНрджреИрдирдиреН

рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдмрд╛рдЯ, рд╕реНрд░реЛрдд рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг рднрдиреЗрдХреЛ рдХреЗ рд╣реЛ? рд╣рд╛рдореА рдХреЗрд╣реА рд╕реНрд░реЛрддрд╣рд░реВрдорд╛ рдлрд┐рдб рдЧрд░реНрдЫреМрдВ, рд░ рдЫреЛрдЯреЛ рд╕рдордпрдорд╛ (рдЪрд╛рд▓рд┐рд░рд╣реЗрдХреЛ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рднрдиреНрджрд╛ рдзреЗрд░реИ рдЫреЛрдЯреЛ) рд╣рд╛рдореАрд▓реЗ рд╣рд╛рдореНрд░реЛ рдкреНрд░рдгрд╛рд▓реАрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреЗрд╣реА рдЬрд╛рдирдХрд╛рд░реА рдкрд╛рдЙрдБрдЫреМрдВред рдЖрдзрд╛рд░рднреВрдд рд░ рдЧрдгрд┐рддреАрдп рд░реВрдкрдорд╛ рджреБрд░реНрдЧрдо рд╕реАрдорд╛ рднрдиреЗрдХреЛ рдпреЛ рд╣реЛ рдХрд┐ рд╣рд╛рдореА рдпрд╕рд░реА рдЬрд╛рдирдХрд╛рд░реАрдХреЛ рдПрдХ рд╕рд╛рдБрдШреБрд░реЛ рд╡рд░реНрдЧ рдорд╛рддреНрд░ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдЫреМрдВред

рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрджреНрд╡рд╛рд░рд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рдирд╕рдХрд┐рдиреЗ рд╕рдорд╕реНрдпрд╛рдХреЛ рд╕рдмреИрднрдиреНрджрд╛ рдкреНрд░рд╕рд┐рджреНрдз рдЙрджрд╛рд╣рд░рдг рд╣реЛ рд╕рдорд╕реНрдпрд╛ рд░реЛрдХреНрдиреБрд╣реЛрд╕реН: рдпреЛ рдПрдХ рдкреНрд░рдореЗрдп рд╣реЛ рдЬрд╕рд▓реЗ рдкреНрд░рдорд╛рдгрд┐рдд рдЧрд░реНрджрдЫ рдХрд┐ рдпреЛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрди рдЕрд╕рдореНрднрд╡ рдЫ рдЬрд╕рд▓реЗ рдХрд╛рд░реНрдпрдХреНрд░рдордХреЛ рд╕реНрд░реЛрдд рдХреЛрдбрдмрд╛рдЯ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрджрдЫ рдХрд┐ рдпреЛ рдПрдХ рд╕реАрдорд┐рдд рд╕рдордпрдорд╛ рд▓реБрдк рд╣реБрдиреНрдЫ рд╡рд╛ рд╕рдорд╛рдкреНрдд рд╣реБрдиреНрдЫред рдпрд╕ рдкреНрд░рдореЗрдпрдХреЛ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реЛ рдЪрд╛рдорд▓рдХреЛ рдкреНрд░рдореЗрдп, рдЬрд╕рд▓реЗ рдХрдореНрдкреНрдпреБрдЯреЗрдмрд▓ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рдХреБрдиреИ рдкрдирд┐ рдЧреИрд░-рддреБрдЪреНрдЫ рдЧреБрдгрдХреЛ рд▓рд╛рдЧрд┐, рдПрдХ рд╕реНрд╡реЗрдЪреНрдЫрд╛рдЪрд╛рд░реА рдХрд╛рд░реНрдпрдХреНрд░рдорд▓реЗ рддреНрдпрд╕реНрддреЛ рдЧреБрдгрдХреЛ рд╕рд╛рде рдкреНрд░рдХрд╛рд░реНрдпрдХреЛ рдореВрд▓реНрдпрд╛рдЩреНрдХрди рдЧрд░реНрдЫ рдХрд┐ рдЧрд░реНрджреИрди рднрдиреЗрд░ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрдиреБ рднрдиреЗрдХреЛ рдПрд▓реНрдЧреЛрд░рд┐рджрдордХреЛ рд░реВрдкрдорд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реБрдиреЗ рд╕рдорд╕реНрдпрд╛ рд╣реЛред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, рдпреЛ рдПрдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд▓реЗрдЦреНрди рдЕрд╕рдореНрднрд╡ рдЫ рдЬреБрди рдХреБрдиреИ рдкрдирд┐ рд╕реНрд░реЛрдд рдХреЛрдб рдмрд╛рдЯ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрди рд╕рдХреНрдЫ рдХрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛рд░реНрдпрдХреНрд░рдо рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реЛ рдХрд┐ рдЧрдгрдирд╛ рдЧрд░реНрджрдЫ, рднрдиреНрдиреБрд╣реЛрд╕реН, рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЛ рд╡рд░реНрдЧреАрдХрд░рдгред

рддрд╕рд░реНрде, рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд╣рд░реВрдХреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛рдорд╛ рджреБрд░реНрдЧрдо рд╕реАрдорд╛рд╣рд░реВ рдЫрдиреНред рдПрдХ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд▓реЗ рд╕рдмреИ рдЕрд╡рд╕реНрдерд╛рдорд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреЗрдЫреИрди рдЬрд╕реНрддреИ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╢реВрдиреНрдп рднрд╛рд╖рд╛рд╣рд░реВрдорд╛ "рдирд▓ рдкреЛрдЗрдиреНрдЯрд░ рдЕрдкрд╡рд╛рдж" рдХреЛ рдШрдЯрдирд╛, рд╡рд╛ рд╕рдмреИ рдЕрд╡рд╕реНрдерд╛рдорд╛ рднрд╛рд╖рд╛рд╣рд░реВрдорд╛ "рд╡рд┐рд╢реЗрд╖рддрд╛ рдлреЗрд▓рд╛ рдкрд░реЗрди" рдХреЛ рдШрдЯрдирд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрдиред рдЧрддрд┐рд╢реАрд▓ рдЯрд╛рдЗрдкрд┐рдЩред рд╕рдмреИ рднрдиреНрджрд╛ рдЙрдиреНрдирдд рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд▓реЗ рдЧрд░реНрди рд╕рдХреНрдиреЗ рд╕рдмреИ рд╡рд┐рд╢реЗрд╖ рдХреЗрд╕рд╣рд░реВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдЧрд░реНрдиреБ рд╣реЛ, рдЬрд╕рдХреЛ рд╕рдВрдЦреНрдпрд╛, рддрдкрд╛рдИрдВрдХреЛ рд╕реНрд░реЛрдд рдХреЛрдбрдХреЛ рд╕рд╛рде рд╕рдмреИ рд╕рдореНрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдордзреНрдпреЗ, рдХреБрдиреИ рдЕрддрд┐рд░рдЮреНрдЬрди рдмрд┐рдирд╛, рд╕рдореБрджреНрд░рдорд╛ рдПрдХ рдереЛрдкрд╛ рд╣реЛред

рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдмрдЧрд╣рд░реВрдХреЛ рдЦреЛрдЬреА рд╣реЛрдЗрди

рдорд╛рдерд┐рдмрд╛рдЯ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рд╕реНрдХрдиреНрдЫ: рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛рд░реНрдпрдХреНрд░рдордорд╛ рджреЛрд╖рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдХрдо рдЧрд░реНрдиреЗ рдорд╛рдзреНрдпрдо рд╣реЛрдЗрдиред рдо рдпреЛ рднрдиреНрди рдХреЛ рд▓рд╛рдЧреА рдЙрджреНрдпрдо рдЧрд░реНрдиреЗрдЫреБ рдХрд┐ рдЬрдм рдпреЛ рддрдкрд╛рдЗрдБрдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдорд╛ рдкрд╣рд┐рд▓реЛ рдкрдЯрдХ рд▓рд╛рдЧреВ рд╣реБрдиреНрдЫ, рдпрд╕рд▓реЗ рдХреЛрдб рдорд╛ "рд░рдорд╛рдЗрд▓реЛ" рд╕реНрдерд╛рдирд╣рд░реБ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдиреЗрдЫ, рддрд░, рд╕рдореНрднрд╡рддрдГ, рддрдкрд╛рдЗрдБрдХреЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдЧреБрдгрд╕реНрддрд░ рд▓рд╛рдИ рдЕрд╕рд░ рдЧрд░реНрдиреЗ рдХреБрдиреИ рдкрдирд┐ рджреЛрд╖рд╣рд░реБ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдиреЗ рдЫреИрдиред

рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд╣рд░реВрд▓реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдлреЗрд▓рд╛ рдкрд╛рд░реЗрдХрд╛ рддреНрд░реБрдЯрд┐рд╣рд░реВрдХреЛ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рдЫрдиреН, рддрд░ рд╣рд╛рдореАрд▓реЗ рдпреЛ рдмрд┐рд░реНрд╕рдиреБ рд╣реБрдБрджреИрди рдХрд┐ рдпреА рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рдареВрд▓рд╛ рдХреЛрдбрдмреЗрд╕рд╣рд░реВрдХреЛ рдареВрд▓реЛ рд╕реЗрдЯ рд╕реНрдХреНрдпрд╛рди рдЧрд░реЗрд░ рдлреЗрд▓рд╛ рдкрд░реЗрдХрд╛ рдерд┐рдПред рдПрдЙрдЯреИ рд╕рд┐рджреНрдзрд╛рдиреНрдд рдЕрдиреБрд╕рд╛рд░, рдареВрд▓реЛ рд╕рдВрдЦреНрдпрд╛рдорд╛ рдЦрд╛рддрд╛рд╣рд░реВрдорд╛ рдзреЗрд░реИ рд╕рд░рд▓ рдкрд╛рд╕рд╡рд░реНрдбрд╣рд░реВ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреЗ рдХреНрд░реНрдпрд╛рдХрд░рд╣рд░реВрд▓реЗ рдЕрдиреНрддрддрдГ рд╕рд╛рдзрд╛рд░рдг рдкрд╛рд╕рд╡рд░реНрдб рднрдПрдХрд╛ рдЦрд╛рддрд╛рд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдЫрдиреНред

рдХреЗ рдпрд╕рдХреЛ рдорддрд▓рдм рдпреЛ рд╣реЛ рдХрд┐ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд▓рд╛рдЧреВ рдЧрд░реНрдиреБ рд╣реБрдБрджреИрди? рдкрдХреНрдХреИ рд╣реЛрдЗрди! рд░ рдареНрдпрд╛рдХреНрдХреИ рдЙрд╣реА рдХрд╛рд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдХрд┐рди рдпреЛ "рд╕рд░рд▓" рдкрд╛рд╕рд╡рд░реНрдбрд╣рд░реВрдХреЛ рд╕реНрдЯрдк рд╕реВрдЪреАрдорд╛ рдкреБрдЧреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рддреНрдпреЗрдХ рдирдпрд╛рдБ рдкрд╛рд╕рд╡рд░реНрдб рдЬрд╛рдБрдЪ рдЧрд░реНрди рд▓рд╛рдпрдХ рдЫред

рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдмрдЧрд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рднрдиреНрджрд╛ рдмрдвреА рдЫ

рд╡рд╛рд╕реНрддрд╡рдорд╛, рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд▓реЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдкрдорд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдиреЗ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдзреЗрд░реИ рдлрд░рд╛рдХрд┐рд▓реЛ рдЫрдиреНред рдЖрдЦрд┐рд░, рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рднрдиреЗрдХреЛ рд╕реНрд░реЛрдд рдХреЛрдбрд╣рд░реВрдХреЛ рдХреБрдиреИ рдкрдирд┐ рдЬрд╛рдБрдЪ рд╣реЛ рдЬреБрди рддрд┐рдиреАрд╣рд░реВ рд╕реБрд░реБ рд╣реБрдиреБ рдЕрдШрд┐ рдЧрд░рд┐рдиреНрдЫред рддрдкрд╛рдИрдВрд▓реЗ рдЧрд░реНрди рд╕рдХреНрдиреЗ рдХреЗрд╣реА рдХреБрд░рд╛рд╣рд░реВ рдпрд╣рд╛рдБ рдЫрдиреН:

  • рд╢рдмреНрджрдХреЛ рдлрд░рд╛рдХрд┐рд▓реЛ рдЕрд░реНрдердорд╛ рдХреЛрдбрд┐рдЩ рд╢реИрд▓реА рдЬрд╛рдБрдЪ рдЧрд░реНрджреИред рдпрд╕рд▓реЗ рдврд╛рдБрдЪрд╛ рдЬрд╛рдБрдЪ рдЧрд░реНрдиреЗ рд░ рдЦрд╛рд▓реА/рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрд╖реНрдардХрд╣рд░реВрдХреЛ рдкреНрд░рдпреЛрдЧ рдЦреЛрдЬреНрдиреЗ, рд░реЗрдЦрд╛рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ / рд╕рд╛рдЗрдХреНрд▓реЛрдореЗрдЯрд┐рдХ рд╡рд┐рдзрд┐ рдЬрдЯрд┐рд▓рддрд╛, рдЖрджрд┐ рдЬрд╕реНрддрд╛ рдореЗрдЯреНрд░рд┐рдХреНрд╕рдорд╛ рдереНрд░реЗрд╕рд╣реЛрд▓реНрдбрд╣рд░реВ рд╕реЗрдЯ рдЧрд░реНрдиреЗ рджреБрд╡реИ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред - рд╕рдореНрднрд╛рд╡рд┐рдд рд░реВрдкрдорд╛ рдХреЛрдбрд▓рд╛рдИ рдердк рдкрдвреНрди рдпреЛрдЧреНрдп рд░ рдорд░реНрдорддрдпреЛрдЧреНрдп рдмрдирд╛рдЙрдиреЗ рд╕рдмреИ рдХреБрд░рд╛ред рдЬрд╛рднрд╛рдорд╛ рдпреЛ рдЙрдкрдХрд░рдг рдЪреЗрдХрд╕реНрдЯрд╛рдЗрд▓ рд╣реЛ, рдкрд╛рдЗрдердирдорд╛ рдпреЛ flake8 рд╣реЛред рдпрд╕ рд╡рд░реНрдЧрдХрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдорд╣рд░реВ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ "рд▓рд┐рдиреНрдЯрд░реНрд╕" рднрдирд┐рдиреНрдЫред
  • рди рдХреЗрд╡рд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдпреЛрдЧреНрдп рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред JSON, YAML, XML, .рдЧреБрдгрд╣рд░реВ рдЬрд╕реНрддреИ рд╕реНрд░реЛрдд рдлрд╛рдЗрд▓рд╣рд░реВ рд╡реИрдзрддрд╛рдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдЬрд╛рдБрдЪ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ (рд░ рд╣реБрдиреБрдкрд░реНрдЫ!)ред рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрджрд╛ рд╡рд╛ рд░рди рдЯрд╛рдЗрдордорд╛ рднрдиреНрджрд╛ рд╕реНрд╡рдд: рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдкреНрд░рдорд╛рдгреАрдХрд░рдгрдХреЛ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдЪрд░рдгрдорд╛ JSON рд╕рдВрд░рдЪрдирд╛ рдЯреБрдЯреЗрдХреЛ рдХрд╛рд░рдгрд▓реЗ рдХреЗрд╣реА рдЕрдирдкреЗрдпрд░ рдЙрджреНрдзрд░рдгрд╣рд░реВрдХрд╛ рдХрд╛рд░рдг рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрдиреБ рд░рд╛рдореНрд░реЛ рд╣реЛрдЗрди? рдЙрдкрдпреБрдХреНрдд рдЙрдкрдХрд░рдгрд╣рд░реВ рдЙрдкрд▓рдмреНрдз рдЫрдиреН: рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, YAMLlint, JSONLint.
  • рдХрдореНрдкрд╛рдЗрд▓реЗрд╢рди (рд╡рд╛ рдбрд╛рдпрдирд╛рдорд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкрд╛рд░реНрд╕рд┐рдЩ) рдкрдирд┐ рдПрдХ рдкреНрд░рдХрд╛рд░рдХреЛ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╣реЛред рдирд┐рдпрдордХреЛ рд░реВрдкрдорд╛, рдХрдореНрдкрд╛рдЗрд▓рд░рд╣рд░реВрд▓реЗ рдЪреЗрддрд╛рд╡рдиреА рдЬрд╛рд░реА рдЧрд░реНрди рд╕рдХреНрд╖рдо рдЫрдиреН рдЬрд╕рд▓реЗ рд╕реНрд░реЛрдд рдХреЛрдбрдХреЛ рдЧреБрдгрд╕реНрддрд░рдорд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдВрдХреЗрдд рдЧрд░реНрджрдЫ, рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░реНрдиреБ рд╣реБрдБрджреИрдиред
  • рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдБ рд╕рдВрдХрд▓рди рднрдиреЗрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдпреЛрдЧреНрдп рдХреЛрдб рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рдорд╛рддреНрд░ рд╣реЛрдЗрдиред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдпрджрд┐ рддрдкрд╛рдЗрдБрд╕рдБрдЧ рдврд╛рдБрдЪрд╛рдорд╛ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рдЫрдиреН Ascii рдбрдХреНрдЯрд░, рддреНрдпрд╕рдкрдЫрд┐ HTML/PDF рд╣реНрдпрд╛рдиреНрдбрд▓рд░ AsciiDoctor рдорд╛ рдпрд╕рдХреЛ рд░реВрдкрд╛рдиреНрддрд░рдгрдХреЛ рдХреНрд╖рдгрдорд╛ (рдорд╛рднреЗрди рдкреНрд▓рдЧрдЗрди) рд▓реЗ рдЪреЗрддрд╛рд╡рдиреА рдЬрд╛рд░реА рдЧрд░реНрди рд╕рдХреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдЯреБрдЯреЗрдХреЛ рдЖрдиреНрддрд░рд┐рдХ рд▓рд┐рдЩреНрдХрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ред рд░ рдХрд╛рдЧрдЬрд╛рдд рдкрд░рд┐рд╡рд░реНрддрдирдХреЛ рд╕рд╛рде рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╕реНрд╡реАрдХрд╛рд░ рдирдЧрд░реНрдиреЗ рдпреЛ рд░рд╛рдореНрд░реЛ рдХрд╛рд░рдг рд╣реЛред
  • рд╣рд┐рдЬреНрдЬреЗ рдЬрд╛рдБрдЪ рдкрдирд┐ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЛ рдПрдХ рдкреНрд░рдХрд╛рд░ рд╣реЛред рдЙрдкрдпреЛрдЧрд┐рддрд╛ aspell рдХрд╛рдЧрдЬрд╛рддрдорд╛ рдорд╛рддреНрд░ рд╣реЛрдЗрди, C/C++, Java рд░ Python рд▓рдЧрд╛рдпрдд рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рд╣рд░реВрдорд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕реНрд░реЛрдд рдХреЛрдбрд╣рд░реВ (рдЯрд┐рдкреНрдкрдгреА рд░ рдЕрдХреНрд╖рд░рд╣рд░реВ) рдорд╛ рдкрдирд┐ рд╣рд┐рдЬреНрдЬреЗ рдЬрд╛рдБрдЪ рдЧрд░реНрди рд╕рдХреНрд╖рдо рдЫред рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдиреНрдЯрд░рдлреЗрд╕ рд╡рд╛ рдХрд╛рдЧрдЬрд╛рддрдорд╛ рд╣рд┐рдЬреНрдЬреЗ рддреНрд░реБрдЯрд┐ рдкрдирд┐ рдПрдХ рджреЛрд╖ рд╣реЛ!
  • рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ (рдпреЛ рдХреЗ рд╣реЛ, рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН рдпреЛ ╨╕ рдпреЛ рд░рд┐рдкреЛрд░реНрдЯрд╣рд░реВ), рдпрджреНрдпрдкрд┐ рддрд┐рдиреАрд╣рд░реВ pytest рдЬрд╕реНрддреИ рдПрдХрд╛рдЗ рдкрд░реАрдХреНрд╖рдг рд░рдирдЯрд╛рдЗрдордорд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реБрдиреНрдЫрдиреН, рддрд┐рдиреАрд╣рд░реВ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдПрдХ рдкреНрд░рдХрд╛рд░рдХреЛ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкрдирд┐ рд╣реБрдиреН, рдХрд┐рдирднрдиреЗ рддрд┐рдиреАрд╣рд░реВ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдХреНрд░рдордорд╛ рд╕реНрд░реЛрдд рдХреЛрдбрд╣рд░реВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрджреИрдирдиреНред

рддрдкрд╛рдИрдВрд▓реЗ рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреЗ рд░реВрдкрдорд╛, рдпрд╕ рд╕реВрдЪреАрдорд╛ рдмрдЧрд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдиреБрд▓реЗ рдХрдореНрддрд┐рдорд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рднреВрдорд┐рдХрд╛ рд▓рд┐рдиреНрдЫ, рд░ рдЕрд░реВ рд╕рдмреИ рдХреБрд░рд╛ рдирд┐: рд╢реБрд▓реНрдХ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдЙрдкрдХрд░рдгрд╣рд░реВрдХреЛ рдкреНрд░рдпреЛрдЧ рдорд╛рд░реНрдлрдд рдЙрдкрд▓рдмреНрдз рдЫред

рддрдкрд╛рдИрдВрдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрдпреА рдордзреНрдпреЗ рдХреБрди рдкреНрд░рдХрд╛рд░рдХреЛ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрдкрд░реНрдЫ? рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рдЕрдзрд┐рдХ, рд░рд╛рдореНрд░реЛ! рдореБрдЦреНрдп рдХреБрд░рд╛ рдпрд╕рд▓рд╛рдИ рд╕рд╣реА рд░реВрдкрдорд╛ рд▓рд╛рдЧреВ рдЧрд░реНрди рд╣реЛ, рдЬреБрди рдердк рдЫрд▓рдлрд▓ рдЧрд░рд┐рдиреЗрдЫред

рдбрд┐рд▓рд┐рд╡рд░реА рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдмрд╣реБ-рдЪрд░рдг рдлрд┐рд▓реНрдЯрд░рдХреЛ рд░реВрдкрдорд╛ рд░ рдпрд╕рдХреЛ рдкрд╣рд┐рд▓реЛ рдХреНрдпрд╛рд╕реНрдХреЗрдбрдХреЛ рд░реВрдкрдорд╛ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг

рдирд┐рд░рдиреНрддрд░ рдПрдХреАрдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдХреНрд▓рд╛рд╕рд┐рдХ рд░реВрдкрдХ рдкрд╛рдЗрдкрд▓рд╛рдЗрди (рдкрд╛рдЗрдкрд▓рд╛рдЗрди) рд╣реЛ рдЬрд╕рдХреЛ рдорд╛рдзреНрдпрдордмрд╛рдЯ рдкреНрд░рд╡рд╛рд╣ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдиреНрдЫ - рд╕реНрд░реЛрдд рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдирджреЗрдЦрд┐ рдЙрддреНрдкрд╛рджрдирдорд╛ рдбреЗрд▓рд┐рднрд░реАрд╕рдореНрдоред рдпрд╕ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдХреЛ рдЪрд░рдгрд╣рд░реВрдХреЛ рдорд╛рдирдХ рдЕрдиреБрдХреНрд░рдо рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:

  1. рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг
  2. рдХрдореНрдкрдиреА
  3. рдПрдХрд╛рдЗ рдкрд░реАрдХреНрд╖рдг
  4. рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг
  5. UI рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ
  6. рдореНрдпрд╛рдиреБрдЕрд▓ рдЬрд╛рдБрдЪ

рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдХреЛ Nth рдЪрд░рдгрдорд╛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдЧрд░рд┐рдПрдХрд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ N+1 рдЪрд░рдгрдорд╛ рдкреНрд░рдЪрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫреИрдиред

рд╡рд╛рд╕реНрддрд╡рдорд╛ рдХрд┐рди рдпрд╕рд░реА рд░ рдЕрдиреНрдпрдерд╛ рд╣реЛрдЗрди? рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдХреЛ рдкрд░реАрдХреНрд╖рдг рднрд╛рдЧрдорд╛, рдкрд░реАрдХреНрд╖рдХрд╣рд░реВрд▓реЗ рдкреНрд░рдЦреНрдпрд╛рдд рдкрд░реАрдХреНрд╖рдг рдкрд┐рд░рд╛рдорд┐рдб рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрдиреЗрдЫрдиреНред

рдпрд╕рдорд╛ рдмрдЧрд╣рд░реВ рдЦреЛрдЬреНрдиреБрдХреЛ рд╕рдЯреНрдЯрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдорд╛ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд▓рд╛рдЧреВ рдЧрд░реНрдиреБрд╣реЛрд╕реН
рдкрд░реАрдХреНрд╖рдг рдкрд┐рд░рд╛рдорд┐рдбред рдореБрд╣рд╛рди: рд▓реЗрдЦ рдорд╛рд░реНрдЯрд┐рди рдлрд╛рдЙрд▓рд░ред

рдпрд╕ рдкрд┐рд░рд╛рдорд┐рдбрдХреЛ рдлреЗрджрдорд╛ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдЫрдиреН рдЬреБрди рд▓реЗрдЦреНрди рд╕рдЬрд┐рд▓реЛ рдЫ, рдЫрд┐рдЯреЛ рджреМрдбреНрдиреБрд╣реЛрд╕реН, рд░ рдЧрд▓рдд рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╣реБрди рдирджрд┐рдиреЗред рддреНрдпрд╕рдХрд╛рд░рдг, рддрд┐рдиреАрд╣рд░реВрдордзреНрдпреЗ рдзреЗрд░реИ рд╣реБрдиреБрдкрд░реНрджрдЫ, рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдердк рдХреЛрдб рдХрднрд░ рдЧрд░реНрдиреБрдкрд░реНрдЫ рд░ рдкрд╣рд┐рд▓реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреБрдкрд░реНрдЫред рдкрд┐рд░рд╛рдорд┐рдбрдХреЛ рд╢реАрд░реНрд╖рдорд╛, рд╡рд┐рдкрд░рд┐рдд рд╕рддреНрдп рд╣реЛ, рддреНрдпрд╕реИрд▓реЗ рдПрдХреАрдХрд░рдг рд░ UI рдкрд░реАрдХреНрд╖рдгрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рдиреНрдпреВрдирддрдордорд╛ рдШрдЯрд╛рдЗрдиреБрдкрд░реНрдЫред рдпрд╕ рд╢реГрдЩреНрдЦрд▓рд╛рдХреЛ рд╡реНрдпрдХреНрддрд┐ рд╕рдмреИрднрдиреНрджрд╛ рдорд╣рдБрдЧреЛ, рдврд┐рд▓реЛ рд░ рд╕рдмреИрднрдиреНрджрд╛ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕реНрд░реЛрдд рд╣реЛ, рддреНрдпрд╕реИрд▓реЗ рдК рдПрдХрджрдо рдЕрдиреНрддрдорд╛ рдЫ рд░ рдЕрдШрд┐рд▓реНрд▓реЛ рдЪрд░рдгрд╣рд░реВрдорд╛ рдХреБрдиреИ рддреНрд░реБрдЯрд┐рд╣рд░реВ рдлреЗрд▓рд╛ рдкрд░реЗрди рднрдиреЗ рдорд╛рддреНрд░ рдХрд╛рдо рдЧрд░реНрджрдЫред рдпрджреНрдпрдкрд┐, рдПрдЙрдЯреИ рд╕рд┐рджреНрдзрд╛рдиреНрдд рдЕрдиреБрд╕рд╛рд░, рдкрд╛рдЗрдкрд▓рд╛рдЗрди рднрд╛рдЧрд╣рд░реВрдорд╛ рдмрдирд╛рдЗрдПрдХреЛ рдЫ рдЬреБрди рдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдкрдорд╛ рдкрд░реАрдХреНрд╖рдгрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдЫреИрди!

рдо рдмрд╣реБ-рдЪрд░рдг рдкрд╛рдиреА рдирд┐рд╕реНрдкрдВрджрди рдкреНрд░рдгрд╛рд▓реА рдХреЛ рд░реВрдк рдорд╛ рдПрдХ рд╕рдорд╛рдирддрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреБред рдлреЛрд╣реЛрд░ рдкрд╛рдиреА рдЗрдирдкреБрдЯрдорд╛ рдЖрдкреВрд░реНрддрд┐ рдЧрд░рд┐рдиреНрдЫ (рджреЛрд╖рд╣рд░реВрд╕рдБрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдиреНрдЫ), рдЖрдЙрдЯрдкреБрдЯрдорд╛ рд╣рд╛рдореАрд▓реЗ рд╕рдлрд╛ рдкрд╛рдиреА рдкрд╛рдЙрдиреБ рдкрд░реНрдЫ, рдЬрд╕рдорд╛ рд╕рдмреИ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдкреНрд░рджреВрд╖рдХрд╣рд░реВ рд╣рдЯрд╛рдЗрдиреНрдЫред

рдпрд╕рдорд╛ рдмрдЧрд╣рд░реВ рдЦреЛрдЬреНрдиреБрдХреЛ рд╕рдЯреНрдЯрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдорд╛ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд▓рд╛рдЧреВ рдЧрд░реНрдиреБрд╣реЛрд╕реН
рдмрд╣реБ-рдЪрд░рдг рдлрд┐рд▓реНрдЯрд░ред рдореБрд╣рд╛рди: рд╡рд┐рдХрд┐рдорд┐рдбрд┐рдпрд╛рдорд╛

рддрдкрд╛рдИрд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫ, рд╕рдлрд╛рдИ рдлрд┐рд▓реНрдЯрд░рд╣рд░реВ рдпрд╕рд░реА рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреН рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЕрд░реНрдХреЛ рдХреНрдпрд╛рд╕реНрдХреЗрдбрд▓реЗ рдкреНрд░рджреВрд╖рдХрд╣рд░реВрдХреЛ рд╕рд╛рдиреЛ рдЕрдВрд╢рд▓рд╛рдИ рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрди рд╕рдХреНрдЫред рдПрдХреИ рд╕рдордпрдорд╛, рдореЛрдЯреЗ рд╢реБрджреНрдзреАрдХрд░рдг рдХреНрдпрд╛рд╕реНрдХреЗрдбрд╣рд░реВрдХреЛ рдЙрдЪреНрдЪ рдереНрд░реБрдкреБрдЯ рд░ рдХрдо рд▓рд╛рдЧрдд рдЫред рд╣рд╛рдореНрд░реЛ рд╕рдорд╛рдирддрд╛рдорд╛, рдпрд╕рдХреЛ рдорддрд▓рдм рдпреЛ рд╣реЛ рдХрд┐ рдЗрдирдкреБрдЯ рдЧреБрдгрд╕реНрддрд░ рдЧреЗрдЯрд╣рд░реВ рдЫрд┐рдЯреЛ рдЫрдиреН, рд╕реБрд░реБ рдЧрд░реНрди рдХрдо рдкреНрд░рдпрд╛рд╕ рдЪрд╛рд╣рд┐рдиреНрдЫ, рд░ рд╕рдЮреНрдЪрд╛рд▓рдирдорд╛ рдЖрдлреИрдВрдорд╛ рдзреЗрд░реИ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдЫрдиреН - рд░ рдпреЛ рд╡рд╛рд╕реНрддрд╡рдорд╛ рддрд┐рдиреАрд╣рд░реВ рдирд┐рд░реНрдорд┐рдд рдЕрдиреБрдХреНрд░рдо рд╣реЛред рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдХреЛ рднреВрдорд┐рдХрд╛, рдЬреБрди рд╣рд╛рдореАрд▓реЗ рдЕрд╣рд┐рд▓реЗ рдмреБрдЭреЗрдХрд╛ рдЫреМрдВ, рдХреЗрд╡рд▓ рд╕рдмреИрднрдиреНрджрд╛ рдареВрд▓рд╛ рджреЛрд╖рд╣рд░реВ рд╣рдЯрд╛рдЙрди рд╕рдХреНрд╖рдо рдЫ, рдлрд┐рд▓реНрдЯрд░ рдХреНрдпрд╛рд╕реНрдХреЗрдбрдХреЛ рд╕реБрд░реБрдорд╛ рдЧреНрд░реЗрдЯрд┐рдВрдЧ- "рдорд╛рдЯреЛ" рдХреЛ рднреВрдорд┐рдХрд╛ рд╣реЛред

рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЖрдлреИрд▓реЗ рдЕрдиреНрддрд┐рдо рдЙрддреНрдкрд╛рджрдирдХреЛ рдЧреБрдгрд╕реНрддрд░ рд╕реБрдзрд╛рд░ рдЧрд░реНрджреИрди, рдЬрд╕рд░реА "рдорд╛рдЯреЛрдХреЛ рдЬрд╛рд▓" рд▓реЗ рдкрд╛рдиреА рдкрд┐рдЙрди рдпреЛрдЧреНрдп рдмрдирд╛рдЙрдБрджреИрдиред рд░ рдЕрдЭреИ, рдХрдиреНрд╡реЗрдпрд░ рдХреЛ рдЕрдиреНрдп рддрддреНрд╡рд╣рд░реБ рд╕рдВрдЧ рд╕рд╛рдЭрд╛ рдорд╛, рдпрд╕рдХреЛ рдорд╣рддреНрд╡ рд╕реНрдкрд╖реНрдЯ рдЫред рдпрджреНрдпрдкрд┐ рдмрд╣реБ-рдЪрд░рдг рдлрд┐рд▓реНрдЯрд░рдорд╛, рдЖрдЙрдЯрдкреБрдЯ рдЪрд░рдгрд╣рд░реВ рд╕рдореНрднрд╛рд╡рд┐рдд рд░реВрдкрдорд╛ рдЗрдирдкреБрдЯ рдЪрд░рдгрд╣рд░реВрд▓реЗ рдЧрд░реНрдиреЗ рд╕рдмреИ рдХреБрд░рд╛ рдХреНрдпрд╛рдкреНрдЪрд░ рдЧрд░реНрди рд╕рдХреНрд╖рдо рдЫрдиреН, рдпреЛ рд╕реНрдкрд╖реНрдЯ рдЫ рдХрд┐ рдлрд╛рдЗрди-рдлрд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдЪрд░рдгрд╣рд░реВ рдорд╛рддреНрд░ рдЗрдирдкреБрдЯ рдЪрд░рдгрд╣рд░реВ рдмрд┐рдирд╛ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕рд▓реЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╣рд░реВ рдирд┐рдореНрддреНрдпрд╛рдЙрдБрдЫред

"рдорд╛рдЯреЛ рдХрд▓реЗрдХреНрдЯрд░" рдХреЛ рдЙрджреНрджреЗрд╢реНрдп рдзреЗрд░реИ рд╕рдХрд▓ рджреЛрд╖рд╣рд░реВ рдХрдмреНрдЬрд╛ рдЧрд░реНрди рдкрдЫрд┐ рдХрд╛рд╕реНрдХреЗрдбрд╣рд░реВ рдЕрдирд▓реЛрдб рдЧрд░реНрдиреБ рд╣реЛред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдХрдореНрддрд┐рдорд╛, рдПрдХ рдХреЛрдб рд╕рдореАрдХреНрд╖рдХрд▓рд╛рдИ рдЧрд▓рдд рдврд╛рдБрдЪрд╛ рдЧрд░рд┐рдПрдХреЛ рдХреЛрдб рд░ рд╕реНрдерд╛рдкрд┐рдд рдХреЛрдбрд┐рдЩ рдорд╛рдирдХрд╣рд░реВ (рдЬрд╕реНрддреИ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрд╖реНрдардХ рд╡рд╛ рдзреЗрд░реИ рдЧрд╣рд┐рд░реЛ рдиреЗрд╕реНрдЯреЗрдб рд╢рд╛рдЦрд╛рд╣рд░реВ) рдХреЛ рдЙрд▓реНрд▓рдЩреНрдШрдирдмрд╛рдЯ рд╡рд┐рдЪрд▓рд┐рдд рд╣реБрдиреБ рд╣реБрдБрджреИрдиред NPE рдЬрд╕реНрддрд╛ рдмрдЧрд╣рд░реВ рдПрдХрд╛рдЗ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВрджреНрд╡рд╛рд░рд╛ рд╕рдорд╛рддреНрдиреБрдкрд░реНрджрдЫ, рддрд░ рдпрджрд┐ рдкрд░реАрдХреНрд╖рдг рдЕрдШрд┐ рдиреИ рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд▓реЗ рдмрдЧ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдкрдорд╛ рд╣реБрдиреБрдкрд░реНрджрдЫ рднрдиреЗрд░ рд╣рд╛рдореАрд▓рд╛рдИ рд╕рдВрдХреЗрдд рдЧрд░реНрдЫ рднрдиреЗ, рдпрд╕рд▓реЗ рдпрд╕рдХреЛ рдлрд┐рдХреНрд╕рд┐рдЩрд▓рд╛рдИ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд░реВрдкрдорд╛ рдЧрддрд┐ рджрд┐рдиреЗрдЫред

рдорд▓рд╛рдИ рд▓рд╛рдЧреНрдЫ рдХрд┐ рдпреЛ рдЕрдм рд╕реНрдкрд╖реНрдЯ рдЫ рдХрд┐ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд▓реЗ рдЙрддреНрдкрд╛рджрдирдХреЛ рдЧреБрдгрд╕реНрддрд░рдорд╛ рд╕реБрдзрд╛рд░ рдЧрд░реНрджреИрди рдпрджрд┐ рдпреЛ рдХрд╣рд┐рд▓реЗ рдХрд╛рдБрд╣реА рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ, рд░ рд╕рдХрд▓ рджреЛрд╖рд╣рд░реВ рд╕рд╣рд┐рдд рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрди рд▓рдЧрд╛рддрд╛рд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрдкрд░реНрдЫред рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ рддрдкрд╛рдИрдВрдХреЛ рдЙрддреНрдкрд╛рджрдирдХреЛ рдЧреБрдгрд╕реНрддрд░ рд╕реБрдзрд╛рд░ рд╣реБрдиреНрдЫ рдХрд┐ рднрдиреЗрд░ рд╕реЛрдзреНрдиреБ рднрдиреЗрдХреЛ "рдлреЛрд╣реЛрд░ рдкреЛрдЦрд░реАрдмрд╛рдЯ рд▓рд┐рдЗрдПрдХреЛ рдкрд╛рдиреАрдХреЛ рдкрд┐рдЙрдиреЗ рдЧреБрдгрд╕реНрддрд░рдорд╛ рд╕реБрдзрд╛рд░ рд╣реБрдиреНрдЫ рдпрджрд┐ рдпреЛ рдХреЛрд▓рд╛рдиреНрдбрд░рдмрд╛рдЯ рдкрд╛рд░ рдЧрд░рд┐рдпреЛ рднрдиреЗ?" рд╕реЛрдзреНрдиреБ рдмрд░рд╛рдмрд░ рд╣реЛред

рд╡рд┐рд░рд╛рд╕рдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

рдПрдЙрдЯрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдкреНрд░рд╢реНрди: "рдЧреБрдгрд╕реНрддрд░ рдЧреЗрдЯ" рдХреЛ рд░реВрдкрдорд╛ рдирд┐рд░рдиреНрддрд░ рдПрдХреАрдХрд░рдгрдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдорд╛ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╕рд░реА рдкрд░рд┐рдЪрдп рдЧрд░реНрдиреЗ? рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг рдХреЛ рдорд╛рдорд▓рд╛ рдорд╛, рд╕рдмреИ рдХреБрд░рд╛ рд╕реНрдкрд╖реНрдЯ рдЫ: рддреНрдпрд╣рд╛рдБ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдПрдХ рд╕реЗрдЯ рдЫ, рддреА рдордзреНрдпреЗ рдХреБрдиреИ рдХреЛ рд╡рд┐рдлрд▓рддрд╛ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдЧреБрдгрд╡рддреНрддрд╛ рдЧреЗрдЯ рдкрд╛рд╕ рдЧрд░реЗрди рднрдиреЗрд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЧрд░реНрди рдкрд░реНрдпрд╛рдкреНрдд рдХрд╛рд░рдг рд╣реЛред рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдХреЛ рдирддрд┐рдЬрд╛рдХреЛ рдЖрдзрд╛рд░рдорд╛ рдЧреЗрдЯ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЕрд╕рдлрд▓ рднрдпреЛ: рд╡рд┐рд░рд╛рд╕рдд рдХреЛрдбрдорд╛ рдзреЗрд░реИ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВ рдЫрдиреН, рддрдкрд╛рдЗрдБ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрди, рддрд░ рдпреЛ рдкрдирд┐ рдЕрд╕рдореНрднрд╡ рдЫ рдбрд┐рд▓рд┐рд╡рд░реА рд░реЛрдХреНрдиред рдЙрддреНрдкрд╛рджрди рдорд╛рддреНрд░ рдХрд┐рдирднрдиреЗ рдпрд╕рд▓реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред

рдкрд╣рд┐рд▓реЛ рдкрдЯрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛, рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд▓реЗ рдХреБрдиреИ рдкрдирд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрдареВрд▓реЛ рд╕рдВрдЦреНрдпрд╛рдорд╛ рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВ рдЙрддреНрдкрдиреНрди рдЧрд░реНрджрдЫ, рдЬрд╕рдордзреНрдпреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрддреНрдкрд╛рджрдирдХреЛ рд╕рд╣реА рдХрд╛рд░реНрдпрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдЫреИрдирдиреНред рдпреА рд╕рдмреИ рдЯрд┐рдкреНрдкрдгреАрд╣рд░реВ рдПрдХреИрдЪреЛрдЯрд┐ рд╕рдЪреНрдпрд╛рдЙрди рдЕрд╕рдореНрднрд╡ рдЫ, рд░ рддрд┐рдиреАрд╣рд░реВрдордзреНрдпреЗ рдзреЗрд░реИ рдЖрд╡рд╢реНрдпрдХ рдЫреИрдирдиреНред рдЖрдЦрд┐рд░, рд╣рд╛рдореАрд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫ рдХрд┐ рд╣рд╛рдореНрд░реЛ рдЙрддреНрдкрд╛рджрдирд▓реЗ рд╕рдордЧреНрд░ рд░реВрдкрдорд╛ рдХрд╛рдо рдЧрд░реНрджрдЫ, рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдХреЛ рдкрд░рд┐рдЪрдп рдЕрдШрд┐ рдиреИ!

рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рдзреЗрд░реИ рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрд▓реЗ рдЖрдлреВрд▓рд╛рдИ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдХреЛ рдПрдкрд┐рд╕реЛрдбрд┐рдХ рдкреНрд░рдпреЛрдЧрдорд╛ рд╕реАрдорд┐рдд рд░рд╛рдЦреНрдЫрдиреН, рд╡рд╛ рдпрд╕рд▓рд╛рдИ рд╕реВрдЪрдирд╛ рдореЛрдбрдорд╛ рдорд╛рддреНрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫрдиреН, рдЬрдм рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд░рд┐рдкреЛрд░реНрдЯ рд╕рд╛рдзрд╛рд░рдг рд░реВрдкрдорд╛ рд╡рд┐рдзрд╛рдирд╕рднрд╛рдХреЛ рд╕рдордпрдорд╛ рдЬрд╛рд░реА рдЧрд░рд┐рдиреНрдЫред рдпреЛ рдХреБрдиреИ рдкрдирд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдХреЛ рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐рдХреЛ рдмрд░рд╛рдмрд░ рд╣реЛ, рдХрд┐рдирдХрд┐ рдпрджрд┐ рд╣рд╛рдореАрд╕рдБрдЧ рдкрд╣рд┐рд▓реЗ рдиреИ рдзреЗрд░реИ рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВ рдЫрдиреН рднрдиреЗ, рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░реНрджрд╛ рдЕрд░реНрдХреЛрдХреЛ рдШрдЯрдирд╛ (рдЬрддрд┐рд╕реБрдХреИ рдЧрдореНрднреАрд░ рднрдП рдкрдирд┐)ред

рдЧреБрдгрд╕реНрддрд░ рдЧреЗрдЯрд╣рд░реВ рдкрд░рд┐рдЪрдп рдЧрд░реНрдиреЗ рдирд┐рдореНрди рддрд░рд┐рдХрд╛рд╣рд░реВ рдЬреНрдЮрд╛рдд рдЫрдиреН:

  • рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВрдХреЛ рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛рдорд╛ рд╕реАрдорд╛ рд╕реЗрдЯ рдЧрд░реНрджрдЫ, рд╡рд╛ рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛рд▓рд╛рдИ рдХреЛрдбрдХреЛ рд▓рд╛рдЗрдирд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛рд▓реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдЧрд░реНрджрдЫред рдпрд╕рд▓реЗ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИрди, рдХрд┐рдирднрдиреЗ рдпрд╕реНрддреЛ рдЧреЗрдЯрд▓реЗ рд╕реНрд╡рддрдиреНрддреНрд░ рд░реВрдкрдорд╛ рдирдпрд╛рдБ рджреЛрд╖рд╣рд░реВрд╕рдБрдЧ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдЫреЛрдбреНрдЫ рдЬрдмрд╕рдореНрдо рддрд┐рдиреАрд╣рд░реВрдХреЛ рд╕реАрдорд╛ рдирд╛рдШреЗрдХреЛ рдЫред
  • рдлрд┐рдХреНрд╕ рдЧрд░реНрджреИ, рдХреЗрд╣рд┐ рдмрд┐рдиреНрджреБрдорд╛, рдХреЛрдбрдорд╛ рднрдПрдХрд╛ рд╕рдмреИ рдкреБрд░рд╛рдирд╛ рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВрд▓рд╛рдИ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░рд┐рдБрджреИ, рд░ рдирдпрд╛рдБ рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВ рджреЗрдЦрд╛ рдкрд░реНрджрд╛ рдирд┐рд░реНрдорд╛рдг рдЕрд╕рдлрд▓ред рдпреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ PVS-studio рд░ рдХреЗрд╣реА рдЕрдирд▓рд╛рдЗрди рд╕реНрд░реЛрддрд╣рд░реВ, рдЬрд╕реНрддреИ Codacy рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рд╣реЛред рдореИрд▓реЗ PVS-studio рдорд╛ рдХрд╛рдо рдЧрд░реНрдиреЗ рдореМрдХрд╛ рдкрд╛рдПрди, рдХреЛрдбреЗрд╕реАрдХреЛ рд╕рд╛рде рдореЗрд░реЛ рдЕрдиреБрднрд╡рдХреЛ рд▓рд╛рдЧрд┐, рддрд┐рдиреАрд╣рд░реВрдХреЛ рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рднрдиреЗрдХреЛ "рдкреБрд░рд╛рдиреЛ" рдХреЗ рд╣реЛ рд░ "рдирдпрд╛рдБ" рддреНрд░реБрдЯрд┐ рдХреЗ рд╣реЛ рднрдиреНрдиреЗ рдкрд░рд┐рднрд╛рд╖рд╛ рднрдиреЗрдХреЛ рдПрдХ рдЬрдЯрд┐рд▓ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╣реЛ рдЬреБрди рдЧрд░реНрджреИрдиред рд╕рдзреИрдВ рд╕рд╣реА рд░реВрдкрдорд╛ рдХрд╛рдо рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рдпрджрд┐ рдлрд╛рдЗрд▓рд╣рд░реВ рднрд╛рд░реА рдкрд░рд┐рдорд╛рд░реНрдЬрди рд╡рд╛ рдкреБрди: рдирд╛рдорд╛рдХрд░рдг рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреНред рдореЗрд░реЛ рдореЗрдореЛрд░реАрдорд╛, рдХреЛрдбреЗрд╕реАрд▓реЗ рдкреБрд▓ рдЕрдиреБрд░реЛрдзрдорд╛ рдирдпрд╛рдБ рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВ рдЫреЛрдбреНрди рд╕рдХреНрдЫ, рд░ рдПрдХреИ рд╕рдордпрдорд╛ рдпреЛ PR рдХреЛ рдХреЛрдбрдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдирднрдПрдХрд╛ рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВрдХреЛ рдХрд╛рд░рдгрд▓реЗ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдЫреЛрдбреНрди рд╕рдХреНрджреИрдиред
  • рдореЗрд░реЛ рд╡рд┐рдЪрд╛рд░рдорд╛, рд╕рдмреИрднрдиреНрджрд╛ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд╕рдорд╛рдзрд╛рди рдкреБрд╕реНрддрдХрдорд╛ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдЫ рд▓рдЧрд╛рддрд╛рд░ рд╡рд┐рддрд░рдг "рд░реИрдЪреЗрдЯрд┐рдВрдЧ" рд╡рд┐рдзрд┐ред рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рдпреЛ рд╣реЛ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рд▓реАрдЬрдХреЛ рдЧреБрдг рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рд╣реЛ, рд░ рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВрдХреЛ рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рдирдмрдврд╛рдЙрдиреЗ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВрд▓рд╛рдИ рдорд╛рддреНрд░ рдЕрдиреБрдорддрд┐ рджрд┐рдЗрдиреНрдЫред

рд░реНрдпрд╛рдЪреЗрдЯ

рдпреЛ рдпрд╕реНрддреЛ рдХрд╛рдо рдЧрд░реНрдЫ:

  1. рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдЪрд░рдгрдорд╛, рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рдлреЗрд▓рд╛ рдкрд░реЗрдХреЛ рдХреЛрдбрдорд╛ рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛рдХреЛ рд░рд┐рд▓реАрдЬ рдореЗрдЯрд╛рдбреЗрдЯрд╛рдорд╛ рд░реЗрдХрд░реНрдб рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫред рдпрд╕рд░реА, рдЬрдм рддрдкрд╛рдЗрдБ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдмрдирд╛рдЙрдиреБрд╣реБрдиреНрдЫ, рддрдкрд╛рдЗрдБрдХреЛ рднрдгреНрдбрд╛рд░ рдкреНрд░рдмрдиреНрдзрдХ "рд░рд┐рд▓рд┐рдЬ 7.0.2" рдорд╛рддреНрд░ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫреИрди, рддрд░ "7.0.2 рдЪреЗрдХрд╕реНрдЯрд╛рдЗрд▓ рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рднрдПрдХреЛ 100500 рдЬрд╛рд░реА рдЧрд░реНрдиреБрд╣реЛрд╕реН"ред рдпрджрд┐ рддрдкрд╛рдЗрдБ рдЙрдиреНрдирдд рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдкреНрд░рдмрдиреНрдзрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ (рдЬрд╕реНрддреИ рдЖрд░реНрдЯрд┐рдлреНрдпрд╛рдХреНрдЯреНрд░реА), рддрдкрд╛рдЗрдБрдХреЛ рд░рд┐рд▓реАрдЬрдХреЛ рдмрд╛рд░реЗрдорд╛ рдпрд╕реНрддреЛ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рдЫред
  2. рдЕрдм рдирд┐рд░реНрдорд╛рдгрдорд╛ рдкреНрд░рддреНрдпреЗрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдзрд▓реЗ рд╣рд╛рд▓рдХреЛ рд╡рд┐рдореЛрдЪрдирдорд╛ рдкреНрд░рд╛рдкреНрдд рд╣реБрдиреЗ рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛рд╕рдБрдЧ рддреБрд▓рдирд╛ рдЧрд░реНрджрдЫред рдпрджрд┐ PR рд▓реЗ рдпреЛ рд╕рдВрдЦреНрдпрд╛рдорд╛ рд╡реГрджреНрдзрд┐ рд╣реБрдиреНрдЫ рднрдиреЗ, рдХреЛрдбрд▓реЗ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдорд╛ рдЧреБрдгрд╕реНрддрд░ рдЧреЗрдЯ рдкрд╛рд░ рдЧрд░реНрджреИрдиред рдпрджрд┐ рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдШрдЯреНрдЫ рд╡рд╛ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдБрджреИрди, рддрдм рдпреЛ рдкрд╛рд░рд┐рдд рд╣реБрдиреНрдЫред
  3. рдЕрд░реНрдХреЛ рд░рд┐рд▓реАрдЬрдорд╛, рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВрдХреЛ рдкреБрди: рдЧрдгрдирд╛ рдЧрд░рд┐рдПрдХреЛ рд╕рдВрдЦреНрдпрд╛ рд░рд┐рд▓реАрдЬ рдореЗрдЯрд╛рдбреЗрдЯрд╛рдорд╛ рдлрд┐рд░реНрддрд╛ рд▓реЗрдЦрд┐рдиреЗрдЫред

рдЕрд▓рд┐ рдмрд┐рд╕реНрддрд╛рд░реИ, рддрд░ рд╕реНрдерд┐рд░ рд░реВрдкрдорд╛ (рдПрдХ рд░реНрдпрд╛рдЪреЗрдЯрдХреЛ рд░реВрдкрдорд╛), рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рд╢реВрдиреНрдпрдорд╛ рдЬрд╛рдиреЗрдЫред рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рдкреНрд░рдгрд╛рд▓реАрд▓рд╛рдИ рдирдпрд╛рдБ рдЪреЗрддрд╛рд╡рдиреА рдкреЗрд╢ рдЧрд░реЗрд░ рдореВрд░реНрдЦ рдмрдирд╛рдЙрди рд╕рдХрд┐рдиреНрдЫ, рддрд░ рдЕрд░реВ рдХрд╕реИрдХреЛ рд╕реБрдзрд╛рд░ рдЧрд░реЗрд░ред рдпреЛ рд╕рд╛рдорд╛рдиреНрдп рд╣реЛ, рдХрд┐рдирдХрд┐ рд▓рд╛рдореЛ рд╕рдордпрд╕рдореНрдо рдпрд╕рд▓реЗ рдкрд░рд┐рдгрд╛рдо рджрд┐рдиреНрдЫ: рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВ рдирд┐рд╢реНрдЪрд┐рдд рд╣реБрдиреНрдЫрдиреН, рдирд┐рдпрдордХреЛ рд░реВрдкрдорд╛, рдПрдХ рдПрдХ рдЧрд░реЗрд░ рд╣реЛрдЗрди, рддрд░ рддреБрд░реБрдиреНрддреИ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рдХрд╛рд░рдХреЛ рд╕рдореВрд╣рджреНрд╡рд╛рд░рд╛, рд░ рд╕рдмреИ рд╕рдЬрд┐рд▓реИ рдореЗрдЯрд╛рдЗрдПрдХрд╛ рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВ рддреБрд░реБрдиреНрддреИ рд╣рдЯрд╛рдЗрдиреНрдЫред

рдпреЛ рдЧреНрд░рд╛рдлрд▓реЗ рдпрд╕реНрддреЛ "рд░реИрдЪреЗрдЯ" рдХреЛ рд╕рдЮреНрдЪрд╛рд▓рдирдХреЛ рдЫ рдорд╣рд┐рдирд╛рдХреЛ рд▓рд╛рдЧрд┐ рдЪреЗрдХрд╕реНрдЯрд╛рдЗрд▓ рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВрдХреЛ рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рджреЗрдЦрд╛рдЙрдБрдЫред рд╣рд╛рдореНрд░реЛ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВ рдордзреНрдпреЗ рдПрдХред рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдкрд░рд┐рдорд╛рдгрдХреЛ рдЕрд░реНрдбрд░рд▓реЗ рдШрдЯреЗрдХреЛ рдЫ, рд░ рдпреЛ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдкрдорд╛ рднрдпреЛ, рдЙрддреНрдкрд╛рджрдирдХреЛ рд╡рд┐рдХрд╛рд╕рд╕рдБрдЧ рд╕рдорд╛рдирд╛рдиреНрддрд░!

рдпрд╕рдорд╛ рдмрдЧрд╣рд░реВ рдЦреЛрдЬреНрдиреБрдХреЛ рд╕рдЯреНрдЯрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдорд╛ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд▓рд╛рдЧреВ рдЧрд░реНрдиреБрд╣реЛрд╕реН

рдо рдпрд╕ рд╡рд┐рдзрд┐рдХреЛ рдкрд░рд┐рдорд╛рд░реНрдЬрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреБ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЛрдбреНрдпреБрд▓ рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЙрдкрдХрд░рдгрджреНрд╡рд╛рд░рд╛ рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЧрдгрдирд╛ рдЧрд░реНрджреИ, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк YAML рдлрд╛рдЗрд▓рд▓рд╛рдИ рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдЯрд╛рдбреЗрдЯрд╛рдХреЛ рд╕рд╛рдердорд╛ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:

celesta-sql:
  checkstyle: 434
  spotbugs: 45
celesta-core:
  checkstyle: 206
  spotbugs: 13
celesta-maven-plugin:
  checkstyle: 19
  spotbugs: 0
celesta-unit:
  checkstyle: 0
  spotbugs: 0

рдХреБрдиреИ рдкрдирд┐ рдЙрдиреНрдирдд CI рдкреНрд░рдгрд╛рд▓реАрдорд╛, рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рд░ рддреЗрд╕реНрд░реЛ-рдкрдХреНрд╖ рдЙрдкрдХрд░рдгрд╣рд░реВрдорд╛ рднрд░реЛрд╕рд╛ рдирдЧрд░реА рдХреБрдиреИ рдкрдирд┐ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЙрдкрдХрд░рдгрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд░реНрдпрд╛рдЪреЗрдЯ рд▓рд╛рдЧреВ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд▓реЗ рдЖрдлреНрдиреЛ рд░рд┐рдкреЛрд░реНрдЯрд▓рд╛рдИ рд╕рд░рд▓ рдкрд╛рда рд╡рд╛ XML рдврд╛рдБрдЪрд╛рдорд╛ рдЙрддреНрдкрд╛рджрди рдЧрд░реНрджрдЫ рдЬреБрди рдкрд╛рд░реНрд╕ рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рдЫред CI рд▓рд┐рдкрд┐рдорд╛ рдЖрд╡рд╢реНрдпрдХ рддрд░реНрдХ рдорд╛рддреНрд░ рджрд░реНрддрд╛ рдЧрд░реНрди рдмрд╛рдБрдХреА рдЫред рдЬреЗрдирдХрд┐рдиреНрд╕ рд░ рдЖрд░реНрдЯрд┐рдлреНрдпрд╛рдХреНрдЯреНрд░реАрдорд╛ рдЖрдзрд╛рд░рд┐рдд рд╣рд╛рдореНрд░реЛ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдорд╛ рдпреЛ рдХрд╕рд░реА рд▓рд╛рдЧреВ рд╣реБрдиреНрдЫ рднрдиреЗрд░ рддрдкрд╛рдИрдВрд▓реЗ рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рддрдкрд╛рдИрдВ рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдпрд╣рд╛рдБ рд╡рд╛ рдпрд╣рд╛рдБред рджреБрд╡реИ рдЙрджрд╛рд╣рд░рдг рдкреБрд╕реНрддрдХрд╛рд▓рдп рдирд┐рд░реНрднрд░ рдЫрдиреН ratchetlib: рд╡рд┐рдзрд┐ countWarnings() рд╕рд╛рдорд╛рдиреНрдп рддрд░рд┐рдХрд╛рдорд╛ рдЪреЗрдХрд╕реНрдЯрд╛рдЗрд▓ рд░ рд╕реНрдкрдЯрдмрдЧрд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдлрд╛рдЗрд▓рд╣рд░реВрдорд╛ xml рдЯреНрдпрд╛рдЧрд╣рд░реВ рдЧрдгрдирд╛ рдЧрд░реНрджрдЫ, рд░ compareWarningMaps() рдЙрд╣реА рд░реНрдпрд╛рдЪреЗрдЯ рд▓рд╛рдЧреВ рдЧрд░реНрджрдЫ, рдХреБрдиреИ рдкрдирд┐ рдХреЛрдЯреАрд╣рд░реВрдорд╛ рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдмрдвреНрджрд╛ рддреНрд░реБрдЯрд┐ рдлреНрдпрд╛рдБрдХреНрдЫред

рдПрд╕реНрдкреЗрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЯрд┐рдкреНрдкрдгреАрд╣рд░реВ, рдкрд╛рда рд╢рд╛рдмреНрджрд┐рдХрд╣рд░реВ, рд░ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВрдХреЛ рд╣рд┐рдЬреНрдЬреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рд░реЛрдЪрдХ рд░реНрдпрд╛рдЪреЗрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рдореНрднрд╡ рдЫред рддрдкрд╛рдИрд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫ, рд╣рд┐рдЬреНрдЬреЗ рдЬрд╛рдБрдЪ рдЧрд░реНрджрд╛, рдорд╛рдирдХ рд╢рдмреНрджрдХреЛрд╢рдорд╛ рдЕрдЬреНрдЮрд╛рдд рд╕рдмреИ рд╢рдмреНрджрд╣рд░реВ рдЧрд▓рдд рдЫреИрдирдиреН, рддрд┐рдиреАрд╣рд░реВ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╢рдмреНрджрдХреЛрд╢рдорд╛ рдердкреНрди рд╕рдХрд┐рдиреНрдЫред рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╢рдмреНрджрдХреЛрд╢рд▓рд╛рдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реНрд░реЛрдд рдХреЛрдбрдХреЛ рднрд╛рдЧ рдмрдирд╛рдЙрдиреБрднрдпреЛ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ рд╣рд┐рдЬреНрдЬреЗ рдЧреБрдгрд╕реНрддрд░ рдЧреЗрдЯ рдирд┐рдореНрди рд░реВрдкрдорд╛ рддрдпрд╛рд░ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ: рдорд╛рдирдХ рд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╢рдмреНрджрдХреЛрд╢рдХреЛ рд╕рд╛рде рдПрд╕реНрдкреЗрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реБрджреИрди рдХреБрдиреИ рд╣рд┐рдЬреНрдЬреЗ рддреНрд░реБрдЯрд┐рд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдиреБрд╣реЛрд╕реНред

рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╕рдВрд╕реНрдХрд░рдг рдлрд┐рдХреНрд╕рд┐рдЩ рдХреЛ рдорд╣рддреНрд╡ рдХреЛ рдмрд╛рд░реЗ рдорд╛

рдирд┐рд╖реНрдХрд░реНрд╖рдорд╛, рдирд┐рдореНрдирд▓рд╛рдИ рдзреНрдпрд╛рди рджрд┐рдиреБ рдкрд░реНрдЫ: рддрдкрд╛рдИрд▓реЗ рдЖрдлреНрдиреЛ рдбреЗрд▓рд┐рднрд░реА рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдорд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд▓рд╛рдИ рдХрд╕рд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ, рд╡рд┐рд╢реНрд▓реЗрд╖рдХрдХреЛ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд╢реНрдЪрд┐рдд рд╣реБрдиреБрдкрд░реНрдЫред рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд▓рд╛рдИ рд╕рд╣рдЬ рд░реВрдкрдорд╛ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреБрднрдпреЛ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ рдЕрд░реНрдХреЛ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрджрд╛, рдирдпрд╛рдБ рджреЛрд╖рд╣рд░реВ "рдЙрднрд░реНрди" рд╕рдХреНрдЫрдиреН, рдЬреБрди рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдЫреИрдирдиреН, рддрд░ рдирдпрд╛рдБ рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд▓реЗ рдердк рджреЛрд╖рд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХреНрд╖рдо рднрдПрдХреЛ рддрдереНрдпрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдЫрдиреН - рд░ рдпрд╕рд▓реЗ рдкреБрд▓ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрдиреЗ рддрдкрд╛рдИрдВрдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ рддреЛрдбреНрдиреЗрдЫред рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЕрдкрдЧреНрд░реЗрдб рдЧрд░реНрдиреБ рдПрдХ рд╕рдЪреЗрдд рдХрд╛рд░реНрдп рд╣реБрдиреБрдкрд░реНрдЫред рдпрджреНрдпрдкрд┐, рдкреНрд░рддреНрдпреЗрдХ рдПрд╕реЗрдореНрдмрд▓реА рдХрдореНрдкреЛрдиреЗрдиреНрдЯрдХреЛ рд╕рдВрд╕реНрдХрд░рдгрд▓рд╛рдИ рдХрдбрд╛ рдлрд┐рдХреНрд╕ рдЧрд░реНрдиреБ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдкрдорд╛ рдЖрд╡рд╢реНрдпрдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд░ рдЫреБрдЯреНрдЯреИ рдЫрд▓рдлрд▓рдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рд╖рдп рд╣реЛред

рдирд┐рд╖реНрдХрд░реНрд╖

  • рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд▓реЗ рддрдкрд╛рдИрдВрдХреЛ рд▓рд╛рдЧрд┐ рдмрдЧрд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдиреЗ рдЫреИрди рд░ рдПрдХрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рдкрд░рд┐рдгрд╛рдордХреЛ рд░реВрдкрдорд╛ рддрдкрд╛рдИрдВрдХреЛ рдЙрддреНрдкрд╛рджрдирдХреЛ рдЧреБрдгрд╕реНрддрд░ рд╕реБрдзрд╛рд░ рдЧрд░реНрджреИрдиред рдЧреБрдгрд╕реНрддрд░рдорд╛ рдорд╛рддреНрд░ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рднрд╛рд╡ рд╡рд┐рддрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рд╕рдордпрдорд╛ рдпрд╕рдХреЛ рдирд┐рд░рдиреНрддрд░ рдкреНрд░рдпреЛрдЧ рд╣реЛред
  • рдмрдЧрд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдиреБ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдХреЛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рд╣реЛрдЗрди, рдзреЗрд░реИ рдЬрд╕реЛ рдЙрдкрдпреЛрдЧреА рдХрд╛рд░реНрдпрд╣рд░реВ рдУрдкрдирд╕реЛрд░реНрд╕ рдЙрдкрдХрд░рдгрд╣рд░реВрдорд╛ рдЙрдкрд▓рдмреНрдз рдЫрдиреНред
  • рд╡рд┐рддрд░рдг рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдХреЛ рдкрд╣рд┐рд▓реЛ рдЪрд░рдгрдорд╛ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдХреЛ рдирддрд┐рдЬрд╛рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЧреБрдгрд╕реНрддрд░ рдЧреЗрдЯрд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд▓рд┐рдЧреЗрд╕реА рдХреЛрдбрдХреЛ рд▓рд╛рдЧрд┐ рд░реНрдпрд╛рдЪреЗрдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реАред

рд╕рдиреНрджрд░реНрдн

  1. рд▓рдЧрд╛рддрд╛рд░ рд╡рд┐рддрд░рдг
  2. A. Kudryavtsev: рдХрд╛рд░реНрдпрдХреНрд░рдо рд╡рд┐рд╢реНрд▓реЗрд╖рдг: рдХрд╕рд░реА рдмреБрдЭреНрдиреЗ рдХрд┐ рддрдкрд╛рдИрдВ рдПрдХ рд░рд╛рдореНрд░реЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╣реБрдиреБрд╣реБрдиреНрдЫ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдХрд╛ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдзрд┐рд╣рд░реВрдорд╛ рд░рд┐рдкреЛрд░реНрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН (рд╕реНрдерд┐рд░ рдорд╛рддреНрд░ рд╣реЛрдЗрди!)

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди