рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ TDDред рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╛рд╕

рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░ред рдпрд╣ рд▓реЗрдЦ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг (TDD) рдкрджреНрдзрддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИред
рдореИрдВ рдХреЗрд╡рд▓ TDD рдХрд╛рд░реНрдпрдкреНрд░рдгрд╛рд▓реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд▓рд┐рдЦреВрдВрдЧрд╛, рдКрдкрд░ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред

рдкрд░реАрдХреНрд╖рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рд╣реИ рдХрд┐ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдпрд╣ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:


рдкрд░реАрдХреНрд╖рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдХрд╛рд╕

рддреЛ, рд╡рд┐рд╖рдп рдХреЗ рдХрд░реАрдмред

рддрдХрдиреАрдХреА рд╕рд╛рдзрди


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

рд╡рд╕реНрддреБрдУрдВ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛


рд╣рдо рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ 3 рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
  1. рдореВрд▓ ред рдпреЗ рд╡реЗ рдХрдХреНрд╖рд╛рдПрдВ рд╣реИрдВ рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдореВрд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреА рд╣реИрдВ, рдЬреЛ рд╕реНрдЯреЛрд░реЗрдЬ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, GoogleGears, IndexedDb, рдЖрджрд┐), рдореЙрдбреНрдпреВрд▓, рднрд╛рд╖рд╛ рдкреИрдХ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕, рдЖрджрд┐ рдХреЗ рдмреАрдЪ рдмрд╛рддрдЪреАрддред
  2. рдореЙрдбреНрдпреВрд▓ред рдпреЗ рдРрд╕реА рдХрдХреНрд╖рд╛рдПрдВ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреА рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЙрд▓ рдЗрддрд┐рд╣рд╛рд╕ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореЙрдбреНрдпреВрд▓, рдЪреИрдЯ рдореЙрдбреНрдпреВрд▓, рдЖрджрд┐)
  3. рд╕рд╣рд╛рдпрдХ рд╡рд╕реНрддреБрдПрдВ ред рдПрдХ рдЫреЛрдЯреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╡рд╛рд▓реЗ рдФрд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЫреЛрдЯреЗ рдХрд╛рд░реНрдп рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЯреВрд▓рдЯрд┐рдк, рдлрд╝реАрд▓реНрдб рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛, рдЖрджрд┐ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рд╡рд╛рд▓реА рд╡рд╕реНрддреБ)

рдмрдВрдЯрд╡рд╛рд░рд╛ рдХреНрдпреЛрдВ? рдЗрд╕рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХрд╡рд░реЗрдЬ рдХреА рдкреВрд░реНрдгрддрд╛ рд╡рд╕реНрддреБ рдХреЗ рдкреНрд░рдХрд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧреАред рдореВрд▓ рд╡рд╕реНрддреБрдПрдВ - рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ, рдореЙрдбреНрдпреВрд▓ - рд▓рдЧрднрдЧ 70%, рд╕рд╣рд╛рдпрдХ рд╡рд╕реНрддреБрдПрдВ - рдХреЗрд╡рд▓ рдПрдХ рд╡рд╕реНрддреБ рдХреЛ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЗрд╕ рдкрд░ рдмрд╛рдж рдореЗрдВ) рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреА рдЬрд╛рдВрдЪред

рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдирд╛рдордХрд░рдг


рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рд╕рдмрд╕реЗ рд╕рд░рд▓ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:
рд╕рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрдВрдЧреЗ
  1. рдЖрдзрд╛рд░ - Application_Core_ObjectName
  2. рдореЙрдбреНрдпреВрд▓ - Application_Module_ModuleName
  3. рд╣реЗрд▓реНрдкрд░ рдСрдмреНрдЬреЗрдХреНрдЯ - Application_Helper_ModuleName (рдпрджрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ) _Objecterame

рдирд╛рдордХрд░рдг рдХреЗ рдХрдИ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рддрд░реАрдХреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдФрд░ рд╡реИрд╢реНрд╡рд┐рдХ рджрд╛рдпрд░реЗ рд╕реЗ рдирд╛рдо рдЫрд┐рдкрд╛рдирд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд▓реЗрдЦ рдЙрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИред

рд╡рд╕реНрддреБ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди


рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд╕рдВрдж рд╣реИ "рд╕рд░рд▓ рдЬрдЯрд┐рд▓ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ" (рд╕реА), рдлрд┐рд░ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЯреАрдбреАрдбреА рдкрджреНрдзрддрд┐ рдХреЗ рдЕрдиреБрд░реВрдк рд╕рд░рд▓ рдФрд░ (рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг!) рд╣реЛрдЧрд╛:

рдмреЗрд╕ рдФрд░ рдореЙрдбреНрдпреВрд▓
function Application_Core_FuncName() {

this .publicMethod = function () {
}

this ._privateMethod = function () {
}

}


* This source code was highlighted with Source Code Highlighter .
function Application_Core_FuncName() {

this .publicMethod = function () {
}

this ._privateMethod = function () {
}

}


* This source code was highlighted with Source Code Highlighter .
function Application_Core_FuncName() {

this .publicMethod = function () {
}

this ._privateMethod = function () {
}

}


* This source code was highlighted with Source Code Highlighter .



рд╕рд╣рд╛рдпрдХ рд╡рд╕реНрддреБрдПрдВ
var Application_Helper_HelperName = {
init: function () {
},

publicMethod: function () {
},

_privateMethod: function () {
}
};


* This source code was highlighted with Source Code Highlighter .
var Application_Helper_HelperName = {
init: function () {
},

publicMethod: function () {
},

_privateMethod: function () {
}
};


* This source code was highlighted with Source Code Highlighter .
var Application_Helper_HelperName = {
init: function () {
},

publicMethod: function () {
},

_privateMethod: function () {
}
};


* This source code was highlighted with Source Code Highlighter .


рдРрд╕рд╛ рдХреНрдпреЛрдВ? рдЖрдЗрдП рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрдпрд╛рди рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ: рдЖрд╡реЗрджрди рдХреЛ рдЯреАрдбреАрдбреА рдкрджреНрдзрддрд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЕрд░реНрдерд╛рддред рдЖрдкрдХреЛ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдирд┐рдЬреА рд╡рд░реНрдЧ рдХреЗ рддрд░реАрдХреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдирд┐рдЬреА рддрд░реАрдХреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрдИ рд░рд╛рдп рд╣реИрдВред рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ)ред рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдирдХреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдПрдХ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рдзрд┐ рдирд┐рдЬреА рд╣реИ (рдХрдИ рдЖрдИрдбреАрдИ рдЗрд╕реЗ рдЙрдкрд▓рдмреНрдз рддрд░реАрдХреЛрдВ рдХреЗ рд╕рдВрдХреЗрдд рдореЗрдВ рдирд╣реАрдВ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ), рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд┐рдзрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ - рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ, рдХрд╣рдиреЗ рдкрд░ рддреНрд░реБрдЯрд┐ рдХреЛ рдирд╣реАрдВ рдлреЗрдВрдХрд╛ рдЬрд╛рдПрдЧрд╛, Application_Helper_HelperName._privateMethod() ред

рдбрд┐рдЬрд╝рд╛рдЗрди


рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдореЗрдВ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╣рд╛рдпрдХ рдореЙрдбреНрдпреВрд▓ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдЙрддреНрдкрдиреНрди HTML рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЪрд▓реЛ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:

module( "User Info" );

test( "main" , function () {
equals( typeof (Application_Helper_UserInfo), "object" , "Check object" );
})


* This source code was highlighted with Source Code Highlighter .
module( "User Info" );

test( "main" , function () {
equals( typeof (Application_Helper_UserInfo), "object" , "Check object" );
})


* This source code was highlighted with Source Code Highlighter .
module( "User Info" );

test( "main" , function () {
equals( typeof (Application_Helper_UserInfo), "object" , "Check object" );
})


* This source code was highlighted with Source Code Highlighter .


рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдПрдВред

рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ рдРрд╕реА рдХреЛрдИ рд╡рд╕реНрддреБ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред
рдХреЛрдИ рд╡рд╕реНрддреБ рдмрдирд╛рдПрдБ

var Application_Helper_UserInfo = {

};


* This source code was highlighted with Source Code Highlighter .
var Application_Helper_UserInfo = {

};


