рдЬрд╛рд╡рд╛ рдореЗрдВ рд╣реЗрдХреНрд╕рд╛рдЧреЛрдирд▓ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг

рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬрд╛рд╡рд╛ рдбреЗрд╡рд▓рдкрд░ рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рдЫрд╛рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ред





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

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

рдЖрдИрдЯреА рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ, рдЪреАрдЬреЗрдВ рддреЗрдЬреА рд╕реЗ рдЖрдЧреЗ рдмрдврд╝ рд░рд╣реА рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХреЛ рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рддрддреНрдХрд╛рд▓ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдпрджрд┐ рдЖрдк рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ 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>();
        // logic to return random reviews
        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 - рд╢рд┐рдерд┐рд▓ рдпреБрдЧреНрдорд┐рдд рдФрд░ рд╕реНрд╡рддрдВрддреНрд░ рдкрд░рддреЗрдВред рдЕрдиреНрдп рдкрд░рддреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдПрдХ рдкрд░рдд рдореЗрдВ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
  • рдкрд░реАрдХреНрд╖рдг рдХреНрд╖рдорддрд╛ - рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рд╕рд░рд▓ рдФрд░ рд╢реАрдШреНрд░рддрд╛ рд╕реЗ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред рдЖрдк рд╕реНрдЯрдм рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рдд рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдореЗрдореЛрд░реА рдореЗрдВ рдбреЗрдЯрд╛ рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ рдмрдирд╛рдХрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВред
  • рдЕрдиреБрдХреВрд▓рдирд╢реАрд▓рддрд╛ - рдореБрдЦреНрдп рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдмрд╛рд╣рд░реА рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдбреЛрдореЗрди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╣рдо рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреБрдХреНрдд рдПрдбрд╛рдкреНрдЯрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рдВрджрд░реНрдн



рдмрд╕ рдЗрддрдирд╛ рд╣реАред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд░рд╛рд╣ рдкрд░ !

All Articles