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

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

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

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

рдпрд╣реА рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП! рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдБ рднреА рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЗрдирдкреБрдЯ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд╕рд╛рде рдЖрдк рдЬреЛ рдЪрд╛рд╣реЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдЪреВрдВрдХрд┐ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдЕрдиреНрдп рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕реАрдзреЗ рд╕рдВрд╡рд╛рдж рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВ, рд╡реЗ рд╕реНрд╡-рдирд┐рд╣рд┐рдд рдФрд░ рдЕрд╕рдВрдмрдВрдзрд┐рдд рдореЙрдбреНрдпреВрд▓ рд╣реИрдВред
рдЕрдм рд╡реНрдпреВ рд▓реЗрдВ рдФрд░ рдЗрд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░реЗрдВ рддрд╛рдХрд┐ рдпрд╣ рдПрдХ рд╕реЗрд▓реНрдл-рдореЗрдб рдореЙрдбреНрдпреВрд▓ рднреА рд╣реЛред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рджреГрд╢реНрдп рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рд╕рд░рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рд╡рд╣ рдХреЗрд╡рд▓ рдЕрдкрдиреЗ рдЖрдВрддрд░рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓ рд╕рдХреЗред
рдХрд┐рд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдп? рдЙрдирдореЗрдВ рд╕реЗ рджреЛ рд╣реИрдВ:
- рдкреНрд░рддрд┐рдкрд╛рджрди ViewModel (рдЗрдирдкреБрдЯ);
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ (рдЖрдЙрдЯрдкреБрдЯ) рдХреЗ рдЖрдзрд╛рд░ рдкрд░ ViewEvents рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдирд╛ред
ViewModel рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд░реЗрдВ? рд╕реБрд╡рд┐рдзрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕реАрдзреЗ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдЦреАрдВрдЪрддреЗ?
- (рдЧреИрд░) рд╕реНрдХреНрд░реАрди рдкрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдбреЗрдЯрд╛ рдХрдИ рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдЖрддрд╛ рд╣реИ, рддреЛ рджреГрд╢реНрдп рдЦреБрдж рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
- рджреГрд╢реНрдп рдореЗрдВ рд░рд╛рдЬреНрдп рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред ViewModel рдореЗрдВ рдХреЗрд╡рд▓ рд░реЗрдбреА-рдЯреВ-рд╢реЛ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЗрд╕реЗ рд╕рд░рд▓ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рджреЗрдЦреЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП:
- рдпреЗ рд╕рднреА ViewModels рдХрд╣рд╛рдБ рд╕реЗ рдЖрддреЗ рд╣реИрдВ;
- рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдЬрдм ViewEvent рдЯреНрд░рд┐рдЧрд░ рд╣реЛрддрд╛ рд╣реИ;
- рдХрд┐рд╕реА рднреА рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ;
- рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рдЯреНрд░реИрдХрд┐рдВрдЧ;
- рдкреНрд░рд╡реЗрд╢;
- рдЕрдиреНрдп рдХрд╛рд░реНрдпред
рдпреЗ рд╕рднреА рдмрд╛рд╣рд░реА рдХрд╛рд░реНрдп рд╣реИрдВ, рдФрд░ рджреГрд╢реНрдп рдХреЛ рдЗрдирдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХреА рд╕рд╛рджрдЧреА рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдВ:
interface FooView : Consumer<ViewModel>, ObservableSource<Event> { data class ViewModel( val title: String, val bgColor: Int ) sealed class Event { object ButtonClicked : Event() data class TextFocusChanged(val hasFocus: Boolean) : Event() } }
рдПрдХ Android рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
- рдЙрдирдХреА рдЖрдИрдбреА рд╕реЗ Android рджреГрд╢реНрдп рдвреВрдВрдвреЗрдВред
- ViewModel рд╕реЗ рдорд╛рди рд╕реЗрдЯ рдХрд░рдХреЗ рдЙрдкрднреЛрдХреНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рд╕реНрд╡реАрдХрд╛рд░ рдкрджреНрдзрддрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВред
- рд╡рд┐рд╢рд┐рд╖реНрдЯ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпреВрдЖрдИ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реНрд░реЛрддрд╛рдУрдВ (ClickListeners) рдХреЛ рд╕реЗрдЯ рдХрд░реЗрдВред
рдПрдХ рдЙрджрд╛рд╣рд░рдг:
class FooViewImpl @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyle: Int = 0, private val events: PublishRelay<Event> = PublishRelay.create<Event>() ) : LinearLayout(context, attrs, defStyle), FooView,
рдпрджрд┐ рдлрд╝реАрдЪрд░ рдФрд░ рд╡реНрдпреВ рддрдХ рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдХреЛрдИ рдЕрдиреНрдп рдШрдЯрдХ рдХреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛:
interface GenericBlackBoxComponent : Consumer<Input>, ObservableSource<Output> { sealed class Input sealed class Output }
рдЕрдм рдкреИрдЯрд░реНрди рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИ!

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

