
рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рдХреНрд╖реЗрддреНрд░ рддреЗрдЬ рдЧрддрд┐ рд╕реЗ рдЖрдЧреЗ рдмрдврд╝ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЖрдЬ рдПрдХ рдЙрдиреНрдирдд рд╕реНрддрд░ рдкрд░ рдкрд╣реБрдВрдЪ рдЧрдпрд╛ рд╣реИред рдкрд╛рдпрдерди рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рдЧрднрдЧ рддреАрди рджрд╢рдХреЛрдВ рд╕реЗ рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдпреЛрдЧрджрд╛рди рджреЗ рд░рд╣реЗ рд╣реИрдВред рдЕрдм, рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдпрд╛ рдПрдХ рд╡реНрдпрд╡рд╕рд╛рдп рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ рдпрджрд┐ рдЖрдк рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЛ рд▓реЗрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдХрдард┐рди рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рджреЛрдиреЛрдВ рд╣реА рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдпрд╣ 'рдЕрдЬрдЧрд░ рдмрдирд╛рдо рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ: рдХреМрди рд╕рд╛ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рдЖрдкрдХреЛ рдлрд╛рдпрджрд╛ рдкрд╣реБрдВрдЪрд╛ рд╕рдХрддрд╛ рд╣реИ' рд╡рд┐рд╖рдп рд▓рд╛рддрд╛ рд╣реИред
рдпреЗ рджреЛ рднрд╛рд╖рд╛рдПрдВ рд╡рд┐рднрд┐рдиреНрди рдЯреНрд░реЗрдВрдбрд┐рдВрдЧ рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ рдЬреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЧреЗрдо-рдЪреЗрдВрдЬрд░ рд╣реИрдВред рд╡реЗрдм рдЗрдХреЛрд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдЗрди рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рд╢реБрд░реВрдЖрдд рдиреЗ рдирдП рдкреНрд░рддрд┐рдорд╛рдиреЛрдВ, рдкрд╛рд░рдВрдкрд░рд┐рдХ рдзрд╛рд░рдгрд╛рдУрдВ рдФрд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдорд╛рдирдХреЛрдВ рдХреЛ рд▓рд╛рдпрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреЛ рдкрдврд╝ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдорд╛рди рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рд╡рд┐рднрд┐рдиреНрди рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ рдкрд╛рдЗрдерди рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдмреАрдЪ рднреНрд░рдорд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкрд░реЗрд╢рд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢реНрди рдЖ рд░рд╣реЗ рд╣реИрдВ, рдЬреИрд╕реЗ:
- рдореЗрд░реЗ рдЕрдЧрд▓реЗ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдХреМрди рд╕рд╛ рд╣реИ?
- рдПрдордПрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реА рднрд╛рд╖рд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ?
- рджреЛрдиреЛрдВ рд╡реЗрдм рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдкреНрд░рдореБрдЦ рдЕрдВрддрд░ рдХреНрдпрд╛ рд╣реИрдВ?
- рднрд╡рд┐рд╖реНрдп рдХреЗ рдЙрджреНрдпреЛрдЧ рдореЗрдВ рдХреМрди рд╕реА рднрд╛рд╖рд╛ рдЕрдЧреНрд░рдгреА рд╣реИ: рдкрд╛рдпрдерди рдпрд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ?
- рдЙрдирдХреА рдХреЛрдбрд┐рдВрдЧ рд╢реИрд▓рд┐рдпреЛрдВ рдореЗрдВ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИрдВ?
рд╣рдорд╛рд░реЗ
рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЖрдЙрдЯрд╕реЛрд░реНрд╕рд┐рдВрдЧ рдХрдВрдкрдиреА рдореЗрдВ рдЗрди рдмрд╛рдзрд╛рдУрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж
, рд╣рдордиреЗ рдХреБрдЫ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рджреЛ рд╡реЗрдм рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░реЛрдВ рдХреА рдПрдХ рд╕рдВрдЪрдпреА рд╕реВрдЪреА рдкрд░ рдЕрдВрдХреБрд╢ рд▓рдЧрд╛рдпрд╛ рд╣реИред рдпрд╣ рди рдХреЗрд╡рд▓ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЙрдирдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рднрд╛рд╖рд╛ рдЪреБрдирдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ рдмрд▓реНрдХрд┐ рдЗрд╕ рдХрдард┐рди рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдореЗрдВ рд╕рдлрд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╕рд╛рдпреЛрдВ рдХреЛ рд╕рд╣реА рддрдХрдиреАрдХ рдХреЗ рд╕рд╛рде рдЬрд╛рдиреЗ рдореЗрдВ рднреА рдорджрдж рдХрд░реЗрдЧрд╛ред
рдЖрдЗрдП "рдкрд╛рдЗрдерди рдмрдирд╛рдо рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ" рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЧреЛрддрд╛ рд▓рдЧрд╛рдПрдБ
1) рдкрд░рд┐рдЪрдп
рдкрд╛рдпрдерди рдПрдХ рд▓реЛрдХрдкреНрд░рд┐рдп рдЙрдЪреНрдЪ рд╕реНрддрд░реАрдп рд╡реЗрдм рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╣реИ рдФрд░ рдЗрди рджрд┐рдиреЛрдВ рднрд╛рд░реА рдорд╛рдВрдЧ рдореЗрдВ рд╣реИред рдпрд╣ рдЧрддрд┐рд╢реАрд▓ рд╢рдмреНрджрд╛рд░реНрде рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ рдФрд░ OOPs рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдЗрд╕реЗ рд╕реАрдЦрдирд╛ рдФрд░ рдХреЛрдб рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкреНрд░рддрд┐рдорд╛рдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдХреЗ рдЕрджреНрднреБрдд рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рддрд╛ рд╣реИред рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ, рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ, рд╡рд╕реНрддреБ-рдЙрдиреНрдореБрдЦ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ, рдФрд░ рдЕрдирд┐рд╡рд╛рд░реНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧред рдЗрд╕рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдореЙрдбреНрдпреВрд▓ рдФрд░ рдкреИрдХреЗрдЬ рд╣реЛрддреЗ рд╣реИрдВред
рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ рдЬрд┐рд╕реЗ "рдЗрдирд╣реЗрд░рд┐рдЯреЗрдВрд╕" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдкрд╛рдпрдерди рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
class Block: def __init__(self,name): self.name=name def greet(self): print ('Hi, I am' + self.name)
рдЙрдкрд░реЛрдХреНрдд рдХреЛрдбрд┐рдВрдЧ рдЙрджрд╛рд╣рд░рдг рдЖрдкрдХреЛ рдПрдХ рд╡рд░реНрдЧ рдкрд░рд┐рднрд╛рд╖рд╛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдФрд░ __init__ рдлрд╝рдВрдХреНрд╢рди рдПрдХ рдирд┐рд░реНрдорд╛рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдХреНрд▓рд╛рд╕-рдЖрдзрд╛рд░рд┐рдд рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рд╡рд╕реНрддреБ-рдЙрдиреНрдореБрдЦ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╣реИ рдЬреЛ рдЧрддрд┐рд╢реАрд▓ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреА рд╣реИ рдФрд░ рдЗрд╕реЗ ECMAScript рднрд╛рд╖рд╛ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рдорд╛рдирдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкреНрд░рддрд┐рдорд╛рдиреЛрдВ рдЬреИрд╕реЗ рдХрд┐ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ, рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдФрд░ рдЕрдирд┐рд╡рд╛рд░реНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдкрд╛рдпрдерди рдореЗрдВ рд╣реИред рдЗрд╕рдореЗрдВ рджрд┐рдирд╛рдВрдХ, рдкрд╛рда рдФрд░ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдорд╛рдирдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╕рдорд░реНрдерди рд╣реИред рдЬрд╣рд╛рдБ рддрдХ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк-рдЖрдзрд╛рд░рд┐рдд рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдЗрд╕реЗ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
Block = function(name){ this.name=name this.greet =function(){ return тАЬHi, I am тАЬ + this. name }}
рдпрд╣рд╛рдВ рдореИрдВрдиреЗ рдкрд╛рдпрдерди рдореЗрдВ рдПрдХ рд╡рд░реНрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдпрд╛ рд╣реИред
2. рд╡реЗрдм рдПрдкреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдВрдмреЗрдбрд┐рдВрдЧ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ
рдХреМрди рд╕рд╛ рд╕рд╣реА рд╡рд┐рдХрд▓реНрдк рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╛ рдкрд╛рдпрдерди рд╣реИ? рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдо рдЕрдЬрдЧрд░ рдХреЗ рдпреБрджреНрдз рдореЗрдВ рдХрд┐рд╕реА рднреА рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдкрд╣реБрдВрдЪрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдорд╢реАрди рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдЕрдЬрдЧрд░ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рджреЛрдиреЛрдВ рднрд╛рд╖рд╛рдУрдВ рдХреА рдкрд░рд┐рдкрдХреНрд╡рддрд╛ рдФрд░ рджреЛрдиреЛрдВ рдореЗрдВ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдПрдордПрд▓ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдХрд╛рд░рдг рдЗрди рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдПрдордПрд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рджреЛрдиреЛрдВ рд╣реА рднрд╛рд╖рд╛рдПрдВ рдорд╢реАрди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЙрдирдХреЗ рд▓рдЪреАрд▓реЗрдкрди, рд╕реНрдерд┐рд░рддрд╛ рдФрд░ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рд╕реЗрдЯ рдХреЗ рдХрд╛рд░рдг рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реБрд▓рдн рдмрдирд╛рддреА рд╣реИрдВред
рдкрд╛рдпрдерди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ NumPy, SciPy, Seaborn рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдЦрд┐рд▓рд╛рддреА рд╣реИ, рдлрд┐рд░ рднреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреАрдЫреЗ рдирд╣реАрдВ рд░рд╣реА рд╣реИред рдпрд╣ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪреМрдЦрдЯреЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред ML-JS, KerasJS, DeepLearn.js, ConvNetJS, Brain.js, рд▓рд░реНрдирд┐рдВрдЧ рдореЙрдбрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдПрдХ рдХрдВрдкреНрдпреВрдЯрд░ рдХреБрдЫ рд╣рдж рддрдХ рдмрдбрд╝реА рд╕рдЯреАрдХрддрд╛ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдЖрдк рдирд┐рд░реНрдгрдп рд▓реЗ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд┐рд░реНрдгрдп рд▓реЗ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕рдордп рдХреЗ рд╕рд╛рде рдпрд╣ рд╕рдЯреАрдХрддрд╛ рдмрдврд╝рддреА рдЬрд╛рддреА рд╣реИред рд▓реЗрдХрд┐рди рд╣рдорд╛рд░рд╛ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдХреМрди рд╕реА рд╡реЗрдм рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реИ рдФрд░ рдпрд╣ рдорд╢реАрди рд╕реАрдЦрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛?
рдпрд╣рд╛рдБ рдореИрдВрдиреЗ рдкрд╛рдпрдерди рдкрд░ рдорд╢реАрди рд╕реАрдЦрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рджрд┐рдЦрд╛рдпрд╛ рд╣реИ:

