рд╢рд╛рдВрдд рд╢рд╛рдВрдд рд╕рдВрдШрд░реНрд╖

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


DIP, IoC рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдЦрд╛рддреЗ рд╣реИрдВ?


рдбреАрдЖрдИрдкреА рдФрд░ рдЖрдИрдУрд╕реА рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд


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

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

рдирд┐рд░реНрднрд░рддрд╛ рдЙрд▓рдЯрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдмрддрд╛рддрд╛ рд╣реИ:

  • рдКрдкрд░реА рд╕реНрддрд░ рдХреЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рдХреЗ рдореЙрдбреНрдпреВрд▓ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рджреЛрдиреЛрдВ рдкреНрд░рдХрд╛рд░ рдХреЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЕрдореВрд░реНрддрддрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
  • рд╡рд┐рд╡рд░рдг рд╡рд┐рд╡рд░рдг рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд┐рд╡рд░рдг рдЕрдореВрд░реНрддрддрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХрдИ рд▓реЛрдЧ рдЧрд▓рддреА рд╕реЗ рдорд╛рди рд▓реЗрддреЗ рд╣реИрдВ рдХрд┐ рдпрджрд┐ рд╡реЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ / рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдЪ рдирд╣реАрдВ рд╣реИред

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

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

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

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

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

рдХреЛрдИ рдЙрд▓рдЯрд╛ рдирд╣реАрдВ

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

рдЕрдм рд╕рд╣реА рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

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

рдЙрд▓рдЯрд╛ рд╣реИ

рдЕрдм рдПрдХ рдФрд░ рдорд╛рдорд▓реЗ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рджреГрд╢реНрдп рдмрдирд╛рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпреЗ рддрд░реНрдХ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдПрдХ рдмреИрдХрдПрдВрдб рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ рдХреБрдЫ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдмреИрдХрдПрдВрдб рд╣рдореЗрдВ рдПрдХ рдмрдбрд╝реА рд╡рд┐рдзрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдХрд╣рддрд╛ рд╣реИ - "рдЖрдкрдХреЛ 1000 рдореЗрдВ рд╕реЗ рдЗрди 3 рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ"

рдЫреЛрдЯреА рд╕реА рдХрд╣рд╛рдиреА
рдХрдИ рд▓реЛрдЧ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдФрд░ рд╡реЗ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд╣реА рд╣реЛрдВрдЧреЗ - рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдмреИрдХрдПрдВрдб рдХреЛ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕рд╛ рд╣реБрдЖ рдХрд┐ рдореИрдВрдиреЗ рдПрдХ рдХрдВрдкрдиреА рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛, рдЬрд╣рд╛рдВ рдмреИрдХрдПрдВрдб 10 рд╕рд╛рд▓ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реЗрд╡рд╛ рд╣реИ, рдЬреЛ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рд╕рд╛рде, рд░рд╛рдЬреНрдп рдПрдкреАрдЖрдИ рд╕реЗ рдЬреБрдбрд╝реА рд╣реИред рдХрдИ рдХрд╛рд░рдгреЛрдВ рд╕реЗ, рдХрдВрдкрдиреА рдХреЗ рд▓рд┐рдП рдореЛрдмрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╡рд┐рдзрд┐ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдерд╛рдЧрдд рдирд╣реАрдВ рдерд╛, рдФрд░ рдореБрдЭреЗ рд╡рд╣ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛ рдЬреЛ рдХрд┐ рдерд╛ред рдФрд░ рдЬрдбрд╝ рдореЗрдВ рд▓рдЧрднрдЧ рд╕реМ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрджреНрднреБрдд рд╡рд┐рдзрд┐ рдереА, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдиреЗрд╕реНрдЯреЗрдб рд╢рдмреНрджрдХреЛрд╖ рдереЗред рдЕрдм 100 рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ 20% рдореЗрдВ рдиреЗрд╕реНрдЯреЗрдб рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдиреЗрд╕реНрдЯреЗрдб рдХреЗ рднреАрддрд░ рдПрдХ рдФрд░ 20-30 рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рд╕рднреА рд╕рдорд╛рди рдШреЛрдВрд╕рд▓реЗ рдХреЗ рд╢рд┐рдХрд╛рд░ рд╣реИрдВред рдореБрдЭреЗ рдареАрдХ рд╕реЗ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╛рдзрд╛рд░рдг рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 800 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рдФрд░ рдЬрдЯрд┐рд▓ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ 1000 рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

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

