рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ GitLab рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рд░рд╛рд╕рдд рдХреЛрдб рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рддрд░реАрдХреЗ

рдЖрдк рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдзреЛрдЦрд╛ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ GitLab рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрддреНрдкрд╛рдж рд╣реИред рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рджреЗрдЦрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ: рдирд┐рд╡реЗрд╢ рдХреЗ рджреМрд░ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЧрд┐рдЯрд▓реИрдм рдХрд╛ рдореВрд▓реНрдп $ 2.7 рдмрд┐рд▓рд┐рдпрди рдерд╛, рдЬрдмрдХрд┐ рдкрд┐рдЫрд▓рд╛ рдореВрд▓реНрдпрд╛рдВрдХрди $ 1.1 рдмрд┐рд▓рд┐рдпрди рдерд╛ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рддреЗрдЬреА рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдФрд░ рдХрдВрдкрдиреА рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдлреНрд░рдВрдЯ-рдПрдВрдб рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдХрд╛рдо рдкрд░ рд░рдЦреЗрдЧреАред

рдпрд╣ рдЧреАрддрд╛рд▓рд╛рдм рдореЗрдВ рд╕рд╛рдордиреЗ рд╡рд╛рд▓реЗ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рдХрд╣рд╛рдиреА рд╣реИред



рдпрд╣ 2016 рдореЗрдВ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ, GitLab рдореЗрдВ рдлреНрд░рдВрдЯ-рдПрдВрдб рд╡рд┐рдХреНрд░реЗрддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдПрдХ рдЧреНрд░рд╛рдл рд╣реИ, рдЬрдм рд╡реЗ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рдереЗ, рдФрд░ 2019 рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рд░рд╣реЗ рдереЗ, рдЬрдм рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдИ рджрд░реНрдЬрди рдереЗред рд▓реЗрдХрд┐рди рдЦреБрдж рдЧреАрддрд╛рдм 7 рд╕рд╛рд▓ рдХреЗ рд▓рд┐рдП рд░рд╣реЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, 2017 рддрдХ, рдмреИрдХрдПрдВрдб рдбреЗрд╡рд▓рдкрд░реНрд╕ рдкрд░ рдлреНрд░рдВрдЯрдПрдВрдб рдкрд░ рдореБрдЦреНрдп рдХреЛрдб рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд╕реЗ рднреА рдмрджрддрд░, рд░реВрдмреА рдСрди рд░реЗрд▓реНрд╕ рдкрд░ рдмреИрдХрдПрдВрдб рдбреЗрд╡рд▓рдкрд░реНрд╕ (рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣рдо рдХрд┐рд╕реА рдХреЛ рдЕрдкрдорд╛рдирд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдиреАрдЪреЗ рдмрддрд╛ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдХрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ)ред

7 рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП, рдХреЛрдИ рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛, рдЪрд╛рд╣реЗ рдЖрдкрдХреЛ рдкрд╕рдВрдж рд╣реЛ рдпрд╛ рди рд╣реЛ, рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╣реЛ рд░рд╣реА рд╣реИред рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░, рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреЛ рдмрдВрдж рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдпрд╛рддреНрд░рд╛ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ, рд░реЛрдорд╛рдВрдЪ рд╕реЗ рднрд░реА рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрдВрддрд┐рдо рдмрд┐рдВрджреБ рдХрднреА рдирд╣реАрдВ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИред GitLab рдореЗрдВ рдРрд╕рд╛ рдХреИрд╕реЗ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЗрд▓реНрдпрд╛ рдХреНрд▓рд┐рдореЛрд╡ рдиреЗ рдХрд╣рд╛ред


рд╡рдХреНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ: рдЗрд▓реНрдпрд╛ рдХреНрд▓рд┐рдореЛрд╡ (xanf) рдЧрд┐рдЯрд▓рдм рдореЗрдВ рд╕реАрдирд┐рдпрд░ рдлреНрд░рдВрдЯреЗрдВрдб рдЗрдВрдЬреАрдирд┐рдпрд░ред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдкреНрд╕ рдФрд░ рдЖрдЙрдЯрд╕реЛрд░реНрд╕рд┐рдВрдЧ рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛, рдПрдХ рдЫреЛрдЯреА рдЖрдЙрдЯрд╕реЛрд░реНрд╕рд┐рдВрдЧ рдХрдВрдкрдиреА рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд┐рдпрд╛ред рддрдм рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рддрдХ рдЙрддреНрдкрд╛рдж рдХреЛ рдмрдирд╛рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рдерд╛, рдФрд░ рдЧрд┐рдЯрд▓реИрдм рдЖрдпрд╛ред

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

GitLab рдореЗрдВ, рдХрдИ рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ, рд╡реЗ рдзреАрд░реЗ-рдзреАрд░реЗ рдкреБрд░рд╛рдиреА рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рд╕реЗ рдХреБрдЫ рдЕрдзрд┐рдХ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдХреЗ рд▓рд┐рдП рдкрд▓рд╛рдпрди рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

  • рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ CoffeeScriptред рд░реВрдмреА рдСрди рд░реЗрд▓реНрд╕ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕, рдЬрдм рдЙрдиреНрд╣реЛрдВрдиреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╢реБрд░реВ рдХреА, рддреЛ рд╡рд╣ рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХреЗ, рд▓реЗрдХрд┐рди рдХреЙрдлрд╝реАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ, рдЬреЛ рд░реВрдмреА рдХреЗ рд╕рдорд╛рди рджрд┐рдЦрддрд╛ рд╣реИред
  • JQuery Vue. , JQuery. GitLab SPA. server-side rendering progressive enhancement, Vue-. , : Vue-, .
  • Karma Jest. Jest - . Karma , , .
  • REST GraphQL , , Vuex Apollo. Vuex, Redux Vue, Apollo local state , . GraphQL , .

рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рдПрдХ рд╕рд╛рде рдХрдИ рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╣реЛрддреЗ рд╣реИрдВ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдХ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рдЪрд░рдгреЛрдВ рдореЗрдВ рдПрдХ рд╡рд┐рд░рд╛рд╕рдд-рдХреЛрдб рд╣реЛрддрд╛ рд╣реИред

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

рдЖрдЧреЗ: jQuery, рд╕реНрд╡-рдШрдЯрдХреЛрдВ рдФрд░, рдЙрдЪреНрдЪрддрдо рдмрд┐рдВрджреБ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡-рд▓рд┐рдЦрд┐рдд рдХрдХреНрд╖рд╛рдПрдВ, Vuex, рдЕрдкреЛрд▓реЛ, рдЬреЗрд╕реНрдЯ, рдЖрджрд┐ рдХреЗ рд╕рд╛рде рд▓рд┐рдЦрд┐рдд рдирдИ рдЖрдзреБрдирд┐рдХ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВред

GitLab рдкрд░ рдореЗрд░рд╛ рдпреЛрдЧрджрд╛рди-рдЧреНрд░рд╛рдл рдРрд╕рд╛ рд╣реИред



рдЗрд╕рдореЗрдВ - рдФрд░ рдпрд╣ рдХрд╣рд╛рдиреА рдХреЗ рд╕рд╛рд░ рдФрд░ рдореЗрд░реЗ рд╕рднреА рджрд░реНрдж рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ - рдХрдИ рдЦрдВрдбреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

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

рдореИрдВ рдЖрдкрдХреЛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВрдиреЗ рдЕрдЧрд╕реНрдд рд╕реЗ рдЕрдХреНрдЯреВрдмрд░ рддрдХ рдХреНрдпрд╛ рдХрд┐рдпрд╛ред рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдПрдХ рдЫреЛрдЯреА рдЖрдЙрдЯрд╕реЛрд░реНрд╕рд┐рдВрдЧ рдХрдВрдкрдиреА рдпрд╛ рдПрдХ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдореЗрдВ, рдореБрдЭреЗ рдЗрди рддреАрди рдорд╣реАрдиреЛрдВ рдореЗрдВ рдРрд╕реА рдЙрддреНрдкрд╛рджрдХрддрд╛ рдХреЗ рд╕рд╛рде рдкрд╛рдБрдЪ рдмрд╛рд░ рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛрдЧрд╛ред