* This source code was highlighted with Source Code Highlighter .
var Application_Helper_UserInfo = {

};


* This source code was highlighted with Source Code Highlighter .


рдЯреЗрд╕реНрдЯ рдкрд╛рд╕ рдХрд░ рд▓рд┐рдпрд╛, рдЕрдЧрд▓реЗ рдЯреЗрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирд╛ред
рдпрд╣ рд╡рд╕реНрддреБ рд╕рд╣рд╛рдпрдХ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдЕрд░реНрдерд╛рддреНред рдкрд░реАрдХреНрд╖рдг рдХреЗрд╡рд▓ рдкрд░рд┐рдгрд╛рдо рдФрд░ рдбрд┐рдЬрд╛рдЗрди рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЯреАрдбреАрдбреА рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдХреНрдпрд╛ рд╣реИ? рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдХрдХреНрд╖рд╛ рдХреЗ рддрд░реАрдХреЛрдВ рдФрд░ рдЙрдирдХреА рдмрд╛рддрдЪреАрдд рдХрд╛ рд╡рд┐рд╡рд░рдг рд╣реИред

module( "User Info" );

test( "main" , function () {
equals( typeof (Application_Helper_UserInfo), "object" , "Check object" );

equals(Application_Helper_UserInfo.hasOwnProperty( "getHTML" ), true , "Check existing method getHTML" );

});


* This source code was highlighted with Source Code Highlighter .
module( "User Info" );

test( "main" , function () {
equals( typeof (Application_Helper_UserInfo), "object" , "Check object" );

equals(Application_Helper_UserInfo.hasOwnProperty( "getHTML" ), true , "Check existing method getHTML" );

});


* This source code was highlighted with Source Code Highlighter .
module( "User Info" );

test( "main" , function () {
equals( typeof (Application_Helper_UserInfo), "object" , "Check object" );

equals(Application_Helper_UserInfo.hasOwnProperty( "getHTML" ), true , "Check existing method getHTML" );

});


* This source code was highlighted with Source Code Highlighter .


рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди:
var Application_Helper_UserInfo = {

getHTML: function () {
}

};


* This source code was highlighted with Source Code Highlighter .
var Application_Helper_UserInfo = {

getHTML: function () {
}

};


* This source code was highlighted with Source Code Highlighter .
var Application_Helper_UserInfo = {

getHTML: function () {
}

};


* This source code was highlighted with Source Code Highlighter .



рдкреНрд░рд▓реЗрдЦрди рдкрд░ рдЖрдЧреЗ рдпрд╣ рджреЗрдЦрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬрд╛рдирдХрд╛рд░реА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: рдлрд╝реЛрдЯреЛ, рдирд╛рдо рдФрд░ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реАред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЗрд╕ рддрд░рд╣ рд╕реЗ рдбрд┐рдЬрд╛рдЗрди рдХрд░реЗрдВрдЧреЗ:

module( "User Info" );

test( "main" , function () {
equals( typeof (Application_Helper_UserInfo), "object" , "Check object" );

equals(Application_Helper_UserInfo.hasOwnProperty( "getHTML" ), true , "Check existing method getHTML" );

equals(Application_Helper_UserInfo.hasOwnProperty( "_getPhoto" ), true , "Check existing private method _getPhoto" );

equals(Application_Helper_UserInfo.hasOwnProperty( "_getUsername" ), true , "Check existing private method _getUsername" );

equals(Application_Helper_UserInfo.hasOwnProperty( "_getInfo" ), true , "Check existing method _getInfo" );

});


* This source code was highlighted with Source Code Highlighter .
module( "User Info" );

test( "main" , function () {
equals( typeof (Application_Helper_UserInfo), "object" , "Check object" );

equals(Application_Helper_UserInfo.hasOwnProperty( "getHTML" ), true , "Check existing method getHTML" );

equals(Application_Helper_UserInfo.hasOwnProperty( "_getPhoto" ), true , "Check existing private method _getPhoto" );

equals(Application_Helper_UserInfo.hasOwnProperty( "_getUsername" ), true , "Check existing private method _getUsername" );

equals(Application_Helper_UserInfo.hasOwnProperty( "_getInfo" ), true , "Check existing method _getInfo" );

});