рдкреВрд░рд╛ рдореЙрдбрд▓ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдФрд░ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЪрдпрди рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕реБрджреГрдвреАрдХрд░рдг, рдкрд░реНрдпрд╡реЗрдХреНрд╖рдг рдпрд╛ рдЕрдиреБрдкрдпреЛрдЧреАред рдПрдХ рдмрд╛рд░ рдЬрдм рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдкрд╛рдпрдерди рдпрд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рддрдп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ I / O рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕реАрдЦрдиреЗ рдХрд╛ рд╕рдордп рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдФрд░ рд╕реАрдкреАрдпреВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред
рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
рдлреНрд▓рд╛рд╕реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рдпрдерди рдореЗрдВ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдореЙрдбрд▓ рд╕реЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдПрдкреАрдЖрдИ рдмрдирд╛рдирд╛ред
рдлреНрд▓рд╛рд╕реНрдХ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдореЙрдбрд▓ рдХреА рд╕реЗрд╡рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рдо рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ:
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдРрдк рдХреЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдирд╛рдП рдЧрдП рдореЙрдбрд▓ рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рд▓реЛрдб рдХрд░реЗрдВред
рджреВрд╕рд░реЗ, рдПрдХ рдПрдкреАрдЖрдИ рдПрдВрдбрдкреЙрдЗрдВрдЯ рдмрдирд╛рдПрдВ рдЬреЛ рдЗрдирдкреБрдЯ рдЪрд░ рд▓реЗ рд╕рдХрддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ (JSON рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдФрд░ рдЕрдиреБрдХреВрд▓ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгрд┐рдпрд╛рдВ рджреЗрддрд╛ рд╣реИред
рддреЛ, рдЪрд▓рд┐рдП рдПрдХ рдлрдВрдХреНрд╢рди рдкреНрд░реЗрдбрд┐рдХреНрдЯ () рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдЙрдкрд░реЛрдХреНрдд рдмрд╛рддреЗрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
from flask import Flask, jsonify app = Flask(__name__) @app.route('/predict', methods=['POST']) def predict(): json_ = request.json query_df = pd.DataFrame(json_) query = pd.get_dummies(query_df) prediction = lr.predict(query) return jsonify({'prediction': list(prediction)})
рдЕрдм, рдЖрдкрдХреЛ рдореБрдЦреНрдп рд╡рд░реНрдЧ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
if __name__ == '__main__': try: port = int(sys.argv[1]) except: port = 12345 print ('Model loaded') model_columns = joblib.load(model_columns_file_name) print ('Model columns loaded') app.run(port=port, debug=True)
рдЕрдВрдд рдореЗрдВ, рдЖрдкрдХрд╛ API рд╣реЛрд╕реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред
рдЗрд╕рдХреЗ рдмрд╛рдж, рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рджрд┐рдП рдЧрдП рдЗрдирдкреБрдЯ рдкрд░ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдкрдХреЛ рдХрднреА рднреА 100% рд╕рдЯреАрдХрддрд╛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрдЧреА рдХреНрдпреЛрдВрдХрд┐ рдЖрдЬ рддрдХ рдРрд╕реА рдХреЛрдИ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдирд╣реАрдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдЖрдк рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдФрд░ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдЧрддрд┐ рдкрд░ рдХрд╛рдо рдХрд░рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВред
рддреЛ, рдХрд┐рд╕ рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рдЬрд╛рдирд╛ рд╣реИ?
рдорд╢реАрди рд╕реАрдЦрдиреЗ рдХреА рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рдХреИрд╕реЗ рд╕рд╣реА рд╣реИ?
рдкрд╛рдпрдерди рдореЗрдВ рдПрдЖрдИ, рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг, рдЧрд╣рди рд╢рд┐рдХреНрд╖рдг рдФрд░ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдРрдк рдХрд╛ рдПрдХ рд╢рд╛рдирджрд╛рд░ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рд╣реИред рдЪреЗрдХрдЖрдЙрдЯ рдХрд┐рди рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдЗрд╕реЗ рдорд╢реАрди рд╕реАрдЦрдиреЗ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдкрд╕рдВрджреАрджрд╛ рднрд╛рд╖рд╛ рдмрдирд╛рддрд╛ рд╣реИ: -
- рд╡рд┐рднрд┐рдиреНрди рдЪреМрдЦрдЯреЗ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ред Web2py, TurboGears, CubicWeb, Django, рддреЛрд░рдг рдЖрджрд┐ред рд╕реНрдХреЗрд▓реЗрдмрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
- рдЧрддрд┐рд╢реАрд▓ рднрд╛рд╖рд╛ рдЬрд┐рд╕рдореЗрдВ рдЗрдирдмрд┐рд▓реНрдЯ рдлрд╝рдВрдХреНрд╢рдВрд╕, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЬреИрд╕реЗ рдкрд╛рдВрдбрд╛, рд╕реНрдХрд┐рдЯрд┐рдЯ - рд╕реАрдЦреЗрдВ, рдереЗрдиреЛ, рд╕реБрдиреНрди, рдЖрджрд┐ред рдФрд░ рдУрдкрди-рд╕реЛрд░реНрд╕ IDE рдЬреИрд╕реЗ PyCharm, рд╕реНрдкрд╛рдЗрдбрд░, рдПрдирд╛рдХреЛрдВрдбрд╛, рдЖрджрд┐ред рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдПред
- Tsl рдФрд░ рдЖрдзреБрдирд┐рдХ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд╕рд╛рде рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рднрд╛рд╖рд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИред
- рдЕрдВрдд рдореЗрдВ, рдЗрд╕рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рд╕рдореБрджрд╛рдп рдЖрдзрд╛рд░ рд╣реИ рдЬреЛ рдХрднреА рднреА рдЖрдкрдХреА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред
- рдкрд╛рдпрдерди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рджреБрдирд┐рдпрд╛ рдХрд╛ рд╕рдмрд╕реЗ рдкреБрд░рд╛рдирд╛ рдЦрд┐рд▓рд╛рдбрд╝реА рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ рдПрдХ рдордЬрдмреВрдд рд╕рдореБрджрд╛рдп рд╣реИ рдФрд░ рдЕрдЧрд▓реА рдкреАрдврд╝реА рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдорд╢реАрди рд╕реАрдЦрдиреЗ рдФрд░ рдХреГрддреНрд░рд┐рдо рдмреБрджреНрдзрд┐рдорддреНрддрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред
рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреИрд╕реЗ рд╕рд╣реА рд╣реИ?
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╡реЗрдм рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд╛ рд░рд╛рдЬрд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдкрд╛рдпрдерди рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рд╕рдореБрджрд╛рдп рдирд╣реАрдВ рд╣реИред рдорд╢реАрди рд╕реАрдЦрдиреЗ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪреБрдирдиреЗ рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХреЗ рдиреАрдЪреЗ рджреЗрдЦреЗрдВ:
- рд╕реБрд░рдХреНрд╖рд┐рдд рдФрд░ рд╕реНрдХреЗрд▓реЗрдмрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВред
- рдЖрдзреБрдирд┐рдХ рдФрд░ рдЧрддрд┐рд╢реАрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЬреЛ ECMAScript рдХреЗ рд╕рд╛рде рдЖрддреА рд╣реИред
- рдЗрд╕рдореЗрдВ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред Keras.js, Brain.js, TensorFlow.js, рдФрд░ STDLib, рдЖрджрд┐ред рдЖрд╕рд╛рдиреА рд╕реЗ рдорд╢реАрди рд╕реАрдЦрдиреЗ рдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
- рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдпрд╣ рдкрд╛рдпрдерди рднрд╛рд╖рд╛ рд╕реЗ рддреЗрдЬ рд╣реИ рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЧреИрд░-рдЕрд╡рд░реЛрдзрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЙрдбрд▓ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рднреА рдкрдврд╝реЗрдВ :: рднрд╛рд░рдд рдореЗрдВ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕реЗрдВрдЯреНрд░рд┐рдХ рдЯреЙрдк рд╡реЗрдм рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХрдВрдкрдирд┐рдпрд╛рдВ (рдП рд╕рд░реНрд╡реЗ)3) рдмрд╣реБрдореБрдЦреА рдкреНрд░рддрд┐рднрд╛ рдФрд░ рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА
рдЬрдм рд╣рдо рдХрд┐рд╕реА рднрд╛рд╖рд╛ рдХреА рдорд╛рдкрдиреАрдпрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рднрд╛рд╖рд╛ рдиреНрдпреВрдирддрдо рд╕рд░реНрд╡рд░ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде рдмрдбрд╝реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рд╕рдВрднрд╛рд▓ рд╕рдХрддреА рд╣реИред рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдЕрдВрддрд┐рдо рдЙрддреНрдкрд╛рдж рдХреА рдорд╛рдкрдиреАрдпрддрд╛ рддреАрди рдЪреАрдЬреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ: -
-> рдмрдбрд╝реЗ рдпреВрдЬрд░ рдмреЗрд╕ рдХреА рд╣реИрдВрдбрд▓рд┐рдВрдЧ
-> рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд╕рдВрд╕рд╛рдзрди рдЙрдкрдпреЛрдЧ
-> рдХреЛрдбрд░ рдХреЗ рдХреМрд╢рд▓ рдФрд░ рд▓рд┐рдЦрд┐рдд рдЕрдиреБрдХреВрд▓рд┐рдд рдХреЛрдб
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ Nodejs рдкрд╛рдпрдерди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдкрд╛рдпрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкрд╛рдпрдерди рдХреЛрд░рдЯрд╛рдЗрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
Nodejs рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ рдЬреИрд╕реЗ рдЗрд╕реЗ рдЧрддрд┐ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА рд╣реИред рдЕрдЬрдЧрд░ рдмрдирд╛рдо рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкрд╛рдпрдерди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕рдореЗрдВ рдХреБрдЫ рдЙрдкрдХрд░рдг рд╣реИрдВ рдЬрд┐рдирдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЕрдм рдкрд╛рдпрдерди рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реНрдХреЗрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЛ рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рд╣реИ:
- рдпрд╣ рдПрдХ рд╡реНрдпрд╛рдкрдХ рдбреЛрдореЗрди рдореЗрдВ рдПрдХ рд╡реЗрдм рдРрдк рдбрд╛рд▓ рд░рд╣рд╛ рд╣реИ рддреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред
- рдпрд╣ рдмрдбрд╝реЗ рдЖрдХрд╛рд░ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЙрдиреНрд╣реЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдХреЛрдбрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ Nodejs рдЕрдкрдиреА рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рдХрд╛рд░рдг рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЬрдм рдпрд╣ рд╕рдмрд╕реЗ рдмрд╣реБрдореБрдЦреА рд╡реЗрдм рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ, рддреЛ рдкрд╛рдпрдерди рдХреЛ рдИрдЖрд░рдкреА рд╡рд┐рдХрд╛рд╕, рд╡реЗрдм рд╡рд┐рдХрд╛рд╕, рдПрдЖрдИ / рдПрдордПрд▓ рдФрд░ рдбреЗрдЯрд╛ рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдиреБрдХреВрд▓ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдиреЗ рдбреЗрдЯрд╛ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА, рдПрдЖрдИ / рдПрдордПрд▓ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдФрд░ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдореЗрдВ рдЕрдкрдирд╛ рдирд╛рдо рдмрдирд╛рдпрд╛ рд╣реИред рдпрд╣ рдкреНрд░рдореБрдЦ рд░реВрдк рд╕реЗ рдПрдХ рдмреИрдХрдПрдВрдб рднрд╛рд╖рд╛ рд╣реИ рдФрд░ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдкрд░ рдЪрд▓рддреА рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд╛рдпрдерди рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдХрдВрд╕реЛрд▓ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдХрдорд╛рдВрдб рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдХрд░рдиреЗ рдФрд░ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдП рдмрд┐рдирд╛ рдкрд░реАрдХреНрд╖рдг рдХреЛрдб рдЪрд▓рд╛рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЯреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдХрдВрд╕реЛрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ?
$ python $ cd environments $ . my_env/bin/activate (my_env) lekhi@ubuntu:те▓/environments$ python
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВрдиреЗ рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг 3.5.2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рдЙрдкрд░реЛрдХреНрдд рдХреЛрдбрд┐рдВрдЧ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рджреЗрдЦреЗрдВ:
Python 3.5.2 (default, Sept 17 2019, 17:05:23) [GCC 5.4.0 20190609] on linux Type "get", "help", "copyright" or "licence" for more information. >>>
рдкрд╛рдпрдерди рдЗрдВрдЯрд░реЗрдХреНрдЯрд┐рд╡ рдХрдВрд╕реЛрд▓ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд╕рд╛рде, рд╣рдо рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рддреЗрдЬреА рд╕реЗ рдЕрд╕реНрдерд┐рд░рддрд╛ рдФрд░ рдмрд╣реБрдореБрдЦреА рдкреНрд░рддрд┐рднрд╛ рдХреЛ рдмрдврд╝рд╛рдиреЗ рд╡рд╛рд▓реЗ рдЖрджреЗрд╢реЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рджреВрд╕рд░реА рдУрд░, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рдФрд░ рдИрдЖрд░рдкреА рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рд╣реИ, рд▓реЗрдХрд┐рди рдПрдЖрдИ / рдПрдордПрд▓ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдХрдо рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдордЬрдмреВрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп / рдореЙрдбреНрдпреВрд▓ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВред рдлреНрд░рдВрдЯ-рдПрдВрдб рдФрд░ рдмреИрдХ-рдПрдВрдб рднрд╛рд╖рд╛ рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ, рдпрд╣ рдкреВрд░реНрдг-рд╕реНрдЯреИрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдиреБрдХреВрд▓ рд╣реИред рдмрд╣реБрдореБрдЦреА рдкреНрд░рддрд┐рднрд╛ рдХреЗ рд▓рд┐рдП, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд╛рдпрдерди рдкрд░ рдЬреАрддрддрд╛ рд╣реИред
4) рдкрд╛рдпрдерди рдмрдирд╛рдо рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХреМрди рд╕рд╛ рдЕрдзрд┐рдХ рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИ?
рднреАрдбрд╝-рднрд╛рдбрд╝ рд╡рд╛рд▓реЗ рдХреНрдпреВрдП рдкрд░реАрдХреНрд╖рдХреЛрдВ рдХреЗ рдПрдХ рдирдП рдЕрдзреНрдпрдпрди рдЧреНрд▓реЛрдмрд▓ рдПрдк рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рдиреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд╕рдмрд╕реЗ рдмрдбрд╝реЗ рджрд░реНрдж рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдвреЗрд░ рдУрд╡рд░рдлреНрд▓реЛ рдХреЗ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рдЗрдерди рдбреЗрдЯреНрд░реЙрдирд┐рдВрдЧ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рд╣реИред

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

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рдВрдмрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЖрдкрдХреЛ рджреЛрдиреЛрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдЧрддрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рдХрд░ рджреЗрдЧрд╛:
1. рдиреЛрдбреНрд╕ рдореЗрдВ рдмрд╛рдЗрдирд░реА-рдЯреНрд░реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд░рдо:
const { Worker, isMainThread, parentPort, workerData } = require('worker_threads'); if (isMainThread) { mainThread(); } else { workerThread(workerData); } async function mainThread() { const maxDepth = Math.max(6, parseInt(process.argv[2])); const stretchDepth = maxDepth + 1; const poll = itemPoll(bottomUpTree(stretchDepth)); console.log(`stretch depth tree ${stretchDepth}\t poll: ${poll}`); const longLivedTree = bottomUpTree(maxDepth); const tasks = []; for (let depth = 4; depth <= maxDepth; depth += 2) { const iterations = 1 << maxDepth - depth + 4; tasks.push({iterations, depth}); } const results = await runTasks(tasks); for (const result of results) { console.log(result); } console.log(`long lived tree depth ${maxDepth}\t poll: ${itemPoll(longLivedTree)}`); } function workerThread({iterations, depth}) { parentPort.postMessage({ result: work(iterations, depth) }); } function runTasks(tasks) { return new Promise(resolve => { const results = []; let tasksSize = tasks.length; for (let i = 0; i < tasks.length; i++) { const worker = new Worker(__filename, {workerData: tasks[i]}); worker.on('message', message => { results[i] = message.result; tasksSize--; if (tasksSize === 0) { resolve(results); } }); } }); } function work(iterations, depth) { let poll = 0; for (let i = 0; i < iterations; i++) { poll += itemPoll(bottomUpTree(depth)); } return `${iterations}\t trees depth ${depth}\t poll: ${poll}`; } function TreeNode(left, right) { return {left, right}; } function itemPoll(node) { if (node.left === null) { return 1; } return 1 + itemPoll(node.left) + itemPoll(node.right); } function bottomUpTree(depth) { return depth > 0 ? new TreeNode(bottomUpTree(depth - 1), bottomUpTree(depth - 1)) : new TreeNode(null, null); }
рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдмрд╛рд╣рд░:
stretch depth tree 22 poll: 8388607 2097152 trees depth 4 poll: 65011712 524288 trees depth 6 poll: 66584576 131072 trees depth 8 poll: 66977792 32768 trees depth 10 poll: 67076096 8192 trees depth 12 poll: 67100672 2048 trees depth 14 poll: 67106816 512 trees depth 16 poll: 67108352 128 trees depth 18 poll: 67108736 32 trees depth 20 poll: 67108832 long lived tree depth 21 poll: 4194303
Src:
рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдЧреЗрдо2. рдкрд╛рдпрдерди 3 рдореЗрдВ рдмрд╛рдЗрдирд░реА-рдЯреНрд░реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд░рдо
import sys import multiprocessing as mp def make_tree(d): if d > 0: d -= 1 return (make_tree(d), make_tree(d)) return (None, None) def poll_tree(node): (l, r) = node if l is None: return 1 else: return 1 + poll_tree(l) + poll_tree(r) def make_poll(itde, make=make_tree, poll=poll_tree): i, d = itde return poll(make(d)) def get_argchunks(i, d, chunksize=5000): assert chunksize % 2 == 0 chunk = [] for k in range(1, i + 1): chunk.extend([(k, d)]) if len(chunk) == chunksize: yield chunk chunk = [] if len(chunk) > 0: yield chunk def main(n, min_depth=4): max_depth = max(min_depth + 2, n) stretch_depth = max_depth + 1 if mp.cpu_count() > 1: pool = mp.Pool() chunkmap = pool.map else: chunkmap = map print('stretch depth tree {0}\t poll: {1}'.format( stretch_depth, make_poll((0, stretch_depth)))) long_lived_tree = make_tree(max_depth) mmd = max_depth + min_depth for d in range(min_depth, stretch_depth, 2): i = 2 ** (mmd - d) cs = 0 for argchunk in get_argchunks(i,d): cs += sum(chunkmap(make_poll, argchunk)) print('{0}\t trees depth {1}\t poll: {2}'.format(i, d, cs)) print('long lived tree depth {0}\t poll: {1}'.format( max_depth, poll_tree(long_lived_tree))) if __name__ == '__main__': main(int(sys.argv[1]))
рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдмрд╛рд╣рд░:
stretch depth tree 22 poll: 8388607 2097152 trees depth 4 poll: 65011712 524288 trees depth 6 poll: 66584576 131072 trees depth 8 poll: 66977792 32768 trees depth 10 poll: 67076096 8192 trees depth 12 poll: 67100672 2048 trees depth 14 poll: 67106816 512 trees depth 16 poll: 67108352 128 trees depth 18 poll: 67108736 32 trees depth 20 poll: 67108832 long lived tree depth 21 poll: 4194303

рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдкрд╛рдпрдерди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдиреЛрдбрдЬ рддреЗрдЬреА рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдЬрдм рд╣рдо рдкрд╛рдпрдерди рдмрдирд╛рдо рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдпреБрджреНрдз рдореЗрдВ рджреЛрдиреЛрдВ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдПрдХ рдФрд░ рдлреЗрдпрд░рд╡реЗ рдЬреЛ рд╣рдо рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд╣ рд╣реИ рдмреИрдХ-рдПрдВрдб рдлреИрдХреНрдЯрд░ рдкрд░ рдЙрдирдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдирд╛ред
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдиреЛрдбреНрд╕ рдкрд╛рдпрдерди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд╛рдлреА рддреЗрдЬ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреНрд░реЛрдо рдХреЗ рд╡реА 8 (рдмрд╣реБрдд рддреЗрдЬ рдФрд░ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЗрдВрдЬрди) рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдПрдХрд▓-рдкрд┐рд░реЛрдпрд╛ рд╣реБрдЖ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдШрдЯрдирд╛-рдЖрдзрд╛рд░рд┐рдд рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдФрд░ рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз I / O рд╣реИред рдпрд╣ CPU рдФрд░ рдореЗрдореЛрд░реА рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдЕрдзрд┐рдХрддрдо рдХрд░рддрд╛ рд╣реИред рдорд▓реНрдЯреАрдереНрд░реЗрдб рд╕рд░реНрд╡рд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рдиреЛрдбреЛрдбреНрд╕ рд╕рд░реНрд╡рд░ рдЕрдзрд┐рдХ рдмрд╛рдж рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд░рдирдЯрд╛рдЗрдо рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред
рдиреЛрдЯ: рдЗрд╕ рдмрд┐рдВрджреБ рдХреЗ рд╕рд╛рде, рдореЗрд░рд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рдерд╛ рдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд╛рдпрдерди рдпрд╛ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред рджреЛрдиреЛрдВ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдЕрдкрдиреЗ-рдЕрдкрдиреЗ рдирд┐рдпрдо рд╣реИрдВ, рдЬреЛ рд╡рд┐рдХрд╛рд╕ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдЕрдкрдиреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рддреЗ рд╣реИрдВред
рдкрд╛рдпрдерди рдорд╢реАрди рд╕реАрдЦрдиреЗ, рдмрдбрд╝реЗ рдбреЗрдЯрд╛ рд╕рдорд╛рдзрд╛рди, рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдРрдк рдФрд░ рд╕рд░рдХрд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рд░рддрд╛, рд╕реНрдерд┐рд░рддрд╛ рдФрд░ рдЖрд╕рд╛рди рдХреЛрдбрд┐рдВрдЧ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЬрдмрдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ Nodejs рдЪреИрдЯрд┐рдВрдЧ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрддреНрдХреГрд╖реНрдЯ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдЧрддрд┐ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдИ-рдХреЙрдорд░реНрд╕ рд╡реНрдпрд╡рд╕рд╛рдп, рднрд╛рд░реА-рд▓реЛрдб рд╡рд╛рд▓реЗ рдРрдк рдФрд░ рдорд▓реНрдЯреА-рд╡реЗрдВрдбрд░ рдорд╛рд░реНрдХреЗрдЯрдкреНрд▓реЗрд╕ рдХреЗ рд▓рд┐рдП рдЕрджреНрднреБрдд рд╕рдорд╛рдзрд╛рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдбрд┐рдВрдЧ рдЙрджрд╛рд╣рд░рдг рдЖрдкрдХреЛ рджрд┐рдЦрд╛рдПрдВрдЧреЗ рдХрд┐
"рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рдЧрднрдЧ рдкрд╛рдЗрдереЛрдирд┐рдХ рд╣реИ"

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