рдЗрд╕рд▓рд┐рдП, рддреАрди рдорд╣реАрдиреЗ рдореЗрдВ рдореИрдВрдиреЗ рдХрд┐рдпрд╛:

  • рдЦрдВрдбрд┐рдд рдирд┐рдпрдВрддреНрд░рдг - рддреАрди рдмрдЯрдиред
  • рдЦреЛрдЬ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬреЛ рд╕реНрдерд╛рдиреАрдп рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдШрдЯрдХ рд╣реИред
  • рд╕реНрдкрд┐рдирд░ред рдФрд░ рдпрд╣ рдШрдЯрдХ рдЕрднреА рддрдХ рдЬрдореЗ рд╣реБрдП рдирд╣реАрдВ рд╣реИред



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



рджреЗрдЦреЗрдВ: 12.1 рд╕реЗ рдЪреВрдХ рдЧрдП, 12.2 рд╕реЗ рдЪреВрдХ рдЧрдП, 12.3 рд╕реЗ рдЪреВрдХ рдЧрдПред рд╕реНрдкреНрд░рд┐рдВрдЯ рдПрдХ рдорд╣реАрдиреЗ рддрдХ рд░рд╣рддрд╛ рд╣реИ, рдФрд░ рдЦрдВрдбрд┐рдд рдирд┐рдпрдВрддреНрд░рдг - 3 рд╕реНрдкреНрд░рд┐рдВрдЯред рд╕реНрдкрд┐рдирд░ рдЕрднреА рднреА рдЧрдпрд╛ рд╣реИ, рд╡рд╣ рд╣рдорд╛рд░рд╛ рдореБрдЦреНрдп рдЪрд░рд┐рддреНрд░ рд╣реЛрдЧрд╛ред

рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреА рд╕рдорд╕реНрдпрд╛ рдФрд░ рд░рд┐рдлреНрд▓реЗрдХреНрдЯрд░рд┐рдВрдЧ рдХреЗ рджрд░реНрд╢рди рдмрд╣реБрдд рд╕рдордп рд╕реЗ рдорд╛рдирд╡рддрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рд╕рд╣рд╕реНрд░рд╛рдмреНрджреА рдХреЗ рд▓рд┐рдПред рдЕрдм рдореИрдВ рд╕рд╛рдмрд┐рдд рдХрд░реВрдВрдЧрд╛:
┬л ; , , ; ; , .

, , , : ┬╗.

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

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

рдЬреЗрд╡рд┐рд╕реНрдЯ рдмрд╛рдд:
- рд╣рдо рдЕрдкрдиреЗ рдЬрд╛рд╡рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреИрд╕реЗ рдЧрддрд┐ рджреЗрддреЗ рд╣реИрдВ?
- рдУрд╣, рддреЛ рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдереА! рдХреНрдпрд╛ рдЖрдк рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?
- рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдореИрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ, рдореИрдВ рдЧрддрд┐ рдХрд░реВрдБрдЧрд╛!

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

1. рдЗрдВрд╕реБрд▓реЗрд╢рди


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

рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг: GitLab рдореЗрдВ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдХреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ, рдПрдХ рджрд┐рди рдХреЗ рдЕрдВрддрд░ рдХреЗ рд╕рд╛рде рд▓рд┐рдпрд╛ рдЧрдпрд╛ред



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

рдХреНрдпрд╛ рд╣реБрдЖ? рдпрд╣ рд╕рд░рд▓ рд╣реИ: рд╣рдо рдПрдХ рдбрд┐рдЬрд╝рд╛рдЗрди рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ рдбрд┐рдЬрд╝рд╛рдЗрди рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╕реНрдЯреЛрд░реА рдмреБрдХ рдЯреВрд▓ рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рд╡реИрд╢реНрд╡рд┐рдХ CSS GitLab рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ CSS рдШрдЯрдХ рд╡реИрд╢реНрд╡рд┐рдХ CSS рд╕реЗ рдХреИрд╕реЗ рдЕрд▓рдЧ рд╣реИрдВред

рд╕рд╛рд░рд╛рдВрд╢: рд╕реАрдПрд╕рдПрд╕ рдЕрдм рдирд╣реАрдВ рдмрдЪрд╛ рд╣реИрдХрдо рд╕реЗ рдХрдо рдЧрд┐рдЯрд▓реИрдм рдореЗрдВред

