рд╣реИрдкреНрдкреА рдкреЙрдЯрд░ рдФрд░ рд╕реАрдПрд╕рдПрд╕ рдХреЗ рдЖрджреЗрд╢


рддреЛ, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ - рдпрд╣ рдПрдХ рдЖрдо рд▓рдбрд╝рд╛рдИ рдирд╣реАрдВ рд╣реИред рдпрд╣ CSS рдмрдирд╛рдо CSS-in-JS рдореЗрдВ рдирд╣реАрдВ рд╣реИ, atomic CSS рдмрдирд╛рдо BEM рдирд╣реАрдВ, LESS рдмрдирд╛рдо SASS ред рдпрд╣ рд▓рдбрд╝рд╛рдИ ORDER рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред


рдпрд╣ рд▓рдбрд╝рд╛рдИ ORDER рдФрд░ CHAOS рдХреЗ рдмреАрдЪ рд╣реИред рдФрд░ ORDER рдФрд░ рдХреЗ рдмреАрдЪ, ... рдПрдХ рдФрд░ ORDERред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ - рд╕реАрдПрд╕рдПрд╕ рдЧреБрдгреЛрдВ рдХреЛ рдЫрд╛рдБрдЯрдиреЗ рдХреЗ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рди рдЬреНрдпрд╛рджрд╛, рди рдХрдоред


рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ - рдЗрд╕реЗ рдХрд░рдиреЗ рдХреЗ 3 рддрд░реАрдХреЗ рд╣реИрдВ:


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

рдЕрдм рд╕реЗ рдкрд╣рд▓реЗ рд░рд╛рд╕реНрддреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рд╣реИред

2012


рд╕реАрдПрд╕рдПрд╕-рдЯреНрд░рд┐рдХ рд╕реЗ рдПрдХ рдЕрдЪреНрдЫрд╛ рдорддрджрд╛рди рд╣реБрдЖ , рдФрд░ рдпрд╣рд╛рдВ рдкрд░рд┐рдгрд╛рдо рд╣реИрдВ:



рдпрд╣ 2019 рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИ, рдХреНрдпрд╛ рдмрджрд▓рд╛ рдЧрдпрд╛ рдерд╛?


alpha sort , рдПрдмреАрд╕реАрдПрд╕рдПрд╕ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░, рдЬреИрд╕рд╛ рдХрд┐ рдЬреНрдЮрд╛рдд рд╣реИ, рдФрд░ рдПрдХ grouping рдХрд╛рдлреА рдзреНрд╡рдирд┐ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ


рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрд╡рд╕реНрдерд╛


рдЗрд╕ рдкреНрд░рд┐рдЯрд┐рдпрд░ рдореБрджреНрджреЗ рд╕реЗ рдЖрдЗрдП рдПрдХ рдЖрджрд░реНрд╢ CHAOS рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ


 .wrapper { top: 20px; /* is it absolute? fixed? You begin searching downwards */ margin-left: 20px; /* Any other margins applied? */ display: flex; /* How is this flexed? searching for justify / align / flex rules */ position: absolute; /* ah absolute */ height: 100%; /* and width? */ margin-bottom: 20px; border-radius: 5px; /* Is there even a border? */ color: red; justify-content: center; margin-left: 2px; left: 0px; width: 100%; /* and height? */ border: 1px solid red; } 

рд╕реБрдВрджрд░? рдмрд┐рдирд╛ рдХрд┐рд╕реА рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рдХреБрдЫ рд╡рд░реНрд╖реЛрдВ рдХреЗ рдмрд╛рдж рд╕рд╛рдорд╛рдиреНрдп рд╕реАрдПрд╕рдПрд╕ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред


ABCSS


рдЗрд╕реЗ рд╡рд░реНрдгрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рдХреНрд░рдордмрджреНрдз рдХрд░реЗрдВ


 .wrapper { border: 1px solid red; border-radius: 5px; color: red; display: flex; height: 100%; justify-content: center; left: 0px; margin-bottom: 20px; margin-left: 20px; margin-left: 2px; /* ouch? */ position: absolute; top: 20px; width: 100%; } 

