Skip to content

Что такое БЭМ

mkazantsev edited this page Jul 3, 2011 · 3 revisions

Подход к web-разработке, который позволяет получить гибкий, легко изменяемый код.

BEM решает следующие задачи:

  • разделение кода на логические части
    • происходит разделение ответственности, части кода могут писать разные люди
    • использование без погружения в детали реализации — можно оперировать частями без погружения в то, как эти части сделаны
    • увеличивается вероятность повторного использования — чем больше частей у нашего решения, тем больше вероятность того, что какая-либо часть решения может быть повторно использована
  • единый подход к реализации, во множестве технологий (мультилингвальность)
    • в web-технологиях финальный продукт состоит из разных технологий, но при этом во всех технологиях единые термины и подходы к реализации
    • картинки и документация тоже технологии
  • оптимизировать выполнение production runtime
    • добавлять в него только действительно используемые части, не грузить лишний, не используемый код
    • генерировать для разных браузеров («виртуальных машин») разный код, оптимизированный для этого браузера
    • для улучшения скорости работы можно менять не код приложения, а улучшать «компилятор», который генерирует код из БЭМ-сущностей