рдореИрдВ 14 рд╕рд╛рд▓ рд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдХрднреА рднреА рдРрд╕рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдпрд╛ рджреЛ рд╕рд╛рд▓ рдХреА рд▓рдВрдмрд╛рдИ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рд╕реАрдПрд╕рдПрд╕ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░реЗред рд╡реИрд╕реЗ, HTML рдХреЛ рдпрд╛ рддреЛ (рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ GitLab рдореЗрдВ) рдмрдЪрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

GitLab рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдФрд░ рдмреИрдХреЗрдВрдбреЛрд╡ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрдиреНрд╣реЛрдВрдиреЗ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдиреЗ рдмреИрдХрдПрдВрдб-рдлреНрд░реЗрдВрдбрд▓реА рд▓реЗрдЖрдЙрдЯ рд╕рд┐рд╕реНрдЯрдо рдХреА рдкреЗрд╢рдХрд╢ рдХреА рдереАред

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

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

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

рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдЕрдм рд╣рдорд╛рд░реЗ рдЕрдкрдиреЗ рдбрд┐рдЬрд╛рдЗрди рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рднрд╛рдЧ рд╣реИрдВ, рдФрд░ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИред

рдбрд┐рдЬрд╝рд╛рдЗрди рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЕрд▓рдЧрд╛рд╡ рд╢рд╛рдорд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ GitLab рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рд╣рдорд╛рд░реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рд▓рдЧрднрдЧ 50-60% рдмреВрдЯрд╕реНрдЯреНрд░реИрдк / Vue рдШрдЯрдХреЛрдВ рдкрд░ рдПрдХ рдЖрд╡рд░рдг рд╣реИ, рдЬрд┐рдирдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдореЗрдВ рдХрдореА рд╣реИред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рддрд╛рдХрд┐ рдбрд┐рдЬрд╛рдЗрди рд╕рд┐рд╕реНрдЯрдо рдЖрдкрдХреЛ рдШрдЯрдХ рдХрд╛ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рди рджреЗред рдпрджрд┐ рд╣рдо рдПрдХ рдЕрдореВрд░реНрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡рд╣рд╛рдВ рд▓рдЪреАрд▓рд╛рдкрди рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЗрдЪреНрдЫрд┐рдд рдХрд┐рд╕реА рднреА рдмрдЯрди рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред рдпрджрд┐ рдЧрд┐рдЯрд▓реИрдм рд╕реНрдкрд┐рдирд░ рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрдореЛрджрд┐рдд рдЪрд╛рд░ рдЖрдХрд╛рд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╢рд╛рд░реАрд░рд┐рдХ рд░реВрдк рд╕реЗ рджреВрд╕рд░реЛрдВ рдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

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

рдЖрдк рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд░рд┐рдПрдХреНрдЯ рдореЗрдВ CSS рдореЙрдбреНрдпреВрд▓ рд╣реИрдВ, Vue рдиреЗ рдРрд╕реА рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рд╕реНрдХреЛрдк рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рд╕рдорд╛рди рд╣реИрдВред рдЙрдирдХреЗ рд╕рд╛рде рдмрд╣реБрдд рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ: рд╕реАрдПрд╕рдПрд╕ рдореЙрдбреНрдпреВрд▓ 100% рдЕрд▓рдЧрд╛рд╡ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдХреЗрд╡рд▓ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдФрд░ Vue рдореЗрдВ рдЫрд┐рддрд░реА рд╣реБрдИ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде, рдПрдХ рдмрд╣реБрдд рд╣реА рджрд┐рд▓рдЪрд╕реНрдк рдкрд░рд┐рджреГрд╢реНрдп рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рд╢реАрд░реНрд╖ рдШрдЯрдХ рдХреА рд╢реИрд▓реА рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рдореВрд▓ рддрддреНрд╡ рдореЗрдВ рдЖрддреА рд╣реИ, рдФрд░ рдбреЗрдЯрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд╣рд╛рдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдзреАрдорд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

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

