Елена Глухова, Яндекс
Верстальщик, разработчик веб-интерфейсов. Работает в Яндексе с 2008 года.
Варвара Степанова, Яндекс
Закончила Петрозаводский государственный университет. Работает в Яндексе с 2008 года разработчиком интерфейсов. Разрабатывала проекты Яндекс.Ответы и Яндекс.Фотки. Последние полтора года Елена Глухова и Варвара Степанова совместно работают вместе над внутренним интерфейсным фреймворком, помогающим единообразно делать сервисы Яндекса. В последнее время также заняты разработкой подобного интерфейсного фреймворка в open source.
Тема доклада
i-bem.js: JavaScript в БЭМ-терминах.
Тезисы
Разрабатывая сайты по методологии БЭМ, мы используем единую предметную область во всех технологиях: CSS, шаблоны, JavaScript. Для того чтобы это было возможно, в библиотеке блоков bem-bl реализовано ядро клиентского JS-фреймворка, которое позволяет работать со страницей в терминах БЭМ, на следующем уровне абстракции над DOM-представлением. В этом мастер-классе показаны ключевые моменты использования такого подхода для написания клиентского JS. Мы создаём составной блок, использующий JS-функциональность входящих в него маленьких блоков. В результате всё работает, и никакого копипаста.
8. Features
Некоторые особенности
8
Wednesday, October 5, 2011
9. Features
Некоторые особенности
Декларативный стиль
9
Wednesday, October 5, 2011
10. Features
Некоторые особенности
Декларативный стиль
Отложенная инициализация
10
Wednesday, October 5, 2011
11. Features
Некоторые особенности
Декларативный стиль
Отложенная инициализация
Использование вложенных блоков
11
Wednesday, October 5, 2011
12. Features
Некоторые особенности
Декларативный стиль
Отложенная инициализация
Использование вложенных блоков
Реакция на изменение модификаторов
12
Wednesday, October 5, 2011
13. Features
Некоторые особенности
Декларативный стиль
Отложенная инициализация
Использование вложенных блоков
Реакция на изменение модификаторов
Расширение поведения модификаторами и уровнями
переопределения
13
Wednesday, October 5, 2011
20. Инициализация проекта
Клонируем репозиторий
git://github.com/toivonen/yac2011-bem-js-docs.git
make
Получает библиотеку bem-bl
Собирает страницы
20
Wednesday, October 5, 2011
21. Структура проекта
bem-bl/
blocks/
pages/
GNUmakefile
21
Wednesday, October 5, 2011
22. Структура проекта
bem-bl/
blocks-common/
blocks-desktop/
blocks/
pages/
GNUmakefile
22
Wednesday, October 5, 2011
23. Структура проекта
bem-bl/
blocks-common/
i-bem/
...
blocks-desktop/
blocks/
pages/
GNUmakefile
23
Wednesday, October 5, 2011
24. Структура проекта
bem-bl/
blocks/
b-cut/
...
pages/
GNUmakefile
24
Wednesday, October 5, 2011
25. Структура проекта
bem-bl/
blocks/
pages/
index/
index.bemjson.js
...
GNUmakefile
25
Wednesday, October 5, 2011
26. Структура проекта
bem-bl/
blocks/
pages/
GNUmakefile
26
Wednesday, October 5, 2011
42. Инициализация проекта
Клонируем репозиторий
git://github.com/toivonen/yac2011-bem-js-blog.git
make
Получает библиотеку bem-bl
Собирает страницы
42
Wednesday, October 5, 2011
44. Ссылки
для “почитать”
Репозиторий библиотеки
github.com/bem/bem-bl или clck.ru/Kuu4
jsdoc в коде блока i-bem
Документация блока i-bem
clck.ru/KzEJ
Клуб в Ярушке
44
Wednesday, October 5, 2011
45. Bарвара Степанова
toivonen@yandex-team.ru
Wednesday, October 5, 2011