Devops, JUnit5 рдФрд░ microservice рдкрд░реАрдХреНрд╖рдг: рдореЙрд╕реНрдХреЛ рд╣реЗрдЗрдЬрд╝реЗрдирдмреИрдЧ рдкрд░ рдПрдХ рд╡реНрдпрдХреНрддрд┐рдкрд░рдХ рдирдЬрд╝рд░



6-7 рджрд┐рд╕рдВрдмрд░ рдХреЛ, рдорд╛рд╕реНрдХреЛ рдореЗрдВ рдкрд╛рдБрдЪрд╡рд╛рдБ рд╣реЗрдЗрдЬрд╝реЗрдирдмреИрдЧ рд╕рдореНрдореЗрд▓рди рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЙрд╕рдХрд╛ рдирд╛рд░рд╛ рд╣реИ тАЬрдкрд░реАрдХреНрд╖рдгред рдХреЗрд╡рд▓ рдкрд░реАрдХреНрд╖рдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реА рдирд╣реАрдВ! тАЭ, рдФрд░ рд╣реЗрдЗрд╕реЗрдирдмреИрдЧреНрд╕ рдХреЗ рджреЛ рд╕рд╛рд▓ рдХреЗ рдирд┐рдпрдорд┐рдд рджреМрд░реЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ (рдкрд╣рд▓реЗ рдПрдХ рдЬрд╛рд╡рд╛ рдбреЗрд╡рд▓рдкрд░, рдЕрдм рдПрдХ рдЫреЛрдЯреА рд╕реА рдХрдВрдкрдиреА рдореЗрдВ рдПрдХ рддрдХрдиреАрдХреА рдиреЗрддрд╛, рдЬрд┐рд╕рдиреЗ рдХрднреА рдХреНрдпреВрдП рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛) рд╣рдорд╛рд░реА рдЯреАрдо рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рд╕реАрдЦрдиреЗ рдФрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗред рдореИрдВ рдЙрди рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреА рдПрдХ рд╡реНрдпрдХреНрддрд┐рдкрд░рдХ рд╕рдореАрдХреНрд╖рд╛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдореБрдЭреЗ рдЗрд╕ рд╕рдордп рдпрд╛рдж рд╣реИрдВред

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

рд▓реЗрдЦ рдореЗрдВ рддрд╕реНрд╡реАрд░реЗрдВ рд╕рдореНрдореЗрд▓рди рдХреЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЯреНрд╡рд┐рдЯрд░ рд╕реЗ рд╣реИрдВ ред

рдмрд╛рд░реВрдХ рд╕рджреЛрдЧреБрд░рд╕реНрдХреАред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ DevOps рд╣реИрдВред рдЖрдЗрдП рд╕рднреА рдкрд░реАрдХреНрд╖рдХреЛрдВ рдХреЛ рдЖрдЧ рджреЗрдВ



(рдлреЛрдЯреЛ рдореЗрдВ - рдкреНрд░рдЪрд╛рд░ рдЬрдм рдмрд╛рд░реВрдХ рдиреЗ рд▓рд┐рдХреНрд╡рд┐рдб рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдкреБрд╕реНрддрдХ рд╡рд┐рддрд░рд┐рдд рдХреА)

рдЬрд╛рд╡рд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдФрд░ JUGRU рд╕рдореВрд╣ рд╕рдореНрдореЗрд▓рдиреЛрдВ рдореЗрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рд╡рд╛рд▓реЗ, Baruch Sadogursky рдХреЛ рдХрд┐рд╕реА рдкрд░рд┐рдЪрдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЙрдиреНрд╣реЛрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рд╣реЗрдЗрдЬрд╝реЗрдирдмрдЧ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ - рдпрд╣ DevOps рдХреЗ рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕рдореАрдХреНрд╖рд╛ рд░рд┐рдкреЛрд░реНрдЯ рдереАред рдЗрд╕ рддрд░рд╣ рдХреА рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рджрд░реНрд╢рдХреЛрдВ рдХреА рдЬрд╝рд░реВрд░рдд рдмрдиреА рд░рд╣рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рдЙрдирд╕реЗ рдкреВрдЫрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ "DevOps рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рджреЗрдВ", рддреЛ рд▓реЛрдЧ рдЕрднреА рднреА рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЬрд╡рд╛рдм рджреЗрддреЗ рд╣реИрдВ "рдпрд╣ рдПрдХ рдРрд╕рд╛ рд╡реНрдпрдХреНрддрд┐ рд╣реИ ..."

рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЬрд┐рди рд▓реЛрдЧреЛрдВ рдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдХреБрдЫ рд╕реАрдЦрд╛ рд╣реИ, рдбреЛрд░ рдПрд╕реЛрд╕рд┐рдПрд╢рди devops-research.com рдХреЗ рдЕрдзреНрдпрдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦрдирд╛ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛, рдЬрд┐рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рджрд░реНрд╢рди рд╡рд╛рд▓реА рдЯреАрдореЛрдВ рдореЗрдВ рдореИрдиреБрдЕрд▓ рдХрд╛рдо рдХреА рдХрд┐рд╕реНрдореЛрдВ рдХрд╛ рдкреНрд░рддрд┐рд╢рдд рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖред рдФрд░ рд╡рд┐рддрд░рдг рдХреА рдЧрддрд┐ рдФрд░ рдЧреБрдгрд╡рддреНрддрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╡рд╛рд▓реЗ рд╡рдХреНрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ (рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░, рдЧрддрд┐ рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ "рдмреЗрд╣рддрд░ рдкрд░реАрдХреНрд╖рдг" рдХреЗ рд▓рд┐рдП рд╕рдордп рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЬреИрд╕реЗ рд╣реА рдЯреАрдо рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрддреА рд╣реИ, рд╕рд╣рд╕рдВрдмрдВрдз рдкреНрд░рддреНрдпрдХреНрд╖ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ):



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

тАЬрдмреЗрд╢рдХ, рдЕрдЧрд░ рдЖрдк рдмрджрд▓рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЗрддрдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИред рдЕрдм рддрдХ, 70 рдХреЗ рджрд╢рдХ рдореЗрдВ COBOL рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рдЗрдЪреНрдЫреБрдХ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА рдХрд╛рдо рд╣реИ, тАЭрдмрд╛рд░реВрдХ рдиреЗ рдХрд╣рд╛ред

рдПрд░реАрдЯреЙрдо рдЗрд░рд╢реЗрдВрдХреЛред рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдПрдХ рд╡рд┐рдЪрд╛рд░ рд╣реИ!




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

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рд░рд┐рдкреЛрд░реНрдЯ рдПрд▓реНрдпреВрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдереА, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреАред

рдЖрд░реНрдЯреАрдо рдиреЗ рдЬрдирддрд╛ рдХреЛ рдЖрд╢реНрд╡рд╕реНрдд рдХрд┐рдпрд╛ рдХрд┐ IntelliJ IDEA рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрдиреНрд╕ рд▓рд┐рдЦрдирд╛ рдПрдХ рд╕рд░рд▓ рдФрд░ рдЖрдХрд░реНрд╖рдХ рдЧрддрд┐рд╡рд┐рдзрд┐ рд╣реИред рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реЛрдЧреА? рдмрд▓реНрдХ рдХреЛрдб рд╕рдВрд╢реЛрдзрди рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, JUnit4 рд╕реЗ JUnit5 рддрдХ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдирд╛ред рдпрд╛ рдПрд▓реНрдпреЛрд░ 1 рд╕реЗ рдПрд▓реНрдпреЛрд░ 2. рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдпрд╛ рдЯрд┐рдХрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдЯреИрдЧрд┐рдВрдЧ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

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

рдХрд┐рд░рд┐рд▓ рдорд░рдХреБрд╢реЗрд╡ред рдЬрд╛рд╡рд╛ рдФрд░ рд░рд┐рдПрдХреНрдЯрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ - рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?