* This source code was highlighted with Source Code Highlighter .
module( "User Info" );

test( "main" , function () {
equals( typeof (Application_Helper_UserInfo), "object" , "Check object" );

equals(Application_Helper_UserInfo.hasOwnProperty( "getHTML" ), true , "Check existing method getHTML" );

equals(Application_Helper_UserInfo.hasOwnProperty( "_getPhoto" ), true , "Check existing private method _getPhoto" );

equals(Application_Helper_UserInfo.hasOwnProperty( "_getUsername" ), true , "Check existing private method _getUsername" );

equals(Application_Helper_UserInfo.hasOwnProperty( "_getInfo" ), true , "Check existing method _getInfo" );

});


* This source code was highlighted with Source Code Highlighter .


рд╣рдо рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ - рдирдП рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рдирд╣реАрдВ рд╣реБрдПред


рд╣рдо рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВред

var Application_Helper_UserInfo = {

getHTML: function () {
},

_getPhoto: function () {
},

_getUsername: function () {
},

_getInfo: function () {
}
};


* This source code was highlighted with Source Code Highlighter .
var Application_Helper_UserInfo = {

getHTML: function () {
},

_getPhoto: function () {
},

_getUsername: function () {
},

_getInfo: function () {
}
};


* This source code was highlighted with Source Code Highlighter .
var Application_Helper_UserInfo = {

getHTML: function () {
},

_getPhoto: function () {
},

_getUsername: function () {
},

_getInfo: function () {
}
};


* This source code was highlighted with Source Code Highlighter .


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

module( "User Info" );

test( "main" , function () {
equals( typeof (Application_Helper_UserInfo), "object" , "Check object" );

equals(Application_Helper_UserInfo.hasOwnProperty( "getHTML" ), true , "Check existing method getHTML" );

equals(Application_Helper_UserInfo.hasOwnProperty( "_getPhoto" ), true , "Check existing private method _getPhoto" );

equals(Application_Helper_UserInfo.hasOwnProperty( "_getUsername" ), true , "Check existing private method _getUsername" );

equals(Application_Helper_UserInfo.hasOwnProperty( "_getInfo" ), true , "Check existing method _getInfo" );

var mockUserInfo = {
username: 'Name' ,
photo: 'photo.png' ,
info: 'Information'
};

var photo = Application_Helper_UserInfo._getPhoto.call(mockUserInfo);

equals(photo, 'photo.png' , 'Checking photo' );

var username = Application_Helper_UserInfo._getUsername.call(mockUserInfo);

equals(username, 'Name' , 'Checking username' );

var info = Application_Helper_UserInfo._getInfo.call(mockUserInfo);

equals(info, 'Information' , 'Checking information' );
});


* This source code was highlighted with Source Code Highlighter .
module( "User Info" );

test( "main" , function () {
equals( typeof (Application_Helper_UserInfo), "object" , "Check object" );

equals(Application_Helper_UserInfo.hasOwnProperty( "getHTML" ), true , "Check existing method getHTML" );

equals(Application_Helper_UserInfo.hasOwnProperty( "_getPhoto" ), true , "Check existing private method _getPhoto" );

equals(Application_Helper_UserInfo.hasOwnProperty( "_getUsername" ), true , "Check existing private method _getUsername" );

equals(Application_Helper_UserInfo.hasOwnProperty( "_getInfo" ), true , "Check existing method _getInfo" );

var mockUserInfo = {
username: 'Name' ,
photo: 'photo.png' ,
info: 'Information'
};

var photo = Application_Helper_UserInfo._getPhoto.call(mockUserInfo);

equals(photo, 'photo.png' , 'Checking photo' );

var username = Application_Helper_UserInfo._getUsername.call(mockUserInfo);

equals(username, 'Name' , 'Checking username' );

var info = Application_Helper_UserInfo._getInfo.call(mockUserInfo);

equals(info, 'Information' , 'Checking information' );
});


* This source code was highlighted with Source Code Highlighter .
module( "User Info" );

