рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдЖрд░реЗрдЦ / рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдЖрд░реЗрдЦ

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

рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдкрд╣рд▓реВ рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдЕрджреНрдпрддрди рд░рдЦрдирд╛ рд╣реИред рдФрд░ рдкрд╛рда рдареАрдХ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЪрд┐рддреНрд░... рдХреНрдпреЛрдВрдХрд┐... рд╕рднреА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдСрдирд▓рд╛рдЗрди рд╣реИрдВ, рдЕрд░реНрдерд╛рдд рдПрдЪрдЯреАрдПрдордПрд▓ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ, рддреЛ рдкрд╛рда рдХреЗ рд╕рд╛рде gif/jpeg/png рдЪрд┐рддреНрд░ рд╣реЛрддреЗ рд╣реИрдВ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд░реЗрдЦ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред рдФрд░ рдЖрд░реЗрдЦ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдЬреИрд╕реЗ Visio рдпрд╛ рдСрдирд▓рд╛рдЗрди рд╕реЗрд╡рд╛рдУрдВ a la duck.io рдореЗрдВ рддреИрдпрд╛рд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдлрд┐рд░ рдЖрдк рдЖрд░реЗрдЦ рдХреЛ рдЧреНрд░рд╛рдлрд╝рд┐рдХ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ html рд╕реЗ рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдВред рдпрд╣ рдЖрд╕рд╛рди рд╣реИред

рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рд╣реИ?

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

рдЖрдк рд╕реЗрд╡рд╛ рдХрд╛ HTML рдПрдореНрдмреЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ. рдпрд╛ рддреБрдордиреЗ рдХреЛрд╢рд┐рд╢ рдХреА?

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

рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ?

рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореБрдЭреЗ рдЬреАрдердм рдкрд░ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдореЗрдВ рдПрдХ рднрдВрдбрд╛рд░ рдорд┐рд▓рд╛ github.com/RaoulMeyer/diagram-as-code. рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЖрд░реЗрдЦ. рд╡реЗред рд╣рдо рдЬреЗрдПрд╕ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╕рд░реНрдХрд┐рдЯ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдЗрд╕ рдЬреЗрдПрд╕ рдХреЛ рд╕реАрдзреЗ рдЙрд╕реА HTML рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЕрдиреНрдп рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдЯреЗрдХреНрд╕реНрдЯ рд╣реИред

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

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

рдлрд┐рд░ рдХреНрдпрд╛ рдЧрд╝рд▓рдд рд╣реИ?

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

рдФрд░ рдореИрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХрд╛ рд╕рдВрдкрд╛рджрди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдЕрдХреЗрд▓рд╛ рд╡реНрдпрдХреНрддрд┐ рдирд╣реАрдВ рд╣реВрдВред рдХрднреА-рдХрднреА рд╕рд╣рдХрд░реНрдореА рднреА рдпреЛрдЧрджрд╛рди рджреЗрддреЗ рд╣реИрдВ - рдХрд┐рд╕реА рд╢рдмреНрдж рдХреЛ рд╕рд╣реА рдХрд░рдирд╛, рд╡рд┐рд╡рд░рдг рдмрджрд▓рдирд╛, рдирдИ рддрд╕реНрд╡реАрд░реЗрдВ рдбрд╛рд▓рдирд╛ред 

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

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

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

рдХрд┐рд╕реА рд╕рд╛рд░рдгреА рдореЗрдВ рдпрд╣ рдЪрд╛рд░реНрдЯ рдХреИрд╕рд╛ рд╣реИ?

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

рдЗрди рд╕рд░рд▓ рдирд┐рдпрдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдЕрднреА-рдЕрднреА? рдЕрддреНрдпрдВрддред

рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдЖрд░реЗрдЦ / рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдЖрд░реЗрдЦ

рдФрд░ рдЗрд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЗрдПрд╕ рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣рд╛рдВ рдореБрдЦреНрдп рдмрд╛рдд рддрддреНрд╡ рд╡рд╕реНрддреБ рд╣реИред рдЬрд┐рд╕рдореЗрдВ рдиреЛрдбреНрд╕ рдЗрдВрдЧрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ - рдиреЛрдбреНрд╕, рдХрд┐рдирд╛рд░реЗ - рдХрдиреЗрдХреНрд╢рдиред
 

  const elements = {
    nodes: [       // ╨╛╨┐╨╕╤Б╤Л╨▓╨░╨╡╨╝ ╤Г╨╖╨╗╤Л
      { id: 'client', type: 'smartphone', label: 'Mobile App'},
      { id: 'server', type: 'server', label: 'Main Server'},
      { id: 'db1', type: 'database', label: 'DB 1'},
      { id: 'db2', type: 'database', label: 'DB 2'},
    ],
    edges: [       // ╤Г╨║╨░╨╖╤Л╨▓╨░╨╡╨╝ ╤Б╨▓╤П╨╖╨╕
      { source: 'client', target: 'server', label: 'request' },
      { source: 'server', target: 'db1', label: 'request' },
      { source: 'server', target: 'db2', label: 'request' },
    ],
  };
  Diagram('scheme1', elements);

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