рд╕реНрдкрд┐рдирд░ рдХреЛ рд╡рд╛рдкрд╕ред рдЙрди рддреАрди рдорд╣реАрдиреЛрдВ рдореЗрдВ, рдЬрд┐рдирд╕реЗ рдореИрдВрдиреЗ рдЙрд╕рд╕реЗ рд▓рдбрд╝рд╛рдИ рдХреА, рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдореИрдВ рдПрдХ рд░реЛрдорд╛рдВрдЪрдХ рд╡реНрдпрд╡рд╕рд╛рдп рдореЗрдВ рд▓рдЧрд╛ рд░рд╣рд╛: рд╕рдлрд╛рдИред



рдПрдХ рд╡рд░реНрдЧ loading-containerрдПрдХ рд╕реНрдкрд┐рдирд░ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рд╣реИ, рдЕрд░реНрдерд╛рдд, рдпрд╣ рдПрдХ рд╕реНрдкрд┐рдирд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдЕрдВрджрд░ рдПрдХ рд╡рд░реНрдЧ рд╣реИред рд╣рдордиреЗ рддрдп рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╕реАрдПрд╕рдПрд╕ рдХреЛ рдмрдЪрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рдирд╛ рд╣реИ, рдкрдЬрд╛рдорд╛ рдореЗрдВ рдкрд░рдорд╛рдгреБ рд╕реАрдПрд╕рдПрд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдЕрд▓рдЧ рд╕реАрдПрд╕рдПрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдкрд░рдорд╛рдгреБ рд╕реАрдПрд╕рдПрд╕ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд╣реА рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣реИред

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

2. рдЯреЗрд╕реНрдЯ


GitLab рдореЗрдВ рдЯреЗрд╕реНрдЯ рд╕рднреА рдХреЛрдб рдХреЛ рдХрд╡рд░ рдХрд░рддреЗ рд╣реИрдВ, рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдЗрд╕рд▓рд┐рдП рдкрд╛рдЗрдкрд▓рд╛рдЗрди 98 рдорд┐рдирдЯ рдореЗрдВ рдкреВрд░реА рд╣реЛрддреА рд╣реИред



GitLab GitLab.com рдкрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдзрд╛рд╡рдХреЛрдВ рдХреЗ рд╕рдордп рдХрд╛ 40% рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ GitLab рдкреНрд░рддреНрдпреЗрдХ рдорд░реНрдЬ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИред

рдореИрдВ рдмрд╣реБрдд рдкреНрд░реЗрд░рд┐рдд рдерд╛: рдореБрдЭреЗ рдЖрдЦрд┐рд░рдХрд╛рд░ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдорд┐рд▓реА рдЬрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ! рдмреИрдХрдПрдВрдб рдХреЛрдб рдХрд╡рд░реЗрдЬ 100% рдХреЗ рдХрд░реАрдм рд╣реИ, рдФрд░ рдореЗрд░реЗ рдЖрдЧрдорди рдХреЗ рд╕рдордп рдлреНрд░рдВрдЯ-рдПрдВрдб рдХреЛрдб 89.3% рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЗрд╕ рдХрд╡рд░реЗрдЬ рдХрд╛ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╣рд┐рд╕реНрд╕рд╛ рдХрдЪрд░рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐:

  • рдЬрдм рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рддреЛ рд╡реЗ рдЯреВрдЯ рдЬрд╛рддреЗ рд╣реИрдВ рдЬреЛ рдШрдЯрдХреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ;
  • рдЬрдм рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рддреЛ рдЯреВрдЯрддрд╛ рдирд╣реАрдВ рд╣реИред

рдореИрдВ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдордЭрд╛рдКрдВрдЧрд╛ред рд╣рдордиреЗ рдЬреЗрд╕реНрдЯ рдХреЛ рд▓рд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рд╡рд╣ рд╣рдореЗрдВ рдХреБрдЫ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЕрднрд┐рдХрдерди рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рд╕реНрдиреИрдкрд╢реЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдкрдиреЗ рдЬреЗрд╕реНрдЯ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рд╕рд╣реА рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ Vue Test Utils рдмрд╕ HTML рдореЗрдВ рд╕рд╣рд╛рд░рд╛ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддрд╛ рд╣реИред рдлрд┐рд░, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдирд╛рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдкреНрд░реЙрдкрд░ рдирд┐рдХрд▓рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдирд╛рдо рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдкреНрд░реЙрдкрд░ рдерд╛, рдЬрд┐рд╕ рдкрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдкреНрд░реЗрд╖рд┐рдд рдбреЗрдЯрд╛ рдХреЗ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдХреЛрдИ рднреА рдмрджрд▓рд╛рд╡ рд╕реНрдиреИрдкрд╢реЙрдЯ рдХреА рд╡рд┐рдлрд▓рддрд╛ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рдмрдирддрд╛ рд╣реИред

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

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

