NodeJS рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╛рд╕ рдкреИрдХреЗрдЬ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рд╕реВрдЯ

NodeJS рд╕реАрдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдореБрдЭреЗ рдХрд╣реАрдВ рднреА рдиреЛрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдореБрдЦреНрдпрдзрд╛рд░рд╛ рдХреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ (рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ) рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдвреЗрд░ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдЦреБрдж рдПрдХ рд╕реВрдЪреА рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

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

рдкреИрдХреЗрдЬ рдЗрдВрд╕реНрдЯреЙрд▓рд░


npm рдиреЛрдб рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рд╣реИред рдпрд╣ рдиреЛрдб рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рд╣рд╛рд▓ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдпрд╣ рдЗрддрдирд╛ рд╕рдЯреАрдХ рд╣реИ)ред
рд░реВрдмреА рдореЗрдВ рдПрдирд╛рд▓реЙрдЧ: рд░реВрдмреАрдЬ + рдмреБрдВрдбрд▓рд░ред PHP рд╕рдорддреБрд▓реНрдп: рд╕рдВрдЧреАрддрдХрд╛рд░ред

рдкреИрдХреЗрдЬ рдЦреЛрдЬ


рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░рдЬрд┐рд╕реНрдЯрд░ ред рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдирд╣реАрдВ: npmsearch , packagefinder , nipster

рд╡реЗрдм рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдвреЗрд░


рд╡реЗрдм рд╕рд░реНрд╡рд░


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

рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ


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

рдЕрднреА рднреА рдЧреЗрдбреНрдбреА рд╣реИрдВ ред рдпрд╣ рд░реЗрд▓ рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ рд▓рдЧрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рдХрд┐рд╕ рддрд░рд╣ рдХреЗ рдЬрд╛рдирд╡рд░ рдХреЛ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ред

рдЖрдзрд╛рд░


рдЖрдо рдиреЛрдб рдХреЗ рд▓рд┐рдП рдордВрдЧреЛрд▓реЛрдб рдХреЗ рд▓рд┐рдП рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╡рд╕реНрддреБ рдореЙрдбрд▓рд┐рдВрдЧред
рдкреНрд░рд▓реЗрдЦрди рдФрд░ рдкреНрд▓рдЧрдЗрдиреНрд╕
рдЕрдиреНрдп PLs рдореЗрдВ, ORM (рдСрдмреНрдЬреЗрдХреНрдЯ-рд░рд┐рд▓реЗрд╢рдирд▓ рдореИрдкрд┐рдВрдЧ) рд╢рдмреНрдж рдЖрдорддреМрд░ рдкрд░ рдЗрд╕ рд╕реНрдерд╛рди рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди mongoose ODM (рдСрдмреНрдЬреЗрдХреНрдЯ-рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рдореИрдкрд┐рдВрдЧ) рд╣реИред рдмреЗрд╢рдХ, рдпрд╣ рди рдХреЗрд╡рд▓ рдиреЛрдб рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░реВрдмреА рдореЗрдВ рдПрдХ рдореЛрдВрдЧреЙрдпрдб рд╣реИ ред

рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕


рдЬреЗрдб рдПрдХ рд╣рд╛рдИ-рдкрд░рдлреЙрд░реНрдореЗрдВрд╕ рдиреЛрдб рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЗрдВрдЬрди рд╣реИ рдЬреЛ рд╣реИрдо рд╕реЗ рдХрд╛рдлреА рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддрд╛ рд╣реИред
рдкреНрд░рд▓реЗрдЦрди , рдХрд╛ред рдкреНрд░рд▓реЗрдЦрди
рд░реВрдмреА рдореЗрдВ рдПрдирд╛рд▓реЙрдЧ: рд╕реНрд▓рд┐рдо ( рдПрдХреНрдЬреЗрди ), рд╣реЗрдорд▓ ред

рд╕реАрдПрд╕рдПрд╕ рд░рд┐рдкреНрд▓реЗрд╕рдореЗрдВрдЯ