рдЗрд╕рдиреЗ рд╕рд┐рд░реНрдл рдпрд╣ рдиреЛрдЯрд┐рд╕ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХреА рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ margin-lefts ред рдЕрдЧрд▓реА рдмрд╛рд░ рдирдИ рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛, рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рд╕рднреА рдЫрдВрдЯрд╛рдИ stylelint рд╕реНрддрд░ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХреА stylelint рд╣реИред


рд╡рд░реНрдгрдорд╛рд▓рд╛ рдЫрдБрдЯрд╛рдИ рдХрд╛ рдореБрдЦреНрдп рд▓рд╛рдн - рдЖрд╕рд╛рди рд╕рдВрдкрддреНрддрд┐ рд╕реНрдерд╛рдиред рдЖрдк рд╕рд┐рд░реНрдл рдПрдХ рд╢рдмреНрджрд╛рд╡рд▓реА рдХреА рддрд░рд╣ рд╕реНрдХреИрдирд┐рдВрдЧ рдЯреЗрдмрд▓, рдФрд░ рд╣рд╛рдВ, рдпрд╣рд╛рдБ рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ рд╕рдВрдкрддреНрддрд┐ рд╣реИред

рдореБрдЦреНрдп рдиреБрдХрд╕рд╛рди - height width рд╕реЗ рдкрд╣рд▓реЗ рдЬрд╛рддреА рд╣реИ, left top рд╕реЗ рдкрд╣рд▓реЗ рдЬрд╛рддреА рд╣реИ рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рдХреБрдЫ рджреВрд░реА рд╣реИред рд╡рд░реНрдгрд╛рдиреБрдХреНрд░рдорд┐рдХ рдЫрдБрдЯрд╛рдИ рд╕рдВрджрд░реНрдн рдорд┐рд╢реНрд░рдг рд╣реИ ред


рдореИрдВрдиреЗ рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдСрдирд▓рд╛рдЗрди рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИред рдСрдирд▓рд╛рдЗрди рдЯреВрд▓, IDEs рдФрд░ CLI рдЯреВрд▓реНрд╕ рдХреЗ рд▓рд┐рдП рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдЕрд▓реНрдлрд╝рд╛ рдмреЙрдХреНрд╕ рдХреЗ рдмрд╛рд╣рд░ рдЕрд▓реНрдлрд╛ рд╕реЙрд░реНрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред - рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рдиред


рд╕рдореВрд╣


рдЗрд╕реЗ рд╕рдореВрд╣реЛрдВ рдореЗрдВ рдХреНрд░рдордмрджреНрдз рдХрд░реЗрдВ


 .wrapper{ position: absolute; top: 20px; left: 0; display: flex; justify-content: center; width: 100%; height: 100%; margin-bottom: 20px; margin-left: 20px; margin-left: 2px; color: red; border: 1px solid red; border-radius: 5px; } 

рдЗрд╕ рдмрд╛рд░ рдпрд╣ separation of concerns рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╣реИ - рд╕рднреА рдЧреБрдгреЛрдВ рдХреЛ рдПрдХ рдЕрд░реНрде рдореЗрдВ рдмрд╛рд▓реНрдЯреА рдореЗрдВ рд╡рд░реНрдЧреАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдСрд░реНрдбрд░рд┐рдВрдЧ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ "рдЖрдЙрдЯрд╕рд╛рдЗрдб-рдЗрди" рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ


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

рдФрд░ рд╕рдорд╕реНрдпрд╛ - рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдорд╛рдирдХ рд╣реИрдВред рдЕрдзрд┐рдХ рдареЛрд╕ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП - рдкрд╛рдВрдЪ рд╕реЗ рдЕрдзрд┐рдХред рдФрд░ рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдпрд╛ рдирд╣реАрдВ?

рдФрд░, рдлрд┐рд░ рднреА - рдЫрдБрдЯрд╛рдИ рдПрдХ рдЙрдкрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕ рд╕рдордп CSSCOMB ред


рдореБрдЦреНрдп рд▓рд╛рдн - рд╕рднреА рдЧреБрдгреЛрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдЬреНрдЮрд╛рди рджреНрд╡рд╛рд░рд╛ рд╕рдореВрд╣реАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рднреА рдлреНрд▓реЗрдХреНрд╕ рдЧреБрдг - рдПрдХ рд╕рд╛рдеред рд╕рднреА рд╕реНрдерд┐рддрд┐, рдмрд╛рдПрдВ, рджрд╛рдПрдВ, рдКрдкрд░, рдиреАрдЪреЗ - рдПрдХ рд╕рд╛рдеред


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

рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
  • рдЕрд▓реНрдлрд╛ рд╕реЙрд░реНрдЯ рдХреЗ рд╕рд╛рде - рдЖрдк рд▓рд╛рдЗрди рдХреА рдПрдХ рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ, рд╢реБрд░реБрдЖрдд рдФрд░ "рдЖрдкрдХрд╛" рдкрд╣рд▓рд╛ рдЕрдХреНрд╖рд░ рдХрд╛ рдЕрдВрддред рддрдм рдЖрдкрдХреЛ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рд╕рдмрдмреНрд▓реЙрдХ рд╣реИ рдФрд░ рдпрд╣ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИред рд╡рд╣ рдореВрд▓ рд░реВрдк рд╕реЗ O (n) рд╣реИред рдХреБрдЫ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рдмрд╛рдж - рдУ (рдПрди / 2), рдЬрдм рддрдХ рдЖрдк рдЬрд╛рдиреЗрдВрдЧреЗ рдХрд┐ "рдХрд╣рд╛рдВ" рдПрдХ рдкреНрд░реЛрдк рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИред
  • рд╕рдореВрд╣ рд╕реЙрд░реНрдЯ рдХреЗ рд╕рд╛рде - рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ "рдХрд╣рд╛рдБ" рдПрдХ рдкреНрд░реЛрдк рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИ - рд╕рдореВрд╣реЛрдВ рдореЗрдВ рдПрдХ рд╕реНрдерд┐рд░ рд╕реНрдерд┐рддрд┐ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЫреЛрдЯреЗ рдЙрдкрд╕рдореБрдЪреНрдЪрдп рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рд╣реИ - O (3), рди рдХрд┐ "n"ред

рдореБрдЦреНрдп рдиреБрдХрд╕рд╛рди - рдЖрдкрдХреЛ рд╕реАрдЦрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ рдХреЙрдиреНрд╕рд░реНрд╕ рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рд╣реИред 99% рдЙрддреНрддрд░рджрд╛рддрд╛рдУрдВ рдиреЗ рдХрд╣рд╛ рдХрд┐ рдпрд╣ рдПрдХ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рд╣реИ - рд╕рдореВрд╣рдмрджреНрдз рд╕реАрдПрд╕рдПрд╕ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЙрдкрдХрд░рдг рдХрд╛ рдХрд╛рдо рд╣реИ, рдЖрдкрдХрд╛ рдирд╣реАрдВред рдФрд░, рд╣рд╛рдБ, рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдорд╛рдирдХ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рддрдм рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ рдЬрдм рдПрдХ рдЙрдкрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рдСрд░реНрдбрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рдЬрдирдордд



рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреБрдЫ рд╢реЛрдз рдХрд┐рдпрд╛ред


  • 2012y, css-tricks рдиреЗ рдмрддрд╛рдпрд╛ рдХрд┐ 45% devs рд╕рдореВрд╣реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, 14 - рдЕрд▓реНрдлрд╛ рд╕реЙрд░реНрдЯ, 39 рдХреБрдЫ рднреА рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ
  • рдЬрдирдордд рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдЖрдЬ (рдФрд░ рдЕрднреА рддрдХ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ) - рд╕рдореВрд╣реЛрдВ рдХреЗ рд▓рд┐рдП 50%, рдЕрд▓реНрдлрд╛ рдХреЗ рд▓рд┐рдП 25%, 25% рдХреБрдЫ рднреА рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ

