рдпреИрдВрдбреЗрдХреНрд╕ рд╕реЗ рдбреЗрд╡рд▓рдкрд░ рд╕реЗ рдЙрдкрдпреЛрдЧреА рдХреЛрдб рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдиреБрд╕реНрдЦрд╛



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


рдПрдХ рдХреЛрдб рд╕рдореАрдХреНрд╖рд╛ рдХреА рдорджрдж рд╕реЗ, рдореИрдВ рд▓рдЧрд╛рддрд╛рд░ рдХреБрдЫ рдирдпрд╛ рд╕реАрдЦрддрд╛ рд╣реВрдВред рдХрднреА-рдХрднреА, рдХрд┐рд╕реА рдФрд░ рдХреЗ рдХреЛрдб рдХреЛ рджреЗрдЦрдХрд░, рдореИрдВ рдмрд╣рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ: "рд▓реЗрдХрд┐рди рдХреНрдпрд╛, рдпрд╣ рднреА рд╕рдВрднрд╡ рд╣реИ?"ред рдХрд┐рд╕реА рдФрд░ рдХреЗ рдХреЛрдб рдореЗрдВ, рдореИрдВ рджрд┐рд▓рдЪрд╕реНрдк рдЯреНрд░рд┐рдХреНрд╕ рдвреВрдВрдврддрд╛ рд╣реВрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕реЗрд╡рд╛ рдореЗрдВ рд▓реЗ рдЬрд╛рддрд╛ рд╣реВрдВред рдореИрдВ рдЕрдкрдиреЗ рдХреЛрдб рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рдХрдИ рдирдП рдЬреНрдЮрд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реВрдВред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдЦреЛрдЬ рдереА рдХрд┐ рд▓реЛрдЧ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡реЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЬрдм рдореИрдВ рдЕрдХреЗрд▓реЗ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рджреВрд╕рд░реА рдЯреАрдо рдХреЗ рд▓реЛрдЧреЛрдВ рд╕реЗ рдЕрдкрдиреА рдкреБрд▓-рдХреНрд╡реИрд╕реНрдЯ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реВрдВред рдпрд╣ рд╕реБрдВрджрд░ рдФрд░ рд╕реНрдкрд╖реНрдЯ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред


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


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


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


"рд╕рдореАрдХреНрд╖рд╛ рд╕реЗ рдкрд╣рд▓реЗред" рд▓реЗрдЦрдХ рдХреЗ рд▓рд┐рдП рдЯрд┐рдкреНрд╕


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


рдкреНрд░рддрд┐рдмрджреНрдз


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


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


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


рдЯреБрдХрдбрд╝реЗ рдЯреБрдХрдбрд╝реЗ рдХрд░рдирд╛, рд▓реВрдЯрдирд╛, рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рдЫреЛрдЯреЗ рдХрдорд┐рдЯ рдореЗрдВ рдХрд╛рдЯреЗрдВред рдЗрд╕рд╕реЗ рд╕рдореАрдХреНрд╖рдХ рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭ рдкрд╛рдПрдВрдЧреЗред рдпрджрд┐ рдЖрдк рдЕрдкрдШрдЯрди рдХреЗ рд╕рд╛рде рдУрд╡рд░рдмреЛрд░реНрдб рдЬрд╛рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдареАрдХ рд╣реИред рджреЛ рдХрдорд┐рдЯ рдПрдХ рдореЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдПрдХ рдмрдбрд╝реА рдкреНрд░рддрд┐рдмрджреНрдз рдХреЛ рдХрдИ рдЫреЛрдЯреЗ рд▓реЛрдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИред "рдХрдЯрд╛ рд╣реБрдЖ рд╕рдмреНрдЬрд┐рдпрд╛рдВ" рдЖрд╕рд╛рдиреА рд╕реЗ "рдХрдЯрд╛ рд╣реБрдЖ рдЯрдорд╛рдЯрд░" рдФрд░ "рдХрдЯрд╛ рд╣реБрдЖ рдкреНрдпрд╛рдЬ" рдорд┐рд▓рд╛рдХрд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдПрдХ рд╕рд▓рд╛рдж рдкреНрд▓реЗрдЯ рд╕реЗ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╕рднреА рд╕рд╛рдордЧреНрд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордп рдмрд┐рддрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред


рдХрдорд┐рдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рддреБрд░рдВрдд рдЧреАрдереВрдм рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреЛ рдзрдХреНрдХрд╛ рджреЗрддрд╛ рд╣реВрдВред рдЗрд╕рдиреЗ рдореБрдЭреЗ рдХрдИ рдмрд╛рд░ рдорджрдж рдХреА рдЬрдм рдПрдХ рд▓реИрдкрдЯреЙрдк рдХреЗ рд╕рд╛рде "рдХреЙрдлреА рдХреА рдкрд░реЗрд╢рд╛рдиреА" рдереАред


рдХрдорд┐рдЯреНрд╕ рдХрд╛ рд╡рд┐рд╡рд░рдг


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


git commit -m 'fix1'. git commit, . ( ). ( ).


, " " " ". , . . ASCII- . , , .



( ASCII-)



( . vim)



( GitHub. )



, , . :


git status
git diff comments.js
git add comments.js

, . git add ., . , .



. , . JavaScript ESlint. R2-D2 " ", . , , .


WebStorm " ". , , . husky.


. . .



( )



тАУ , тАУ . , . git log --pretty='%h: %B' --first-parent --no-merges --reverse.



( `git log --pretty='%h: %B' --first-parent --no-merges --reverse`)



( , )


, . , . .


! , .


┬л ┬╗.


тАУ , .



, . , , . , . , " ".


. . .


тАУ


. ! . , . , , . , .



. , . .


. :


function sum(arr) {
  return arr.reduce(function (res, i) {
    return res + i;
  }, 0);
}

sum([1, 2, 3]); // 6

, :


const sum = arr => arr.reduce((res, i) => res + i);

, . , , . , . тАУ .


Offline


, . , . .


offline-. (, : , ), .


. -, . -, : ( ). -, , тАФ .


, . offline- .


┬л ┬╗.


, . . .



, . , , , . , : ? ? ? , .


. , .



( : )


. , . ? ' , .



-. . , . , , .


git rebase --interactive master. , FEATURE-1, master тАФ . , , pick squash. .



( , )


--force. , . git push origin FEATURE-1 --force , . , .


GitHub. "Squash and merge".



( GitHub)


, . FEATURE-1. :


git checkout master
git pull origin master
git branch -D FEATURE-1


( .)



, , :


#     
git checkout -b FEATURE-1

#  
git status
git diff src/controllers/v1/comments.js
git add src/controllers/v1/comments.js

#    
git commit
git push origin FEATURE-1

#    
git log --pretty='%h: %B' --first-parent --no-merges --reverse

#    
git rebase --interactive master
git push origin FEATURE-1 --force

#  
git checkout master
git pull origin master
git branch -D FEATURE-1


, , ?

:


#  ,      
git add comment.js

#    
git commit --amend

, . тАФ . тАФ git rebase --interactive master, pick squash.



, git rebase --interactive master pick edit , .


, , , , . ?

, . , . . git add --patch test/comment-test.js



, . , . ?

git rebase --interactive master . . . , pick, pick squash.


?

. issue, . .


?

?

. , .

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


All Articles