test( "main" , function () {
equals( typeof (Application_Helper_UserInfo), "object" , "Check object" );

equals(Application_Helper_UserInfo.hasOwnProperty( "getHTML" ), true , "Check existing method getHTML" );

equals(Application_Helper_UserInfo.hasOwnProperty( "_getPhoto" ), true , "Check existing private method _getPhoto" );

equals(Application_Helper_UserInfo.hasOwnProperty( "_getUsername" ), true , "Check existing private method _getUsername" );

equals(Application_Helper_UserInfo.hasOwnProperty( "_getInfo" ), true , "Check existing method _getInfo" );

var mockUserInfo = {
username: 'Name' ,
photo: 'photo.png' ,
info: 'Information'
};

var photo = Application_Helper_UserInfo._getPhoto.call(mockUserInfo);

equals(photo, 'photo.png' , 'Checking photo' );

var username = Application_Helper_UserInfo._getUsername.call(mockUserInfo);

equals(username, 'Name' , 'Checking username' );

var info = Application_Helper_UserInfo._getInfo.call(mockUserInfo);

equals(info, 'Information' , 'Checking information' );
});


* This source code was highlighted with Source Code Highlighter .



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

var Application_Helper_UserInfo = {

getHTML: function () {
},

_getPhoto: function () {

return this .photo;
},

_getUsername: function () {

return this .username;
},

_getInfo: function () {

return this .info;
}
};


* This source code was highlighted with Source Code Highlighter .
var Application_Helper_UserInfo = {

getHTML: function () {
},

_getPhoto: function () {

return this .photo;
},

_getUsername: function () {

return this .username;
},

_getInfo: function () {

return this .info;
}
};


* This source code was highlighted with Source Code Highlighter .
var Application_Helper_UserInfo = {

getHTML: function () {
},

_getPhoto: function () {

return this .photo;
},

_getUsername: function () {

return this .username;
},

_getInfo: function () {

return this .info;
}
};


* This source code was highlighted with Source Code Highlighter .


рдХреНрдпреЛрдВрдХрд┐ рдЪреВрдВрдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рд╣рд╛рдпрдХ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдирд┐рдЬреА рддрд░реАрдХреЛрдВ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рд▓рд┐рдЦреЗ рдЬрд╛рдПрдВрдЧреЗред рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИ рдЬреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ getHTML рд╡рд┐рдзрд┐ред

module( "User Info" );

test( "main" , function () {
equals( typeof (Application_Helper_UserInfo), "object" , "Check object" );

equals(Application_Helper_UserInfo.hasOwnProperty( "getHTML" ), true , "Check existing method getHTML" );

equals(Application_Helper_UserInfo.hasOwnProperty( "_getPhoto" ), true , "Check existing private method _getPhoto" );

equals(Application_Helper_UserInfo.hasOwnProperty( "_getUsername" ), true , "Check existing private method _getUsername" );

equals(Application_Helper_UserInfo.hasOwnProperty( "_getInfo" ), true , "Check existing method _getInfo" );

var mockUserInfo = {
username: 'Name' ,
photo: 'photo.png' ,
info: 'Information'
};

var photo = Application_Helper_UserInfo._getPhoto.call(mockUserInfo);

equals(photo, 'photo.png' , 'Checking photo' );

var username = Application_Helper_UserInfo._getUsername.call(mockUserInfo);

equals(username, 'Name' , 'Checking username' );

var info = Application_Helper_UserInfo._getInfo.call(mockUserInfo);

equals(info, 'Information' , 'Checking information' );

var html = Application_Helper_UserInfo.getHTML.call(mockUserInfo);

if (html != undefined && html.indexOf( 'id="application_helper_userinfo"' ) != -1 && html.indexOf( 'Name' ) != -1 && html.indexOf( 'photo.png' ) != -1 && html.indexOf( 'Information' ) != -1) {

ok( true , "HTML ok" );

} else {
ok( false , "HTML does not pass" );
}

});


* This source code was highlighted with Source Code Highlighter .
module( "User Info" );

