рдкреГрд╖реНрда рдСрдмреНрдЬреЗрдХреНрдЯ: рдПрдХ рддрдХрдиреАрдХ рдХрд╛ рд╡рд░реНрдгрди

рд╣реИрд▓реЛ, рдЦрдмреНрд░реЛрд╡рд┐рдЯреНрд╕ред

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

рдореЗрд░реА рдХрд╣рд╛рдиреА рдЫреЛрдЯреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп PageObject.js (рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг v0.14, 2.6K) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдФрд░ рдЕрдкрдиреЗ рдЬреАрд╡рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВред

рдпрд╣ рдПрдХ jQuery рдкреНрд▓рдЧрдЗрди рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдХрдИ рд▓реЛрдЧ рдЗрд╕реЗ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рд╣реИ рдЬреЛ рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рдХреЛрдб рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдФрд░ рдХреБрдЫ jQuery рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдПрдХ рд╕рд░рд▓ jQuery рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИред

рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХрд╛ рд╕рд╛рд░


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

function Calculator() { if (this.constructor.name !== 'Calculator') { throw тАЬNo way, buddy!тАЭ; } // 1.   // 2.    // 3.   // 4.   } 

PageObject.js рдкрд╣рд▓реЗ рджреЛ рдЪрд░рдгреЛрдВ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред

 function Calculator() { if (this.constructor.name !== 'Calculator') { throw тАЬNo way, buddy!тАЭ; } var calc = this; $.turnToPageObject(calc, { template: $('#tmplCalculator').html(), containerClass: 'calc', context: { caption: "Calculator" }, selectors: { buttons: [ ':button', Calculator.getButtonName ], led: 'p' } }); // 3.   // 4.   } var calc = new Calculator; $('body').append(calc.DOM.container); 

$.turnToPageObject рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрд╛рдж рдХрд╛рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ("рдПрдХ рдкреГрд╖реНрда рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдмрджрд▓ рдЬрд╛рдП"), calc рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ calc.DOM рд╕рдВрдкрддреНрддрд┐ рд╣реЛрдЧреА - DOM рддрддреНрд╡реЛрдВ рд╕реЗ рднрд░реЗ рдирд╛рдорд╕реНрдерд╛рди рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдВрдЧреЗ, рдФрд░ calc.DOM.container рднреА рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╡рд╣ рд╣рд┐рд╕реНрд╕рд╛ рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдореНрдмреЗрдбреЗрдб рд╣реИ, рд╡рд╣ рд╕рдм рдХреБрдЫ рдХрд╛ рдПрдХ рдХрдВрдЯреЗрдирд░ рд╣реИред

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

$ .turnToPageObject


рдкрд╣рд▓рд╛ рддрд░реНрдХ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдмрд╛рдж рдореЗрдВ рд╕рдордЧреНрд░ рдПрдЪрдЯреАрдПрдордПрд▓ рддрддреНрд╡реЛрдВ рд╕реЗ рднрд░реЗ DOM рдиреЗрдорд╕реНрдкреЗрд╕ рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рджреВрд╕рд░рд╛ рддрд░реНрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИред

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

рдпрджрд┐ рдЖрдк рдХрдВрдЯреЗрдирд░рдХреНрд▓рд╛рд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХрдВрдЯреЗрдирд░ рдХреЛ рдПрдХ рд╡рд░реНрдЧ рд╕реМрдВрдкрд╛ рдЬрд╛рдПрдЧрд╛ред

рдпрджрд┐ рдЖрдк template рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ template рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЙрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред

рдпрджрд┐ рдЖрдк context рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдЦрд╛рд▓реА рд╕рдВрджрд░реНрдн {} рдХреЗ рд╕рд╛рде рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

template рдпрд╛ рддреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ( Jammit JST рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг)ред

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

рдЬрдм template рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ templateEngine , рдЬреЛ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рд╣реЛрдиреЗ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ _.template рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреВрдХ рдЬрд╛рддрд╛ рд╣реИ ред

рдпрджрд┐ рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдкрдХреЛ templateEngine рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

 //    : $.turnToPageObject.configure({ templateEngine: window.tmpl, // http://ejohn.org/blog/javascript-micro-templating containerElement: 'strong' }); 

templateEngine рджреЛ рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИ - рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдФрд░ рд╕рдВрджрд░реНрдн - рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рднреА рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрджрд┐ hide рд╡рд┐рдХрд▓реНрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХрдВрдЯреЗрдирд░ рдЫрд┐рдкрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рдЕрдХреНрд╕рд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрддрд╛ рд╣реИред

рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рдЪрдпрдирдХрд░реНрддрд╛ред рдпрджрд┐ рдЖрдк selectors рд╡рд┐рдХрд▓реНрдк (рдСрдмреНрдЬреЗрдХреНрдЯ) рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрдВрдЯреЗрдирд░ рдХреА рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рдкрд╛рдП рдЧрдП HTML рддрддреНрд╡реЛрдВ рдХреЛ DOM рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рдЙрд╕реА рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ template рд╡рд┐рдХрд▓реНрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдЪрдпрдирдХрд░реНрддрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдЦреЛрдЬ рдХрд░реЗрдВрдЧреЗред

рдпрджрд┐ рдЪрдпрдирдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдХреЛрдИ рддрддреНрд╡ рдирд╣реАрдВ рдорд┐рд▓рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдЪреАрдЦ рд╣реЛрдЧреАред
рдпрджрд┐ рдЪрдпрдирдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рддрддреНрд╡ рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдЕрдкрд╡рд╛рдж рднреА рд╣реЛрдЧрд╛ред
рдпрджрд┐ рдЖрдкрдХреЛ рдЕрднреА рднреА рдЪрдпрдирдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рддрддреНрд╡реЛрдВ рдХреЛ рдвреВрдВрдврдиреЗ рдФрд░ рд╕рд░рдгреА рдореЗрдВ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЪрдпрдирдХрд░реНрддрд╛ рдореВрд▓реНрдп рдореЗрдВ [] (рдЦрд╛рд▓реА рд╡рд░реНрдЧ рдХреЛрд╖реНрдардХ) рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдпрд╣ рдЪрдпрди рд╕реНрд╡рдпрдВ рдХреЛ рд╕рд╣реА рдард╣рд░рд╛рддрд╛ рд╣реИред

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

рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдирд╛рдорд╕реНрдерд╛рди DOM рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдЕрдВрджрд░ рд╕рдорд╛рди рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдирд╛рдо рд╕реНрдерд╛рди рдмрдирд╛рддреЗ рд╣реИрдВред

рд╢рд╛рдпрдж рдпрд╣реА рд╕рдм рд╣реИред

рдЖрдк рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдкрдврд╝рдХрд░ рдФрд░ рдЧреАрдердм рдкрд░ рд╕реНрд░реЛрдд рдХреЛ рджреЗрдЦрдХрд░ рдпрд╣ рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рдФрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рд▓реЗрдЦрди рднреА рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

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

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


All Articles