English | Русский

Обычно при вёрстке и программировании сайта разработчики опираются на допущение, что дизайн и технические требования к странице не изменятся в процессе разработки.

Дизайнер, верстальщик и программист каждый работает в своей области, часто не пересекаясь друг с другом:

  1. Дизайнер создаёт дизайн в виде набора макетов
  2. Из этих макетов делается статическая HTML/CSS вёрстка
  3. Она передаётся программисту для создания шаблонов на каком-то серверном языке и оживлении сайта с помощью JavaScript

Такой подход хорошо работает только в том случае, если дизайн сайта остаётся неизменным всё время его жизни и изменения только добавляют контент.

Но обычно так не происходит, сайт начинает жить своей жизнью и развиваться. Дизайн страниц постепенно меняется, добавляются новые страницы или новые блоки на них.

Если в код сайта не заложена определённая структура, если он делается не по фиксированным правилам, то постепенно его становится всё сложнее и сложнее разрабатывать, код сайта становится неподвластным разработчикам.

При БЭМ-подходе все люди, принимающие участие в разработке сайта, работают с единым кодом и общаются в одних и тех же терминах, на одном языке:

  1. Дизайн сайта может измениться в любой момент, надо быть к этому готовым
  2. HTML/CSS разметка развивается вместе с дизайном, готова к его изменению
  3. Программист вместе в верстальщиком работают над кодом сайта, дополняя код друг друга

Условия появления методологии

БЭМ-методология была разработана в Яндексе при разработке большого количества сервисов для решения следующих задач:

Мы искали решения возникающих перед нами проблем. Начиная с какого-то момента эти решения составили методологию БЭМ.

Читать дальше