test( "main" , function () {
equals( typeof (Application_Helper_UserInfo), "object" , "Check object" );

equals(Application_Helper_UserInfo.hasOwnProperty( "getHTML" ), true , "Check existing method getHTML" );

equals(Application_Helper_UserInfo.hasOwnProperty( "_getPhoto" ), true , "Check existing private method _getPhoto" );

equals(Application_Helper_UserInfo.hasOwnProperty( "_getUsername" ), true , "Check existing private method _getUsername" );

equals(Application_Helper_UserInfo.hasOwnProperty( "_getInfo" ), true , "Check existing method _getInfo" );

var mockUserInfo = {
username: 'Name' ,
photo: 'photo.png' ,
info: 'Information'
};

var photo = Application_Helper_UserInfo._getPhoto.call(mockUserInfo);

equals(photo, 'photo.png' , 'Checking photo' );

var username = Application_Helper_UserInfo._getUsername.call(mockUserInfo);

equals(username, 'Name' , 'Checking username' );

var info = Application_Helper_UserInfo._getInfo.call(mockUserInfo);

equals(info, 'Information' , 'Checking information' );

var html = Application_Helper_UserInfo.getHTML.call(mockUserInfo);

if (html != undefined && html.indexOf( 'id="application_helper_userinfo"' ) != -1 && html.indexOf( 'Name' ) != -1 && html.indexOf( 'photo.png' ) != -1 && html.indexOf( 'Information' ) != -1) {

ok( true , "HTML ok" );

} else {
ok( false , "HTML does not pass" );
}

});


* This source code was highlighted with Source Code Highlighter .
module( "User Info" );

test( "main" , function () {
equals( typeof (Application_Helper_UserInfo), "object" , "Check object" );

equals(Application_Helper_UserInfo.hasOwnProperty( "getHTML" ), true , "Check existing method getHTML" );

equals(Application_Helper_UserInfo.hasOwnProperty( "_getPhoto" ), true , "Check existing private method _getPhoto" );

equals(Application_Helper_UserInfo.hasOwnProperty( "_getUsername" ), true , "Check existing private method _getUsername" );

equals(Application_Helper_UserInfo.hasOwnProperty( "_getInfo" ), true , "Check existing method _getInfo" );

var mockUserInfo = {
username: 'Name' ,
photo: 'photo.png' ,
info: 'Information'
};

var photo = Application_Helper_UserInfo._getPhoto.call(mockUserInfo);

equals(photo, 'photo.png' , 'Checking photo' );

var username = Application_Helper_UserInfo._getUsername.call(mockUserInfo);

equals(username, 'Name' , 'Checking username' );

var info = Application_Helper_UserInfo._getInfo.call(mockUserInfo);

equals(info, 'Information' , 'Checking information' );

var html = Application_Helper_UserInfo.getHTML.call(mockUserInfo);

if (html != undefined && html.indexOf( 'id="application_helper_userinfo"' ) != -1 && html.indexOf( 'Name' ) != -1 && html.indexOf( 'photo.png' ) != -1 && html.indexOf( 'Information' ) != -1) {

ok( true , "HTML ok" );

} else {
ok( false , "HTML does not pass" );
}

});


* This source code was highlighted with Source Code Highlighter .


рд╡рд╣ рд╕рдм рд╣реИред рдЧреИрд░-рдореМрдЬреВрдж рдорд╛рдкрджрдВрдбреЛрдВ, рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХреА рдЬрд╛рдПрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рд╣рд╛рдпрдХ рд╣реИ, рдмреЗрд╕ рдХрдХреНрд╖рд╛рдУрдВ рдпрд╛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП, рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ рдЬреЛ рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рдмрд╛рд░-рдмрд╛рд░ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, DOM рдЯреНрд░реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реА рддрд░рд╣ред

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

var Application_Helper_UserInfo = {

getHTML: function () {
var html = '<div id="application_helper_userinfo">' ;
html += '<div>' + Application_Helper_UserInfo._getPhoto.call( this ) + '</div>' ;
html += '<div>' + Application_Helper_UserInfo._getUsername.call( this ) + '</div>' ;
html += '<div>' + Application_Helper_UserInfo._getInfo.call( this ) + '</div>' ;
html += '</div>' ;
return html;
},

_getPhoto: function () {

return this .photo;
},

_getUsername: function () {

return this .username;
},

_getInfo: function () {

return this .info;
}
};


