рд╣рдордиреЗ рдбреЗрдврд╝ рд╕рд╛рд▓ рддрдХ рдЗрдВрдЬрди рдФрд░ рдЙрд╕ рдкрд░ рдЦреЗрд▓ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ред рднрд╛рдЧ рджреЛ рдЖрдзрд╛рд░рднреВрдд рд╕рдВрд░рдЪрдирд╛

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

рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЛ рд╕рдВрджреЗрд╣ рд╣реИ: рдХреНрдпрд╛ рдпрд╣ рд╡рд╣реА рддрдХрдиреАрдХ рд╣реИ рдпрд╛ рдХреЛрдИ рдФрд░? рдЙрддреНрддрд░: рдпрд╣ рдЦрд░реЛрдВрдЪ рд╕реЗ рд▓рд┐рдЦреА рдЧрдИ рдПрдХ рдирдИ рддрдХрдиреАрдХ рд╣реИред

рд╣рдордиреЗ рд╕рд┐рд░реНрдл рдПрдХ рд╕рд╛рд▓ рдореЗрдВ рдХреИрд╕реЗ рдкреНрд░рдмрдВрдзрди рдХрд┐рдпрд╛? рд╣рдорд╛рд░реА рдЯреАрдо рдХреЗ рдкрд╛рд╕ рд╡рд┐рд╢рд╛рд▓ рдЕрдиреБрднрд╡ рд╣реИред рдХрдИ 15 рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдЗрдВрдЬрди рдФрд░ рдЦреЗрд▓ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред

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

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

рдФрд░ рдЕрдм рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░: рдХреНрдпрд╛ рдЙрдкрдХрд░рдг рдФрд░ рддрдХрдиреАрдХреЛрдВ рдиреЗ рд╣рдореЗрдВ рдХрдо рд╕рдордп рдореЗрдВ рдЗрд╕ рдорд╣рддреНрд╡рд╛рдХрд╛рдВрдХреНрд╖реА рдХрд╛рд░реНрдп рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХреА рд╣реИ?

рдЖрдзрд╛рд░рднреВрдд рд╕рдВрд░рдЪрдирд╛


рд╣рдордиреЗ Atlassian Bitbucket Server + Jenkins рдХреЛ рдЪреБрдирд╛ред рдмрд┐рдЯрдмрдХреЗрдЯ рдореЗрдВ рдореБрдЦреНрдп рднрдВрдбрд╛рд░ (рдорд╛рд╕реНрдЯрд░) рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЬреЗрдирдХрд┐рдиреНрд╕ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдбреЗрд╡рд▓рдкрд░ рдХрд╛ рдЕрдкрдирд╛ рдХрд╛рдВрдЯрд╛ рд╣реЛрддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП, рдХрд╛рдВрдЯрд╛ рдореЗрдВ рдПрдХ рдирдпрд╛ рдХрд╛рдВрдЯрд╛ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд╛рдкрд╕ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпреЛрдЬрдирд╛ рд╕реБрдВрджрд░ рдорд╛рдирдХ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдкреБрд▓рдмреНрд░реЗрдХ рдПрдХ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╕рдореАрдХреНрд╖рд╛ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдгреЛрдВ рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИред рдФрд░, рд╕рдлрд▓ рд╣реЛрдиреЗ рдкрд░, рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЧреБрд░реБ рдореЗрдВ рд╡рд┐рд▓реАрди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдЬреЗрдирдХреАрдВрд╕


рдЬреЗрдирдХрд┐рдиреНрд╕ рдХреА рдХрдИ рдХрдорд┐рдпрд╛рдВ рд╣реИрдВ: рд╡рд╣ рдПрдХ рдкреНрд░рд╛рдЪреАрди рд╣реИ, рдмрд╣реБрдд рддреЗрдЬ рдирд╣реАрдВ, рд▓рд╕рджрд╛рд░, рд╡реЗрдм-рдереВрдерди 90 рдХреЗ рджрд╢рдХ рд╕реЗ рдПрдХ рдЗрдВрдЯрд░рдиреЗрдЯ рдкреЛрд░реНрдЯрд▓ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕рдХрд╛ рд▓рдЪреАрд▓рд╛рдкрди, рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдФрд░ рдлреНрд░реА-рдСрдл-рдЪрд╛рд░реНрдЬ 2019 рдореЗрдВ рднреА рдЗрд╕реЗ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдмрдирд╛рддреЗ рд╣реИрдВред рдореЙрдбреНрдпреВрд▓ рдФрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдПрдХ рдкрд╛рдЪрди рдЙрдкрд╕реНрдерд┐рддрд┐, рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдПрдХ рдШреЛрд╖рдгрд╛рддреНрдордХ рд╡рд┐рд╡рд░рдг (рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЭреВрда рдмреЛрд▓рдирд╛) рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡реИрд╕реЗ, рдЕрдм рд▓рдЧрднрдЧ 40 рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВ: рдкрд░реАрдХреНрд╖рдг, рд╕рдВрдкрд╛рджрдХ, рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреЗрд▓; рд╕рд░реНрд╡рд░ рдЗрдВрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдФрд░ рдореЗрдЯрд╛рдЧреЗрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╕рдм 20 buildagentov рд▓реАрдЬрд┐рдПред

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

рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдПрдВ


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

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

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

рд╡рд┐рдХрд╛рд╕ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛


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

рдФрд╕рддрди, рд╣рдо рдкреНрд░рддрд┐ рджрд┐рди 20 рд╕реЗ рдЕрдзрд┐рдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдорд╛рд╕реНрдЯрд░ рдХреЛ рджрд┐рди рдореЗрдВ 20 рдмрд╛рд░ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рддреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, 1991 рдореЗрдВ рд╡рд╛рдкрд╕, рд╡реЗ рдирд┐рд░рдВрддрд░ рдПрдХреАрдХрд░рдг рддрдХрдиреАрдХ рдХреЗ рд╕рд╛рде рдЖрдПред рд╣рдо рдХреНрдпрд╛ рдХрд░рдиреЗ рдЖрдП рд╣реИрдВ?

рдирд┐рд░рдВрддрд░ рдПрдХреАрдХрд░рдг


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

  1. рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг (рд╡рд┐рдВрдбреЛрдЬрд╝, рд▓рд┐рдирдХреНрд╕, рдореИрдХреЛрд╕, рдЖрдИрдУрдПрд╕, рдПрдВрдбреНрд░реЙрдЗрдб)ред Googletest рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ OpenCppCoverage, рдЬрд┐рд╕рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдЬрдЧрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреНрд╡рд╛рд░рд╛ рдЬрд╛рдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╡рд░реЗрдЬ рдХреЗ рдкреНрд░рддрд┐рд╢рдд рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдХрд╡рд░реЗрдЬ рдХрд╛ рдкреНрд░рддрд┐рд╢рдд 75% рд╕реЗ рдХрдо рд╣реИ, рддреЛ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдордиреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдЗрдВрдЬрди рд╡рд░реНрдЧреЛрдВ рдХреЛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╡рд░ рдХрд┐рдпрд╛ рд╣реИред
  2. Codeformatterред C ++ рдХреЛрдб рдХреЗ рд▓рд┐рдП рд╣рдо рдХреНрд▓реИрдВрдЧ-рдлреЙрд░реНрдореЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХреЛрдб рдХрд╛ рдкреНрд░рд╛рд░реВрдкрдг рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдбреЗрд╡рд▓рдкрд░ рдХреА рдорд╢реАрди рдкрд░ рдХрдорд┐рдЯ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдЬрд╛рдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП, рдЬрд┐рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, npm рд▓рд┐рдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  3. рдПрд╕реЗрдЯ рдЯреЗрд╕реНрдЯред рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рд╕рдореВрд╣: рдлрд╝рд╛рдЗрд▓ рд╕реНрд╡рд░реВрдкреЛрдВ рдХреЛ рдорд╛рдиреНрдп рдХрд░рдиреЗ рд╕реЗ рд▓реЗрдХрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рдХрд┐ рдЦреЗрд▓ рд╕реНрддрд░ рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рдмрдирд╛рд╡рдЯ рдореМрдЬреВрдж рд╣реИ)ред
  4. рд╕рдВрдкрд╛рджрдХ рдХреА рдЗрдХрд╛рдИ рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкрд░реАрдХреНрд╖рдгред рдЗрдВрдЬрди рдХрд╛ рдПрдХ рдЕрднрд┐рдиреНрди рдЕрдВрдЧ рд╕рдВрдкрд╛рджрдХ рд╣реИ, рдЬрд╣рд╛рдВ рдЦреЗрд▓ рдХреЗ рд╕реНрддрд░ рдФрд░ рдЕрдиреНрдп рд╕рдВрдкрддреНрддрд┐ рдмрдирд╛рдИ рдФрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВред рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреНрдпреВрдЯреА рдХреЗ рд▓рд┐рдП рдореЗрдВрдврдХ рд╕реНрдХреНрд╡рд┐рд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдВрдкрд╛рджрдХ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЬреАрдпреВрдЖрдИ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ред рдпрд╣ рд╕рдм рд╣рдореЗрдВ рд╕рдВрдкрд╛рджрдХ рдХреЗ рдореИрдиреБрдЕрд▓ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд┐рдирд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрд▓рд╛рдХрд╛рд░реЛрдВ рдФрд░ рд╕реНрддрд░реАрдп рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рдХреА рд╕рдореАрдХреНрд╖рд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЗрд╕рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдФрд░ рд╕реНрдерд┐рд░рддрд╛ рдХрд╛ рд╕реНрддрд░ рдкрд┐рдЫрд▓реА рдХрдВрдкрдиреА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╣реИ, рдЬрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╛рдВрдЪ рдкрд░реАрдХреНрд╖рдХреЛрдВ рдХреА рдПрдХ рдЯреАрдо рдереАред рдЙрд╕реА рд╕рдордп, рд░рд┐рд▓реАрдЬрд╝ рдкреНрд░рддрд┐рджрд┐рди рд╣реЛрддреА рд╣реИрдВ, рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рд╛рде, рд░рд┐рд▓реАрдЬрд╝ рд╣рд░ 2 рд╕рдкреНрддрд╛рд╣ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред
  5. рдЦреЗрд▓ рдХреЗ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкрд░реАрдХреНрд╖рдгред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдореИрдВ рдЦреЗрд▓ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рдгрд╛рд▓реА рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛:

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

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

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