рдФрд░ рдлрд┐рд░ DI рдХреНрдпрд╛ рд╣реИ


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

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

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

рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕


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

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

рдЖрдЗрдП рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдЕрдЪреНрдЫрд╛ DI рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреНрдпрд╛ рд╣реИ:

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

рдпрд╣ рдЗрди рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рд╣реИ рдХрд┐ рдореИрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдкреВрд░реЗ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВред

рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдФрд░ рд▓рд╛рдн


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрд╛ рдПрдХ рд▓рд┐рдВрдХ: github.com/ivlevAstef/DITranquillity

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

рдпрд╣ рдореБрдЭреЗ рдареАрдХ рд▓рдЧрддрд╛ рд╣реИред рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдХреЛрдИ рджреБрд░реНрдШрдЯрдирд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдпрджрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреБрдЫ рднреВрд▓ рдЧрдпрд╛, рддреЛ рдпрд╣ рддреБрд░рдВрдд рд░рд┐рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

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

рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдм рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рджрд╛рд╡рд╛ рдирд╣реАрдВ рд╣реИ:

  • рдкреВрд░реНрдг рдзрд╛рдЧрд╛-рд╕реБрд░рдХреНрд╖рд╛ - рдХрд┐рд╕реА рднреА рдзрд╛рдЧреЗ рд╕реЗ рдХреЛрдИ рднреА рдСрдкрд░реЗрд╢рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓реЛрдЧреЛрдВ рдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдереНрд░реЗрдб-рд╕реЗрдлреНрдЯреА рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдЧрддрд┐ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдкреНрд░рддрд┐рдпреЛрдЧреА рдкреБрд╕реНрддрдХрд╛рд▓рдп, рд╡рд╛рджреЛрдВ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдпрджрд┐ рдЖрдк рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдПрдХ рд╡рд╕реНрддреБ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЧрд┐рд░ рдЬрд╛рддрд╛ рд╣реИ
  • рддреЗрдЬреА рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдЧрддрд┐ред рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░, DITranquillity рдЕрдкрдиреЗ рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рджреЛрдЧреБрдиреА рд╣реИред рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдкрд░ рд╕рдЪ рд╣реИ, рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдЧрддрд┐ рд▓рдЧрднрдЧ рдмрд░рд╛рдмрд░ рд╣реИред рдЯреЗрд╕реНрдЯ рд▓рд┐рдВрдХ
  • рдЫреЛрдЯреЗ рдЖрдХрд╛рд░ - рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рд╡рдЬрди Swinject + SwinjectStoryboad + SwinjectAutoregistration рд╕реЗ рдХрдо рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрд╖рдорддрд╛рдУрдВ рдореЗрдВ рдЗрд╕ рдмрдВрдбрд▓ рд╕реЗ рдЖрдЧреЗ рдирд┐рдХрд▓ рдЬрд╛рддрд╛ рд╣реИ
  • рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд, рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдиреЛрдЯ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдирд╢реЗ рдХреА рд▓рдд
  • рдкрджрд╛рдиреБрдХреНрд░рдоред рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдЬрд┐рд╕рдореЗрдВ рдХрдИ рдореЙрдбреНрдпреВрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдпрд╣ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдкреНрд▓рд╕ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╡рд░реНрддрдорд╛рди рдореЙрдбреНрдпреВрд▓ рд╕реЗ рджреВрд░реА рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдХрдХреНрд╖рд╛рдПрдВ рдвреВрдВрдврдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред рдпрд╣реА рд╣реИ, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдПрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЕрдкрдирд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ, рддреЛ рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЖрдкрдХреЛ рдХреЛрдИ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд┐рдП рдмрд┐рдирд╛ рд╡рд╛рдВрдЫрд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдорд┐рд▓реЗрдЧрд╛

рдкреНрд░рджрд░реНрд╢рди


рдФрд░ рддреЛ рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛: SampleHabr ред рдореИрдВрдиреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрджрд╛рд╣рд░рдг рдмрджрд▓рдирд╛ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ - рдЗрд╕рд▓рд┐рдП рдЖрдк рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдХреИрд╕реЗ рдмрджрд▓ рдЧрдпрд╛ рд╣реИред рдФрд░ рдЙрджрд╛рд╣рд░рдг рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред

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

рдкрд╣рд▓реЗ рд╣рдореЗрдВ рдПрдХ рдврд╛рдВрдЪрд╛ рдмрдирд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ (рд╡реИрдХрд▓реНрдкрд┐рдХ):