рдпрд╣ рд░рд┐рдкреЛрд░реНрдЯ, рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдЬреЛрдХрд░ рдпрд╛ рдЬреЗрдкреЙрдЗрдВрдЯ рдЬрд╛рд╡рд╛ рд╕рдореНрдореЗрд▓рдиреЛрдВ рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдХрд┐рд░рд┐рд▓ рдиреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдХрд┐ рдХреИрд╕реЗ рд╡рд╣ рдПрдХ рдПрдХрд▓ рдЗрд╡реЗрдВрдЯ рд▓реЙрдЧ (рдХрд╛рдлреНрдХрд╛) рдХреЗ рд╕рд╛рде рдПрдХ рдорд╛рдЗрдХреНрд░реЛрд╕реИрд╕ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯрд░реАрдХреНрдЯрд░.рдЖрдИрдУ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, "рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдзрд╛рд░рд╛рдУрдВ" рдкрд░ рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛, рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдЗрд╕ рдврд╛рдВрдЪреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдбрд┐рдмрдЧ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

рд▓рд┐рдпреЛрдирд┐рдж рд░реБрдбреЗрдВрдХреЛред рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЗ рд╕рд╛рде рдПрдХ рд╕реЗрд▓реЗрдиреЙрдЗрдб рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ рдкреНрд░рдмрдВрдзрди




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

рд▓рд┐рдпреЛрдирд┐рдж рдиреЗ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдХрд╛рдлреА рд╡рд┐рд╕реНрддреГрдд рдЕрд╡рд▓реЛрдХрди рдХрд┐рдпрд╛ - рдПрдХ рдРрд╕реА рдкреНрд░рдгрд╛рд▓реА рдЬреЛ рд╕рдВрднрд╡рддрдГ рдЕрдзрд┐рдХрд╛рдВрд╢ рджрд░реНрд╢рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрд░рд┐рдЪрд┐рдд рдереА, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА DevOps- рд╕реНрд╡рдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Devoops-2018 рд╕рдореНрдореЗрд▓рди рдореЗрдВ рдХреЛрдб рдмрдирд╛рдиреЗ рдФрд░ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдВрдЯреЛрди рдмреЗрдмреЗрдВрдХреЛ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рд░рд┐рдкреЛрд░реНрдЯ рдереАред рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдкрд░)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рдХрд┐ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдорд╢реАрди рдХреЗ рд▓рд┐рдП рд╕реЗрд▓рд░реЙрдЗрдб рдХреЗ рд╕рд╛рде рдбреЙрдХ рдХрдВрдЯреЗрдирд░ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдФрд░ рд╕реНрд╡рдпрдВ рдХреНрд▓рд╕реНрдЯрд░ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрдиреЛрдВ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрд░рд╛рдлреЙрд░реНрдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПред

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

рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкрд░реАрдХреНрд╖рдХреЛрдВ рдХреЗ рд▓рд┐рдП "рд╢реИрдХреНрд╖рд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдо" рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рд░рд┐рдкреЛрд░реНрдЯ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИред

рдПрдВрдбреНрд░реЗ рдорд╛рд░реНрдХреЗрд▓реЛрд╡ред TestContainers рдФрд░ JUnit 5 рдХреЗ рд╕рд╛рде рдорд╛рдЗрдХреНрд░реЛрд╕реЗрд╡рд╛ рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░ рдХреЗ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг, рд╡реИрд╢реНрд╡рд┐рдХ рдПрд╕рдПрдордПрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП




рдФрд░ рдлрд┐рд░ рд╕реЗ microservices рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ! рдЗрд╕ рдмрд╛рд░, рдпрд╣ рдмрд╛рддрдЪреАрдд рдЙрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереА рдЬреЛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрдИ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓реЙрдиреНрдЪ рдФрд░ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЕрдкрдиреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде JUnit5 рдФрд░ рдкреНрд░рд╕рд┐рджреНрдз (рдФрд░ рдЙрддреНрдХреГрд╖реНрдЯ) TestContainers рдврд╛рдВрдЪреЗ рдХреЛ рд╕рдорд╛рдзрд╛рди рдХреЗ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рджреЗрдЦреЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд░реНрдЧреЗрдИ рдПрдЧреЛрд░реЛрд╡ рджреНрд╡рд╛рд░рд╛ рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓ рдХреА рд░рд┐рдкреЛрд░реНрдЯ )ред

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