рд▓реЗрдЦрдиреА ред рдЕрднрд┐рд╡реНрдпрдВрдЬрдХ, рдЧрддрд┐рд╢реАрд▓, рдордЬрдмреВрдд рд╕реАрдПрд╕рдПрд╕
рдХрдо рд╣реИ ред LESS рдиреЗ рд╕реАрдПрд╕рдПрд╕ рдХреЛ рдЪрд░, рдорд┐рд╢реНрд░рдг, рд╕рдВрдЪрд╛рд▓рди рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд┐рдпрд╛
рд░реВрдмреА рдореЗрдВ рдПрдирд╛рд▓реЙрдЧреНрд╕: рд╕реИрд╕, рдХрдоред

рдкреНрд░рдорд╛рдгреАрдХрд░рдг


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

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

рд╕рддреНрд░ рднрдВрдбрд╛рд░рдг


рдХрдиреЗрдХреНрдЯ-рдореЛрдВрдЧреЛ ред рдХрдиреЗрдХреНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рддреНрд░ рднрдВрдбрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ MongoDB

рдИрдореЗрд▓


рдиреЛрдбреЗрдореИрд▓рд░ рдиреЛрдб (рдПрд╕рдПрдордЯреАрдкреА рдпрд╛ рд╕реЗрдВрдбрдореЗрд▓ рдпрд╛ рдЕрдореЗрдЬрд╝реЕрди рдПрд╕рдИрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдИрдореЗрд▓ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╕рд╛рди-рд╕реЗ-рдЙрдкрдпреЛрдЧ рд╡рд╛рд▓рд╛ рдореЙрдбреНрдпреВрд▓ рд╣реИ рдФрд░ рдпреВрдирд┐рдХреЛрдб рд╕рдорд░реНрдерд┐рдд рд╣реИред

рдкрд╛рд╕рд╡рд░реНрдб рд╣реИрд╢рд┐рдВрдЧ


bcrypt ред рд╣реИрд╢рд┐рдВрдЧ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдмреНрд░реЗрд░реАред

рдорд╛рдиреНрдпрддрд╛


рдиреЛрдб-рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреА рдЬрд╛рдВрдЪ, рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдФрд░ рд╕реНрд╡рдЪреНрдЫрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИред
рдиреЛрдб-рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рдФрд░ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдХреЗ рд▓рд┐рдП рдмрдВрдбрд▓ - рдПрдХреНрд╕рдкреНрд░реЗрд╕-рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛

i18n


i18n- рдиреЛрдб рдЧрддрд┐рд╢реАрд▓ рдЬреЛрдВрд╕ рд╕реНрдЯреЛрд░реЗрдЬ рдХреЗ рд╕рд╛рде рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╣рд▓реНрдХрд╛ рд╕рд░рд▓ рдореЙрдбреНрдпреВрд▓ рд╣реИред (рдзрдиреНрдпрд╡рд╛рдж рдореИрдХреНрд╕рд╡рд░реНрдХ )

рд▓реЙрдЧрд┐рдВрдЧ


рд╡рд┐рдирд╕реНрдЯреЛрди ред рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдмрд╣реБ-рдкрд░рд┐рд╡рд╣рди рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп

log.io рдЖрдкрдХреЛ рдПрдХрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рд▓реЙрдЧ рд╕рдВрджреЗрд╢ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдХрд╛рд░реНрдп рдирд┐рд╖реНрдкрд╛рджрди


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

рд░реАрдпрд▓рдЯрд╛рдЗрдо (рд╕реЙрдХреЗрдЯреНрд╕, рдкрдм-рд╕рдм)


рд╕реЙрдХреЗрдЯ


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

Redis


рдиреЛрдб_рд░реЗрдбрд┐рд╕ рдпрд╣ рдиреЛрдб рдХреЗ рд▓рд┐рдП рд░реЗрдбрд┐рд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реНрдг рдЧреНрд░рд╛рд╣рдХ рд╣реИред рдпрд╣ рд░реЗрдбрд┐рд╕ рдХреА рд╕рднреА рдЯреАрдореЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЬреЛрдбрд╝реА рдЧрдИ рдХрдИ рдЯреАрдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬреИрд╕реЗ рд░реЗрдбрд┐рд╕ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдмреНрд░рдВрдЪ рд╕реЗ EVALред

рдкрд░реАрдХреНрд╖рдг


рдкрд░реАрдХреНрд╖рдг рд░реВрдкрд░реЗрдЦрд╛


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

Bdd рд╢реИрд▓реА


рдореАрдЯреНрдЯреА рдиреЗ рдЪрд╛рдИ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреАред рдпрд╣ рдиреЛрдб рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП рдПрдХ BDD / TDD рдЕрднрд┐рдХрдерди рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬрд┐рд╕реЗ рдХрд┐рд╕реА рднреА рдкрд░реАрдХреНрд╖рдг рдврд╛рдВрдЪреЗ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

should.js - рдЕрд░реНрдердкреВрд░реНрдг, рдкрдврд╝рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди, рдиреЛрдб рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдврд╛рдВрдЪреЗ рдХреЗ рд╕реНрд╡рддрдВрддреНрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ред

HTTP рдореЛрдХреА


nock - рдиреЛрдб рдХреЗ рд▓рд┐рдП рдореЛрдХреНрд╕ рдФрд░ рдЕрдкреЗрдХреНрд╖рд╛рдУрдВ рдХреА HTTP рд▓рд╛рдЗрдмреНрд░реЗрд░реА

Moki


рд╕рд┐рдиреЛрдЬреНрдЬ ред рд╕реНрд╡рд╛рдпрддреНрдд рдкрд░реАрдХреНрд╖рдг "рдЬрд╛рд╕реВрд╕", рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рд╕реНрдЯрдмреНрд╕ рдФрд░ рдореЛрдХреАред

рдХрд╡рд░реЗрдЬ


рдХрдВрдмрд▓ рдЪрд┐рдХрдирд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХрд╡рд░реЗрдЬ
рд░реВрдмреА рдПрдирд╛рд▓реЙрдЧ: RCov

рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рд┐рдореБрд▓реЗрд╢рди


рдЬрд╝реЛрдВрдмреА рдПрдХ рдирдХрд▓реА рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╣рд▓реНрдХрд╛ рдврд╛рдВрдЪрд╛ рд╣реИред рдХреЛрдИ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред
рд░реВрдмреА рд╕рдорддреБрд▓реНрдп: рдХреИрдкреАрдмрд╛рд░рд╛

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


рдбрд┐рдмрдЧ


WebKit рд╡реЗрдм рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдиреЛрдб рдХреЗ рд▓рд┐рдП рдиреЛрдб-рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдбрд┐рдмрдЧрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ред рд╣реИрдмреЗ рдкрд░ рд▓реЗрдЦ

рд╣реЙрдЯ рд░реАрд▓реЛрдб рдХреЛрдб


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

рдбрд┐рдмрдЧ + рд╣реЙрдЯ рдХреЛрдб рд░рд┐рдмреВрдЯ


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

рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдирд┐рд░реАрдХреНрд╖рдХ


рдЖрдБрдЦреЗрдВ - рдиреЛрдб рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдореВрд▓реНрдп
рд░реВрдмреА рдореЗрдВ рдПрдирд╛рд▓реЙрдЧ: рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ рдкреНрд░рд┐рдВрдЯред

рдЙрдкрдпреЛрдЧрд┐рддрд╛рдПрдБ


рдкреНрд░рд╡рд╛рд╣ рдирд┐рдпрдВрддреНрд░рдг



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

async рдПрдХ рдРрд╕рд╛ рдореЙрдбреНрдпреВрд▓ рд╣реИ рдЬреЛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рдФрд░ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдХрд╛рд░реНрдп рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдкреНрд░рд╡рд╛рд╣ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рд▓реЛрдХрдкреНрд░рд┐рдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдФрд░ рдирдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдПрдХ рдФрд░ рд╕реВрдЪреА

рдЙрдкрдХрд░рдг


рдореАрдЯреНрдЯреАрдпрд╛ рдиреЗ рд▓реЙрдбрд╢ рдХреЛ рд╡рд╛рдкрд╕ рдмреБрд▓рд╛рдпрд╛ ред рд╡рд╣ рдПрдХ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдХреА рддрд░рд╣ рд╣реИ, рд▓реЗрдХрд┐рди рдмреЗрд╣рддрд░ рд╣реИред

рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдПрдХ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ, рдПрдХ рдЬреЗрдПрд╕ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕реНрд╡рд┐рд╕ рдЪрд╛рдХреВ, рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдЬреЛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк.рдЬреЗ (рдпрд╛ рд░реВрдмреА) рдХреЗ рдкреНрд░рд╢рдВрд╕рдХреЛрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк.js рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдПрдореНрдмреЗрдбреЗрдб рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдирд┐рдЧрд░рд╛рдиреА


рд╣рдореЗрд╢рд╛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдЙрдкрдХрд░рдг рд╣реИ рдХрд┐ рджреА рдЧрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд░рдВрддрд░ рдЪрд▓рддреА рд╣реИ (рдпрд╛рдиреА рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП)ред

HTTP рдХреНрд▓рд╛рдЗрдВрдЯ


рдЕрдиреБрд░реЛрдз HTTP рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИред

рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ


рдЧреНрд░рд╛рдо - рдиреЛрдб рдХреЗ рд▓рд┐рдП GraphicsMagick

рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓реАрдХреЗрд╢рди


рд╕рд╛рдВрд╡рд▓рд╛ рд░рдВрдЧ


рд░рдВрдЧ - рдЕрдкрдиреЗ рдиреЛрдб рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдХрдВрд╕реЛрд▓ рдореЗрдВ рд░рдВрдЧ рдФрд░ рд╢реИрд▓рд┐рдпрд╛рдБред

рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП


рдХрдорд╛рдВрдбрд░ .js ред рдиреЛрдб рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕рдорд╛рдзрд╛рди рдкреВрд░рд╛ рдХрд░реЗрдВ

рдиреЛрдб-рдЖрд╢рд╛рд╡рд╛рджреА - рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп

Coffescript


рдХреЙрдлреА-рд╕реНрдХреНрд░рд┐рдкреНрдЯ ред рдиреЛрдбрдо рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛

рдЖрдлреНрдЯрд░рд╡рд░реНрдб рдХреЗ рдмрдЬрд╛рдп рдереЛрдбрд╝рд╛ рд╕рд╛ рдЬрд╛рджреВ


рдореИрдВ рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд▓реЗрдХрд┐рди рдЙрд▓реНрдХрд╛ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ
рдЙрд▓реНрдХрд╛ рдХреБрдЫ рд╣реА рд╕рдордп рдореЗрдВ рдЙрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реЗ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдордВрдЪ рд╣реИ, рдЪрд╛рд╣реЗ рдЖрдк рдПрдХ рдЕрдиреБрднрд╡реА рдбреЗрд╡рд▓рдкрд░ рд╣реЛрдВ рдпрд╛ рдмрд╕ рд╢реБрд░реВ рдХрд░ рд░рд╣реЗ рд╣реЛрдВред
рдкреЗрдВрдЪрдХрд╕ рдХреЛ рджреЗрдЦрдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ: 1 , 2 ред рдпрд╛ рд╡реЗ рдкрдврд╝рддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рд╣рдмреЗрд░рд╛ рдкрд░ рдЙрд▓реНрдХрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд▓рд┐рдЦрддреЗ рд╣реИрдВред
рдирд┐рдХрдЯрддрдо рдкреНрд░рддрд┐рдпреЛрдЧреА: рдбрд░реНрдмреА , рд╕реЙрдХреЗрдЯрд╕реНрдЯреНрд░реАрдо

UPD рдХреЛ Habr├й рдХреЗ рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рдкреЛрд╕реНрдЯ рдорд┐рд▓реА

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


All Articles