рдпрд╣рд╛рдБ, рд╕реБрд╡рд┐рдзрд╛рдПрдБ (F) рдФрд░ рджреГрд╢реНрдп (V) рдмрд╕ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВред
рд╕рдВрдмрдВрдзрд┐рдд рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд╣реЛрдЧреА:
bind(feature to view using stateToViewModelTransformer) bind(view to feature using uiEventToWishTransformer)
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдо рдЗрд╕ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХреБрдЫ UI рдЗрд╡реЗрдВрдЯреНрд╕ рдХреА рдЯреНрд░реИрдХрд┐рдВрдЧ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
internal object AnalyticsTracker : Consumer<AnalyticsTracker.Event> { sealed class Event { object ProfileImageClicked: Event() object EditButtonClicked : Event() } override fun accept(event: AnalyticsTracker.Event) {
рдЕрдЪреНрдЫреА рдЦрдмрд░ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдореМрдЬреВрджрд╛ рдЖрдЙрдЯрдкреБрдЯ рд╡реНрдпреВ рдЪреИрдирд▓ рдХрд╛ рдлрд┐рд░ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

рдХреЛрдб рдореЗрдВ, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
bind(feature to view using stateToViewModelTransformer) bind(view to feature using uiEventToWishTransformer)
рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдмрдВрдзрди рдХреА рд╕рд┐рд░реНрдл рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдм, рд╣рдо рди рдХреЗрд╡рд▓ рдХреЛрдб рд╡реНрдпреВ рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдпрд╣ рднреА рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рдирдИ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЕрдм рдЕрддрд┐рд░рд┐рдХреНрдд рдЪрд┐рдВрддрд╛рдУрдВ рдФрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдЬрдЯрд┐рд▓ рдШрдЯрдХреЛрдВ рд╕реЗ рдмрдЪрдирд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЖрд╕рд╛рди рд╣реИред рд╡реЗ рд╕рд░рд▓ рдмрдиреЗ рд░рд╣реЗред рдЖрдк рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдореМрдЬреВрджрд╛ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╕ рдШрдЯрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
рджреВрд╕рд░рд╛ рдлрд╛рдпрджрд╛: рдмрд╛рд░-рдмрд╛рд░ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдирд╛ рдЖрд╕рд╛рди
рдлрд╝реАрдЪрд░ рдФрд░ рд╡реНрдпреВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдмрд╛рдзреНрдпрдХрд╛рд░реА рдХреЗ рд╕рд╛рде рд╕рд┐рд░реНрдл рдПрдХ рд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдЗрдирдкреБрдЯ рд╕реНрд░реЛрдд рдпрд╛ рдЖрдЙрдЯрдкреБрдЯ рдбреЗрдЯрд╛ рдХреЗ рдЙрдкрднреЛрдХреНрддрд╛ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЖрд╡реЗрджрди рдХреЗ рд╡рд┐рднрд┐рдиреНрди рднрд╛рдЧреЛрдВ рдореЗрдВ рдШрдЯрдХреЛрдВ рдХреЗ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрдХреНрд╖рд╛рдУрдВ рддрдХ рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИред рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдпрд╣ рддрд░реАрдХрд╛ рд╣рдореЗрдВ рдХрд┐рд╕реА рднреА рдЖрдХрд╛рд░ рдХреЗ рд╕реНрд╡-рдирд┐рд╣рд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдШрдЯрдХреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдХреБрдЫ рдЗрдирдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдЦреБрдж рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдХреЗ, рд╣рдореЗрдВ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдорд┐рд▓рддрд╛ рд╣реИ рдХрд┐ рд╣реБрдб рдХреЗ рддрд╣рдд рд╕рдм рдХреБрдЫ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЕрдиреНрдп рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЗ рд╕рд╛рде рдШрдЯрдХреЛрдВ рдХреЗ рдЖрдВрддрд░рд┐рдХ рд▓рд┐рдВрдХ рдХреЛ рдЧрд▓рддреА рд╕реЗ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдмрдЪрддреЗ рд╣реИрдВред рдФрд░ рдмрдВрдзрди рдХреЗ рдмрд┐рдирд╛, рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдФрд░ рдмрд╕ рдмрд╛рд░-рдмрд╛рд░ рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЦреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдЗрд╕ рдкрд░ рд▓реМрдЯреЗрдВрдЧреЗ рдФрд░ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдШрдЯрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрдХрдиреАрдХ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред
рдкрд╣рд▓рд╛ рд╕рд╡рд╛рд▓: рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХрд╣рд╛рдВ рд░рдЦреА рдЬрд╛рдП?
- рдЕрдореВрд░реНрддрддрд╛ рдХрд╛ рд╕реНрддрд░ рдЪреБрдиреЗрдВред рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдпрд╣ рдПрдХ рдЧрддрд┐рд╡рд┐рдзрд┐, рдПрдХ рдЯреБрдХрдбрд╝рд╛, рдпрд╛ рдХреБрдЫ ViewController рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдк рдЕрднреА рднреА рдЙрди рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рдЕрдореВрд░реНрдд рдХреЗ рдХреБрдЫ рд╕реНрддрд░ рд╣реИрдВ рдЬрд╣рд╛рдВ рдХреЛрдИ UI рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбрд┐ рд╕рдВрджрд░реНрдн рд╡реГрдХреНрд╖ рдХреЗ рдХреБрдЫ рд╕реНрдХреЛрдк рдореЗрдВред
- UI рдХреЗ рдЗрд╕ рднрд╛рдЧ рдХреЗ рд╕рдорд╛рди рд╕реНрддрд░ рдкрд░ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╡рд░реНрдЧ рдмрдирд╛рдПрдБред рдпрджрд┐ рдпрд╣ FooActivity, FooFragment, рдпрд╛ FooViewController рд╣реИ, рддреЛ рдЖрдк рдЗрд╕рдХреЗ рдмрдЧрд▓ рдореЗрдВ FooBindings рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред
- рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк FooBindings рдХреЛ рдЙрд╕реА рдШрдЯрдХ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдк рдЧрддрд┐рд╡рд┐рдзрд┐, рдЦрдВрдб, рдЖрджрд┐ рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВред
- рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХрд╛ рджрд╛рдпрд░рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЧрддрд┐рд╡рд┐рдзрд┐ рдпрд╛ рдЦрдВрдб рдЬреАрд╡рди рдЪрдХреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрджрд┐ рдпрд╣ рд▓реВрдк рдПрдВрдбреНрд░реЙрдЗрдб рд╕реЗ рдмрдВрдзрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЯреНрд░рд┐рдЧрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдбреАрдЖрдИ рдЧреБрдВрдЬрд╛рдЗрд╢ рдмрдирд╛ рдпрд╛ рдирд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рджреВрд╕рд░реЗ рд▓реЗрдЦ рдореЗрдВ рдЧреБрдВрдЬрд╛рдЗрд╢ рдХреЗ рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рджреВрд╕рд░рд╛ рдкреНрд░рд╢реНрди: рдкрд░реАрдХреНрд╖рдг
рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдШрдЯрдХ рдХреЛ рджреВрд╕рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдкрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЖрдорддреМрд░ рдкрд░ рд╕реНрдЯрдмреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреЗ рдШрдЯрдХ рдХреА рд╕рд╣реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЕрдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрд╕реНрдЯ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдлрд╝реАрдЪрд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ:
- рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрд┐ рдХреБрдЫ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╕реНрдерд┐рддрд┐ (рдЖрдЙрдЯрдкреБрдЯ) рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдФрд░ рджреЗрдЦреЗрдВ:
- рд╣рдо рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ ViewModel (рдЗрдирдкреБрдЯ) UI рдХреА рдЕрдкреЗрдХреНрд╖рд┐рдд рд╕реНрдерд┐рддрд┐ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ;
- рд╣рдо рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ UI рдХреЗ рд╕рд╛рде рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдХрд╛ рдЕрдиреБрдХрд░рдг рдЕрдкреЗрдХреНрд╖рд┐рдд ViewEvent (рдЖрдЙрдЯрдкреБрдЯ) рдореЗрдВ рдЖрд░рдВрднреАрдХрд░рдг рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдмреЗрд╢рдХ, рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рдмрд╛рддрдЪреАрдд рдЬрд╛рджреБрдИ рд░реВрдк рд╕реЗ рдЧрд╛рдпрдм рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рд╣рдордиреЗ рд╕рд┐рд░реНрдл рдЗрди рдШрдЯрдХреЛрдВ рд╕реЗ рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓рд╛ рд╣реИред рдЙрдиреНрд╣реЗрдВ рдЕрднреА рднреА рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкрд░ рдХрд╣рд╛рдБ?
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдмрд╛рдЗрдВрдбрд░реНрд╕ рдШрдЯрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ:
рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП:
1. рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░ (рдореИрдкрд░реНрд╕)ред
рдХреБрдЫ рдХрдиреЗрдХреНрд╢рди рдореЗрдВ рдореИрдкрд░реНрд╕ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдХрд┐ рд╡реЗ рддрддреНрд╡реЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВред рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдкрд░ рдЖрдорддреМрд░ рдкрд░ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реЛрддреЗ рд╣реИрдВ:
@Test fun testCase1() { val transformer = Transformer() val testInput = TODO() val actualOutput = transformer.invoke(testInput) val expectedOutput = TODO() assertEquals(expectedOutput, actualOutput) }
2. рд╕рдВрдЪрд╛рд░ред
рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдХрдиреЗрдХреНрд╢рди рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рд╣реИрдВред рд╡реНрдпрдХреНрддрд┐рдЧрдд рдШрдЯрдХреЛрдВ рдФрд░ рдореИрдкрд░реНрд╕ рдХреЗ рдХрд╛рдо рдореЗрдВ рдмрд┐рдВрджреБ рдХреНрдпрд╛ рд╣реИ, рдЕрдЧрд░ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЙрдирдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ? рдпрд╣ рд╕рдм рд╕реНрдЯрдмреНрд╕, рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рд╕реНрд░реЛрддреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╛рдзреНрдпрдХрд╛рд░реА рд╡рд╛рддрд╛рд╡рд░рдг рдХреА рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖ рдкрд░ рдЕрдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЬрд╛рдВрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
class BindingEnvironmentTest { lateinit var component1: ObservableSource<Component1.Output> lateinit var component2: Consumer<Component2.Input> lateinit var bindings: BindingEnvironment @Before fun setUp() { val component1 = PublishRelay.create() val component2 = mock() val bindings = BindingEnvironment(component1, component2) } @Test fun testBindings() { val simulatedOutputOnLeftSide = TODO() val expectedInputOnRightSide = TODO() component1.accept(simulatedOutputOnLeftSide) verify(component2).accept(expectedInputOnRightSide) } }
рдФрд░ рдпрджреНрдпрдкрд┐ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреЗ рд╕рд╛рде рдХреЛрдб рдХреА рд╕рдорд╛рди рдорд╛рддреНрд░рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрддреНрдордирд┐рд░реНрднрд░ рдШрдЯрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рднрд╛рдЧреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╡рд┐рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рднреЛрдЬрди
рдпрджреНрдпрдкрд┐ рдмреНрд▓реИрдХ рдмреЙрдХреНрд╕ рдХреЗ рдЧреНрд░рд╛рдл рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдорд╛рд░реА рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рд╡рд░реНрдгрди рд╕рд╛рдорд╛рдиреНрдп рд╕рдордЭ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рддрдм рддрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЖрдХрд╛рд░ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЫреЛрдЯрд╛ рд╣реЛред
рдкрд╛рдВрдЪ рд╕реЗ рдЖрда рдмрд╛рдзреНрдпрдХрд╛рд░реА рд▓рд╛рдЗрдиреЗрдВ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИрдВред рд▓реЗрдХрд┐рди, рдЕрдзрд┐рдХ рдЬреБрдбрд╝реЗ рд╣реЛрдиреЗ рдкрд░, рдпрд╣ рд╕рдордЭрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ:


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