рдПрдВрдбреНрд░реА рдиреЗ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рдпрд╛ рдХрд┐ рдЖрдк JUnit5 рдПрдХреНрд╕рдЯреЗрдВрд╢рди, рдХрд╕реНрдЯрдо рдПрдиреЛрдЯреЗрд╢рди рдФрд░ рдЯреЗрд╕реНрдЯрдХреЙрдиреНрдЯреЗрдирд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдВрдб-рдЯреВ-рдПрдВрдб рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рд╡рд░рдг рдкрд░реАрдХреНрд╖рдг рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреИрд╕реЗ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдкрд░реАрдХреНрд╖рдг (рд╕рд╢рд░реНрдд рдХреЛрдб) рдкрд░ рдПрдиреЛрдЯреЗрд╢рди рд▓рд┐рдЦрдирд╛

@Billing @Messaging 

рд╣рдо, рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдмреЛрд▓, рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ

 @Test void systemIsDoingRightThings(BillingService b, MessagingService m) {...} 

рдЬрд┐рди рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рдЬрд╛рд╡рд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рдирдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдк рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ рдЙрдард╛рдИ рдЧрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реЗрд╡рд╛рдУрдВ (рдкрд░реАрдХреНрд╖рдг рдбреЗрд╡рд▓рдкрд░ рджреНрд╡рд╛рд░рд╛ рдХрд┐рд╕реА рдХрд╛ рдзреНрдпрд╛рди рдирд╣реАрдВ) рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпреЗ рдЙрджрд╛рд╣рд░рдг рдмрд╣реБрдд рд╕реБрдВрджрд░ рд▓рдЧрддреЗ рд╣реИрдВред рдореЗрд░реЗ рд▓рд┐рдП, TestContainers рдФрд░ JUnit 5 рдХреЗ рдПрдХ рд╕рдХреНрд░рд┐рдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рд╡реЗ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЖрд╕рд╛рди рд╣реИред

рд▓реЗрдХрд┐рди рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдмрдбрд╝рд╛ рд╕рд╡рд╛рд▓ рдЕрдирд╕реБрд▓рдЭреЗ рдмрдирд╛ рд╣реБрдЖ рд╣реИ, рдЗрд╕ рддрдереНрдп рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдФрд░ рдЙрддреНрдкрд╛рджрди рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдЕрд▓рдЧ рд╣реИред

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

рдПрдВрдбреНрд░реЗ рдЧреНрд▓реЗрдЬрд╝рдХреЛрд╡ рдмрд╛рд╣рд░реА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдгрд╛рд▓реА: рд╕рдорд╕реНрдпрд╛рдПрдВ, рд╕рдорд╛рдзрд╛рди, рдорд╛рдЙрдВрдЯрдмреИрдВрдХ




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

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

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

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдорд╛рдЙрдВрдЯрдмреИрдВрдХ рдХрд╛ рд▓рд╛рдн рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рдХреЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ (рдХреЗрд╡рд▓ HTTP рдХреЗ рд▓рд┐рдП рд╡рд╛рдпрд░рдореЙрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ) рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреЗ "рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░" рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рд╣реИ (рдорд╛рдЙрдВрдЯрдмреИрдВрдХ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВ)ред

рдХрд┐рд░рд┐рд▓ рдЯреЛрд▓реНрдХрдЪреЗрд╡ред рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ рдЯреЗрд╕реНрдЯ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдФрд░ рд░реЛрдирд╛




рдФрд░ рдлрд┐рд░ рд╕реЗ Java, microservices рдФрд░ JUnit 5. рдХрд┐рд░рд┐рд▓ рдЬреЛрдХрд░ рдФрд░ JPoint рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХреЗ рдПрдХ рдФрд░ рд╡рдХреНрддрд╛ рд╣реИрдВ, рдЬреЛ рдЬрд╛рд╡рд╛ рд╕рдореБрджрд╛рдп рдХреЗ рдЬрд╛рдиреЗ-рдорд╛рдиреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ Heisenbug рдореЗрдВ рдмрд╛рдд рдХреА рдереАред