рдкрд┐рдирд┐рдВрдЧ рдЯреЗрд╕реНрдЯ


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

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

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

рдирддреАрдЬрддрди, рдХреБрд▓ 8-9 рд╣рдЬрд╛рд░ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдореЗрд░реЗ 18 рдорд░реНрдЬ рдЕрдиреБрд░реЛрдз, рдХреБрд▓ рдЪреИрдВрдЬ рд▓рдЧрднрдЧ 20 рд╣рдЬрд╛рд░ рд╣реЛ рдЧрдП, рдХреНрдпреЛрдВрдХрд┐ 11 рд╣рдЬрд╛рд░ рдХрдЯ рдЧрдП рдереЗред



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

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

3. рдкреНрд░рддрд┐рд░реЛрдз


рдПрдХ рдФрд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдЕрдзрд┐рдХ рд╕реНрдкрд┐рдирд░ GitLab рдбрд┐рдЬрд╛рдЗрди рд╕рд┐рд╕реНрдЯрдо рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рдпреЗ рд╕рд╛рдзрд╛рд░рдг SVG рдЖрдЗрдХрди рд╣реИрдВред


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

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

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

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

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

рд░рд┐рдлреИрдХреНрдЯрд┐рдВрдЧ, рдЬреИрд╕реЗ рдШрд░ рдХреА рдорд░рдореНрдордд рдХрд░рдирд╛ - рдЗрд╕реЗ рдЦрддреНрдо рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рдЖрдк рдХреЗрд╡рд▓ рдЗрд╕реЗ рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВред
рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХрд╛ рдкрд╣рд▓рд╛ 80% рд╕рдордп 20% рд▓реЗрддрд╛ рд╣реИ, рд╢реЗрд╖ 80% рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ (рдмрд╕ рдЙрд╕реА рддрд░рд╣) рд╕рдордп рдХрд╛ рджреВрд╕рд░рд╛ 80% рд▓реЗрддрд╛ рд╣реИред
рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рдирдП рд╣реИрдХреНрд╕ рди рд▓рдЧрд╛рдП рдЬрд╛рдПрдВред рдореЗрд░рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░реЛ, рд╡рд┐рдХрд╛рд╕ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди, рд╡реЗ рд╕реНрд╡рдпрдВ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗред

4. рдЙрдкрдХрд░рдг


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

рдореИрдВ рд╕рдордЭрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рджрд╛рдВрд╡ рдкрд░ рд▓рдЧрд╛ рд╣реИред рдЬрдмрдХрд┐ рдореБрдЭреЗ рдкрддрд╛ рдерд╛ рдХрд┐ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░реВрдк рд╕реЗ рдХреНрдпрд╛ рдФрд░ рдХреНрдпреЛрдВ рдРрд╕рд╛ рд╣реБрдЖ рдерд╛, рдореЗрд░реА acrossреж% рдЦреЛрдЬреЛрдВ рдореЗрдВ рей code рд╣рдЬрд╛рд░ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдкреВрд░реНрд╡-рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреЛрдб рдереЗред рдЗрддрд┐рд╣рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд▓рдЧрднрдЧ рдЕрд╕рдВрднрд╡ рдерд╛, рдФрд░ рдореБрдЭреЗ рд╡реАрдПрд╕ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧ-рдЗрди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдерд╛ рддрд╛рдХрд┐ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреА рдЦреЛрдЬ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдЗрд╕ рдкреНрд░рддрд┐рдмрджреНрдз рдХреЛ рдмрд╛рд╣рд░ рдХрд░ рджреЗред

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

