рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдПрдХ рдбрд┐рдЬрд╛рдЗрди рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдЬрд┐рд╕реЗ Inversion of Control / IoC рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣реЙрд▓реАрд╡реБрдб рд╕рд┐рджреНрдзрд╛рдВрдд рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ
рдмрд╛рд░рдмрд░рд╛ рд▓рд┐рд╕реНрдХреЛрд╡реЛ (рдПрд▓рдПрд╕рдкреА) рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ
рд╕рд┐рджреНрдзрд╛рдВрдд рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдкрд╡рд┐рддреНрд░ рдпреБрджреНрдз рдирд┐рдЬреА рдмрдирд╛рдо рд╕рдВрд░рдХреНрд╖рд┐рдд рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗрддрд╛ рд╣реИред

рдПрдХ рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдЕрдкрдиреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрдж рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореИрдВ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╕реЗ рдПрдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЗрдВрдЬреАрдирд┐рдпрд░ рд╣реВрдВ, рдореИрдВ 10 рд╕реЗ рдЕрдзрд┐рдХ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдЖрдИрдЯреА рдЙрджреНрдпреЛрдЧ рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореИрдВ рд╡рд┐рд╖рдпрдЧрдд рдкреЗрд╢реЗрд╡рд░ рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╢реМрдХреАрди рд░рд╣рд╛ рд╣реВрдВред рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╕рдлрд▓ рд░рд╣реЗред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдПрдХ рдФрд░ рд╕рдВрд╕рд╛рдзрди рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реБрдЖ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд░реВрд╕ рдореЗрдВ рджреБрд░реНрдЧрдо (рд░реЛрд╕рдХреЛрдореНрдирд╛рдбрдЬрд╝реЛрд░ рдХреЗ рд▓рд┐рдП рд╢реБрднрдХрд╛рдордирд╛рдПрдВ)ред рдпрджрд┐ рдХреЛрдИ рдЙрдиреНрд╣реЗрдВ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИред
рд╕рднреА рдХреЛрдб рдЙрджрд╛рд╣рд░рдг, рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдЫрджреНрдо рдХреЛрдб рдХреЗ рд╕рд╛рде рд▓реЗрдЦ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ "рдирдлрд░рдд рдкреАрдПрдЪрдкреА" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд╛рд░реНрдп
рдЗрд╕реЗ рддреЗрдЬреА рд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рддреБрд░рдВрдд рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред рдмрд┐рдХреНрд░реА рд╡рд┐рднрд╛рдЧ рд╕реЗ рдореИрдВ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛: рд╣рдо рдорд╛рд╕рд┐рдХ, рджреИрдирд┐рдХ, рдкреНрд░рддрд┐ рдШрдВрдЯрд╛ рдХрд┐рддрдирд╛ рдкреИрд╕рд╛ рдХрдорд╛рддреЗ рд╣реИрдВред
рд╣рдо рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рддреАрди рдЯреАрдореЛрдВ рдХреА рдорджрдж рд╕реЗ рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╕рдордп-рд╕рдордп рдкрд░ рдЪрд▓рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ:
- MonthlyReportCommand
- DailyReportCommand
- HourlyRerortCommand
рд╣рдореЗрдВ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:
interface ReportCommandInterface { public function createReport(): Money; } interface MoneyRepositoryInterface { public function getMoney(Period $period): array; } interface MetricRepositoryInterface { public function saveMoneyMetric(Period $period, Money $amount, string $metricType); }
рд╣рдо рд░рд┐рдкреЛрд░реНрдЯ рдЯреАрдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ (рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрднреНрдпрд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдордЭрдирд╛ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рд▓рд┐рдЦреЗрдВ):
class MonthlyReportCommand implements ReportCommandInterface {
рдФрд░ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХреИрд▓рдХреБрд▓реЗрдЯреЛрдЯрд▓реНрд╕ () рд╡рд┐рдзрд┐ рдХрд╛ рдХреЛрдб рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд╛рди рд╣реЛрдЧрд╛ред рдкрд╣рд▓реА рдмрд╛рдд рдЬреЛ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддреА рд╣реИ рд╡рд╣ рд╣реИ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЛрдб рдХреЛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ рдореЗрдВ рд░рдЦрдирд╛ред рдЗрд╕ рддрд░рд╣:

abstract class AbstractReportCommand { protected function calculateTotals(array $moneyRecords): Money {
рдХреИрд▓рдХреБрд▓реЗрдЯреЛрдЯрд▓реНрд╕ () рд╡рд┐рдзрд┐ рд╣рдорд╛рд░реА рдХрдХреНрд╖рд╛ рдХреЗ рдЖрдВрддрд░рд┐рдХ рддрдВрддреНрд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рд╣рдо рд╡рд┐рд╡реЗрдХрдкреВрд░реНрд╡рдХ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджреЗрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдмрд╛рд╣рд░реА рдЧреНрд░рд╛рд╣рдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП - рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣рдо рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдЙрд╕реЗ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░ рдореЗрдВ рдмреБрд▓рд╛рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рд╣реИ - рдпрд╣ рд╣рдорд╛рд░рд╛ рд▓рдХреНрд╖реНрдп рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рддрд░рд╣ рдХреБрдЫ рдХреЗ рд╕рдорд╛рди рд╣реИ - рдпрд╣ рд╕рд┐рд░реНрдл рдХреБрдЫ рддрд░реАрдХреЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ (php рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХреЗ рд▓рд┐рдП: рдЕрд░реНрдерд╛рдд, рдпрд╣ Trait рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)ред
рдЕрдореВрд░реНрдд рд╡рд░реНрдЧреЛрдВ рдХрд╛ рд░рд╣рд╕реНрдп
рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд╡рд┐рд░рд╛рдо рд▓реЗрдиреЗ рдФрд░ рдЕрдореВрд░реНрдд рд╡рд░реНрдЧреЛрдВ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЛ рдпрд╛рдж рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ:
рдПрдХ рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ рд╕рд╛рдорд╛рдиреНрдп рддрдВрддреНрд░ рдХреЛ рдШреЗрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╡рд╛рд░рд┐рд╕ рдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡рд┐рд╢реЗрд╖ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИредрдЕрдореВрд░реНрдд (latред Abstractio - рд╡реНрдпрд╛рдХреБрд▓рддрд╛) рд╡рд┐рд╡рд░рдг рдФрд░ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рд╕реЗ рдПрдХ рд╡реНрдпрд╛рдХреБрд▓рддрд╛ рд╣реИред рдлрд┐рд▓рд╣рд╛рд▓, AbstractReportCommand рд╡рд░реНрдЧ рд╕рднреА рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдкреИрд╕реЗ рдХреА рдЧрд┐рдирддреА рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рд╣реЙрд▓реАрд╡реБрдб рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдЕрдореВрд░реНрдд рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЗрд╕ рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ:
"рд╣рдореЗрдВ рдлреЛрди рдордд рдХрд░реЛ, рд╣рдо рдЖрдкрдХреЛ рдЦреБрдж рдмреБрд▓рд╛рдПрдВрдЧреЗ"рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЖрдЗрдП AbstractReportCommand рдореЗрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рддрдВрддреНрд░ рдбрд╛рд▓реЗрдВ:

abstract class AbstractReportCommand implements ReportCommandInterface { private $moneyRepository; private $metricRepository;
рд╣рдордиреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛? рдПрдХ рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ рдХреЗ рд╡рдВрд╢рдЬ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рд╕рд╛рдорд╛рдиреНрдп рддрдВрддреНрд░ рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ (рд╣рдореЗрдВ рдХреЙрд▓ рди рдХрд░реЗрдВ)ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЕрдореВрд░реНрдд рдЕрдкрдиреЗ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░рд┐рдпреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдп рдпреЛрдЬрдирд╛ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЪреБрдиреМрддреА рджреЗрдЧрд╛) рд╡рд┐рд╢реЗрд╖ рд╡реНрдпрд╡рд╣рд╛рд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ IoC, LSP, рдирд┐рдЬреА рдмрдирд╛рдо рд╕рдВрд░рдХреНрд╖рд┐рдд?
рддреЛ рдЗрд╕рдХрд╛ рдЙрд▓рдЯрд╛ рдирд┐рдпрдВрддреНрд░рдг рдХреНрдпрд╛ рд╣реИ? рдпрд╣ рдирд╛рдо рдХрд╣рд╛рдВ рд╕реЗ рдЖрдпрд╛ рд╣реИ? рдмрд╣реБрдд рд╕рд░рд▓: рдкрд╣рд▓реЗ рд╣рдо рдЕрдВрддрд┐рдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рд╕реАрдзреЗ рдХреЙрд▓ рдХрд╛ рдХреНрд░рдо рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдФрд░ рдХрдм рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдФрд░ рдмрд╛рдж рдореЗрдВ, рд╣рдордиреЗ рдЗрд╕ рддрд░реНрдХ рдХреЛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЕрдореВрд░реНрддрддрд╛ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ред рдЕрдм рдЕрдореВрд░реНрддрддрд╛ рдпрд╣ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдФрд░ рдХрдм рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗрд╡рд▓ рдЗрд╕реА рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВред рдпрд╛рдиреА рд╣рдордиреЗ рдХрдВрдЯреНрд░реЛрд▓ рдХреЛ рдЙрд▓реНрдЯрд╛ рдХрд░ рджрд┐рдпрд╛ред
рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдФрд░
рдмрд╛рд░рдмрд░рд╛ рд▓рд┐рд╕реНрдХреЛрд╡ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╕рд┐рджреНрдзрд╛рдВрдд (рдПрд▓рдПрд╕рдкреА) рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рд╡рд┐рдзрд┐ рдШреЛрд╖рдгрд╛ рдореЗрдВ рдЕрдВрддрд┐рдо рд╢рд╛рдорд┐рд▓ рдХрд░рдХреЗ createReport () рд╡рд┐рдзрд┐ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЦрд┐рд░рдХрд╛рд░, рд╣рд░ рдХреЛрдИ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдПрд▓рдПрд╕рдкреА рд╕реАрдзреЗ рд╡рд┐рд░рд╛рд╕рдд рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред
abstract class AbstractReportCommand implements ReportCommandInterface { final public function createReport(): Money {
рддрдм AbstractReportCommand рд╡рд░реНрдЧ рдХреЗ рд╕рднреА рд╡рдВрд╢рдЬ рдХрдареЛрд░ рд░реВрдк рд╕реЗ рдПрдХ рд╣реА рддрд░реНрдХ рдХреЗ рдЕрдзреАрдирд╕реНрде рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реМрд╣ рдЕрдиреБрд╢рд╛рд╕рди, рдЖрджреЗрд╢, рдЙрдЬреНрдЬреНрд╡рд▓ рднрд╡рд┐рд╖реНрдпред
рдЗрд╕реА рдХрд╛рд░рдг рд╕реЗ, рд╕рдВрд░рдХреНрд╖рд┐рдд рдкрд░ рдирд┐рдЬреА рдХрд╛ рд▓рд╛рдн рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рдордХрд╛рдЬ рддрдВрддреНрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рднреА рдЪреАрдЬреЛрдВ рдХреЛ рдПрдХ рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ рдореЗрдВ рддрд╛рд░ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдкреБрдирд░реНрд╡рд┐рддреНрдд - рдирд┐рдЬреА рддрдХ рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рднреА рдХреЛ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдкреБрдирд░реНрдкрд░рд┐рднрд╛рд╖рд┐рдд / рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬреЛ рдХрд┐ рд╕рдВрд░рдХреНрд╖рд┐рдд рд╣реИред рдХрд┐рд╕реА рднреА рддрд░реАрдХреЗ рдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдФрд░ рдпрджрд┐ рдЖрдк рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕реА рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рджрд╛рдпрд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдХреНрдпреЛрдВ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдбрд┐рдЬрд╝рд╛рдЗрди рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рдЕрдореВрд░реНрдд рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣рдореЗрд╢рд╛ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд╡реНрдпреБрддреНрдХреНрд░рдо рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдореВрд░реНрдд рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдореВрд░реНрдд рд╡рд░реНрдЧреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рднреА рдЙрдЪрд┐рдд рдард╣рд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдЕрдзрд┐рдХ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рд╣реЙрд▓реАрд╡реБрдб рд╕рд┐рджреНрдзрд╛рдВрдд рдФрд░ рдЕрдореВрд░реНрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╡рд░реНрдЧ рдХреЗ рдмреАрдЪ рд╣рдорд╛рд░рд╛ рдЫреЛрдЯрд╛ рд╢рд╣рд░ рдЯрдХрд░рд╛рд╡ рдПрдХ рд╡рд┐рд╡рд╛рдж рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ: рдПрдХ рдврд╛рдВрдЪрд╛ (рд╡рдпрд╕реНрдХ рдЖрдИрдУрд╕реА) рдмрдирд╛рдо рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпред рдпрд╣ рд╕рд╛рдмрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХреМрди рдмреЗрд╣рддрд░ рд╣реИ - рдкреНрд░рддреНрдпреЗрдХ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдПрдХрдорд╛рддреНрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪреАрдЬ рдРрд╕реА рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХрд╛ рд╕рдЪреЗрдд рдирд┐рд░реНрдорд╛рдг рд╣реИред
рдЙрди рд╕рднреА рдХреЛ рдзрдиреНрдпрд╡рд╛рдж рдЬреЛ рдзреНрдпрд╛рди рд╕реЗ рд╢реБрд░реВ рд╕реЗ рдЕрдВрдд рддрдХ рдкрдврд╝рддреЗ рд╣реИрдВ - рдЖрдк рдореЗрд░реЗ рдкрд╕рдВрджреАрджрд╛ рдкрд╛рдардХ рд╣реИрдВред