рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬрд╛рд╡рд╛ рдбреЗрд╡рд▓рдкрд░ рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рдЫрд╛рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ред
рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдореЗрдВ рдЕрдХреНрд╕рд░ рд╡рд┐рд░рд╛рд╕рдд рдХреЛрдб рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдмрдирд╛рдП рд░рдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдмрдбрд╝реЗ, рдЬрдЯрд┐рд▓ рд╕реНрдкреЗрдЧреЗрдЯреА рдХреЛрдб рдореЗрдВ рд╕рд░рд▓ рддрд░реНрдХ рдХреЛ рд╕рдордЭрдирд╛ рдХрд┐рддрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдХреЛрдб рдореЗрдВ рд╕реБрдзрд╛рд░ рдпрд╛ рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреБрд░рд╛ рд╕рдкрдирд╛ рдмрди рдЬрд╛рддрд╛ рд╣реИредрд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд░рдЦрд░рдЦрд╛рд╡ рдореЗрдВ рдЖрд╕рд╛рдиреА рд╣реИред рдХреЛрдб рдЬрд┐рд╕реЗ рдЦрд░рд╛рдм рдмрдирд╛рдП рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рди рдХреЗрд╡рд▓ рд╕реНрдХреЗрд▓ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдмрд▓реНрдХрд┐ рдирдП рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдмрди рд░рд╣рд╛ рд╣реИредрдЖрдИрдЯреА рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ, рдЪреАрдЬреЗрдВ рддреЗрдЬреА рд╕реЗ рдЖрдЧреЗ рдмрдврд╝ рд░рд╣реА рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХреЛ рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рддрддреНрдХрд╛рд▓ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдпрджрд┐ рдЖрдк рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ NoSQL рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреА рдкрд╣рд▓реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреНрдпрд╛ рд╣реЛрдЧреА?
рдПрдХ рдЕрдЪреНрдЫрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд╡рд░реЗрдЬ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ рдХрд┐ рдирдИ рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ рдЖрдкрдХреЗ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдХреЛ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред
рдореИрдВ рд╣реА рдХреНрдпреЛрдВ?рд▓реЗрдХрд┐рди рдкрд░реНрдпрд╛рдкреНрдд рдЦрд╛рд▓реА рдмрд╛рдд рд╣реИ, рдЖрдЗрдП рд╣реЗрдХреНрд╕рд╛рдЧреЛрдирд▓ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЛ рджреЗрдЦреЗрдВред рдЗрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреЛ рд░рдЦрд░рдЦрд╛рд╡, рдкрд░реАрдХреНрд╖рдг рдФрд░ рдЕрдиреНрдп рд▓рд╛рднреЛрдВ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреАредрд╣реЗрдХреНрд╕рд╛рдЧреЛрдирд▓ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рдкрд░рд┐рдЪрдп
рдЕрд╡рдзрд┐ рд╣реЗрдХреНрд╕рд╛рдЧреЛрдирд▓ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ (рд╣реЗрдХреНрд╕рд╛рдЧреЛрдирд▓, рд╣реЗрдХреНрд╕рд╛рдЧреЛрдирд▓ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░) рдерд╛ рдПрд▓рд┐рд╕реНрдЯреЗрдпрд░ рдХреЙрдХрдмрд░реНрди рджреНрд╡рд╛рд░рд╛ 2006 рдореЗрдВ рдЧрдврд╝рд╛ред рдЗрд╕ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╢реИрд▓реА рдХреЛ рдкреЛрд░реНрдЯреНрд╕ рдПрдВрдб рдПрдбреЗрдкреНрдЯрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ ред рд╕рд░рд▓ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдШрдЯрдХ рдХрдИ рдПрдВрдбрдкреЙрдЗрдВрдЯреНрд╕ (рдкреЛрд░реНрдЯ) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВред рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреЛрд░реНрдЯ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓реЗ рдПрдбреЗрдкреНрдЯрд░ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПредрдпрд╣рд╛рдВ рдЖрдк рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдпреВрдПрд╕рдмреА рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рджреГрд╢реНрдп рдЖрдХрд░реНрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рдВрдЧрдд рдПрдбреЗрдкреНрдЯрд░ (рдЪрд╛рд░реНрдЬрд░ рдпрд╛ рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡) рд╣реИ рддреЛ рдЖрдк рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рдХреЗрдВрджреНрд░ рдореЗрдВ (рдХреЛрд░ рдореЗрдВ) рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рдХреЗ рд╕рд╛рде рд╖рдЯреНрднреБрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдпрд╣ рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдШрдЯрдХ рдЗрд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВредрд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рдПрдкреАрдЖрдИ рдХреЙрд▓, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдФрд░ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдмрд╛рддрдЪреАрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХреЛ рдЗрдирдкреБрдЯ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХрд╛ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдорд┐рд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░реЗрдВрдЧреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛редрдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрд╛рд╣рд░реА рд╡рд╕реНрддреБрдУрдВ рдЬреИрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕, рд╕рдВрджреЗрд╢ рдХрддрд╛рд░, рд╡реЗрдм рд╕рд░реНрд╡рд░ (HTTP рдПрдкреАрдЖрдИ рдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рдХреЗ рд╕рд╛рде рднреА рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ рдпрд╛ рдбреЗрдЯрд╛ рдХреЛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ, рддреЛ рдЖрдкрдХреЛ рд╡реНрдпрд╡рд╕рд╛рдп рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рддрд░реНрдХредрдЬреИрд╕рд╛ рдХрд┐ рдирд╛рдо рдХрд╛ рдЕрд░реНрде рд╣реИ, " рдкреЛрд░реНрдЯ рдФрд░ рдПрдбреЗрдкреНрдЯрд░ ", "рдкреЛрд░реНрдЯ" рд╣реИрдВ рдЬрд┐рдирдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрдВрдЯрд░реИрдХреНрд╢рди рд╣реЛрддрд╛ рд╣реИ рдФрд░ "рдПрдбреЗрдкреНрдЯрд░" рдРрд╕реЗ рдШрдЯрдХ рд╣реИрдВ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдбреЛрдореЗрди рдХреА "рднрд╛рд╖рд╛" рдореЗрдВ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВред рдПрдбреЗрдкреНрдЯрд░ рдмрд╛рд╣рд░реА рд╕рд┐рд╕реНрдЯрдо, рдЬреИрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕, рд╕рдВрджреЗрд╢ рдХрддрд╛рд░, рдЖрджрд┐ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХреЗ рддрд░реНрдХ рдХреЛ рдХреВрдЯрдмрджреНрдз рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рдФрд░ рдмрд╛рд╣рд░реА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВредрдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЖрд░реЗрдЦ рдореЗрдВ рдЙрди рдкрд░рддреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИред
рд╣реЗрдХреНрд╕рд╛рдЧреЛрдирд▓ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рддреАрди рдкрд░рддреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рддрд╛ рд╣реИ: рдбреЛрдореЗрди, рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдФрд░ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪрд╛:- рдбреЛрдореЗрди ред рдкрд░рдд рдореЗрдВ рдореБрдЦреНрдп рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рд╣реЛрддрд╛ рд╣реИред рдЙрд╕реЗ рдмрд╛рд╣рд░реА рдкрд░рддреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЛ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
- рдЖрд╡реЗрджрди ред рдПрдХ рдкрд░рдд рдПрдХ рдбреЛрдореЗрди рдФрд░ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреА рдкрд░рддреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рд╕реЗрддреБ рдХрд╛ рдХрд╛рдо рдХрд░рддреА рд╣реИред
- рдЕрд╡рд╕рдВрд░рдЪрдирд╛ ред рдмрд╛рд╣рд░реА рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдбреЛрдореЗрди рдХреА рдмрд╛рддрдЪреАрдд рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред рднреАрддрд░ рдХреА рдкрд░рддреЗрдВ рдЙрд╕реЗ рдПрдХ рдмреНрд▓реИрдХ рдмреЙрдХреНрд╕ рдХреА рддрд░рд╣ рд▓рдЧрддреА рд╣реИрдВред
рдЗрд╕ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рддрд┐рднрд╛рдЧреА рдЖрд╡реЗрджрди рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рддреЗ рд╣реИрдВ: рдкреНрд░рд╛рдердорд┐рдХ (рдЪрд╛рд▓рдХ) рдФрд░ рдорд╛рдзреНрдпрдорд┐рдХ (рд╕рдВрдЪрд╛рд▓рд┐рдд)ред рдкреНрд░рдореБрдЦ рдЕрднрд┐рдиреЗрддрд╛ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддреЗ рд╣реИрдВ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдпрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг)ред рджреНрд╡рд┐рддреАрдпрдХ рдмрд╛рд╣рд░реА рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдБрдЪрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ (рдпреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдПрдбреЗрдкреНрдЯрд░, рдЯреАрд╕реАрдкреА рдпрд╛ рдПрдЪрдЯреАрдЯреАрдкреА рдЧреНрд░рд╛рд╣рдХ рд╣реИрдВ)редрдЗрд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
рд╖рдЯреНрднреБрдЬ рдХреЗ рдмрд╛рдИрдВ рдУрд░ рдореЗрдВ рдШрдЯрдХ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдбреЛрдореЗрди рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ (рд╡реЗ "рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ" рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ), рдФрд░ рджрд╛рдИрдВ рдУрд░ рдШрдЯрдХ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВредрдЙрджрд╛рд╣рд░рдг
рдЖрдЗрдП рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░реЗрдВ рдЬреЛ рдореВрд╡реА рд╕рдореАрдХреНрд╖рд╛рдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдЧрд╛ред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдлрд┐рд▓реНрдо рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рдФрд░ рдкрд╛рдВрдЪ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдореАрдХреНрд╖рд╛рдПрдБ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПредрд╕рд░рд▓рддрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рд░реИрдо рдореЗрдВ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░реЗрдЬ рдХреЗ рд╕рд╛рде рдПрдХ рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВрдЧреЗред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрдВрд╕реЛрд▓ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рдПрдЧреАредрд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛) рд╣реИ рдЬреЛ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ "рдкреНрд░рдмрдВрдзрдХ" (рдбреНрд░рд╛рдЗрд╡рд░) рдмрди рдЬрд╛рддрд╛ рд╣реИред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рднрдВрдбрд╛рд░рдг рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдХрдВрд╕реЛрд▓ рдпрд╛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдкреНрд░рдмрдВрдзрд┐рдд (рд╕рдВрдЪрд╛рд▓рд┐рдд) рдСрдмреНрдЬреЗрдХреНрдЯ "рдбреЗрдЯрд╛ рд╡реЗрдпрд░рд╣рд╛рдЙрд╕" ( IFetchMovieReviews
) рдФрд░ "рд░рд┐рд╕реНрдкрд╛рдВрд╕ рдкреНрд░рд┐рдВрдЯрд░" ( IPrintMovieReviews
) рд╣реЛрдВрдЧреЗредрдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрдВрдХрдбрд╝рд╛ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЗ рдореБрдЦреНрдп рдШрдЯрдХреЛрдВ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред
рдмрд╛рдИрдВ рдУрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдШрдЯрдХ рд╣реИрдВред рджрд╛рдИрдВ рдУрд░ рд╡реЗ рдШрдЯрдХ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рдХрдВрд╕реЛрд▓ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВредрдЖрдЗрдП рдЖрд╡реЗрджрди рдХреЛрдб рджреЗрдЦреЗрдВредрдирд┐рдпрдВрддреНрд░рдг рдмрдВрджрд░рдЧрд╛рд╣public interface IUserInput {
public void handleUserInput(Object userCommand);
}
рдкреНрд░рдмрдВрдзрд┐рдд рдмрдВрджрд░рдЧрд╛рд╣реЛрдВpublic interface IFetchMovieReviews {
public List<MovieReview> fetchMovieReviews(MovieSearchRequest movieSearchRequest);
}
public interface IPrintMovieReviews {
public void writeMovieReviews(List<MovieReview> movieReviewList);
}
рдкреНрд░рдмрдВрдзрд┐рдд рдкреЛрд░реНрдЯ рдПрдбреЗрдкреНрдЯрд░рдореВрд╡реАрдЬрд╝ рдореВрд╡реА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА (MovieReviewsRepo) рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рдХрдВрд╕реЛрд▓ рдкрд░ рдлрд┐рд▓реНрдо рд╕рдореАрдХреНрд╖рд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдПрдХ рд╡рд░реНрдЧ рд╣реЛрдЧрд╛ ConsolePrinter
ред рдЖрдЗрдП рдЙрдкрд░реЛрдХреНрдд рджреЛрдиреЛрдВ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВредpublic class ConsolePrinter implements IPrintMovieReviews {
@Override
public void writeMovieReviews(List<MovieReview> movieReviewList) {
movieReviewList.forEach(movieReview -> {
System.out.println(movieReview.toString());
});
}
}
public class MovieReviewsRepo implements IFetchMovieReviews {
private Map<String, List<MovieReview>> movieReviewMap;
public MovieReviewsRepo() {
initialize();
}
public List<MovieReview> fetchMovieReviews(MovieSearchRequest movieSearchRequest) {
return Optional.ofNullable(movieReviewMap.get(movieSearchRequest.getMovieName()))
.orElse(new ArrayList<>());
}
private void initialize() {
this.movieReviewMap = new HashMap<>();
movieReviewMap.put("StarWars", Collections.singletonList(new MovieReview("1", 7.5, "Good")));
movieReviewMap.put("StarTreck", Arrays.asList(new MovieReview("1", 9.5, "Excellent"), new MovieReview("1", 8.5, "Good")));
}
}
рдбреЛрдореЗрди
рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рд╣реИред рдЖрдкрдХреЛ рдлрд┐рд▓реНрдореЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ, рдЙрдиреНрд╣реЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдФрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ "рдкреНрд░рд┐рдВрдЯрд░" рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдлрд┐рд▓рд╣рд╛рд▓, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реИ - рдлрд┐рд▓реНрдо рдЦреЛрдЬред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдорд╛рдирдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ Consumer
редрдЖрдЗрдП рдореБрдЦреНрдп рд╡рд░реНрдЧ рдХреЛ рджреЗрдЦреЗрдВ MovieApp
редpublic class MovieApp implements Consumer<MovieSearchRequest> {
private IFetchMovieReviews fetchMovieReviews;
private IPrintMovieReviews printMovieReviews;
private static Random rand = new Random();
public MovieApp(IFetchMovieReviews fetchMovieReviews, IPrintMovieReviews printMovieReviews) {
this.fetchMovieReviews = fetchMovieReviews;
this.printMovieReviews = printMovieReviews;
}
private List<MovieReview> filterRandomReviews(List<MovieReview> movieReviewList) {
List<MovieReview> result = new ArrayList<MovieReview>();
for (int index = 0; index < 5; ++index) {
if (movieReviewList.size() < 1)
break;
int randomIndex = getRandomElement(movieReviewList.size());
MovieReview movieReview = movieReviewList.get(randomIndex);
movieReviewList.remove(movieReview);
result.add(movieReview);
}
return result;
}
private int getRandomElement(int size) {
return rand.nextInt(size);
}
public void accept(MovieSearchRequest movieSearchRequest) {
List<MovieReview> movieReviewList = fetchMovieReviews.fetchMovieReviews(movieSearchRequest);
List<MovieReview> randomReviews = filterRandomReviews(new ArrayList<>(movieReviewList));
printMovieReviews.writeMovieReviews(randomReviews);
}
}
рдЕрдм рд╣рдо рдПрдХ рд╡рд░реНрдЧ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ CommandMapperModel
рд╣реИрдВрдбрд▓рд░ рдХреЛ рдХрдорд╛рдВрдб рдореИрдк рдХрд░реЗрдЧрд╛редpublic class CommandMapperModel {
private static final Class<MovieSearchRequest> searchMovies = MovieSearchRequest.class;
public static Model build(Consumer<MovieSearchRequest> displayMovies) {
Model model = Model.builder()
.user(searchMovies)
.system(displayMovies)
.build();
return model;
}
}
рдкреЛрд░реНрдЯ рдПрдбреЗрдкреНрдЯрд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реЗрдВ
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рдорд╛рд░реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░реЗрдЧрд╛ IUserInput
ред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди ModelRunner
рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдФрд░ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХрд░реЗрдЧрд╛редpublic class UserCommandBoundary implements IUserInput {
private Model model;
public UserCommandBoundary(IFetchMovieReviews fetchMovieReviews, IPrintMovieReviews printMovieReviews) {
MovieApp movieApp = new MovieApp(fetchMovieReviews, printMovieReviews);
model = CommandMapperModel.build(movieApp);
}
public void handleUserInput(Object userCommand) {
new ModelRunner().run(model)
.reactTo(userCommand);
}
}
рдЕрдм рдЖрдЗрдП рдЙрдкрд░реНрдпреБрдХреНрдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рджреЗрдЦреЗрдВредpublic class MovieUser {
private IUserInput userInputDriverPort;
public MovieUser(IUserInput userInputDriverPort) {
this.userInputDriverPort = userInputDriverPort;
}
public void processInput(MovieSearchRequest movieSearchRequest) {
userInputDriverPort.handleUserInput(movieSearchRequest);
}
}
рдЖрд╡реЗрджрди
рдЗрд╕рдХреЗ рдмрд╛рдж, рдПрдХ рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВред рдкреНрд░рдмрдВрдзрд┐рдд рдПрдбрд╛рдкреНрдЯрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдмрдирд╛рдПрдЧрд╛ рдФрд░ рднреЗрдЬреЗрдЧрд╛ред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдФрд░ рдХрдВрд╕реЛрд▓ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдЧреАредpublic class Main {
public static void main(String[] args) {
IFetchMovieReviews fetchMovieReviews = new MovieReviewsRepo();
IPrintMovieReviews printMovieReviews = new ConsolePrinter();
IUserInput userCommandBoundary = new UserCommandBoundary(fetchMovieReviews, printMovieReviews);
MovieUser movieUser = new MovieUser(userCommandBoundary);
MovieSearchRequest starWarsRequest = new MovieSearchRequest("StarWars");
MovieSearchRequest starTreckRequest = new MovieSearchRequest("StarTreck");
System.out.println("Displaying reviews for movie " + starTreckRequest.getMovieName());
movieUser.processInput(starTreckRequest);
System.out.println("Displaying reviews for movie " + starWarsRequest.getMovieName());
movieUser.processInput(starWarsRequest);
}
}
рдХреНрдпрд╛ рд╕реБрдзрд╛рд░, рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
- рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕реНрдЯреЛрд░реЗрдЬ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдХреЛ рдмрджрд▓реЗ рдмрд┐рдирд╛ рдХреЛрдб рдореЗрдВ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рдПрдбреЗрдкреНрдЯрд░ рд▓рд┐рдЦрдХрд░ рдореЗрдореЛрд░реА рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- рдХрдВрд╕реЛрд▓ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк "рдкреНрд░рд┐рдВрдЯрд░" рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдбреЗрдЯрд╛ рд▓рд┐рдЦреЗрдЧрд╛ред рдРрд╕реЗ рдмрд╣реБ-рдкрд░рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ, рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рдирд╛ рдФрд░ рдмрдЧ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
- рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЬрдЯрд┐рд▓ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдПрдбрд╛рдкреНрдЯрд░реЛрдВ рдХрд╛ рдЕрд▓рдЧрд╛рд╡ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рдордЧреНрд░ рдкрд░реАрдХреНрд╖рдг рдХрд╡рд░реЗрдЬ рдХреЛ рдмрдврд╝рд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рд╣реЗрдХреНрд╕рд╛рдЧреЛрдирд▓ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд╛рднреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:- Accompaniment - рд╢рд┐рдерд┐рд▓ рдпреБрдЧреНрдорд┐рдд рдФрд░ рд╕реНрд╡рддрдВрддреНрд░ рдкрд░рддреЗрдВред рдЕрдиреНрдп рдкрд░рддреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдПрдХ рдкрд░рдд рдореЗрдВ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
- рдкрд░реАрдХреНрд╖рдг рдХреНрд╖рдорддрд╛ - рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рд╕рд░рд▓ рдФрд░ рд╢реАрдШреНрд░рддрд╛ рд╕реЗ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред рдЖрдк рд╕реНрдЯрдм рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рдд рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдореЗрдореЛрд░реА рдореЗрдВ рдбреЗрдЯрд╛ рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ рдмрдирд╛рдХрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВред
- рдЕрдиреБрдХреВрд▓рдирд╢реАрд▓рддрд╛ - рдореБрдЦреНрдп рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдмрд╛рд╣рд░реА рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдбреЛрдореЗрди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╣рдо рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреБрдХреНрдд рдПрдбрд╛рдкреНрдЯрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рдВрджрд░реНрдн
рдмрд╕ рдЗрддрдирд╛ рд╣реАред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд░рд╛рд╣ рдкрд░ !