рдЙрдкрдХрд░рдг рдЪреБрдирдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдЖрдк рднрд╛рдЧреНрдп рдХреЗ рд╕рд╛рде рдЯреЙрд╕ рдЦреЗрд▓рддреЗ рд╣реИрдВ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬреАрддрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред

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

рдпрд╣ 2019 рдореЗрдВ рдЙрдирдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХрд╛ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╣реИ ред рд▓реЗрдХрд┐рди, рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдиреЗ рдХрд╣рд╛ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 2019 рдореЗрдВ рд╕рд╛рдЗрдЯ рдХреБрдЫ рднреА рджрд┐рдЦ рд╕рдХрддреА рд╣реИред

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

рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ рдХреЛрдб рдЖрдзрд╛рд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛, рдорд╣рддреНрд╡рдкреВрд░реНрдг рдФрд░ рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рдврд╛рдВрдЪрд╛ рд╣реИред

5. рдЕрдореВрд░реНрддрддрд╛


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



рдПрдХ рддреНрд╡рд░рд┐рдд рдЦреЛрдЬ рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ 300 рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ jQuery рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдбрд░рд╛рд╡рдирд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рднреА рдирд╣реАрдВ - рдЖрдБрдЦреЗрдВ рдбрд░рддреА рд╣реИрдВ, рд╣рд╛рде рдХрд░ рд░рд╣реА рд╣реИрдВред рд▓реЗрдХрд┐рди рдирд╣реАрдВ! jQuery GitLab рдХреЛрдб рдмреЗрд╕ рдореЗрдВ рдПрдХ рдЕрднрд┐рдиреНрди рдЧреЛрдВрдж рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рд╣реИред

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

рдпрд╣ рдкрд╣рд▓реА рдЪреАрдЬ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЕрдореВрд░реНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ jQuery рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдмрд╛рд╣рд░ рдирд╣реАрдВ рдлреЗрдВрдХ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдИрд╡реЗрдВрдЯ рдПрдорд┐рдЯрд░ рд▓рд┐рдЦреЗрдВ, рдЬреЛ jQuery рдИрд╡реЗрдВрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЗ рдЕрдВрджрд░ рдЫрд┐рдкрд╛ рд╣реЛрдЧрд╛ред

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

6. рдореЗрдЯреНрд░рд┐рдХреНрд╕


рдЖрдк рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдорд╛рдкрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХреЗред GitLab рдореЗрдВ, рд╣рдо рд╡рд╣ рд╕рдм рдХреБрдЫ рдорд╛рдкрддреЗ рд╣реИрдВ рдЬреЛ рд╣рдо рдЙрджреНрджреЗрд╢реНрдпрдкреВрд░реНрдг рддрд░реАрдХреЗ рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдб рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред



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

рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрд░рдорд┐рдХ рдкреНрд░рдЧрддрд┐ рд╣реИред рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрд╣реБрдд рд╕реЗ рдРрд╕реЗ рд╢реЗрдбреНрдпреВрд▓ рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдордЭрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╣рдореЗрд╢рд╛ рд╕рдм рдХреБрдЫ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдореИрдВ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛ (рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдбреЗрдореЛ рдЗрд╕ рдХреНрд╖рдг рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ )ред



рдпрд╣рд╛рдБ GitLab рдЙрддреНрдкрд╛рджрди рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдорд░реНрдЬ рдЕрдиреБрд░реЛрдз рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рд╣рдо рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдзреНрд╡рд╕реНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╢реАрд░реНрд╖ рд▓реЗрдЦ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдврд╣рдиреЗ рд▓рдЧреЗрдЧреАред

рдЖрдкрдХреЛ рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ, 50 рд▓рд╛рдЗрдиреЛрдВ рдХреА рдлрд╛рдЗрд▓ рдХреЛ рдврд╣рдиреЗ рдореЗрдВ рдХрд┐рддрдирд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдЖрдард╡реАрдВ рдкреАрдврд╝реА рдХреЗ рдХреЛрд░ i7 рд╡рд╛рд▓реА рдорд╢реАрди рдЕрдзрд┐рдХрддрдо рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдореБрдбрд╝ рдЬрд╛рддреА рд╣реИ? рддреИрдирд╛рддреА рдореЗрдВ рдХрд┐рддрдирд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ?