public class AppFramework: DIFramework { //   public static func load(container: DIContainer) { //     } } 

рдФрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдЗрд╕ рдврд╛рдВрдЪреЗ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд╕рд╛рде, рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдПрдВ:

 let container = DIContainer() //   container.append(framework: AppFramework.self) //     . //          ifdef DEBUG      ,         ,     . if !container.validate() { fatalError() } 

рд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдб


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

рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ рд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдб рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ "рднрд╛рдЧ" рдмрдирд╛рдПрдВ (рд╡реИрдХрд▓реНрдкрд┐рдХ - рдЖрдк рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рд╕рднреА рдХреЛрдб рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ) рдЗрд╕рдореЗрдВ рджрд░реНрдЬ рд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдб рдХреЗ рд╕рд╛рде:

 import DITranquillity class AppPart: DIPart { static func load(container: DIContainer) { container.registerStoryboard(name: "Main", bundle: nil) .lifetime(.single) //   -    . } } 


рдФрд░ AppFramework рдореЗрдВ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рдЬреЛрдбрд╝реЗрдВ:
 container.append(part: AppPart.self) 

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

рдЕрдм рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдмрдЪреА рд╣реИ рд╡рд╣ рд╣реИ рд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдб рдмрдирд╛рдирд╛ рдФрд░ рд╕реНрдЯрд╛рд░реНрдЯ рд╕реНрдХреНрд░реАрди рджрд┐рдЦрд╛рдирд╛ред рдХрдВрдЯреЗрдирд░ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рдмрд╛рдж, рдпрд╣ AppDelegate рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 window = UIWindow(frame: UIScreen.main.bounds) ///  Storyboard let storyboard: UIStoryboard = container.resolve(name: "Main") window!.rootViewController = storyboard.instantiateInitialViewController() window!.makeKeyAndVisible() 

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

рдкреНрд░рд╕реНрддреБрддрдХрд░реНрддрд╛ рдФрд░ ViewController


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

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, AppPart рдореЗрдВ рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ:

 container.register(YourPresenter.init) container.register(YourViewController.self) .injection(\.presenter) //   

рдпреЗ рддреАрди рд▓рд╛рдЗрдиреЗрдВ рд╣рдореЗрдВ рджреЛ рд╡рд░реНрдЧреЛрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВрдЧреАред

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

рд╣рдо рдЖрд╡реЗрджрди рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╕рднреА рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИрдВред

рдбреЗрдЯрд╛


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

 public protocol Server { func get(method: String) -> Data? } class ServerImpl: Server { init(domain: String) { ... } func get(method: String) -> Data? { ... } } 

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

 import DITranquillity class ServerPart: DIPart { static func load(container: DIContainer) { container.register{ ServerImpl(domain: "https://github.com/") } .as(check: Server.self){$0} .lifetime(.single) } } 

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

рджреВрд╕рд░реЗ, рд╡рд╣рд╛рдБ `as` рдлрд╝рдВрдХреНрд╢рди рд╣реИ - рдпрд╣ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрдЧ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ - рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рджреНрд╡рд╛рд░рд╛ рд╕реБрд▓рдн рд╣реЛрдЧрд╛ред `{$ 0}` рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХрд╛ рдЕрдЬреАрдм рдЕрдВрдд `рдЪреЗрдХ:` рдирд╛рдо рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдпрд╣ рдХреЛрдб рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ ServerImpl рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реА рд╣реИред рд▓реЗрдХрд┐рди рдПрдХ рдФрд░ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рд╣реИ: `as (Server.self)` рдЬреЛ рдПрдХ рд╣реА рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдмрд┐рдирд╛ рдЬрд╛рдБрдЪ рдХреЗред рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╕рдВрдХрд▓рдХ рджреЛрдиреЛрдВ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХреНрдпрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдЧрд╛, рдЖрдк рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред

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

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

 container.register{ ServerImpl(domain: "https://github.com/") as Server } 

рдЬреЛ рдХреБрдЫ рд╕рдорд╛рди рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рдмрд┐рдирд╛ред

рдЕрдм рдЖрдк рдкреНрд░рд╕реНрддреБрддрдХрд░реНрддрд╛ рдореЗрдВ рд╕рд░реНрд╡рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдкреНрд░рд╕реНрддреБрддрдХрд░реНрддрд╛ рдХреЛ рдареАрдХ рдХрд░ рджреЗрдВрдЧреЗ рддрд╛рдХрд┐ рдпрд╣ рд╕рд░реНрд╡рд░ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗ:

  class YourPresenter { init(server: Server) { ... } } 

рд╣рдо рдХрд╛рд░реНрдпрдХреНрд░рдо рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ AppDelegate рдореЗрдВ `рдорд╛рдиреНрдп` рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рдкрдбрд╝рддрд╛ рд╣реИ, рдЗрд╕ рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рдХрд┐ рдЯрд╛рдЗрдк` рд╕рд░реНрд╡рд░` рдирд╣реАрдВ рдорд┐рд▓рд╛, рд▓реЗрдХрд┐рди рдпрд╣ `YourPresenter` рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ? рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╣реБрдИ рдереА, рди рдХрд┐ рдкреЛрд╕реНрдЯ рдлреИрдХреНрдЯрдоред рдФрд░ рдХрд╛рд░рдг рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ - рд╡реЗ `AppFramework`:` ServerPart` рдХреЛ рдЬреЛрдбрд╝рдирд╛ рднреВрд▓ рдЧрдП:

 container.append(part: ServerPart.self) 

рд╣рдо рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ - рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд▓рдХрдбрд╝рд╣рд╛рд░рд╛


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

рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдХреЗ рддрд╣рдд рдПрдХ рдЕрд▓рдЧ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред

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

 public protocol Logger { func log(_ msg: String) } class ConsoleLogger: Logger { func log(_ msg: String) { ... } } class FileLogger: Logger { init(file: String) { ... } func log(_ msg: String) { ... } } class ServerLogger: Logger { init(server: String) { ... } func log(_ msg: String) { ... } } class MainLogger: Logger { init(loggers: [Logger]) { ... } func log(_ msg: String) { ... } } 

рдХреБрд▓, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣реИ:

  • рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓
  • 3 рд╡рд┐рднрд┐рдиреНрди рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдПрдХ рдЕрд▓рдЧ рдЬрдЧрд╣ рдкрд░ рд▓рд┐рдЦрддрд╛ рд╣реИ
  • рдПрдХ рдХреЗрдВрджреНрд░реАрдп рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдЬреЛ рд▓реЙрдЧрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЕрдиреНрдп рд╕рднреА рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИ

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдиреЗ 'рд▓реЛрдЧрдЧрд░рдлреНрд░реЙрдорд╡рд░реНрдХ' рдФрд░ 'рд▓реЛрдЧрдЧрд░рдкрд╛рд░реНрдЯ' рдмрдирд╛рдпрд╛ред рдореИрдВ рдЙрдирдХрд╛ рдХреЛрдб рдирд╣реАрдВ рд▓рд┐рдЦреВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдХреЗрд╡рд▓ 'рд▓рдХрдбрд╝рд╣рд╛рд░рд╛' рдХреЗ рдЖрдВрддрд░рд┐рдХ рд▓реЗрдЦ рд▓рд┐рдЦреВрдВрдЧрд╛:

 container.register{ ConsoleLogger() } .as(Logger.self) .lifetime(.single) container.register{ FileLogger(file: "file.log") } .as(Logger.self) .lifetime(.single) container.register{ ServerLogger(server: "http://server.com/") } .as(Logger.self) .lifetime(.single) container.register{ MainLogger(loggers: many($0)) } .as(Logger.self) .default() .lifetime(.single) 

рд╣рдордиреЗ рдкрд╣рд▓реЗ 3 рдкрдВрдЬреАрдХрд░рдг рджреЗрдЦреЗ рд╣реИрдВ, рдФрд░ рдЕрдВрддрд┐рдо рдкреНрд░рд╢реНрди рдЙрдард╛рддреЗ рд╣реИрдВред

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

 container.register { YourPresenter(server: $0) } 

рдпрджрд┐ рдХрдИ рдкреИрд░рд╛рдореАрдЯрд░ рдереЗ, рддреЛ рдХреЛрдИ `$ 1`,` $ 2`, `$ 3`, рдЖрджрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред 16 рддрдХред

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

рдЯреИрдЧ, рдмрджрд▓реЗ рдореЗрдВ, рдПрдХ рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рд╣реИ рдЬрд┐рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рджреМрд░рд╛рди рдФрд░ рдкрдВрдЬреАрдХрд░рдг рдХреЗ рджреМрд░рд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрд░реНрдерд╛рддреН, рдпрджрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдореВрд▓ рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдЯреИрдЧ рдЕрддрд┐рд░рд┐рдХреНрдд рдорд╛рдкрджрдВрдб рд╣реИрдВред

рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ: рд╕рдВрд╢реЛрдзрдХ

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

рдареАрдХ рд╣реИ, рд╣рдо YourPresenter рдореЗрдВ рдПрдХ рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдкреЗрд╢ рдХрд░рдХреЗ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ:

 container.register(YourPresenter.init) .injection { $0.logger = $1 } 

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

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рд╕рдВрдкрддреНрддрд┐ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ:

 internal var logger: Logger? 

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

рдкрд░рд┐рдгрд╛рдо


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

рдХреНрдпрд╛ рд╕рдореАрдХреНрд╖рд╛ рдХреА рдЧрдИ:



рдкреБрд╕реНрддрдХрд╛рд▓рдп рдФрд░ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ:



рдпреЛрдЬрдирд╛рдУрдВ


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

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

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

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

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

рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдм рдзрдиреНрдпрд╡рд╛рдж рд╣реИред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдФрд░ рдЙрддреНрддрд░реЛрдВ рдХреА рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВред

рдЕрдкрдиреЗ рдмрд╛рд░реЗ рдореЗрдВ
Ivlev рдЕрд▓реЗрдХреНрдЬреЗрдВрдбрд░ рдЗрд╡рдЧреЗрдирд┐рд╡рд┐рдЪ - рдЖрдИрдУрдПрд╕ рдЯреАрдо рдореЗрдВ рд╕реАрдирд┐рдпрд░ / рдЯреАрдо рд▓реАрдбред рдореИрдВ 7 рд╕рд╛рд▓ рд╕реЗ iOS рдХреЗ рддрд╣рдд 4.5 рд╕рд╛рд▓ рд╕реЗ рдХреЙрдорд░реНрд╕ рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ - рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдореИрдВ C ++ рдбреЗрд╡рд▓рдкрд░ рдерд╛ред рд▓реЗрдХрд┐рди рдХреБрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЕрдиреБрднрд╡ 15 рд╕рд╛рд▓ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ - рд╕реНрдХреВрд▓ рдореЗрдВ рдореИрдВ рдЗрд╕ рдЕрджреНрднреБрдд рджреБрдирд┐рдпрд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛ рдЧрдпрд╛ рдФрд░ рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рджреВрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдПрдХ рдЕрд╡рдзрд┐ рдереА рдЬрдм рдореИрдВрдиреЗ рдЧреЗрдо , рднреЛрдЬрди, рдПрдХ рд╢реМрдЪрд╛рд▓рдп, рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдкрдиреЗ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ред рдореЗрд░реЗ рдПрдХ рд▓реЗрдЦ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЖрдк рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВ рдПрдХ рдкреВрд░реНрд╡ рдУрд▓рдВрдкрд┐рдпрд╛рдб рд╣реВрдВ - рддрджрдиреБрд╕рд╛рд░, рдореЗрд░реЗ рд▓рд┐рдП рдЧреНрд░рд╛рдлрд╝ рдХреЗ рд╕рд╛рде рд╕рдХреНрд╖рдо рдХрд╛рдо рд▓рд┐рдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рдерд╛ред рд╡рд┐рд╢реЗрд╖рддрд╛ - рд╕реВрдЪрдирд╛-рдорд╛рдкрдиреЗ рдХреА рдкреНрд░рдгрд╛рд▓реА, рдФрд░ рдПрдХ рд╕рдордп рдореЗрдВ рдореБрдЭреЗ рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ рдФрд░ рд╕рдорд╛рдирддрд╛рд╡рд╛рдж рд╕реЗ рдЧреНрд░рд╕реНрдд рдерд╛ - рд╣рд╛рдВ, рдореИрдВ рдХреЛрдб рд▓рд┐рдЦрддрд╛ рд╣реВрдВ рдЬрд┐рд╕рдореЗрдВ рдореИрдВ рд╕рдорд╛рди рд╡рд┐рд╖рдпреЛрдВ рдкрд░ рдзрд╛рд░рдгрд╛рдПрдВ рдФрд░ рдХреАрдбрд╝реЗ рдмрдирд╛рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕рдорд╕реНрдпрд╛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдВ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдореНрдпреВрдЯреЗрдХреНрд╕ рдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдХрд╣рд╛рдВ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИред

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


All Articles