рдпрд╣ рд░рд┐рдкреЛрд░реНрдЯ рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓ рдХреЗ рд╕реНрдкреНрд░рд┐рдВрдЧ рдХрд░реНрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдХрд╛ рд╕рдВрд╢реЛрдзрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рдЬрд┐рд╕рдореЗрдВ JUnit5 рдФрд░ рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ 2 рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрд┐рдд рдЙрджрд╛рд╣рд░рдг рд╣реИрдВред рдШрдЯрдХ / рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рднрд┐рдиреНрди рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЬрд╛рдВрдЪ рдХреА рдЬрд╛рддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реНрдХреИрдирд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдкреЗрдбрд╝ рдореЗрдВ рд╕рд╣реА рдЬрдЧрд╣ рдкрд░ рдЦрд╛рд▓реА @SpringBootConfiguration StopConfiguration рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реБрдЖ рдерд╛, рд╕рд╛рде рд╣реА @SpyBean рдмрдЬрд╛рдп @MockBean рдФрд░ @SpyBean рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ред рд╕рд┐рд░рд┐рд▓ рдФрд░ рдПрд╡рдЧреЗрдиреА рдмреЛрд░рд┐рд╕реЛрд╡ рдХреА рдЕрдиреНрдп рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреА рддрд░рд╣, рдпрд╣ рд╡рд╣ рд╕рд╛рдордЧреНрд░реА рд╣реИ рдЬреЛ рд╕реНрдкреНрд░рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрдкрдпреЛрдЧ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╡рд╛рдкрд╕ рдЖрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдПрдВрдбреНрд░реА рдХрд╛рд░рдкреЛрд╡ред рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдФрд░ рдкрд░реАрдХреНрд╖рдХ рдХреНрдпрд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ




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

рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕рдВрд╕реНрдерд╛рдкрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдПрдВрдбреНрд░реЗ рдХрд╛рд░рдкреЛрд╡, (рдЕрдкрдиреЗ рдмреНрд▓реЙрдЧ рд╕реЗ рд╣рдмрд░ рдкрд╛рдардХреЛрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд) рдиреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛рдИ рдХрд┐ рдЬреНрдЮрд╛рдд рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдореЗрдВ рдХреМрди рд╕реЗ рдХреАрдбрд╝реЗ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдкрд╛рдП рдЧрдПред PVS рд╕реНрдЯреВрдбрд┐рдпреЛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдПрдХ рдкреЙрд▓реАрдЧреНрд▓реЙрдЯ рдЙрддреНрдкрд╛рдж рд╣реИ, рдпрд╣ C, C ++, C # рдФрд░, рд╣рд╛рд▓ рд╣реА рдореЗрдВ, Java рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред

рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рджрд┐рд▓рдЪрд╕реНрдк рдереЗ рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдПрдВрдбреНрд░реА рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдЦрд╛рдорд┐рдпрд╛рдВ рд╣реИрдВред

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

рджреВрд╕рд░реЗ, рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рдмрд╛рдд рдХрд░рддреЗ рд╣реБрдП, рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╣рдореЗрд╢рд╛ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреА рдореМрд▓рд┐рдХ рд╕реАрдорд╛рдУрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИред рд╣рд░ рдХреЛрдИ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдореЗрдВ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд╣реАрдВ рдЧрдпрд╛ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП "рд╢рдЯрдбрд╛рдЙрди рд╕рдорд╕реНрдпрд╛" рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИред

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

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореИрдВ рдПрдВрдбреНрд░реА рдФрд░ рдЙрдирдХреА рдЯреАрдо рдХреЛ рд╣рд░ рд╕рдлрд▓рддрд╛ рдХреА рдХрд╛рдордирд╛ рдХрд░рддрд╛ рд╣реВрдВред рдЙрдирдХрд╛ рдЙрддреНрдкрд╛рдж рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдФрд░ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЕрдкрдиреЗ рд╕реНрдерд╛рди рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдмрд╣реБрдд рд╣реА рд╕рд╛рд╣рд╕рд┐рдХ рд╣реИред

***


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

рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдЕрдкрдиреА рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ , рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рд╕рдореНрдореЗрд▓рди рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рд╣реМрд▓ рдХреЛ рд╡реНрдпрдХреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдЪрд░реНрдЪрд╛ рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ, рджреЛрдкрд╣рд░ рдХреЗ рднреЛрдЬрди рдФрд░ рдкрд╛рд░реНрдЯреА рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдирд╣реАрдВ рджреЛрд╣рд░рд╛рдКрдВрдЧрд╛ред

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

Source: https://habr.com/ru/post/hi432736/


All Articles