рдареАрдХ рд╣реИ, рдпрд╣ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИ. рдХреНрдпрд╛ рдпрд╣ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

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

рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдЖрд░реЗрдЦ / рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдЖрд░реЗрдЦ

рдФрд░ рдпрд╣ рдХреЛрдб рд╣реИ:

<div id="scheme5" style="height:500px;width:800px;"></div>
<script>
  const elements5 = {
    groups: [
      { id: 'g1', label: '╨У╤А╤Г╨┐╨┐╨░ ╤Б╨╡╤А╨▓╨╕╤Б╨╛╨▓ 1'},
      { id: 'g2', label: '╨У╤А╤Г╨┐╨┐╨░ ╤Б╨╡╤А╨▓╨╕╤Б╨╛╨▓ 2'},
    ],
    nodes: [
      { id: 'man1', type: 'person', label: '╨з╨╡╨╗╨╛╨▓╨╡╨║'},
      { id: 'client', type: 'smartphone', label: '╨б╨╝╨░╤А╤В╤Д╨╛╨╜'},
      { id: 'agent-backend', type: 'server', group: 'g1', label: 'agent-backend'},
      { id: 'web', type: 'server', group: 'g1', label: '╨Я╤А╨╕╨╗╨╛╨╢╨╡╨╜╨╕╨╡ admin'},
      { id: 'www', type: 'server', group: 'g1', label: '╤Б╤В╤А╨░╨╜╨╕╤Ж╨░ ╨╖╨░╨│╤А╤Г╨╖╨║╨╕'},
      { id: 'mongodb1', type: 'database', group: 'g1', label: 'Mongo DB 1'},
      { id: 'mongodb2', type: 'database', group: 'g1', label: 'Mongo DB 2'},
      { id: 'runner-integration1', type: 'worker', group: 'g1', label: '╨╛╤В╨┐╤А╨░╨▓╨║╨░'},
      { id: 'runner-integration2', type: 'worker', group: 'g1', label: '╨╛╤В╨┐╤А╨░╨▓╨║╨░'},
      { id: 'api', type: 'server', group: 'g1', label: 'API'},
      { id: 'server2', type: 'server', group:'g2', label: '╤Б╨╡╤А╨▓╨╡╤А'},
      { id: 'otherServer', type: 'server', group:'g2', label: '╤Б╨╡╤А╨▓╨╡╤А'},
      { id: 'firebase', type: 'cloud', label: 'Google Firebase'},
    ],
    edges: [
      { source: 'client', target: 'agent-backend', label: 'json', color: 'red' },
      { source: 'agent-backend', target: 'mongodb1', color: 'red' },
      { source: 'agent-backend', target: 'mongodb2',  color: 'red' },
      { source: 'mongodb1', target: 'runner-integration1', label: '╨┤╨░╨╜╨╜╤Л╨╡' },
      { source: 'mongodb2', target: 'runner-integration2', label: '╨┤╨░╨╜╨╜╤Л╨╡' },
      { source: 'mongodb1', target: 'web', label: '╨┤╨░╨╜╨╜╤Л╨╡ ╨┤╨╗╤П ╨╛╤В╨╛╨▒╤А╨░╨╢╨╡╨╜╨╕╤П' },
      { source: 'runner-integration1', target: 'server2', label: '╨┤╨░╨╜╨╜╤Л╨╡' },
      { source: 'runner-integration2', target: 'otherServer', label: '╨┤╨░╨╜╨╜╤Л╨╡' },
      { source: 'api', target: 'firebase', label: '╨╖╨░╨┐╤А╨╛╤Б╤Л', color: 'blue', },
      { source: 'firebase', target: 'client', label: 'push', color: 'blue'},
      { source: 'server2', target: 'api', label: '╤Г╨▓╨╡╨┤╨╛╨╝╨╗╨╡╨╜╨╕╤П', color: 'blue'},
      { source: 'man1', target: 'client', },
    ],
    positions: [
      { id: 'client', row: 2, col: 1,},
      { id: 'agent-backend', row: 2, col: 3,},
      { id: 'web', row: 6, col: 3,},
      { id: 'www', row: 1, col: 3,},
      { id: 'mongodb1', row: 1, col: 4,},
      { id: 'mongodb2', row: 2, col: 5,},
      { id: 'runner-integration1', row: 3, col: 3,},
      { id: 'runner-integration2', row: 4, col: 3,},
      { id: 'api', row: 5, col: 3,},
      { id: 'server2', row: 6, col: 7,},
      { id: 'otherServer', row: 4, col: 7,},
      { id: 'firebase', row: 5, col: 1,},
      { id: 'logger', row: 2, col: 7,},
      { id: 'crm', row: 5, col: 8,},
    ],
};
  Diagram('scheme5', elements5, {layout: 'grid'});