рдЖрдЬ рддрдХ, 6,600 рдкреБрд▓-рдХреНрд╡реИрд╕реНрдЯ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрдирд╛рдП рдФрд░ рд░рдЦреЗ рдЧрдП рд╣реИрдВред



рдирд┐рд░рдВрддрд░ рд╡рд┐рддрд░рдг


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

  1. git рдЯреИрдЧ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ,
  2. рдпрд╣ рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдкреВрд░реНрдг рд╕рдВрд╕реНрдХрд░рдг рдЪрд▓рд╛рддрд╛ рд╣реИ,
  3. рдпрджрд┐ рд╕рдлрд▓ рд╣реЛ, рддреЛ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

  • MacOS рдФрд░ Windows рдХреЗ рд▓рд┐рдП рд╕рдВрдкрд╛рджрдХред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рд░ рд╕реБрдмрд╣ рд╣рд░ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рддрд╛рдЬрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реЛрддрд╛ рд╣реИред рдФрд░, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╣рдо рдЙрдирдХреА рдирд┐рд╢реНрдЪрд┐рдд рдЧреБрдгрд╡рддреНрддрд╛ рдФрд░ рд╕реНрдерд┐рд░рддрд╛ рдореЗрдВ рдЖрд╢реНрд╡рд╕реНрдд рд╣реИрдВред
  • рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдЧреЗрдо рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ред IOS рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ TestFlight, Android рдХреЗ рд▓рд┐рдП - Google Play рдкрд░, рдЕрдиреНрдп рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ - JFrog Artifactory, рдЧреЗрдо рд╕рд░реНрд╡рд░ рдФрд░ рдЕрдиреНрдп рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП - рдХреНрд▓рд╛рдЙрдб рдкрд░ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рд╣рд░ рд╕реБрдмрд╣ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЦреЗрд▓ рдХрд╛ рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рдЬреЛ рдкрд░реАрдХреНрд╖рдг рдФрд░ рдЦреЗрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред

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

  1. рдкреНрд░рдердо рд╕реНрддрд░ рдХрд╛ рдкрд░рд┐рдЪрд░ред рдореБрдЦреНрдп рднрдВрдбрд╛рд░ рдореЗрдВ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рд╕реНрдерд┐рд░рддрд╛ рдкрд░ рдирдЬрд╝рд░ рд░рдЦрддрд╛ рд╣реИред
  2. рдЦреЗрд▓ рдкрд░ рджреВрд╕рд░рд╛ рд╕реНрддрд░ рдкрд░рд┐рдЪрд░ред рдЦреЗрд▓ рдХреАрдбрд╝реЗ рдХреА рдорд░рдореНрдорддред
  3. рд╕рдВрдкрд╛рджрдХреЛрдВ рдкрд░ рджреВрд╕рд░рд╛ рд╕реНрддрд░ рдЕрдЯреЗрдВрдбреЗрдВрдЯред рд╕рдВрдкрд╛рджрдХреАрдп рдмрдЧ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ (рдХрд▓рд╛рдХрд╛рд░реЛрдВ, рд╕реНрддрд░реАрдп рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ, рдЧреЗрдо рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ) рдХреЛ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реИред

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



рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдЗрдВрдЬрди рдХреЗ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░, рд╕рд╛рде рд╣реА рд╕рд╛рде рдореБрдЦреНрдп рдореЙрдбреНрдпреВрд▓ рдФрд░ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВрдЧреЗред

рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП ...

рдкрд╣рд▓рд╛ рднрд╛рдЧ: habr.com/en/post/461623

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


All Articles