тЖТ
Node.js рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдгред рднрд╛рдЧ 1. рдкрд░реАрдХреНрд╖рдг рд╢рд░реАрд░ рд░рдЪрдирд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХрд╛рд░рдЖрдЬ, Node.js рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЕрдиреБрд╡рд╛рдж рдХреЗ рджреВрд╕рд░реЗ рднрд╛рдЧ рдореЗрдВ, рд╣рдо рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдкреНрд░рднрд╛рд╡рд╢реАрд▓рддрд╛ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдФрд░ рдХреЛрдб рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред

рдЦрдВрдб 3. рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдкреНрд░рднрд╛рд╡рд╢реАрд▓рддрд╛ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди
тЦН19ред рдЕрдкрдиреЗ рд╕рд╣реА рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдЙрдЪреНрдЪ рд╕реНрддрд░реАрдп рдХреЛрдб рдХрд╡рд░реЗрдЬ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдЖрдорддреМрд░ рдкрд░ рд▓рдЧрднрдЧ 80% рдХрд╡рд░реЗрдЬ рдЕрдЪреНрдЫреЗ рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИред
рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ
рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реИ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдЙрддреНрдкрд╛рджрдХ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рд╡рд╣ рд╕рд╣реА рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рдХреЛрдб рдХреА рдорд╛рддреНрд░рд╛ рдЬрд┐рддрдиреА рдЕрдзрд┐рдХ рд╣реЛрдЧреА, рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рдЙрддрдирд╛ рд╣реА рдордЬрдмреВрдд рд╣реЛрдЧрд╛ рдХрд┐ рд╕рдм рдХреБрдЫ рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдЙрд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдкрд░реАрдХреНрд╖рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХреЛрдб рдХрд╡рд░реЗрдЬ рдХрд╛ рд╕рдВрдХреЗрддрдХ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рддрдиреА рд▓рд╛рдЗрдиреЗрдВ (рд╢рд╛рдЦрд╛рдПрдВ, рдХрдорд╛рдВрдб) рдЬрд╛рдВрдЪреА рдЧрдИ рдереАрдВред рдпрд╣ рд╕рдВрдХреЗрддрдХ рдХреНрдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП? рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ 10-30% рдпрд╣ рд╡рд┐рд╢реНрд╡рд╛рд╕ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдо рд╣реИ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░реЗрдЧреАред рджреВрд╕рд░реА рдУрд░, рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХреЛрдб рдХреА 100% рдХрд╡рд░реЗрдЬ рдХреА рдЗрдЪреНрдЫрд╛ рдмрд╣реБрдд рдорд╣рдВрдЧреА рд╣реЛ рд╕рдХрддреА рд╣реИ рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдЯреБрдХрдбрд╝реЛрдВ рд╕реЗ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рд╡рд┐рдЪрд▓рд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╡рд╣ рдЙрди рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдХреЛрдб рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдореМрдЬреВрджрд╛ рдкрд░реАрдХреНрд╖рдг рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЗрд╕ рд╕рд╡рд╛рд▓ рдХрд╛ рдЕрдзрд┐рдХ рдкреВрд░реНрдг рдЙрддреНрддрд░ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХреЛрдб рдХрд╛ рдХрд╡рд░реЗрдЬ рдХреНрдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЬрд┐рд╕ рд╕рдВрдХреЗрддрдХ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рд╡рд╣ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдЕрдЧрд▓реА рдкреАрдврд╝реА рдХреЗ рдПрдпрд░рдмрд╕ рдП 380 рдХреЗ рд▓рд┐рдП рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ, рддреЛ 100% рдПрдХ рд╕рдВрдХреЗрддрдХ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рднреА рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИред рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдПрдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕ рдкрд░ рдХреИрд░рд┐рдХреЗрдЪрд░ рдЧреИрд▓рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рдПрдВрдЧреА, рддреЛ рд╢рд╛рдпрдж 50% рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рдХреБрдЫ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рд╛рде рдХреЛрдб рдХрд╡рд░реЗрдЬ рдХрд╛ рд╕реНрддрд░ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рд▓рдХреНрд╖реНрдп рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ 80% рдХреЗ рдЖрдВрдХрдбрд╝реЗ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╕рдВрднрд╡рддрдГ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдпрд╣рд╛рдВ рд╣рдо 80-90% рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХреБрдЫ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░, рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓реЗрдЦрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХреЛрдб рдХрд╛ 100% рдХрд╡рд░реЗрдЬ рдЙрд╕реЗ рд╕рдВрджрд┐рдЧреНрдз рдмрдирд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдВрдХреЗрдд рджреЗ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗрд╡рд▓ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрддрд╛ рд╣реИ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рд╕реБрдВрджрд░ рд╕рдВрдЦреНрдпрд╛ред
рдХреЛрдб рдХрд╡рд░реЗрдЬ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рдВрдХреЗрддрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рд░рдВрддрд░ рдПрдХреАрдХрд░рдг (CI, рд╕рддрдд рдПрдХреАрдХрд░рдг) рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдареАрдХ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдпрд╣ рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рдпрджрд┐ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрдХреЗрддрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реАрдорд╛ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИред рдкрд░реАрдХреНрд╖рдг рдХрд╡рд░реЗрдЬ рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЗрд╕реНрдЯ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ
рдХрд╛ рддрд░реАрдХрд╛ рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдХрд╡рд░реЗрдЬ рдереНрд░реЗрд╕рд╣реЛрд▓реНрдб рдХреЛ рдкреВрд░реЗ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реНрдпрдХреНрддрд┐рдЧрдд рдШрдЯрдХреЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрд░реАрдХреНрд╖рдг рдХрд╡рд░реЗрдЬ рдореЗрдВ рдХрдореА рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдпрд╣ рддрдм рд╣реЛрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдирдпрд╛ рдХреЛрдб рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдЗрд╕ рд╕реВрдЪрдХ рдХрд╛ рдирд┐рдпрдВрддреНрд░рдг рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рдХреЛрдб рдХреА рдорд╛рддреНрд░рд╛ рдмрдврд╝рд╛рдиреЗ рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдореМрдЬреВрджрд╛ рд╕реНрддрд░ рдкрд░ рдЗрд╕ рдорд╛рддреНрд░рд╛ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░реЗрдЧрд╛ред рдкреВрд░реНрд╡рдЧрд╛рдореА рдХреЗ рдорджреНрджреЗрдирдЬрд░, рдкрд░реАрдХреНрд╖рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХреЛрдб рдХрд╛ рдХрд╡рд░реЗрдЬ рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрдХреЗрддрдХ рд╣реИ, рдЬреЛ рдХрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реИ, рдЬреЛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдЙрдЪреНрдЪ рд╕реНрддрд░реЛрдВ рдХрд╛ рдЕрднреА рддрдХ рдпрд╣ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреЛрдб "рдкрд░реАрдХреНрд╖рдгреЛрдВ рд╕реЗ рдврдХрд╛ рд╣реБрдЖ" рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрд╛рдБрдЪ рдХреА рдЧрдИ рд╣реИред
рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рд╕реЗ рд╡рд┐рдЪрд▓рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо
рдХреЛрдб рдХреА рдЙрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддрд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрдХреЗрддрдХ рд╕рдВрдмрдВрдзрд┐рдд рд╣рд╛рде рдкрд░ рд╣рд╛рде рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХрд╛ рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ред рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдбрд░ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЙрд╕реЗ рдирд╣реАрдВ рдкрддрд╛ рд╣реИ рдХрд┐ рдЙрд╕рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреЛрдб рдкрд░реАрдХреНрд╖рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпреЗ рдЪрд┐рдВрддрд╛рдПрдБ рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдзреАрдорд╛ рдХрд░ рд╕рдХрддреА рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг
рдпрд╣рд╛рдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░реАрдХреНрд╖рдг рдХрд╡рд░реЗрдЬ рд░рд┐рдкреЛрд░реНрдЯ рджрд┐рдЦрддреА рд╣реИред
рдЗрд╕реНрддрд╛рдВрдмреБрд▓ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдЯреЗрд╕реНрдЯ рдХрд╡рд░реЗрдЬ рд░рд┐рдкреЛрд░реНрдЯрд╕рд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрдг
рдЬреЗрд╕реНрдЯ рдореЗрдВ рдШрдЯрдХ рдХреЛрдб рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХрд╡рд░реЗрдЬ рдХреЗ рд╡рд╛рдВрдЫрд┐рдд рд╕реНрддрд░ рдФрд░ рдЗрд╕ рд╕реВрдЪрдХ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрддрд░ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╕рдВрдкреВрд░реНрдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдФрд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХрд╡рд░реЗрдЬ рдХреЗ рд╡рд╛рдВрдЫрд┐рдд рд╕реНрддрд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛тЦН20ред рдХреЛрдб рдФрд░ рдЕрдиреНрдп рд╡рд┐рд╕рдВрдЧрддрд┐рдпреЛрдВ рдХреЗ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рднрд╛рдЧреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХреЛрдб рдХрд╡рд░реЗрдЬ рдкрд░ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ
рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ
рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рддреНрд░реБрдЯрд┐ рдкрд╣рдЪрд╛рди рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦрд┐рд╕рдХ рдЬрд╛рддреА рд╣реИрдВред рдкрд╛рд░рдВрдкрд░рд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕реА рдЪреАрдЬреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдмрд▓реНрдХрд┐, рд╣рдо рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рдкрд░рд┐рдгрд╛рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЕрдХреНрд╕рд░ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рдХреЗ рдХреБрдЫ рдЯреБрдХрдбрд╝реЗ рдпрд╛ рддреЛ рдХрднреА рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдпрд╛ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐
PricingCalculator
рд╡рд░реНрдЧ рдХреЗ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдореЗрд╢рд╛ рдХрд┐рд╕реА рдЙрддреНрдкрд╛рдж рдХреА рдХреАрдордд рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ 10,000 рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд░рд┐рдХреЙрд░реНрдб рд╣реИрдВ, рдФрд░ рдСрдирд▓рд╛рдЗрди рд╕реНрдЯреЛрд░ рдореЗрдВ рдЬрд╣рд╛рдВ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмрд╣реБрдд рд╕рд╛рд░реА рдмрд┐рдХреНрд░реА ... рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХреЛрдб рдХрд╡рд░реЗрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЖрд╡реЗрджрди рдЙрд╕ рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдЙрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рд╕реЗ рдЖрдк рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдХреЗрддрдХ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдг 80% рдХреЛрдб рдХреЛ рдХрд╡рд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЖрд╡реЗрджрди рдХреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднрд╛рдЧреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд░реАрдХреНрд╖рдг рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЯреВрд▓ рдХреЛ рдареАрдХ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдРрд╕реА рд░рд┐рдкреЛрд░реНрдЯ рдЖрдорддреМрд░ рдкрд░ рдмрд╣реБрдд рд╕реБрдВрджрд░ рд▓рдЧрддреА рд╣реИрдВ, рдФрд░ рдЙрдирдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг, рдЬрд┐рд╕рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ, рдЖрдкрдХреЛ рд╣рд░ рддрд░рд╣ рдХреЗ рдЖрд╢реНрдЪрд░реНрдп рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рд╕реЗ рд╡рд┐рдЪрд▓рди рдХреЗ рдкрд░рд┐рдгрд╛рдо
рдпрджрд┐ рдЖрдкрдХреЛ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдХреЛрдб рдХреЗ рдХреМрди рд╕реЗ рд╣рд┐рд╕реНрд╕реЗ рдЕрдкреНрд░рдпреБрдХреНрдд рд╣реИрдВ, рддреЛ рдЖрдк рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдХрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЧрд▓рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг
рдЕрдЧрд▓реА рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ рджреЗрдЦреЗрдВ рдФрд░ рд╕реЛрдЪреЗрдВ рдХрд┐ рдЗрд╕рдореЗрдВ рдХреНрдпрд╛ рдЕрд╕рд╛рдорд╛рдиреНрдп рд╣реИред
рдЕрд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдгрд╛рд▓реА рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрдиреЗ рд╡рд╛рд▓реА рд░рд┐рдкреЛрд░реНрдЯрд░рд┐рдкреЛрд░реНрдЯ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЙрдкрдпреЛрдЧ рдкрд░рд┐рджреГрд╢реНрдп рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдФрд░ рдЖрдкрдХреЛ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ рдЕрд╕рд╛рдорд╛рдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдЕрд░реНрдерд╛рддреН, рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЕрд╕рдлрд▓ рдкреНрд░рдпрд╛рд╕ рд╕рдлрд▓ рд▓реЛрдЧреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЖрдкрдХреА рдЖрдВрдЦ рдХреЛ рдкрдХрдбрд╝рддреЗ рд╣реИрдВред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдлреНрд░рдВрдЯрдПрдВрдб рдореЗрдВ рддреНрд░реБрдЯрд┐ рдереА, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рднрд╛рдЧ рдиреЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдПрдкреАрдЖрдИ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗред
тЦН21ред рдореНрдпреВрдЯреЗрд╢рди рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рддрд╛рд░реНрдХрд┐рдХ рдХреЛрдб рдХрд╡рд░реЗрдЬ рдХреЛ рдорд╛рдкреЗрдВ
рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ
рдкрд╛рд░рдВрдкрд░рд┐рдХ рдмреЗрдВрдЪрдорд╛рд░реНрдХрд┐рдВрдЧ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ 100% рдХрд╛ рдЖрдВрдХрдбрд╝рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рднреА рдХрд╛рд░реНрдп рдЧрд▓рдд рдорд╛рдиреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдВрдЧреЗред рдпрд╣ рдХреИрд╕реЗ рд╕рдордЭрд╛ рдЬрд╛рдП? рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХреЛрдб рдХрд╡рд░реЗрдЬ рдХрд╛ рд╕рдВрдХреЗрддрдХ рдХреЗрд╡рд▓ рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рддрд╣рдд рдХреЛрдб рдХреА рдХреМрди рд╕реА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХреБрдЫ рд╕рд╣реА рдорд╛рдпрдиреЗ рдореЗрдВ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╛рдиреА рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрдпрд╛рди рдХреНрдпрд╛ рдереЗ рдХреЛрдб рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рд╢реБрджреНрдзрддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛ред рдпрд╣ рдПрдХ рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рд╕реЗ рдорд┐рд▓рддрд╛-рдЬреБрд▓рддрд╛ рд╣реИ, рдЬреЛ рд╡рд┐рджреЗрд╢ рдореЗрдВ рд╡реНрдпрд╛рдкрд╛рд░ рдпрд╛рддреНрд░рд╛ рд╕реЗ рд▓реМрдЯ рд░рд╣рд╛ рд╣реИ, рдЕрдкрдиреЗ рдкрд╛рд╕рдкреЛрд░реНрдЯ рдореЗрдВ рдЯрд┐рдХрдЯ рджрд┐рдЦрд╛рддрд╛ рд╣реИред рд╕реНрдЯреИрдореНрдкреНрд╕ рд╕рд╛рдмрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╣ рдХрд╣реАрдВ рдЪрд▓рд╛ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рд╡реЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдХрд╣рддреЗ рдХрд┐ рдХреНрдпрд╛ рд╡рд╣ рдПрдХ рд╡реНрдпрд╛рдкрд╛рд░ рдпрд╛рддреНрд░рд╛ рдкрд░ рдЧрдпрд╛ рдерд╛ред
рдпрд╣рд╛рдВ, рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдкрд░реАрдХреНрд╖рдг рд╣рдорд╛рд░реА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЖ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд╣рдореЗрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рддрдирд╛ рдХреЛрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рди рдХреЗрд╡рд▓ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдгрд╛рд▓реА рджреНрд╡рд╛рд░рд╛ рджреМрд░рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореНрдпреВрдЯреЗрд╢рдирд▓ рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдЖрдк
рд╕реНрдЯреНрд░рд╛рдЗрдХрд░ рдЬреЗрдПрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рд╡реЗ рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реИрдВ рдЬрд┐рдирдХреЗ рджреНрд╡рд╛рд░рд╛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
- рд╡рд╣ рдЬрд╛рдирдмреВрдЭрдХрд░ рдХреЛрдб рдмрджрд▓рддрд╛ рд╣реИ, рдЙрд╕рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЛрдб
newOrder.price===0
newOrder.price!=0
рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред рдЗрди "рдЧрд▓рддрд┐рдпреЛрдВ" рдХреЛ рдореНрдпреВрдЯреЗрд╢рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред - рд╡рд╣ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддреА рд╣реИред рдпрджрд┐ рд╡реЗ рдкрд╛рд╕ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдХрд▓рддреЗ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдкрд░реАрдХреНрд╖рдг рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рдЙрдирдХреЗ рдХрд╛рд░реНрдп рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ "рдореНрдпреВрдЯреЗрдВрдЯ", рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, "рдЬреАрд╡рд┐рдд"ред рдпрджрд┐ рдкрд░реАрдХреНрд╖рдг рдХреЛрдб рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВ, рддреЛ рд╕рдм рдХреБрдЫ рдХреНрд░рдо рдореЗрдВ рд╣реИ - "рдореНрдпреВрдЯреЗрдВрдЯ" "рдорд░"ред
рдпрджрд┐ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╕рднреА "рдореНрдпреВрдЯреЗрдВрдЯ" "рдорд╛рд░реЗ рдЧрдП" рдереЗ (рдпрд╛, рдХрдо рд╕реЗ рдХрдо, рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЬреАрд╡рд┐рдд рдирд╣реАрдВ рдереЗ), рдЗрд╕рд╕реЗ рдХреЛрдб рдХреА рдЙрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддрд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рдВрдкрд░рд┐рдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХрд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдорд┐рд▓рддрд╛ рд╣реИред рдЙрд╕реА рд╕рдордп, рдкрд╛рд░рдВрдкрд░рд┐рдХ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдореНрдпреВрдЯреЗрд╢рдирд▓ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдФрд░ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдордп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рд╕реЗ рд╡рд┐рдЪрд▓рди рдХреЗ рдкрд░рд┐рдгрд╛рдо
рдпрджрд┐ рдкрд░реАрдХреНрд╖рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХреЛрдб рдХрд╡рд░реЗрдЬ рдХрд╛ рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╕рдВрдХреЗрддрдХ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рдХрд╛ 85% рдкрд░реАрдХреНрд╖рдг рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдЗрд╕ рдХреЛрдб рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВред
рдЧрд▓рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг
рдпрд╣рд╛рдВ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХреЛрдб рдХреЗ 100% рдХрд╡рд░реЗрдЬ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХреЛрдб рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
function addNewOrder(newOrder) { logger.log(`Adding new order ${newOrder}`); DB.save(newOrder); Mailer.sendMail(newOrder.assignee, `A new order was places ${newOrder}`); return {approved: true}; } it("Test addNewOrder, don't use such test names", () => { addNewOrder({asignee: "John@mailer.com",price: 120}); });
рд╕рд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрдг
рдпрд╣рд╛рдБ рд╕реНрдЯреНрд░рд╛рдЗрдХрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдкрд░реАрдХреНрд╖рдг рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╕реНрддреБрдд рдХреА рдЧрдИ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рддрдирд╛ рдХреЛрдб рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдпрд╣ "рдЬреАрд╡рд┐рдд" "рдореНрдпреВрдЯреЗрдВрдЯ" рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рд╕рдВрдХреЗрдд рдорд┐рд▓рддрд╛ рд╣реИ)ред
рд╕реНрдЯреНрд░рд╛рдЗрдХрд░ рд░рд┐рдкреЛрд░реНрдЯрдЗрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХреЛрдб рдХрд╡рд░реЗрдЬ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдХреЗрддрдХреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рдХреЗ рд╕рд╛рде рдпрд╣ рдХрд╣рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдЕрдкреЗрдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
- рдПрдХ рдореНрдпреВрдЯреЗрд╢рди рдХреЛрдб рд╣реИ рдЬрд┐рд╕реЗ рд╕реНрдЯреНрд░реАрдХрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рджреНрд╡рд╛рд░рд╛ рдЬрд╛рдирдмреВрдЭрдХрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдХреА рдкреНрд░рднрд╛рд╡рд╢реАрд▓рддрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
- "рдорд╛рд░реЗ рдЧрдП" "рдореНрдпреВрдЯреЗрдВрдЯ" (рдорд╛рд░реЗ рдЧрдП) рдХреА рд╕рдВрдЦреНрдпрд╛ рдЬрд╛рдирдмреВрдЭрдХрд░ рдмрдирд╛рдП рдЧрдП рдХреЛрдб рджреЛрд╖реЛрдВ ("рдореНрдпреВрдЯреЗрдВрдЯ") рдХреА рд╕рдВрдЦреНрдпрд╛ рджрд░реНрд╢рд╛рддреА рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рдкрд╣рдЪрд╛рдирд╛ рдЧрдпрд╛ рдерд╛ред
- "рдЬреАрд╡рд┐рдд" "рдореНрдпреВрдЯреЗрдВрдЯ" (рдЬреАрд╡рд┐рдд) рдХреА рд╕рдВрдЦреНрдпрд╛ рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ рдХрд┐ рдХрд┐рддрдиреЗ рдХреЛрдб рджреЛрд╖ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдорд┐рд▓реЗ рд╣реИрдВред
рдЦрдВрдб 4. рдирд┐рд░рдВрддрд░ рдПрдХреАрдХрд░рдг, рдЕрдиреНрдп рдХреЛрдб рдЧреБрдгрд╡рддреНрддрд╛ рд╕рдВрдХреЗрддрдХ
тЦН 22ред рд▓рд┐рдВрдЯрд░ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдПрдВ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░реЗрдВ рдЬрдм рдпрд╣ рдЙрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рдЬреЛ рд╡реЗ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддреЗ рд╣реИрдВ
рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ
рдЖрдЬ, рд▓рд┐рдВрдЯрд░ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рд╣реИрдВ рдЬреЛ рдЧрдВрднреАрд░ рдХреЛрдб рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдХреБрдЫ рдмреБрдирд┐рдпрд╛рджреА рд▓рд╛рдЗрдирд┐рдВрдЧ рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛ (рдЬреИрд╕реЗ рдХрд┐
рдПрд╕реНрд▓рд┐рдВрдЯ-рдкреНрд▓рдЧрдЗрди-рдорд╛рдирдХ рдФрд░
рдПрд╕реНрд▓рд┐рдВрдЯ-рдХреЙрдиреНрдлрд┐рдЧ-рдПрдпрд░рдмреАрдПрдирдмреА рдкреНрд▓рдЧрдЗрдиреНрд╕ рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд), рд╡рд┐рд╢реЗрд╖ рдирд┐рдпрдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпреЗ рдЯреЗрд╕реНрдЯ рдХреЛрдб рдХреА рд╢реБрджреНрдзрддрд╛ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
eslint-plugin-chai-рдЙрдореНрдореАрдж рдкреНрд▓рдЧрдЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рдирд┐рдпрдо рд╣реИрдВ, рдпреЗ
eslint-plugin-рд╡рд╛рджрд╛ рдкреНрд▓рдЧрдЗрди рд╕реЗ рдирд┐рдпрдо рд╣реИрдВ рдЬреЛ рд╡рд╛рджреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдпреЗ
eslint-plugin-security рд╕реЗ рдирд┐рдпрдо рд╣реИрдВ рдЬреЛ рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ рдЗрд╕рдореЗрдВ рдЦрддрд░рдирд╛рдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдпрд╣рд╛рдВ рдЖрдк
рдПрд╕реНрд▓рд┐рдВрдЯ-рдкреНрд▓рдЧрдЗрди-рдпреВ-рдиреЙрдЯ-рдиреАрдб-рд▓реЙрдЬ-рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдкреНрд▓рдЧ-рдЗрди рдХрд╛ рднреА рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЛ рдмрд╛рд╣рд░реА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕реЗ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЛрдб рдореЗрдВ рдЦреЛрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╢реБрджреНрдз рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрдирд╛рд▓реЙрдЧ рд╣реЛрддреЗ рд╣реИрдВред
рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рд╕реЗ рд╡рд┐рдЪрд▓рди рдХреЗ рдкрд░рд┐рдгрд╛рдо
рдПрдХ рдмрд░рд╕рд╛рдд рдХрд╛ рджрд┐рди рдЖ рдЧрдпрд╛ рд╣реИ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рд▓рдЧрд╛рддрд╛рд░ рд╡рд┐рдлрд▓рддрд╛рдПрдВ рджреЗрддреА рд╣реИ, рдФрд░ рд▓реЙрдЧ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдвреЗрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИред рдХреНрдпрд╛ рд╣реБрдЖ? рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ рдХреЛрдб рдХреНрдпрд╛ рдлреЗрдВрдХрддрд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдХреА рд╡рд╕реНрддреБ рдирд╣реАрдВ рд╣реИред рдирддреАрдЬрддрди, рд╕реНрдЯреИрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд▓реЙрдЧ рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓рддреА рд╣реИред рддрдереНрдп рдХреА рдмрд╛рдд рдХреЗ рд░реВрдк рдореЗрдВ, рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдпрд╛ рддреЛ рджреАрд╡рд╛рд░ рдХреЗ рдЦрд┐рд▓рд╛рдл рдорд╛рд░ рд╕рдХрддрд╛ рд╣реИ рдпрд╛, рдмрд╣реБрдд рдмреЗрд╣рддрд░, рд▓рд┐рдВрдЯрд░ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ 5 рдорд┐рдирдЯ рдЦрд░реНрдЪ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдЧрд╛ рдФрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╕рдорд╛рди рдкрд░реЗрд╢рд╛рдирд┐рдпреЛрдВ рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдмреАрдорд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдЧрд▓рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг
рдпрд╣рд╛рдБ рд╡рд╣ рдХреЛрдб рд╣реИ, рдЬреЛ рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╡рд╕реНрддреБ рдХреЛ рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ рдлреЗрдВрдХ рджреЗрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдпрд╣рд╛рдБ рдЖрдкрдХреЛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА
Error
ред рдЕрдиреНрдпрдерд╛, рд╕реНрдЯреИрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЗрдЯрд╛ рд▓реЙрдЧ рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛ред ESLint рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдХреЗ рдЙрддреНрдкрд╛рджрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддрд╛ рд╣реИред
ESLint рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдПрдХ рдмрдЧ рдвреВрдВрдврдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИтЦН23ред рд╕реНрдерд╛рдиреАрдп рдирд┐рд░рдВрддрд░ рдПрдХреАрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд╕рд╛рде рддреЗрдЬрд╝ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛
рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ
рдирд┐рд░рдВрддрд░ рдПрдХреАрдХрд░рдг рдХреА рдПрдХ рдХреЗрдВрджреНрд░реАрдХреГрдд рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдЬреЛ рдХреЛрдб рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реИ, рд▓рд┐рдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ? рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЙрдиреНрд╣реЗрдВ рддреБрд░рдВрдд рдЕрдкрдиреЗ рдХреЛрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рдЬреЛ
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЧрддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рдордп рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реИ? рдПрдХ рдкреНрд░рднрд╛рд╡реА рд╡рд┐рдХрд╛рд╕ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХрдИ рдЪрдХреНрд░реАрдп рд░реВрдк рд╕реЗ рджреЛрд╣рд░рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдСрдкрд░реЗрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдХреЛрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рдбреЗрд╡рд▓рдкрд░ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд╛рд▓реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╕рдм рдХреБрдЫ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрд┐рддрдиреА рддреЗрдЬреА рд╕реЗ рдлреАрдбрдмреИрдХ рд▓реВрдк рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЙрддрдиреА рд╣реА рддреЗрдЬреА рд╕реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдХреЛрдб рдкрд░реАрдХреНрд╖рдг рдкрд░ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИ, рдЗрд╕ рдХреЛрдб рдХреЗ рд╕реБрдзрд╛рд░ рдХреЗ рдЕрдзрд┐рдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рд╡реЗ рдкреНрд░рджрд░реНрд╢рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдкрд░реАрдХреНрд╖рдг рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рддреЛ рдЗрд╕рд╕реЗ рдЦрд░рд╛рдм рдЧреБрдгрд╡рддреНрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдХреЛрдИ рдХрд┐рд╕реА рдореЙрдбреНрдпреВрд▓ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛, рддреЛ рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬрд╝ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рдлрд┐рд░ рдореЙрдбреНрдпреВрд▓ рдкрд░ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХреА, рдЬреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕реБрдзрд╛рд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдорд╛рдорд▓реЛрдВ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдбреЗрд╡рд▓рдкрд░ рд╕рдорд╕реНрдпрд╛ рдореЙрдбреНрдпреВрд▓ рдкрд░ рдкрд░реНрдпрд╛рдкреНрдд рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗрдЧрд╛ред
рдХреБрдЫ CI рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рддрд╛ (
рдорд╛рди рд▓реЗрдВ рдХрд┐ рдпрд╣
CircleCI рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ) рдЖрдкрдХреЛ рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ CI рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЪрд▓рд╛рдиреЗ рджреЗрддрд╛ рд╣реИред рдХреБрдЫ рднреБрдЧрддрд╛рди рдХрд┐рдП рдЧрдП рдЙрдкрдХрд░рдг, рдЬреИрд╕реЗ
Wallaby.js (рд▓реЗрдЦрдХ рдиреЗ рдиреЛрдЯ рдХрд┐рдпрд╛ рдХрд┐ рд╡рд╣ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдЬреБрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИ), рдЬрд▓реНрджреА рд╕реЗ рдХреЛрдб рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдореВрд▓реНрдп рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдбреЗрд╡рд▓рдкрд░
package.json
рдореЗрдВ рдЙрдЪрд┐рдд npm рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИред Json, рдЬреЛ рдХреЛрдб рдЧреБрдгрд╡рддреНрддрд╛ рдЬрд╛рдВрдЪ (рдкрд░реАрдХреНрд╖рдг, рдПрдХ рд▓рд╛рдЗрдирд░ рдХреЗ рд╕рд╛рде рд╡рд┐рд╢реНрд▓реЗрд╖рдг, рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░рддрд╛ рд╣реИ) рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЪреЗрдХ рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП
рд╕рдорд╡рд░реНрддреА рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЕрдм, рдХреЛрдб рдХреА рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛, рдЬреИрд╕реЗ
npm run quality
, рдФрд░ рддреБрд░рдВрдд рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдХреЛрдб рдкрд░реАрдХреНрд╖рдгреЛрдВ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ, рддреЛ рдЖрдк рдЧрд┐рдЯ рд╣реБрдХ (рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рд╣рд╕реНрдХреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреА рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рджреНрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рд╕реЗ рд╡рд┐рдЪрд▓рди рдХреЗ рдкрд░рд┐рдгрд╛рдо
рдпрджрд┐ рдХреЛрдИ рдбреЗрд╡рд▓рдкрд░ рдЗрд╕ рдХреЛрдб рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рдПрдХ рджрд┐рди рдмрд╛рдж рдХреЛрдб рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдкрд░ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рддрд░рд╣ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдФрдкрдЪрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреА рддрд░рд╣ рдХреБрдЫ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ, рдФрд░ рдХреЛрдб рдкрд░реАрдХреНрд╖рдг рдХрд╛рдо рд╕реЗ рдЕрд▓рдЧ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рди рдХрд┐ рдЗрд╕рдХрд╛ рдкреНрд░рд╛рдХреГрддрд┐рдХ рд╣рд┐рд╕реНрд╕рд╛ рдмрди рдЬрд╛рдПрдЧрд╛ред
рд╕рд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрдг
рдпрд╣рд╛рдВ рдПрдХ рдПрдирдкреАрдПрдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬреЛ рдХреЛрдб рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреА рд╣реИред рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рд╕рдорд╛рдирд╛рдВрддрд░ рд╣реИред рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдирдпрд╛ рдХреЛрдб рднреЗрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдбреЗрд╡рд▓рдкрд░ рдЗрд╕реЗ рдЕрдкрдиреА рдкрд╣рд▓ рдкрд░ рд▓реЙрдиреНрдЪ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
"scripts": { "inspect:sanity-testing": "mocha **/**--test.js --grep \"sanity\"", "inspect:lint": "eslint .", "inspect:vulnerabilities": "npm audit", "inspect:license": "license-checker --failOn GPLv2", "inspect:complexity": "plato .", "inspect:all": "concurrently -c \"bgBlue.bold,bgMagenta.bold,yellow\" \"npm:inspect:quick-testing\" \"npm:inspect:lint\" \"npm:inspect:vulnerabilities\" \"npm:inspect:license\"" }, "husky": { "hooks": { "precommit": "npm run inspect:all", "prepush": "npm run inspect:all" } }
тЦН24ред рдпрдерд╛рд░реНрдерд╡рд╛рджреА рдЙрддреНрдкрд╛рджрди рдкрд░реНрдпрд╛рд╡рд░рдг рджрд░реНрдкрдг рдкрд░ рдПрдВрдб-рдЯреВ-рдПрдВрдб рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ
рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ
рд╡рд┐рд╢рд╛рд▓ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдореЗрдВ, рдЕрднреА рднреА рдРрд╕реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдо рд╕рд╣рдорддрд┐ рд╣реИ рдЬреЛ рд╕реНрдерд╛рдиреАрдп рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдРрд╕реЗ рдЙрдкрдХрд░рдг рдЕрдХреНрд╕рд░ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг
рдорд┐рдирд┐рдХреНрдпреВрдм рдпрд╛
рдорд╛рдЗрдХреНрд░реЛрдХреЗ 8 рдЬреИрд╕реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ "рдХрдо рд╕реЗ рдХрдо" рдХреБрдмреЗрд░рдиреЗрдЯ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд╕рдорд╛рди рд╣рд▓реНрдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдПрдХ рдЕрдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рджреВрд░-рджрд░рд╛рдЬ рдХреЗ "рд╡рд╛рд╕реНрддрд╡рд┐рдХ" рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рд╣реИред рдХреБрдЫ CI рдкреНрд░рджрд╛рддрд╛ (рдЬреИрд╕реЗ
рдХреЛрдбрдлреНрд░реЗрд╢ )
рдЕрдВрддрд░реНрдирд┐рд░реНрдорд┐рдд рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╕рдордп CI рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдХрд╛рдо рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИред рдЕрдиреНрдп рдЖрдкрдХреЛ рджреВрд░рд╕реНрде рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред
рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рд╕реЗ рд╡рд┐рдЪрд▓рди рдХреЗ рдкрд░рд┐рдгрд╛рдо
рдЙрддреНрдкрд╛рджрди рдФрд░ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рддрдХрдиреАрдХреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рджреЛ рд╡рд┐рдХрд╛рд╕ рдореЙрдбрд▓ рдХреЗ рд╕рдорд░реНрдерди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдФрд░ рдбреЗрдУрдкреНрд╕ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХреА рдЯреАрдореЛрдВ рдХреЗ рдЕрд▓рдЧрд╛рд╡ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред
рд╕рд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрдг
рдпрд╣рд╛рдБ рдПрдХ CI рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдЬреЛ, рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, рдордХреНрдЦреА рдкрд░ рдПрдХ рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рддрд╛ рд╣реИ (рдпрд╣
рдпрд╣рд╛рдВ рд╕реЗ рд▓рд┐рдпрд╛
рдЧрдпрд╛ рд╣реИ )ред
deploy: stage: deploy image: registry.gitlab.com/gitlab-examples/kubernetes-deploy script: - ./configureCluster.sh $KUBE_CA_PEM_FILE $KUBE_URL $KUBE_TOKEN - kubectl create ns $NAMESPACE - kubectl create secret -n $NAMESPACE docker-registry gitlab-registry --docker-server="$CI_REGISTRY" --docker-username="$CI_REGISTRY_USER" --docker-password="$CI_REGISTRY_PASSWORD" --docker-email="$GITLAB_USER_EMAIL" - mkdir .generated - echo "$CI_BUILD_REF_NAME-$CI_BUILD_REF" - sed -e "s/TAG/$CI_BUILD_REF_NAME-$CI_BUILD_REF/g" templates/deals.yaml | tee ".generated/deals.yaml" - kubectl apply --namespace $NAMESPACE -f .generated/deals.yaml - kubectl apply --namespace $NAMESPACE -f templates/my-sock-shop.yaml environment: name: test-for-ci
тЦН25ред рдкрд░реАрдХреНрд╖рдг рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдареЛрд░
рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ
рдпрджрд┐ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдгрд╛рд▓реА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реИ, рддреЛ рдпрд╣ рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 24 рдШрдВрдЯреЗ рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдЖрдкрдХрд╛ рд╡рдлрд╛рджрд╛рд░ рджреЛрд╕реНрдд рдмрди рдЬрд╛рдПрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд░реАрдХреНрд╖рдг рдмрд╣реБрдд рдЬрд▓реНрджреА рдХрд┐рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдПред рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рдореЛрдб 500 рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдЧрд╣рдирддрд╛ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рдФрд░ рдРрд╕реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЕрдХреНрд╕рд░ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдзреБрдирд┐рдХ рдЙрдкрдХрд░рдг (
рдЬреЗрд╕реНрдЯ ,
рдПрд╡реАрдП ,
рдореЛрдЪрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ
рд╡рд┐рд╕реНрддрд╛рд░ ) рдФрд░ рд╕реАрдЖрдИ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдкрд░реАрдХреНрд╖рдг рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЧрддрд┐ рдореЗрдВ рдХрд╛рдлреА рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреБрдЫ CI рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рднреА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рдмреАрдЪ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЬреЛ рдлреАрдбрдмреИрдХ рд▓реВрдк рдХреЛ рдФрд░ рдмреЗрд╣рддрд░ рдмрдирд╛рддрд╛ рд╣реИред рдкрд░реАрдХреНрд╖рдг, рд╕реНрдерд╛рдиреАрдп рдпрд╛ рджреВрд░рд╕реНрде рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдПрдХ рджреВрд╕рд░реЗ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдкрд░реАрдХреНрд╖рдг рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рд╕реЗ рд╡рд┐рдЪрд▓рди рдХреЗ рдкрд░рд┐рдгрд╛рдо
рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдХреЛрдб рднреЗрдЬрдиреЗ рдХреЗ рдПрдХ рдШрдВрдЯреЗ рдмрд╛рдж рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╢рд╛рдирджрд╛рд░ рддрд░реАрдХрд╛ рд╣реИред
рд╕рд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрдг
рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж,
рдореЛрдЪрд╛-рд╕рдорд╛рдирд╛рдВрддрд░-рдкрд░реАрдХреНрд╖рдг рдкреБрд╕реНрддрдХрд╛рд▓рдп рдФрд░
рдЬреЗрд╕реНрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рдЖрд╕рд╛рдиреА рд╕реЗ рдореЛрдЪрд╛ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ (
рдпрд╣ рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рд╕реНрд░реЛрдд рд╣реИ)ред
рдкрд░реАрдХреНрд╖рдг рдкреНрд░рджрд░реНрд╢рди рдкрд░реАрдХреНрд╖рдг рдЙрдкрдХрд░рдгтЦН26ред рд▓рд╛рдЗрд╕реЗрдВрд╕ рд╕рддреНрдпрд╛рдкрди рдФрд░ рд╕рд╛рд╣рд┐рддреНрдпрд┐рдХ рдЪреЛрд░реА рдХреЛрдб рд╕рддреНрдпрд╛рдкрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдХрд╛рдиреВрдиреА рдореБрджреНрджреЛрдВ рд╕реЗ рдмрдЪрд╛рдПрдВ
рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ
рд╢рд╛рдпрдж рдЕрдм рдЖрдк рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрд╛рдиреВрди рдФрд░ рд╕рд╛рд╣рд┐рддреНрдпрд┐рдХ рдЪреЛрд░реА рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдЪрд┐рдВрддрд┐рдд рдирд╣реАрдВ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдЬрд╛рдВрдЪ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХреА рдЧрдИ? рдРрд╕реЗ рдирд┐рд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЙрдкрдХрд░рдг рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпреЗ
рд▓рд╛рдЗрд╕реЗрдВрд╕-рдЪреЗрдХрд░ рдФрд░
рд╕рд╛рд╣рд┐рддреНрдпрд┐рдХ рдЪреЛрд░реА-рдЪреЗрдХрд░ рд╣реИрдВ (рдпрд╣ рдПрдХ рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рдкреИрдХреЗрдЬ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдореБрдлреНрдд рдЙрдкрдпреЛрдЧ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ)ред рдЗрд╕ рддрд░рд╣ рдХреЗ рдЪреЗрдХ рдХреЛ рд╕реАрдЖрдИ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдирд╛ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реАрдорд┐рдд рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП, рдпрд╛ рд╕реНрдЯреИрдХрдСрд╡рд░рдлреНрд▓реЛ рд╕реЗ рдХреЙрдкреА рдХрд┐рдП рдЧрдП рдХреЛрдб рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдФрд░ рд╢рд╛рдпрдж рдХрд┐рд╕реА рдФрд░ рдХреЗ рдХреЙрдкреАрд░рд╛рдЗрдЯ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрдиред
рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рд╕реЗ рд╡рд┐рдЪрд▓рди рдХреЗ рдкрд░рд┐рдгрд╛рдо
рдбреЗрд╡рд▓рдкрд░, рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ, рдПрдХ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рд╕рд╛рде рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЙрд╕рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ, рдпрд╛ рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рдХреЛрдб рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдХрд╛рдиреВрдиреА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред
рд╕рд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрдг
рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рдпрд╛ CI рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд▓рд╛рдЗрд╕реЗрдВрд╕-рдЪреЗрдХрд░ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
npm install -g license-checker
рд╣рдо рдЗрд╕рдХреЗ рд╕рд╛рде рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдпрджрд┐ рд╡рд╣ рдХреБрдЫ рдРрд╕рд╛ рдкрд╛рддрд╛ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рд╕реВрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЪреЗрдХ рдХреЛ рдЕрд╕рдлрд▓ рдорд╛рди рд▓реЗрдВрдЧреЗред рд╕реАрдЖрдИ рдкреНрд░рдгрд╛рд▓реА, рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдкрд░ рдХрд┐ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╕рдордп рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЛ рд░реЛрдХ рджреЗрдЧрд╛ред
license-checker --summary --failOn BSD
рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреА рдЬрд╛рдБрдЪтЦН27ред рдХрдордЬреЛрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд▓рдЧрд╛рддрд╛рд░ рдЬрд╛рдВрдЪ рдХрд░реЗрдВ
рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ
рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрддреНрдпрдзрд┐рдХ рд╕рдореНрдорд╛рдирд┐рдд рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдкреИрдХреЗрдЬ, рдЬреИрд╕реЗ рдПрдХреНрд╕рдкреНрд░реЗрд╕, рдореЗрдВ рдХрдордЬреЛрд░рд┐рдпрд╛рдВ рд╣реИрдВред рдРрд╕реА рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рд╡рд┐рд╢реЗрд╖ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдЬреИрд╕реЗ
npm рд╕рдВрдХреБрд▓ рдХреЗ рдСрдбрд┐рдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдЙрдкрдХрд░рдг рдпрд╛ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ
snyk рдкреНрд░реЛрдЬреЗрдХреНрдЯ, рдЬрд┐рд╕рдХрд╛ рдПрдХ рдирд┐: рд╢реБрд▓реНрдХ рд╕рдВрд╕реНрдХрд░рдг рд╣реИред рдЗрди рдЬрд╛рдБрдЪреЛрдВ рдХреЛ, рджреВрд╕рд░реЛрдВ рдХреЗ рд╕рд╛рде, CI рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рд╕реЗ рд╡рд┐рдЪрд▓рди рдХреЗ рдкрд░рд┐рдгрд╛рдо
рд╡рд┐рд╢реЗрд╖ рд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЙрд╕рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдХрдордЬреЛрд░рд┐рдпреЛрдВ рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдРрд╕реА рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рдЧрд╛рддрд╛рд░ рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреА рд╣реЛрдЧреАред рдпрд╣ рдмрд╣реБрдд рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓рд╛ рдХрд╛рд░реНрдп рд╣реИред
рд╕рд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрдг
рдПрдирдкреАрдПрдо рдСрдбрд┐рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рддреНрдпрд╛рдкрди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рд╣реИрдВред
рднреЗрджреНрдпрддрд╛ рдЬрд╛рдБрдЪ рдкреИрдХреЗрдЬ рд░рд┐рдкреЛрд░реНрдЯтЦН28ред рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдирд┐рд░реНрднрд░рддрд╛ рдЕрджреНрдпрддрди
рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ
рдЕрдЪреНрдЫреЗ рдЗрд░рд╛рджреЛрдВ рдХреЗ рд╕рд╛рде рдирд░рдХ рдХреА рд░рд╛рд╣ рдкреНрд░рд╢рд╕реНрдд рд╣реЛрддреА рд╣реИред рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ
package-lock.json
рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдкреИрдХреЗрдЬ рдЕрдкрдбреЗрдЯ рдХреЛ рдмреНрд▓реЙрдХ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рднреА рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ
npm install
рдФрд░
npm update
рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╕реНрд╡рд╕реНрде рд░рд╛рдЬреНрдп рдореЗрдВ рд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдпрд╛ рддреЛ, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ, рдкреБрд░рд╛рдиреЗ рдкреИрдХреЗрдЬ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП, рдпрд╛ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдХреЛрдб рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╡рд┐рдХрд╛рд╕ рджрд▓, рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рдЙрдкрдпреБрдХреНрдд рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдореИрдиреНрдпреБрдЕрд▓ рдЕрджреНрдпрддрди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╛
ncu рдЬреИрд╕реА рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдкрд░, рдЬреЛ, рдлрд┐рд░ рд╕реЗ, рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╣реИ, рдЬреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрдХреБрд▓ рдХреЗ рд╕рдмрд╕реЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреА рд╣реИред рдпрд╣ рдПрдХрдорд╛рддреНрд░ рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреИрдХреЗрдЬ рдЕрдкрдбреЗрдЯ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ, рдХреБрдЫ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИрдВред рдкрд╣рд▓рд╛
рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рдПрдирдЖрдИрдПрдо- рдЖрдЙрдЯрдбреЗрдЯреЗрдб рдпрд╛
рдПрдирдкреАрдПрдо-рдЪреЗрдХ-рдЕрдкрдбреЗрдЯ (рдПрдирд╕реАрдпреВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреБрдЫ рдкрд╛рдЗрдкреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ред рдпрд╣ рдЕрдкреНрд░рдЪрд▓рд┐рдд рдкреИрдХреЗрдЬреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ рдЬреЛ рдХреЛрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВред рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдирд┐рд░реНрднрд░рддрд╛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ, рд╣рдо рдЕрджреНрдпрддрди рдиреАрддрд┐ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдПрдХ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рд╕рд╡рд╛рд▓ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрджрд┐ рдкреНрд░рддреНрдпреЗрдХ рдирдП рдкреИрдЪ рдХреЗ рд╕рд╛рде рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЕрдкрдбреЗрдЯ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рддрдирд╛рд╡ рдбрд╛рд▓ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдкреИрдХреЗрдЬ рдХреЗ рдЕрдЧрд▓реЗ рдкреНрд░рдореБрдЦ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЕрд╕реНрдерд┐рд░ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рд░рд┐рд▓реАрдЬ рдХреЗ рдмрд╛рдж рдкрд╣рд▓реЗ рдХрдИ рджрд┐рдиреЛрдВ рдореЗрдВ рдХрдИ рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рдХрдордЬреЛрд░рд┐рдпрд╛рдВ рдкрд╛рдИ рдЬрд╛рддреА рд╣реИрдВ, рдПрд╕реНрд▓реЗрдВрдЯ-рд╕реНрдХреЛрдк рд╡рд╛рд▓реА рдШрдЯрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдкрдврд╝реЗрдВ )ред ┬л ┬╗, , . , 1.3.1, 1.3.2, 1.3.8.
, , , .
ncu , , , .
ncuтЦН29. , Node.js
, Node.js-, , Node.js .
- . тАФ , , , Jenkins .
- , Docker.
- . , , . (, ), , , , .
- , , , . тАФ , , , .
- , . , feature, тАФ master, , ( ).
- . , .
- .
- (, Docker) .
- , , , . ,
node_modules
.
, , .
тЦН30.
, . , , , Node.js , . CI-, , ┬л ┬╗. , , , . , , mySQL, тАФ Postgres. , Node.js, тАФ 8, 9 10. , . CI-.
, , , . , , .
CI- Travis Node.js.
language: node_js node_js: - "7" - "6" - "5" - "4" install: - npm install script: - npm run test
рдкрд░рд┐рдгрд╛рдо
, , . , , .
рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! ?
