рдПрдХ рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ: рдпрд╣ рдореЛрдЬрд╝рд┐рд▓рд╛ рдЖрдЗрдбреЗрдВрдЯрд┐рдЯреА рдЯреАрдо рд╕реЗ Node.js рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рджреВрд╕рд░рд╛ рд▓реЗрдЦ рд╣реИ, рдЬреЛ рдкрд░реНрд╕реЛрдирд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрд╣ рд▓реЗрдЦ рдлрд┐рд▓рд╛рдбреЗрд▓реНрдлрд┐рдпрд╛ рдореЗрдВ рдиреЛрдб рдлрд┐рд▓рд┐ 2012 рдореЗрдВ рд▓реЙрдпрдб рд╣рд┐рд▓рд┐рдпрд▓ рдХреЗ рдПрдХ рднрд╛рд╖рдг рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред
рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд╕рднреА рд▓реЗрдЦ:
Node.js рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдПрдХрд▓ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рдкрд░ рдЪрд▓рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдиреЛрдб рдкрд░ рдПрдХ рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╕рд░реНрд╡рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рджреЗрдЦрднрд╛рд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рджреЗрд╢реА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдХреЗ рдПрдХ рд╕реБрд╡рд┐рдЪрд╛рд░рд┐рдд рд╕реЗрдЯ рд▓рд┐рдЦрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рдХрд╛рд░рдг, рдиреЛрдб рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╣реИрдВред рд╣рдо рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЙрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдХрдореНрдкреНрдпреВрдЯ-рдХреНрд▓рд╕реНрдЯрд░ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкреЗрд╢ рдХрд░реЗрдВрдЧреЗ - рдПрдХ рдЫреЛрдЯрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬреЛ рд╡рд┐рддрд░рд┐рдд рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреА рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдмрдпрд╛рди
рд╡реНрдпрдХреНрддрд┐рддреНрд╡ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ рдРрд╕рд╛ рд╕рд░реНрд╡рд░ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдорд┐рд╢реНрд░рд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрдИ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕рдВрднрд╛рд▓ рд╕рдХреЗред рд╣рдордиреЗ рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП Node.js. рдХреЛ рдЪреБрдирд╛ред рд╣рдореЗрдВ рджреЛ рдореБрдЦреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдерд╛: "рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡", рдЬрд┐рд╕реЗ рдЬрдЯрд┐рд▓ рдЧрдгрдирд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереА рдФрд░ рдЗрд╕реЗ рдЬрд▓реНрджреА рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдерд╛ рддрд╛рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЙрддреНрддрд░рджрд╛рдпреА рд╣реЛ, рдФрд░ "рдмреИрдЪ", рдЬрд┐рд╕рдореЗрдВ рд▓рдЧрднрдЧ рдЖрдзреЗ рд╕реЗрдХрдВрдб рдХрд╛ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдордп рд▓рдЧреЗ рдФрд░ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдмрд┐рдирд╛ рдиреБрдХрд╕рд╛рди рдХреЗ рджреЗрд░реА рд╣реЛ рд╕рдХрддреА рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдПред
рд╕рд░реНрд╡реЛрддреНрддрдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреА рдЦреЛрдЬ рдореЗрдВ, рд╣рдордиреЗ рд▓рдВрдмреЗ рдФрд░ рдзреНрдпрд╛рди рд╕реЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рдпреЛрдЬреНрдп рдФрд░ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреА рд▓рд╛рдЧрдд рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЕрдВрдд рдореЗрдВ рдЪрд╛рд░ рдмреБрдирд┐рдпрд╛рджреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
- рд╕рдВрддреГрдкреНрддрд┐ ред рд╣рдорд╛рд░рд╛ рд╕рдорд╛рдзрд╛рди рд╕рднреА рдЙрдкрд▓рдмреНрдз рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛ред
- рдЬрд╡рд╛рдмрджрд╛рд░реА ред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЙрддреНрддрд░рджрд╛рдпреА рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдореЗрд╢рд╛ред
- рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ ред рдЬрдм рд▓реЛрдб рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдЖрдо рддреМрд░ рдкрд░ рдЬрд┐рддрдиреЗ рдЧреНрд░рд╛рд╣рдХ рдмрди рд╕рдХрддреЗ рд╣реИрдВ, рдЙрддрдиреЗ рдХрд╛рдо рдХрд░рдиреЗ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдмрд╛рдХреА рдХреЛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
- рд╕рд╛рджрдЧреА ред рд╕рдорд╛рдзрд╛рди рдЖрд╕рд╛рдиреА рд╕реЗ рдФрд░ рдзреАрд░реЗ-рдзреАрд░реЗ рдкрд╣рд▓реЗ рд╕реЗ рдЪрд▓ рд░рд╣реЗ рд╕рд░реНрд╡рд░ рдореЗрдВ рдПрдХреАрдХреГрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрди рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рд╢рд╕реНрддреНрд░, рд╣рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рд╕рд╛рд░реНрдердХ рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕рдВрдЦреНрдпрд╛ резред рдмрд╕ рдореБрдЦреНрдп рд╕реВрддреНрд░ рдореЗрдВ рд╕рдм рдХреБрдЫ рдХрд░ рд░рд╣рд╛ рд╣реИ
рдЬрдм рдореБрдЦреНрдп рдереНрд░реЗрдб рдореЗрдВ рднрд╛рд░реА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдкрд░рд┐рдгрд╛рдо рднрдпрд╛рдирдХ рд╣реЛрддрд╛ рд╣реИред рдХреЛрдИ рд╕рдВрддреГрдкреНрддрд┐ рдирд╣реАрдВ рд╣реИ - рдХреЗрд╡рд▓ рдПрдХ рдХреЛрд░ рднрд░реА рд╣реБрдИ рд╣реИ, рдХреЛрдИ рдЬрд╡рд╛рдмрджреЗрд╣реА рдирд╣реАрдВ рд╣реИ, рдХреЛрдИ рдЧрд▓рддреА рд╕рд╣рдирд╢реАрд▓рддрд╛ рдирд╣реАрдВ рд╣реИ - рдЬрдмрдХрд┐ рдЧрдгрдирд╛ рдкреНрд░рдЧрддрд┐ рдкрд░ рд╣реИ, рдЖрд╡реЗрджрди рдХрд┐рд╕реА рднреА рдЕрдиреБрд░реЛрдз рдХрд╛ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдПрдХрдорд╛рддреНрд░ рд▓рд╛рдн рд╕рд╛рджрдЧреА рд╣реИред
function myRequestHandler(request, response) {
Node.js рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдЬреЛ рдПрдХ рд╕рдордп рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред
рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕рдВрдЦреНрдпрд╛ 2ред рд╣рдо рд╕рдм рдХреБрдЫ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдХрд░рддреЗ рд╣реИрдВ
рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХрд╛рд░реНрдп рд╣рдорд╛рд░реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░реЗрдВрдЧреЗ, рд╣реИ рдирд╛?
рдЦреИрд░, рдпрд╣ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЗрд╕рдХрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИред рдпрджрд┐ рдЧрдгрдирд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореБрдЦреНрдп рдзрд╛рдЧреЗ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рджрд░реНрд╢рди рд╕рдордХрд╛рд▓рд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдмреЗрд╣рддрд░ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдПрдХ рдмрд╛рд░ рджреЗрдЦ рд▓реЛ:
function doComputationWork(input, callback) {
рдиреЛрдб рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рддреНрд░ рдЙрдкрдпреЛрдЧ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдПрдХ рдЖрд╡реЗрджрди рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ рдЬреЛ рдХрдИ рдХреЛрд░ рдкрд░ рдЪрд▓рддрд╛ рд╣реИред
рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕рдВрдЦреНрдпрд╛ 3ред рдорд▓реНрдЯреАрдереНрд░реЗрдбреЗрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдХрд░рдирд╛
рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬрд┐рд╕рдореЗрдВ рдореВрд▓ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ Node.js. рдкрд░ рдПрдХ рдЖрд╡реЗрджрди рд╕реЗ рдХрдИ рдереНрд░реЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдХрдИ рдРрд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдХ рдХреИрдВрдкрдмреЗрд▓ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд┐рдд
рдиреЛрдб редbcrypt.js ред
рдЪрд╛рд░ рдХреЛрд░ рд╡рд╛рд▓реА рдорд╢реАрди рдкрд░, рдкрд░рд┐рдгрд╛рдо рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИред рдЙрддреНрдкрд╛рджрдХрддрд╛ рдЙрдкрд▓рдмреНрдз рд╣реИ, рд╕рднреА рдЙрдкрд▓рдмреНрдз рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ рдЖрдк 24 рдХреЛрд░ рдХреЗ рд╕рд╛рде рд╕рд░реНрд╡рд░ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдЪрд┐рддреНрд░ рдЕрдм рдЗрддрдирд╛ рдЬрд╛рджреБрдИ рдирд╣реАрдВ рд╣реИ - рдПрдХ рд╣реА рдЪрд╛рд░ рдХреЛрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдмрд╛рдХреА рдмреЗрдХрд╛рд░ рд╣реИрдВред
рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп Node.js рдЖрдВрддрд░рд┐рдХ рдереНрд░реЗрдб рдкреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ 4 рдереНрд░реЗрдбреНрд╕
рддрдХ рд╣реА
рд╕реАрдорд┐рдд рд╣реИ ред
рдФрд░ рдпрд╣ рдПрдХрдорд╛рддреНрд░ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ:
- рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдиреЛрдб рдереНрд░реЗрдбреНрд╕ рдХреЗ рд╕рд┐рд╕реНрдЯрдо рдкреВрд▓ рдХреЛ рднрд░рдирд╛ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдзреАрдорд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЬрд╡рд╛рдмрджреЗрд╣реА рдХрдо рд╣реЛ рд╕рдХрддреА рд╣реИред
- рдХрд╛рд░реНрдп рдХрддрд╛рд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рд╕рд░реНрд╡рд░ рдкрд╣рд▓реЗ рд╕реЗ рдХрд╛рдо рд╕реЗ 5 рдорд┐рдирдЯ рдЖрдЧреЗ рд╣реИ, рддреЛ рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рдФрд░ рднреА рдЕрдзрд┐рдХ рд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ?
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЬреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВ, рдХрдИ рдХреЛрд░ рдХреЛ рд╕рдВрддреГрдкреНрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреА рд╣реИрдВ, рдЬрд╡рд╛рдмрджреЗрд╣реА рдХреЛ рдмреБрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреА рд╣реИрдВ, рдФрд░ рдУрд╡рд░рд▓реЛрдб рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рддреА рд╣реИ, рдЕрд░реНрдерд╛рдд, рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рдХреЛ рдиреБрдХрд╕рд╛рди рдкрд╣реБрдВрдЪрд╛рддреА рд╣реИред
рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕рдВрдЦреНрдпрд╛ 4ред рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
Node.js рд╕рдВрд╕реНрдХрд░рдг 0.6.x рдФрд░ рдЙрдЪреНрдЪрддрд░ рдореЗрдВ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд
рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд▓реЛрдб рдХреЛ рд╕рдВрддреБрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рд╕реЙрдХреЗрдЯ рдкрд░ рд╕реБрдирдиреЗ рд╡рд╛рд▓реА рдХрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдкрд┐рдЫрд▓реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?
рдЗрд╕ рддрд░рд╣ рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдкрд┐рдЫрд▓реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреА рдХрдорд┐рдпреЛрдВ рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рд▓реЗрдЧреА, рдЙрд╕реА рддрд░рд╣, рд╣рдо рдЬрд╡рд╛рдмрджреЗрд╣реА рдФрд░ рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред
рдЖрд╡реЗрджрди рдХреЗ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдЪрд▓рд╛рдирд╛ рд╣рдореЗрд╢рд╛ рд╕рд╣реА рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рджреГрд╖реНрдЯрд┐рдХреЛрдг 5ред рдХрдореНрдкреНрдпреВрдЯ-рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ рдкрд░рд┐рдЪрдп
рд╡реНрдпрдХреНрддрд┐рддреНрд╡ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рдЧрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рдмрдирд╛рдХрд░ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ред рдкрд░рд┐рдгрд╛рдо рдПрдХ
рдХрдореНрдкреНрдпреВрдЯ-рдХреНрд▓рд╕реНрдЯрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИред
рдХрдореНрдкреНрдпреВрдЯ-рдХреНрд▓рд╕реНрдЯрд░ рд╕реНрдкреЙрдиреНрд╕ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдмрд╛рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдХрд╛рдо рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕рд╛рдзрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ:
const computecluster = require('compute-cluster');
worker.js
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЗрдирдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ
message
рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
process.on('message', function(m) { var output;
рдХрдореНрдкреНрдпреВрдЯ-рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд┐рдирд╛ рдореМрдЬреВрджрд╛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдПрдкреАрдЖрдИ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдиреНрдпреВрдирддрдо рдмрджрд▓рд╛рд╡ рдХреЗ рд╕рд╛рде рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддреЗрдЬреА рд╕реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдЧрдгрдирд╛ рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣рдорд╛рд░реА рдЪрд╛рд░ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ?
рд╕рдВрддреГрдкреНрддрд┐ : рдХрдИ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рд╕рднреА рдЙрдкрд▓рдмреНрдз рдХреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рдЬрд╡рд╛рдмрджреЗрд╣реА : рдЪреВрдВрдХрд┐ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдмрдЪреНрдЪреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рдВрджреЗрд╢ рднреЗрдЬрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рднрд▓реЗ рд╣реА рдорд╢реАрди 100% рднрд░реА рд╣реБрдИ рд╣реЛ, рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╕реНрддрд░ рдХреЗ рдЯрд╛рд╕реНрдХ рд╢реЗрдбреНрдпреВрд▓рд░ рдореЗрдВ, рдЖрдк рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЙрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рд░рд▓рддрд╛ : рдпрд╣ рд╕рдорд╛рдзрд╛рди рдореМрдЬреВрджрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдПрдХ рд╕рд░рд▓ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдПрдкреАрдЖрдИ рдХреЗ рдкреАрдЫреЗ рдХреЗ рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рдЫрд┐рдкрд╛рддреЗ рд╣реБрдП, рдЧрдгрдирд╛-рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рд╕реЗ рдЕрдирднрд┐рдЬреНрдЮ рд░реВрдк рд╕реЗ рдХреЙрд▓рд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред
рдЕрдЪрд╛рдирдХ рдпрд╛рддрд╛рдпрд╛рдд рдХреА рднреАрдбрд╝ рдХреЗ рджреМрд░рд╛рди
рдЧрд▓рддреА рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдЖрдЦрд┐рд░рдХрд╛рд░, рд╣рдорд╛рд░рд╛ рд▓рдХреНрд╖реНрдп рдпрдерд╛рд╕рдВрднрд╡ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИ рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЕрдзрд┐рдХрддрдо рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреА рд╕реЗрд╡рд╛ рдХрд░рдирд╛ рд╣реИред
рдХрдВрдкреНрдпреВрдЯ-рдХреНрд▓рд╕реНрдЯрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдФрд░ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЯреНрд░реИрдХ рд░рдЦрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рддрдиреЗ рдХрд╛рд░реНрдп рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреВрд░реЗ рд╣реЛ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдХрд┐рддрдирд╛ рд╕рдордп, рдФрд╕рддрди рдПрдХ рдХрд╛рд░реНрдп рдореЗрдВ рд▓рдЧрддрд╛ рд╣реИред рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЖрдк рдордЬрд╝рдмреВрддреА рд╕реЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрддрд╛рд░рдмрджреНрдз рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдЕрдиреБрд░реЛрдз рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рдХрд┐рддрдирд╛ рд╕рдордп рд▓рдЧреЗрдЧрд╛ред
max_request_time
рдкреИрд░рд╛рдореАрдЯрд░
max_request_time
рдЕрдиреБрд░реЛрдз рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрддрдо рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╕рдордп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЕрдиреБрд░реЛрдз рдХреЛ рдкрдВрдХреНрддрд┐рдмрджреНрдз рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдкрд░ рддреНрд░реБрдЯрд┐ рд╣реЛ рдЬрд╛рдПрдЧреА рдпрджрд┐ рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХрд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╕рдордп рдЕрдзрд┐рдХрддрдо рдЕрдиреБрдордд рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рдкрддреНрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ 10 рд╕реЗрдХрдВрдб рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рддрдХ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП"
max_request_time
7 рд╕реЗрдХрдВрдб (рд╣рдо рд╕рдВрднрд╡ рдиреЗрдЯрд╡рд░реНрдХ рджреЗрд░реА рдХреЗ рд▓рд┐рдП 3 рд╕реЗрдХрдВрдб рдХрд╛ рдорд╛рд░реНрдЬрд┐рди рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗ) рд╕реЗрдЯ рдХрд░рдХреЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЧрдгрдирд╛-рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд▓реЛрдб рдкрд░реАрдХреНрд╖рдг рдиреЗ рдЖрд╢рд╛рдЬрдирдХ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рдП рд╣реИрдВред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрддреНрдпрдзрд┐рдХ рд▓реЛрдб рдХреЗ рддрд╣рдд, рдЕрдзрд┐рдХреГрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдУрд╡рд░рд▓реЛрдб рд╕рд░реНрд╡рд░ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЙрдиреНрд╣реЗрдВ рддреБрд░рдВрдд рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдорд┐рд▓рд╛ред
рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ?
рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдЖрд╡реЗрджрди рд╕реНрддрд░ рдкрд░ рд╕рдорд╛рдирд╛рдВрддрд░реАрдХрд░рдг рдХреЗрд╡рд▓ рдПрдХрд▓-рдкрд░рдд рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬрдм рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдиреЛрдб рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдореЗрдВ рдмрд╕ рдЙрдирдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред рд▓реЗрдХрд┐рди рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛрддрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдкреНрд░рджрд░реНрд╢рди рдпрд╛ рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдХрдИ рдкрд░рддреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрддрд╛ рд╣реИред
рдмрд╣реБ-рдкрд░рдд рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрддреНрдпрдзрд┐рдХ рд▓реЛрдб рдХрд┐рдП рдЧрдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЕрдХреНрд╕рд░ рднреМрдЧреЛрд▓рд┐рдХ рд░реВрдк рд╕реЗ рджреВрд░ рдХреЗ рдбреЗрдЯрд╛ рдХреЗрдВрджреНрд░реЛрдВ рдореЗрдВ рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдФрд░ рдЕрдВрдд рдореЗрдВ, рдорд╛рдВрдЧ рдкрд░ рдХреНрд▓рд╛рдЙрдб рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдЖрд╡реЗрджрди рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдмрд╣реБрдкрд░рдд рд╡рд╛рд╕реНрддреБрдХрд▓рд╛, рднреМрдЧреЛрд▓рд┐рдХ рд╡рд┐рд╡рд┐рдзрддрд╛ рдФрд░ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЬреБрдбрд╝реЗ рдХреНрд▓рд╛рдЙрдб рд╕рдВрд╕рд╛рдзрди рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХрд╛рд░реНрдп рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдзреНрдпрд╛рди рд╕реЗ рдмрджрд▓рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рд▓рдХреНрд╖реНрдп рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣рддрд╛ рд╣реИред
рдХрдореНрдкреНрдпреВрдЯ-рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рд┐рдд рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рдПрдХ рдЬрдЯрд┐рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╡рд┐рднрд┐рдиреНрди рдкрд░рддреЛрдВ рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╡рд┐рддрд░рдг, рдФрд░ рд╕реНрдерд╛рдиреАрдп рд▓реЛрдб рдЪреЛрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛ рдХреЗрдВрджреНрд░реЛрдВ рдХреЗ рдмреАрдЪ рд╕рдордиреНрд╡рдп рдФрд░ рдорд╛рдВрдЧ рдкрд░ рдХреНрд▓рд╛рдЙрдб рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреА рд╣реИред
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдореНрдкреНрдпреВрдЯ-рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдпрд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ, рддреЛ рдореБрдЭреЗ рдЙрдиреНрд╣реЗрдВ рд╕реБрдирдХрд░ рдЦреБрд╢реА рд╣реЛрдЧреАред рд╣рдорд╛рд░реА
рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдореЗрдВ рд╡реНрдпрдХреНрддрд┐ рдЪрд░реНрдЪрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВред рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд╕рднреА рд▓реЗрдЦ: