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

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

рджрд░рдЕрд╕рд▓, рдПрдХ рддрд░рд╣ рд╕реЗ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп, рд▓рдЧрднрдЧ рд╕рднреА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдПрдХ рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ:
- рд▓рдЧрднрдЧ рд╕рднреА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрдВрдЬреАрдХрд░рдг рдФрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕реЗ рдЬреБрдбрд╝реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реЛрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ;
- рд▓рдЧрднрдЧ рд╕рднреА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╣реЛрддреЗ рд╣реИрдВ: рдПрдХ рдореЙрдбрд▓ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реВрдЪреА рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рджреГрд╢реНрдп рд╣реИ, рдПрдХ рдПрдХрд▓, рд╡реНрдпрдХреНрддрд┐рдЧрдд, рдореЙрдбрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╡рд┐рд╕реНрддреГрдд рд░рд┐рдХреЙрд░реНрдб рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рджреГрд╢реНрдп рд╣реИ;
- рд▓рдЧрднрдЧ рд╕рднреА рдореЙрдбрд▓реЛрдВ рдореЗрдВ рдЯрд╛рдЗрдк рдореЗрдВ рд╕рдорд╛рди рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ: рд╕реНрдЯреНрд░рд┐рдВрдЧ рдбреЗрдЯрд╛, рд╕рдВрдЦреНрдпрд╛рдПрдВ, рдЖрджрд┐, рдФрд░ рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ, рдЖрдкрдХреЛ рдмреИрдХ-рдПрдВрдб рдФрд░ рдлреНрд░рдВрдЯ-рдПрдВрдб рджреЛрдиреЛрдВ рдкрд░ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдФрд░ рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рдЕрдХреНрд╕рд░ рдХрд╕реНрдЯрдо рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреА рд╣реИ, рд╣рдордиреЗ рд╕реЛрдЪрд╛: рд╣рдореЗрдВ рд╣рд░ рдмрд╛рд░ рдкрд╣рд┐рдпрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдордЬрдмреВрдд рдХрд░рдиреЗ рдФрд░ рдЦрд░реЛрдВрдЪ рд╕реЗ рд╣рд░ рдмрд╛рд░ рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ, рдЕрдЧрд░ рд╣рдо рдПрдХ рдмрд╛рд░ рдПрдХ рдлреНрд░реЗрдорд╡рд░реНрдХ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕рднреА рдХреЗ рд▓рд┐рдП рдмреБрдирд┐рдпрд╛рджреА, рдХрдИ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдЕрдиреБрдкреНрд░рдпреЛрдЧ, рдЪреАрдЬреЗрдВ, рдФрд░ рдлрд┐рд░, рдПрдХ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг, рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рддреИрдпрд╛рд░ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдШреЛрд╖рд┐рдд рд░реВрдк рд╕реЗ рдмрджрд▓ рджреЗрдВред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдХ рд▓рдВрдмреА рдЪрд░реНрдЪрд╛ рдХреЗ рджреМрд░рд╛рди, рд╣рдореЗрдВ VSTUtils рдмрдирд╛рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдЖрдпрд╛ - рдЬреЛ рдХрд┐ рдПрдХ рдврд╛рдВрдЪрд╛ рд╣реЛрдЧрд╛:
- рдЗрд╕рдореЗрдВ рдореВрд▓ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдереА, рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рдорд╛рди;
- рдПрдкреАрдЖрдИ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдлреНрд▓рд╛рдИ-рдПрдВрдб рдкрд░ рдлреНрд░рдВрдЯ-рдПрдВрдб рдЬреЗрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред
рджреЛрд╕реНрддреЛрдВ рдмреИрдХ-рдПрдВрдб рдФрд░ рдлреНрд░рдВрдЯ-рдПрдВрдб рдХреИрд╕реЗ рдмрдирд╛рдПрдВ?
рдЦреИрд░, рд╣рдореЗрдВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд╣рдордиреЗ рд╕реЛрдЪрд╛ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рдмреИрдХ-рдПрдВрдб, рдХреБрдЫ рдлреНрд░рдВрдЯ-рдПрдВрдб рднреА рдереЗ, рд▓реЗрдХрд┐рди рди рддреЛ рд╕рд░реНрд╡рд░ рдФрд░ рди рд╣реА рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдкрд╛рд╕ рдПрдХ рдЙрдкрдХрд░рдг рдерд╛ рдЬреЛ рдПрдкреАрдЖрдИ рдХреА рд╕рдВрд░рдЪрдирд╛ рдкрд░ рдбреЗрдЯрд╛ рдХреЛ рд░рд┐рдкреЛрд░реНрдЯ рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рдерд╛ред
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреА рддрд▓рд╛рд╢ рдореЗрдВ, рд╣рдорд╛рд░реА рдирдЬрд╝рд░
OpenAPI рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдкрд░
рдкрдбрд╝реА , рдЬреЛ рдХрд┐ рдореЙрдбрд▓ рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдзреЛрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдПрдХ рд╡рд┐рд╢рд╛рд▓ JSON рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИред
рдФрд░ рд╣рдордиреЗ рд╕реЛрдЪрд╛ рдХрд┐, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЖрд░рдВрднреАрдХреГрдд рдХрд░рддреЗ рд╕рдордп, рдлреНрд░рдВрдЯ-рдПрдВрдб рдЗрд╕ JSON рдХреЛ рдПрдкреАрдЖрдИ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╕рдм рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд╕рд╛рдордиреЗ рд╡рд╛рд▓реЗ рдХреЛ рд╕рд┐рдЦрд╛рдирд╛ рд╣реА рд╢реЗрд╖ рд░рд╣ рдЧрдпрд╛ рд╣реИред
рдФрд░ рдХреБрдЫ рд╕рдордп рдмрд╛рдж рд╣рдордиреЗ рдЙрд╕реЗ рдкрдврд╝рд╛рдпрд╛ред
рд╕рдВрд╕реНрдХрд░рдг 1.0 - рдЗрд╕рд╕реЗ рдХреНрдпрд╛ рд╣реБрдЖ
рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ VSTUtils рдврд╛рдВрдЪреЗ рдХреЗ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ 3 рд╕рд╢рд░реНрдд рднрд╛рдЧ рд╢рд╛рдорд┐рд▓ рдереЗ рдФрд░ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреЗ рдереЗ:
- рдкрд┐рдЫрд▓рд╛ рдЕрдВрдд:
- Django рдФрд░ рдкрд╛рдпрдерди рд╕рднреА рдореЙрдбрд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рддрд░реНрдХ рд╣реИрдВред рдЖрдзрд╛рд░ Django рдореЙрдбрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдордиреЗ рдХреЛрд░ VSTUtils рдореЙрдбрд▓ рдХреЗ рдХрдИ рд╡рд░реНрдЧ рдмрдирд╛рдП рд╣реИрдВред рд╕рднреА рдХреНрд░рд┐рдпрд╛рдПрдВ рдЬреЛ рдпреЗ рдореЙрдбрд▓ рдкреНрд░рджрд░реНрд╢рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдордиреЗ рдкрд╛рдпрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рд╣реИ;
- Django REST рдлреНрд░реЗрдорд╡рд░реНрдХ - REST API рдкреАрдврд╝реАред рдореЙрдбрд▓ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдПрдХ рдЖрд░рдИрдПрд╕рдЯреА рдПрдкреАрдЖрдИ рдХрд╛ рдЧрдарди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рдВрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВ;
- рдмреИрдХ-рдПрдВрдб рдФрд░ рдлреНрд░рдВрдЯ-рдПрдВрдб рдХреЗ рдмреАрдЪ рдЗрдВрдЯрд░рд▓реЗрдпрд░:
- OpenAPI - рдПрдкреАрдЖрдИ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде JSON рдкреАрдврд╝реАред рдмреИрдХ-рдПрдВрдб рдкрд░ рд╕рднреА рдореЙрдбрд▓ рд╡рд░реНрдгрд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЙрдирдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рджреГрд╢реНрдп рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдкрд░рд┐рдгрд╛рдореА JSON рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдкрд░рд┐рдЪрдп рд╣реЛрддрд╛ рд╣реИ:
JSON рдЙрджрд╛рд╣рд░рдг - OpenAPI рд╕реНрдХреАрдорд╛{ // , (, ), // - , // - . definitions: { // Hook. Hook: { // , (, ), // - , // - (, ..). properties: { id: { title: "Id", type: "integer", readOnly: true, }, name: { title: "Name", type: "string", minLength:1, maxLength: 512, }, type: { title: "Type", type: "string", enum: ["HTTP","SCRIPT"], }, when: { title: "When", type: "string", enum: ["on_object_add","on_object_upd","on_object_del"], }, enable: { title:"Enable", type:"boolean", }, recipients: { title: "Recipients", type: "string", minLength: 1, } }, // , , . required: ["type","recipients"], } }, // , (, ), // - ( URL), // - . paths: { // '/hook/'. '/hook/': { // get /hook/. // , Hook. get: { operationId: "hook_list", description: "Return all hooks.", // , , . parameters: [ { name: "id", in: "query", description: "A unique integer value (or comma separated list) identifying this instance.", required: false, type: "string", }, { name: "name", in: "query", description: "A name string value (or comma separated list) of instance.", required: false, type: "string", }, { name: "type", in: "query", description: "Instance type.", required: false, type: "string", }, ], // , (, ), // - ; // - . responses: { 200: { description: "Action accepted.", schema: { properties: { results: { type: "array", items: { // , . $ref: "#/definitions/Hook", }, }, }, }, }, 400: { description: "Validation error or some data error.", schema: { $ref: "#/definitions/Error", }, }, 401: { // ... }, 403: { // ... }, 404: { // ... }, }, tags: ["hook"], }, // post /hook/. // , Hook. post: { operationId: "hook_add", description: "Create a new hook.", parameters: [ { name: "data", in: "body", required: true, schema: { $ref: "#/definitions/Hook", }, }, ], responses: { 201: { description: "Action accepted.", schema: { $ref: "#/definitions/Hook", }, }, 400: { description: "Validation error or some data error.", schema: { $ref: "#/definitions/Error", }, }, 401: { // ... }, 403: { // ... }, 404: { // ... }, }, tags: ["hook"], }, } } }
- рд╕рд╛рдордиреЗ рдХреЗ рдЕрдВрдд:
- рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рддрдВрддреНрд░ рд╣реИ рдЬреЛ рдПрдХ OpenAPI рдпреЛрдЬрдирд╛ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╡рд┐рдЪрд╛рд░ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рддрдВрддреНрд░ рдПрдХ рдмрд╛рд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдЖрд░рдВрднреАрдХреГрдд рд╣реЛрддрд╛ рд╣реИред рдПрдкреАрдЖрдИ рдХреЛ рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬрдХрд░, рдпрд╣ рдПрдкреАрдЖрдИ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ JSON рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░, рдЗрд╕рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реБрдП, рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЬреЗрдПрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдореЙрдбрд▓ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рд╕реЗ рдпреБрдХреНрдд рдмрдирд╛рддрд╛ рд╣реИред рдпрд╣ рдПрдкреАрдЖрдИ рдЕрдиреБрд░реЛрдз рдХрд╛рдлреА рднрд╛рд░реА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рдХреИрд╢ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╕рдордп рдлрд┐рд░ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ;
- рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдкрд╛ рд▓рд┐рдмрд╛рд╕ - рдЙрдирдХреЗ рдмреАрдЪ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рдФрд░ рдорд╛рд░реНрдЧред рдЗрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд╣рдорд╛рд░реЗ рдлреНрд░рдВрдЯ-рдПрдВрдб рдбреЗрд╡рд▓рдкрд░реНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдЬрдм рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдкреГрд╖реНрда рдкрд░ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ, рддреЛ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЗрдВрдЬрди JS рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреГрд╖реНрда рдХреЛ рдЦреАрдВрдЪрддрд╛ рд╣реИред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╣реИ: рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдмреИрдХ-рдПрдВрдб рд╣реИ рдЬреЛ рдореЙрдбрд▓ рд╕реЗ рдЬреБрдбрд╝реЗ рд╕рднреА рддрд░реНрдХ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рдлрд┐рд░ рдУрдкрдирдПрдкреАрдЖрдИ рдЦреЗрд▓ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдореЙрдбрд▓ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЬреЗрдПрд╕рдПрди рдХреЛ рдПрдкреАрдЖрдИ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рдж, рдмреИрдЯрди рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдЙрддреНрдкрдиреНрди рдУрдкрдирдПрдкреАрдЖрдИ рдЬреЗрдПрд╕рдПрди рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред
рдирдП рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдПрдВрдмреЗрдбрд┐рдВрдЧ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ - рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рдХрд╕реНрдЯрдо рд╣реБрдХ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдпрд╛рдж рд░рдЦреЗрдВ? рдпрд╣рд╛рдБ рд╣рдо рдЗрд╕реЗ VSTUtils рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдЖрд╡реЗрджрди рдореЗрдВ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗ:

рдЕрдм VSTUtils рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рд╣рдореЗрдВ рдЦрд░реЛрдВрдЪ рд╕реЗ рдХреБрдЫ рднреА рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣рд╛рдБ рд╣рдо рдХрд╕реНрдЯрдо рд╣реБрдХ рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВ:
- рдмреИрдХ-рдПрдВрдб рдкрд░: рд╣рдо VSTUtils рдореЗрдВ рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рд╡рд░реНрдЧ рд╕реЗ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рд▓реЗрддреЗ рд╣реИрдВ, рдирдП рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ;
- рд╕рд╛рдордиреЗ рдХреЗ рдЫреЛрд░ рдкрд░:
- рдпрджрд┐ рдЗрд╕ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рджреГрд╢реНрдп VSTUtils рдХреЗ рдореВрд▓ рджреГрд╢реНрдп рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдо рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдареАрдХ рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ;
- рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рджреГрд╢реНрдп рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╕рд┐рдЧреНрдирд▓ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдШреЛрд╖рд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░ рдпрд╛ рджреГрд╢реНрдп рдХреЗ рдореВрд▓ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВред
рдирддреАрдЬрддрди, рд╣рдореЗрдВ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛, рд╣рдордиреЗ рдЕрдкрдирд╛ рд▓рдХреНрд╖реНрдп рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛, рд╣рдорд╛рд░рд╛ рдлреНрд░рдВрдЯ-рдПрдВрдб рд╕реНрд╡рддрдГ-рдЬрдирд░реЗрдЯ рд╣реБрдЖред рдореМрдЬреВрджрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдкреЗрд╢ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рддреЗрдЬреА рдЖрдИ рд╣реИ: рд╣рд░ 2 рд╕рдкреНрддрд╛рд╣ рдореЗрдВ рд░рд┐рд▓реАрдЬрд╝ рдЬрд╛рд░реА рд╣реЛрдиреЗ рд▓рдЧреА, рдЬрдмрдХрд┐ рдкрд╣рд▓реЗ рд╣рдордиреЗ рд╣рд░ 2-3 рдорд╣реАрдиреЗ рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЬрд╛рд░реА рдХреАрдВред рдореИрдВ рдпрд╣ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рд╡рд┐рдХрд╛рд╕ рдЯреАрдо рд╡рд╣реА рдмрдиреА рд╣реБрдИ рд╣реИ, рдпрд╣ рдирдИ рдПрдкреНрд▓реАрдХреЗрд╢рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдереА рдЬрд┐рд╕рдиреЗ рд╣рдореЗрдВ рдлрд▓ рджрд┐рдПред
рд╕рдВрд╕реНрдХрд░рдг 1.0 - рд╣рдорд╛рд░реЗ рджрд┐рд▓реЛрдВ рдХреА рдорд╛рдВрдЧ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ
рд▓реЗрдХрд┐рди, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдкреВрд░реНрдгрддрд╛ рдХреА рдХреЛрдИ рд╕реАрдорд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ VSTUtils рдХреЛрдИ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рдерд╛ред
рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рд╣рдо рдлреНрд░рдВрдЯ-рдПрдВрдб рдХреЗ рдЧрдарди рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗ, рдкрд░рд┐рдгрд╛рдо рдкреНрд░рддреНрдпрдХреНрд╖ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдерд╛ рдЬреЛ рд╣рдо рдореВрд▓ рд░реВрдк рд╕реЗ рдЪрд╛рд╣рддреЗ рдереЗред
рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реЛрдЪрд╛ рдирд╣реАрдВ рдЧрдпрд╛ рдерд╛, рдФрд░ рдпрд╣ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рд▓рдЪреАрд▓рд╛ рдирд╣реАрдВ рдирд┐рдХрд▓рд╛:
- рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЕрдзрд┐рднрд╛рд░ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣рдореЗрд╢рд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рдереА;
- OpenAPI рдкрд╛рд░реНрд╕рд┐рдВрдЧ рддрдВрддреНрд░ рдЗрд╖реНрдЯрддрдо рдирд╣реАрдВ рдерд╛;
- рд╕реНрд╡-рд▓рд┐рдЦрд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдирдХреЗ рдмреАрдЪ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдФрд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдХрдИ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рдерд╛:
- рдЗрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛;
- рдЗрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд╣реАрдВ рдерд╛;
- рдЙрдирдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╕рдореБрджрд╛рдп рдирд╣реАрдВ рд╣реИ - рдЙрди рдореЗрдВ рдмрдЧ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдпрд╛ рдЙрдиреНрд╣реЗрдВ рд▓рд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ рдХрд░реНрдордЪрд╛рд░реА рдХреЗ рдкреНрд░рд╕реНрдерд╛рди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдРрд╕реЗ рдХреЛрдб рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛ред
рдФрд░ рдЬрдм рд╕реЗ рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рдореЗрдВ рд╣рдо DevOps рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рдорд╛рдирдХреАрдХреГрдд рдФрд░ рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕ рд╡рд░реНрд╖ рдХреЗ рдлрд░рд╡рд░реА рдореЗрдВ рд╣рдордиреЗ VSTUtils рдХреЗ рдлреНрд░рдВрдЯ-рдПрдВрдб рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреА рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдИ рдХрд╛рд░реНрдп рдереЗ:
- рди рдХреЗрд╡рд▓ рд╕рд╛рдордиреЗ рд╡рд╛рд▓реЗ рдЫреЛрд░ рдкрд░ рдкреНрд░рд╕реНрддреБрддрд┐ рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд▓реНрдХрд┐ рдореЙрдбрд▓ рдХрдХреНрд╖рд╛рдПрдВ рднреА - рд╣рдореЗрдВ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдЙрдирдХреА рдкреНрд░рд╕реНрддреБрддрд┐ рд╕реЗ рдбреЗрдЯрд╛ (рдФрд░ рдЙрдирдХреА рд╕рдВрд░рдЪрдирд╛) рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕рд╣реА рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдФрд░ рдПрдХ рдореЙрдбрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдХрдИ рд╕рд╛рд░ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ VSTUtils рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдЕрдзрд┐рднрд╛рд░ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧреА;
- рд░реЗрдВрдбрд░рд┐рдВрдЧ рдФрд░ рд░реВрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝реЗ рд╕рдореБрджрд╛рдп (Angular, React, Vue) рдХреЗ рд╕рд╛рде рдПрдХ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рдврд╛рдВрдЪреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ - рдпрд╣ рд╣рдореЗрдВ рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЕрдВрджрд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдФрд░ рд░реВрдЯрд┐рдВрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреЛрдб рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рд╕рднреА рд╕рд┐рд░рджрд░реНрдж рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред
Refactoring - JS рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рд╡рд┐рдХрд▓реНрдк
рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдЬреЗрдПрд╕ рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ: рдХреЛрдгреАрдп, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛, Vue, рд╣рдорд╛рд░реА рдкрд╕рдВрдж Vue рдкрд░ рдЧрд┐рд░реА рдХреНрдпреЛрдВрдХрд┐:
- Vue рдХрд╛ рдХреЛрдб рдЖрдзрд╛рд░, React рдФрд░ Angular рд╕реЗ рдХрдо рд╡рдЬрди рдХрд╛ рд╣реЛрддрд╛ рд╣реИ;
Gzipped рдлреНрд░реЗрдорд╡рд░реНрдХ рдЖрдХрд╛рд░ рддреБрд▓рдирд╛ рдЪрд╛рд░реНрдЯ
- Vue рдХреЗ рдкреЗрдЬ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдкреНрд░реЛрд╕реЗрд╕ рдореЗрдВ рд░рд┐рдПрдХреНрдЯ рдФрд░ рдПрдВрдЧреБрд▓рд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ;

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

VSTUtils рдлреНрд░рдВрдЯ-рдПрдВрдб рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рдЕрднреА рднреА рджреЛ рдмрдбрд╝реЗ рдмреНрд▓реЙрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: рдУрдкрдирдПрдкреАрдЖрдИ рдпреЛрдЬрдирд╛ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдкрд╣рд▓рд╛ рд╕реМрджрд╛, рджреВрд╕рд░рд╛ рдЙрди рджреЛрдиреЛрдВ рдХреЗ рдмреАрдЪ рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╡реНрдпреВ рдФрд░ рд░рд╛рдЙрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде, рд▓реЗрдХрд┐рди рдЗрди рджреЛрдиреЛрдВ рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рдХрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрджрд▓рд╛рд╡ рд╣реБрдП рд╣реИрдВред
OpenAPI рдпреЛрдЬрдирд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рддрдВрддреНрд░ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рдпреЛрдЬрдирд╛ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдмрджрд▓ рдЧрдпрд╛ рд╣реИред рд╣рдордиреЗ рдлреНрд░рдВрдЯ-рдПрдВрдб рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рдмреИрдХ-рдПрдВрдб рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд╕рдорд╛рди рд╕рдВрднрд╡ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдЕрдм рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖ рдореЗрдВ рд╣рдо рдирд┐рд░реВрдкрдг рдХреЗ рд░реВрдк рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдЕрдореВрд░реНрдд рдирд╣реАрдВ рд╣реИрдВ, рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдореЙрдбрд▓ рдФрд░ рдХреНрд╡реЗрд░реАрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╛рд░ рднреА рд╣реИрдВ:
- рдореЙрдбрд▓ рд╡рд░реНрдЧ рдФрд░ рдЙрд╕рдХреЗ рд╡рдВрд╢ рдХреА рд╡рд╕реНрддреБрдПрдВ Django рдореЙрдбрд▓ рдХреЗ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдЕрдореВрд░реНрдд рдХреЗ рдЕрдиреБрд░реВрдк рд╡рд╕реНрддреБрдПрдВ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рдореЙрдбрд▓ (рдореЙрдбрд▓ рдХрд╛ рдирд╛рдо, рдореЙрдбрд▓ рдлрд╝реАрд▓реНрдб, рдЖрджрд┐) рдХреА рд╕рдВрд░рдЪрдирд╛ рдкрд░ рдбреЗрдЯрд╛ рд╣реЛрддрд╛ рд╣реИ;
- QuerySet рд╡рд░реНрдЧ рдФрд░ рдЙрд╕рдХреЗ рд╡рдВрд╢ рдХреА рд╡рд╕реНрддреБрдПрдВ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб Django QuerySets рдЕрдореВрд░реНрдд рдХреЗ рдЕрдиреБрд░реВрдк рд╡рд╕реНрддреБрдПрдВ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рд╡реЗ рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реЛрддреА рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдПрдкреАрдЖрдИ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ (рдЬреЛрдбрд╝рдиреЗ, рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ, рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ, рдореЙрдбрд▓ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдбреЗрдЯрд╛ рд╣рдЯрд╛рдиреЗ) рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВ;
- рд╡реНрдпреВ рдХреНрд▓рд╛рд╕ рдХреА рд╡рд╕реНрддреБрдПрдВ - рдРрд╕реА рд╡рд╕реНрддреБрдПрдБ рдЬреЛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдкреГрд╖реНрда рдкрд░ рдореЙрдбрд▓ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреА рд╣реИрдВ, рдЬреЛ рдкреЗрдЬ рдХреЛ "рд░реЗрдВрдбрд░" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВ, рдЬреЛ рдЗрд╕ рдкреГрд╖реНрда рдХреЗ рдореЙрдбрд▓ рдХреЗ рдЕрдиреНрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╕реЗ рд▓рд┐рдВрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрджрд┐ред
рд░реЗрдВрдбрд░рд┐рдВрдЧ рдФрд░ рд░рд╛рдЙрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдпреВрдирд┐рдЯ рднреА рдХрд╛рдлреА рдмрджрд▓ рдЧрдИ рд╣реИред рд╣рдордиреЗ Vue.js. рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╕реНрд╡-рд▓рд┐рдЦрд┐рдд JS SPA рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рд╣рдордиреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ Vue рдШрдЯрдХ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдП рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реЗ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рднреА рдкреГрд╖реНрда рдмрдирд╛рддреЗ рд╣реИрдВред рд╡реНрдпреВ-рд░рд╛рдЙрдЯрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рдмреАрдЪ рд░реВрдЯрд┐рдВрдЧ рд╣реЛрддреА рд╣реИ, рдФрд░ рд╣рдо рдПрдкреНрд▓реАрдХреЗрд╢рди рд╕реНрдЯреЗрдЯ рдХреЗ рд░рд┐рдПрдХреНрдЯрд┐рд╡ рд╕реНрдЯреЛрд░реЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ vuex рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рдореИрдВ рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рд╕рд╛рдордиреЗ рдХреЗ рдЫреЛрд░ рдкрд░ рдореЙрдбрд▓, рдХреНрд╡реЗрд░рд╕реЗрдЯ рдФрд░ рд╡реНрдпреВ рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд░реЗрдВрдбрд░рд┐рдВрдЧ рдФрд░ рд░реВрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рдзрдиреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рдпрджрд┐ рд╣рдо рдЕрдЪрд╛рдирдХ Vue рд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдпрд╛ рдХреБрдЫ рдирдпрд╛, рдлрд┐рд░ рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдирдП рдврд╛рдВрдЪреЗ рдХреЗ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП Vue рдШрдЯрдХреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛, рд░рд╛рдЙрдЯрд░, рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рд╡рд╣ рд╕рдм - VSTUtils рдлреНрд░реЗрдорд╡рд░реНрдХ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдореЙрдбрд▓, рдХреНрд╡реЗрд░реАрд╕реЗрдЯ рдФрд░ рд╡реНрдпреВ рдХреНрд▓рд╛рд╕реЗрд╕ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рдорд╛рди рд░рд╣реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ Vue.js. рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рд╣рдорд╛рд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рдорджрдж рд╣реИред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рджреЗрдирд╛
рдЗрд╕ рдкреНрд░рдХрд╛рд░, "рдбреБрдкреНрд▓рд┐рдХреЗрдЯ" рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдирд┐рдЪреНрдЫрд╛ рд╕реЗ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдлреНрд░рдВрдЯ-рдПрдВрдб рдХреЗ рдЧрдарди рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рд╣реБрдЖ, рдЬрд┐рд╕реЗ VSTUtils рдлреНрд░реЗрдорд╡рд░реНрдХ рдмрдирд╛рдХрд░ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╣рдо рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ рддрд╛рдХрд┐ рдмреИрдХ-рдПрдВрдб рдФрд░ рдлреНрд░рдВрдЯ-рдПрдВрдб рд╕рд╛рдордВрдЬрд╕реНрдпрдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдкреВрд░рдХ рд╣реЛрдВ рдФрд░ рдПрдкреАрдЖрдИ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдХреЛрдИ рднреА рдкрд░рд┐рд╡рд░реНрддрди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрдард╛рдпрд╛ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдареАрдХ рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛред
рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЛ рдФрдкрдЪрд╛рд░рд┐рдХ рдмрдирд╛рдиреЗ рд╕реЗ рд╣рдореЗрдВ рдЬреЛ рд▓рд╛рдн рдкреНрд░рд╛рдкреНрдд рд╣реБрдП рд╣реИрдВ:
- VSTUtils рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рд░рд┐рд▓реАрдЬрд╝ рдЕрдХреНрд╕рд░ 2 рдЧреБрдирд╛ рдЕрдзрд┐рдХ рд╣реЛрдиреЗ рд▓рдЧреАред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЕрдм рдПрдХ рдирдИ рд╕реБрд╡рд┐рдзрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдХреНрд╕рд░, рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдмреИрдХ-рдПрдВрдб рдкрд░ рдХреЛрдб рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдлреНрд░рдВрдЯ-рдПрдВрдб рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧрд╛ - рдпрд╣ рд╕рдордп рдмрдЪрд╛рддрд╛ рд╣реИ;
- рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдореЗрдВ рд╕рд░рд▓реАрдХреГрддред рдЪреВрдВрдХрд┐ рдЕрдм рд╕рднреА рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдПрдХ рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рдЗрдХрдЯреНрдареА рдХреА рдЧрдИ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдпрд╛ рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - VSTUtils рдХреЛрдб рдмреЗрд╕ рдореЗрдВред рдмрд╛рд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ VSTUtils рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╕рдордп, рд╕рднреА рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрдард╛рдпрд╛ рдЬрд╛рдПрдЧрд╛;
- рдирдП рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЛ рдвреВрдВрдврдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛ рд╣реИред рд╕рд╣рдордд рд╣реВрдВ, рдПрдХ рдФрдкрдЪрд╛рд░рд┐рдХ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рд╕реНрдЯреИрдХ (Django, Vue) рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдвреВрдВрдврдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ рдЬреЛ рдХрд┐рд╕реА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИ рдЬреЛ рдПрдХ рдЕрдЬреНрдЮрд╛рдд рд░рд┐рдХреЙрд░реНрдбрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣рдордд рд╣реИред рдЙрди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдо рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЕрдкрдиреЗ рд╕реАрд╡реА (рд╕рднреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╣реЗрдбрд╣рдВрдЯрд░ рдкрд░ Django рдпрд╛ Vue рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ):
- Django - 3,134 рдЖрд╡реЗрджрдХреЛрдВ рдХреЗ рд▓рд┐рдП 3,454 рд░рд┐рдЬреНрдпреВрдореЗ рдорд┐рд▓рд╛;
- 3,747 рдиреМрдХрд░реА рдЪрд╛рд╣рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП Vue - 4,092 рд░рд┐рдЬреНрдпреВрдореЗ рдорд┐рд▓рд╛ред
рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдФрдкрдЪрд╛рд░рд┐рдХрдХрд░рдг рдХреЗ рдиреБрдХрд╕рд╛рдиреЛрдВ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
- рдУрдкрдирдПрдкреАрдЖрдИ рдпреЛрдЬрдирд╛ рдХреЗ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЗ рдХрд╛рд░рдг, рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдкреНрд░рд╛рд░рдВрдн рдкрд╣рд▓реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╕рдордп рд▓реЗрддрд╛ рд╣реИ (рд▓рдЧрднрдЧ 20-30 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рд▓рдВрдмрд╛);
- рдорд╣рддреНрд╡рд╣реАрди рдЦреЛрдЬ рдЕрдиреБрдХреНрд░рдордгред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдлрд┐рд▓рд╣рд╛рд▓ рд╣рдо VSTUtils рдХреЗ рдврд╛рдВрдЪреЗ рдореЗрдВ рд╕рд░реНрд╡рд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╕рднреА рд╕рд╛рдордЧреНрд░реА рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдВрддрд┐рдо рд░реВрдк рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдЕрдХреНрд╕рд░ рдЙрдЪреНрдЪ рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдФрд░ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдпрд╣ рдЗрддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред
рдЗрд╕ рдкрд░ рдореЗрд░реА рдХрд╣рд╛рдиреА рд╕рдорд╛рдкреНрдд рд╣реЛрддреА рд╣реИ, рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