рд╕рдореВрд╣реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕рд░реНрд╡реЛрддреНрддрдо рдХрд╛рд░рдг:


  • рд╕рдореВрд╣ рдЪреАрдЬреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рд░рдЦрдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рддрд░реАрдХрд╛ рд╣реИ: рдпрд╣ рд╡рд╣ рддрд░реАрдХрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЗ рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╣реИред рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдЖрдкрдХреЛ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреЗ рдХреНрд░рдо рдореЗрдВ рдПрдХ рд╡рд╛рдХреНрдп рдореЗрдВ рд╢рдмреНрдж рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред рд╢реАрд░реНрд╖, рджрд╛рдПрдВ, рдиреАрдЪреЗ, рдмрд╛рдПрдВ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рд╕рд╛рде рд╣реЛрддреЗ рд╣реИрдВ, рд╕реНрдерд┐рддрд┐ рдХреЗ рдареАрдХ рдмрд╛рдж: рдкреВрд░реНрдг ( рдЯреНрд╡рд┐рдЯрд░ )ред
  • рд╕рдореВрд╣реЛрдВ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдХрд╛рд░рдг рдкрд░рдорд╛рдгреБ рд╕реАрдПрд╕рдПрд╕ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ - рдкрд░рдорд╛рдгреБ / рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЖрдорддреМрд░ рдкрд░ рдПрдХ "рд╕рдореВрд╣" рд╕реЗ рдмрдВрдзреЗ рд╣реЛрддреЗ рд╣реИрдВ, рдпрд╣ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд░реВрдкрд░реЗрдЦрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╛рдХреГрддрд┐рдХ рддрд░реАрдХрд╛ рд╣реИред рддреЛ "рд╕рд╛рдорд╛рдиреНрдп" рд╕реАрдПрд╕рдПрд╕ рд╕рдВрдпреБрдХреНрдд рдкрд░рдорд╛рдгреБрдУрдВ рдХреА рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ - рдпрд╛рдиреА рд╕рдореВрд╣рдмрджреНрдз ( рдЯреНрд╡рд┐рдЯрд░ )ред
  • рдЫреЛрдЯреА рдЯреАрдореЗрдВ рдПрдХ рд╕рд╛рде рдореБрд╣рд╛рд╡рд░реЗрджрд╛рд░-рд╕реАрдПрд╕рдПрд╕ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ (рдЬреИрд╕реЗ рд╕реНрдерд┐рддрд┐ рдФрд░ рдмреЙрдХреНрд╕-рдореЙрдбрд▓) рдХреЛ рдкрд╕рдВрдж рдХрд░ рд╕рдХрддреА рд╣реИрдВред
  • рджреЛрдиреЛрдВ рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдкреЗрд╢реЗрд╡рд░реЛрдВ рдФрд░ рд╡рд┐рдкрдХреНрд╖ рд╣реИрдВред рдПрдХ рддрд░рдл, рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреНрд░рдо рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╣реИ (рдХрдо рд╕реЗ рдХрдо рд▓реИрдЯрд┐рди рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП), рдЗрд╕рд▓рд┐рдП рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рджреВрд╕рд░реЗ рд╕реЗ рдЫрд╛рдБрдЯрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рддрд░реНрдХ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдореБрдЭреЗ рдмрд╣реБрдд рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдиреАрдЪреЗ рдФрд░ рдКрдкрд░ рдЬреИрд╕реЗ рдЧреБрдг рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдареАрдХ рдмрдЧрд▓ рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВред рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рдХрд╛рд░ рд╕реЗ рдкрд╣рд▓реЗ рдПрдирд┐рдореЗрд╢рди рдХреНрдпреЛрдВ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рдЪрд╛рд╣рд┐рдП? рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреНрд░рдо рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рд╕реА рд╡рд┐рд╖рдорддрд╛рдПрдБ рд╣реИрдВред рджреВрд╕рд░реА рдУрд░, рдкреНрд░рдХрд╛рд░ рдХреЗ рдЧреБрдгреЛрдВ рдХрд╛ рдЖрджреЗрд╢ рджреЗрдирд╛ рд╕рд╣реА рдЕрд░реНрде рд╣реИред рд╣рд░ рдлреЙрдиреНрдЯ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдШреЛрд╖рдгрд╛рдУрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдКрдкрд░ рдФрд░ рдиреАрдЪреЗ рдлрд┐рд░ рд╕реЗ рдкреБрдирд░реНрдорд┐рд▓рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рд▓рдШреБ рдХрдерд╛ рдкрдврд╝рдиреЗ рдХреА рддрд░рд╣ рдПрдХ рдирд┐рдпрдордмрджреНрдз рддрд░реАрдХреЗ рд╕реЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред SASS рдЧрд╛рдЗрдб ред
  • рд╕рдореВрд╣ рд╕реЙрд░реНрдЯ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЗрдВ gzip рдХреЗ рдмрд╛рдж 2% рд╕реЗ рдЫреЛрдЯреА рд╣реИрдВред рдЬрд╛рджреВред рдпрд╣ рд▓реЗрдЦ рд╕реАрдПрд╕рдПрд╕ рдкреНрд░реЙрдкрд░ рдСрд░реНрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 5 рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реИред рдЕрдзреНрдпрдпрди