</script>

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

рдкрджреЛрдВ рдХреЛ рдиреЛрдбреНрд╕ рд╕реЗ рдЕрд▓рдЧ рдХреНрдпреЛрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ?

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

рдХреНрдпрд╛ рдпрд╣ рдмрд┐рдирд╛ рдкрдж рдХреЗ рд╕рдВрднрд╡ рд╣реИ?

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

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

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

рдпрд╛ рддреБрдордиреЗ рдХреЛрд╢рд┐рд╢ рдХреА? рдЕрдм рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреЗ рдкреЗрдЬ рдкрд░ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ.

рддреЛ рдлрд┐рд░:

1. рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛

<script src="https://unpkg.com/@antirek/[email protected]/dist/code-full.min.js"></script>

2. HTML рдореЗрдВ рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ

<div id="scheme1" style="height:300px;width:800px;"></div>
<script>      
  const elements = {    
    nodes: [
      { id: 'client', type: 'smartphone', label: 'Mobile App'},
      { id: 'server', type: 'server', label: 'Main Server'},
      { id: 'db1', type: 'database', label: 'DB 1'},
      { id: 'db2', type: 'database', label: 'DB 2'},
    ],
    edges: [
      { source: 'client', target: 'server', label: 'request' },
      { source: 'server', target: 'db1', label: 'request' },
      { source: 'server', target: 'db2', label: 'request' },
    ],
  };
  Diagram('scheme1', elements);
</script>

3. рд╣рдо рдХреЛрдб рдХреЛ рдЙрд╕ рдЖрд░реЗрдЦ рдореЗрдВ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрд▓реНрд▓реВ рдХрд╛ рдЪрд┐рддреНрд░ рдмрдирд╛рдиреЗ рд╕реЗ рдЖрд╕рд╛рди рд╣реИ :)

рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреЗрдЬ рдЬреАрдердм рдкрд░.

рдирддреАрдЬрд╛?

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

рдХреНрдпрд╛ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдмреЗрд╢рдХ, рдпрд╣рд╛рдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рдЕрддрд┐рд░рд┐рдХреНрдд рдЪрд┐рд╣реНрди рдЬреЛрдбрд╝реЗрдВ (рд╕рднреА рдореМрдЬреВрджрд╛ рдЪрд┐рд╣реНрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЗрдирд▓рд╛рдЗрди рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВ)ред рдЪрд┐рд╣реНрдиреЛрдВ рдХрд╛ рдЕрдзрд┐рдХ рдЕрднрд┐рд╡реНрдпрдВрдЬрдХ рд╕реЗрдЯ рдЪреБрдиреЗрдВ. рдХрдиреЗрдХреНрд╢рди рд▓рд╛рдЗрди рдХреА рд╢реИрд▓реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рдПрдВред рдПрдХ рдкреГрд╖реНрдарднреВрдорд┐ рдЫрд╡рд┐ рдЬреЛрдбрд╝реЗрдВ.

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

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

  1. рдЕрдЪреНрдЫрд╛ рдЪрдпрди
  2. рдЙрддреНрддрдо рд╕реЗрд╡рд╛ (9 рдкреНрд░рдХрд╛рд░ рдХреЗ рдЪрд╛рд░реНрдЯ рдСрдирд▓рд╛рдЗрди рд╕рдВрдкрд╛рджрдХ)
  3. рдмреЗрд╢рдХ, рдорд░рдореЗрдб.рдЬреЗ.рдПрд╕
  4. рдФрд░ рдпрджрд┐ рдЖрдкрдХреЛ рдЕрддреНрдпрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдФрд░ рдЬрдЯрд┐рд▓ рдЪрд┐рддреНрд░ рдкрд╕рдВрдж рд╣реИрдВ, рддреЛ рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдкреНрд░рд╢рдВрд╕рд╛ рдХрд░реЗрдВрдЧреЗ: go.drawthe.net

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