Skip to content

f-o-r/bem-simple-project-stub

Repository files navigation

BEM Simple Project Stub

Супер-лайт Project Stub

Концепции и технологии

  • BEM – концепция блоков, состояний, уровней переопределения и т.п.;
  • ENB – сборщик BEM-проектов;
  • jQuery – уровень DOM;
  • i-bem.js – BEM-фреймворк для построения Multi Page Application / Single Page Application;
  • YModules – асинхронные модули;
  • Backbone – модели и коллекции;
  • Yate – клиент/серверый, декларативный шаблонизатор;
  • Stylus + Nib – препроцессор CSS с библиотекой CSS3.

Шаблонизация (клиент/сервер): Yate + BEM + ENB

  • Собирает все зависимости в бандлы, основываясь на декларации (deps);
  • Собирает отдельно клиентские шаблоны, основываясь на специальной декларации (depsByTech);
  • Вычитает дублирующие зависимости в common-бандл, для избавление от копипасты и избежания коллизий при компиляции;
  • Импортит common-бандл в page-бандл, для обращения к функциям и шаблонам, которые были перемещены в common-бандл;
  • Шаблоны находятся в одном "контексте" (page бандл с импортом common) и реиспользуют друг друга;
  • Актуально для клиента: шаблоны могут вызываться точечно для перерисовки атомарных частей (блоков), без подготовки спец. данных для этого;
  • Шаблоны на сервере и клиенте одинаковые.