рдЙрдкрдпреЛрдЧ рди рдХрд░рдиреЗ рдХреЗ рдХреБрдЫ рдХрд╛рд░рдг


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

рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг:


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

рддреЛ, TLDR


  • рд╣рдо рдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ (рдФрд░ рдореБрдЭреЗ рдЖрдорддреМрд░ рдкрд░ рд╢рд╛рдорд┐рд▓) рд╕реАрдПрд╕рдПрд╕ рд╕рд╣рд╛рд░рд╛ рдХреЗ рдЖрджреЗрд╢ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдмрдХрд╡рд╛рд╕ рдирд╣реАрдВ рджреЗ рд░рд╣реЗ рд╣реИрдВред рд╣рдо рдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рднреА рд╕реАрдПрд╕рдПрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдмрдХрд╡рд╛рд╕ рдирд╣реАрдВ рджреЗ рд░рд╣реЗ рд╣реИрдВред
  • CSS-in-JS рднреА рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдУрдВ рдХреЛ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
  • рдкрд░рдорд╛рдгреБ рд╕реАрдПрд╕рдПрд╕ рдЬреИрд╕реА рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдПрдВ рд╕рдореВрд╣реЛрдВ (рдбрд┐рдЬрд╛рдЗрди рджреНрд╡рд╛рд░рд╛) рдХреЗ рд╕рд╛рде рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рд╣реИрдВ, рдЬрдмрдХрд┐ рдмреАрдИрдПрдо, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдЖрджреЗрд╢ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ:

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


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


рдЕрдм рддрдХ рдореИрдВрдиреЗ рдХрд╛рдлреА рдЙрдЪрд┐рдд рддрд░реНрдХ рдкреНрд░реЛ grouping рд╕реБрдирд╛, рд▓реЗрдХрд┐рди рдПрдХ рднреА (рдореЗрд░реЗ рд▓рд┐рдП рдЙрдЪрд┐рдд) рдкреНрд░реЛ рдЕрд▓реНрдлрд╛ рд╕реЙрд░реНрдЯ рдирд╣реАрдВред


рдпрд╣ рднреА рджреЗрдЦреЗрдВ:



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

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


All Articles