* This source code was highlighted with Source Code Highlighter .
var Application_Helper_UserInfo = {

getHTML: function () {
var html = '<div id="application_helper_userinfo">' ;
html += '<div>' + Application_Helper_UserInfo._getPhoto.call( this ) + '</div>' ;
html += '<div>' + Application_Helper_UserInfo._getUsername.call( this ) + '</div>' ;
html += '<div>' + Application_Helper_UserInfo._getInfo.call( this ) + '</div>' ;
html += '</div>' ;
return html;
},

_getPhoto: function () {

return this .photo;
},

_getUsername: function () {

return this .username;
},

_getInfo: function () {

return this .info;
}
};


* This source code was highlighted with Source Code Highlighter .
var Application_Helper_UserInfo = {

getHTML: function () {
var html = '<div id="application_helper_userinfo">' ;
html += '<div>' + Application_Helper_UserInfo._getPhoto.call( this ) + '</div>' ;
html += '<div>' + Application_Helper_UserInfo._getUsername.call( this ) + '</div>' ;
html += '<div>' + Application_Helper_UserInfo._getInfo.call( this ) + '</div>' ;
html += '</div>' ;
return html;
},

_getPhoto: function () {

return this .photo;
},

_getUsername: function () {

return this .username;
},

_getInfo: function () {

return this .info;
}
};


* This source code was highlighted with Source Code Highlighter .





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

рдЯреАрдбреАрдбреА рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рд╕рдордп рд▓рдЧрднрдЧ 40% рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдИ рдмрд╛рд░ рдмрдЧ рдлрд┐рдХреНрд╕рд┐рдВрдЧ рдХреЗ рд╕рдордп рдХреЛ рдХрдо рдХрд░ рджреЗрддрд╛ рд╣реИред рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдФрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рдЕрдзрд┐рдХ рд╕реНрдерд┐рд░ рдФрд░ рд╕реБрд╕рдВрдЧрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХреНрдпреВрдП рдХреЗрд╡рд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдмрд╕ рдЖрдЬ, рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рджреЛ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ - рдПрдХ рдЯреАрдбреАрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рджреВрд╕рд░рд╛ рдмрд┐рдирд╛ред рдкрд░рд┐рдгрд╛рдо рдЯреАрдбреАрдбреА рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдмреЛрд▓рддрд╛ рд╣реИ - рдкрд╣рд▓реЗ рдХреНрдпреВрдП рдореЙрдбреНрдпреВрд▓ рдореЗрдВ IE9 рдореЗрдВ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдХреЗрд╡рд▓ рдЫреЛрдЯреА рд╕рдорд╕реНрдпрд╛рдПрдВ рдорд┐рд▓реАрдВ, рд▓реЗрдХрд┐рди рджреВрд╕рд░реЗ рдореЗрдВ - рдПрдХ рдЕрдкреНрд░рд┐рдп рдмрдЧ рдЬрд┐рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди 100% рдкрддрд╛ рдЪрд▓рд╛ рд╣реЛрдЧрд╛ред

рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рднреА рдПрдХ рдЬрд░реВрд░реА рд╕рдорд╕реНрдпрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдбрд┐рдЬрд╛рдЗрди рдХреА рдХрдореА рд╣реИред рдпрджрд┐ рдХрд╛рд░реНрдп рд╕рд░рд▓ рд▓рдЧрддрд╛ рд╣реИ, рддреЛ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд╕рдордп рдХреА рдмрд░реНрдмрд╛рджреА рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдХрдИ рддреБрд░рдВрдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдбрд┐рдЬрд╛рдЗрдирд┐рдВрдЧ рдмрдврд╝рд┐рдпрд╛ рд╣реИред рдХрдИ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рдЬрд╣рд╛рдВ рдЕрдкрдирд╛ рдЕрдВрддрд┐рдо рдХреЛрдб рджрд┐рдЦрд╛рдирд╛ рд╢рд░реНрдордирд╛рдХ рд╣реИ, рдкреВрд░реНрд╡ рдбрд┐рдЬрд╛рдЗрди рд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛ред

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

рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдлрд┐рд░ рдорд┐рд▓рддреЗ рд╣реИрдВред

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


All Articles