рдлрд╝рд╛рдЗрд▓ рдХреЛ рдврд╣рдиреЗ рдореЗрдВ рд▓рдЧрдиреЗ рд╡рд╛рд▓рд╛ рд╕рдордп 7 рд╕реЗ 15 рд╕реЗрдХрдВрдб рддрдХ рд╣реЛрддрд╛ рд╣реИред рддреИрдирд╛рддреА рддреБрд░рдВрдд рд╣реЛрддреА рд╣реИред рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рджреЛрдиреЛрдВ рдиреЗ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ред

рдЗрд╕рд▓рд┐рдП рдореЗрдЯреНрд░рд┐рдХреНрд╕ рд╣реЛрдирд╛ рдмрд╣реБрдд рдЬрд░реВрд░реА рд╣реИред

рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реВрдБ рдХрд┐ рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдпрд╣ рд╡реАрдпреВ рд╣реИ, рдЗрд╕рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рдкреНрд░рдгрд╛рд▓реА рдореВрд▓реНрдп рдХрд╛ рдЯреНрд░реИрдХ рд░рдЦрддреА рд╣реИ: рдпрджрд┐ рдпрд╣ рдмрджрд▓рддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рдореВрд▓реНрдп рдкрд░ рдирд┐рд░реНрднрд░ рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдХрд╣рддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдПрдХ Vue рдШрдЯрдХ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрдИ рдЪреАрдЬреЗрдВ рд╣реЛрддреА рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд╕рд░реНрд╡рд░ рд╕реЗ рд▓реЛрдб рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ, рдЖрджрд┐ред рдпрд╣ рд╕рдм Vue-store рдХреА рд╕рджрд╕реНрдпрддрд╛ рд╣реИ, рдЬреЛ Vue рдШрдЯрдХ рднреА рд╣реИред

рдЬрдм рдЖрдк рдорд░реНрдЬ рдЕрдиреБрд░реЛрдз рдХреЛ рдмрдВрдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рднреА рдХрд╣рддреЗ рд╣реИрдВ, рд╕реНрдЯреЛрд░ рдЕрдкрдбреЗрдЯ рд╣реЛрдиреЗ рдкрд░ 20 рд╣рдЬрд╛рд░ рд╕реНрдЯреЛрд░ рд╕рдмреНрд╕рдХреНрд░рд┐рдкреНрд╢рди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдкрдВрдХреНрддрд┐ рд╣рдЯрд╛ рджреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдЙрд╕реЗ рдирд┐рд░реНрднрд░рддрд╛ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░ рдлрд┐рд░ рд╕рд░рд▓ рдЧрдгрд┐рдд: рдЖрдкрдХреЛ рдЙрди 20 рд╣рдЬрд╛рд░ рддрддреНрд╡реЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдЦреЛрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдРрд╕реА 500 рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХрдИ рдШрдЯрдХ рд╣реИрдВред рдкрд░рд┐рдгрд╛рдо рдПрдХ рдЧрдгрд┐рддреАрдп рдСрдкрд░реЗрд╢рди O (N) рд╣реИ, рдЕрд░реНрдерд╛рдд O (20,000) * 500 рд╣реИред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╣ рд╕рдм рд╕рдордп рд╕реЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИред

рддреИрдирд╛рддреА рддреБрд░рдВрдд рд╣реЛрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдЬреЛрдбрд╝рдирд╛ рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рдПрдХ рдзрдХреНрдХрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рдЧрдгрд┐рддреАрдп рдСрдкрд░реЗрд╢рди рдУ (1)ред

рдХрднреА-рдХрднреА рдХреЛрдб рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдЕрдиреНрдп рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдиреАрдЪрд╛ рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдЙрдиреНрд╣реЗрдВ рдорд╛рдкрдирд╛ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ: рдЦрд░рд╛рдм рдХреЛрдб рдХреЛ рдЕрд▓рдЧ рдХрд░реЗрдВ рдФрд░ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЯреНрд░реИрдХ рд░рдЦреЗрдВред

legacy тАФ . , тАУ TechLead Conf тАФ , . тАУ , legacy Python, PHP.

, ++, , FrontendConf. .

All Articles