Презентация к докладу про БЭМ by Mikhail Troshev

20
Moscow JS Meetup, Москва, 27 апреля 2012 года Разработчик интерфейсов Михаил Трошев Мастер-класс про БЭМ

description

2012-04-27

Transcript of Презентация к докладу про БЭМ by Mikhail Troshev

Page 1: Презентация к докладу про БЭМ  by Mikhail Troshev

Moscow JS Meetup, Москва, 27 апреля 2012 года

Разработчик интерфейсовМихаил Трошев

Мастер-класс про БЭМ

Page 2: Презентация к докладу про БЭМ  by Mikhail Troshev

Теория

2

Page 3: Презентация к докладу про БЭМ  by Mikhail Troshev

Словарь

БЭМ! — методология + инструменты + библиотека

3

Page 4: Презентация к докладу про БЭМ  by Mikhail Troshev

Словарь

БЭМ! — методология + инструменты + библиотека

БЭМ-сущность — блок, элемент, модификатор

БЭМ-технология — ~ язык программирования

4

Page 5: Презентация к докладу про БЭМ  by Mikhail Troshev

Сущности и технологии

$ ls -1 bem-bl/blocks-desktop/b-search/

b-search.bemhtmlb-search.cssb-search.deps.jsb-search.en.title.txtb-search.ru.title.txtb-search.ru.wikiexamples__layout

blocks/block/block.techblocks/block/__elem/block__elem.techblocks/block/_mod/block_mod_val.tech

5

Page 6: Презентация к докладу про БЭМ  by Mikhail Troshev

Словарь

БЭМ! — методология + инструменты + библиотекаБЭМ-сущность — блок, элемент, модификаторБЭМ-технология — ~ язык программирования

БЭМ-дерево — дерево блоков страницы

БЭМ-декларация — множество блоков страницы

6

Page 7: Презентация к докладу про БЭМ  by Mikhail Troshev

Дерево

({ block: 'b-page', head: [ { elem: 'css', url: 'example.css' }, { elem: 'css', url: 'example.ie.css', ie: 'lt IE 8' }, { block: 'i-jquery', elem: 'core' }, { elem: 'js', url: 'example.js' } ], content: { block: 'b-link', mods: { pseudo: 'yes' }, url: 'www.yandex.ru', target: '_blank', title: 'Click me', content: 'Visit Yandex' }})

7

bem-bl-test/pages/example/example.bemjson.js

Page 8: Презентация к докладу про БЭМ  by Mikhail Troshev

Декларация

exports.blocks = [ { "name": "b-page" }, { "name": "b-link", "mods": [ { "name": "pseudo", "vals": [ "yes" ] } ] }];

8

bem-bl-test/pages/example/example.bemdecl.js

Page 9: Презентация к докладу про БЭМ  by Mikhail Troshev

9

Сборка

Page 10: Презентация к докладу про БЭМ  by Mikhail Troshev

Теория

Подробно:

github.com/bem/bem-method

10

Page 11: Презентация к докладу про БЭМ  by Mikhail Troshev

Применение

11

Page 12: Презентация к докладу про БЭМ  by Mikhail Troshev

CSS

JS

BEMHTML

PRIV.JS

NODE12

Глубина погружения

Page 13: Презентация к докладу про БЭМ  by Mikhail Troshev

Применение

Готовый движок?CSS, JS

Статический сайт?CSS, JS, BEMHTML

Динамический сайт?CSS, JS, BEMHTML, PRIV.JS

13

Page 14: Презентация к докладу про БЭМ  by Mikhail Troshev

Практика 1: статика

14

Page 15: Презентация к докладу про БЭМ  by Mikhail Troshev

Инструменты + библиотека

github.com/bem/bem-tools

github.com/bem/bem-bl-test

15

Page 16: Презентация к докладу про БЭМ  by Mikhail Troshev

План

Подготовка:— настраиваем веб-сервер (nginx)— устанавливаем bem-tools

Разработка:— скачиваем библиотеку— описываем свою страницу— пишем технологии для блоков: css, js, bemhtml

16

Page 17: Презентация к докладу про БЭМ  by Mikhail Troshev

Практика 2: динамика

17

Page 18: Презентация к докладу про БЭМ  by Mikhail Troshev

План

Подготовка:— настраиваем проксирование http-запросов

Разработка:— веб-сервер на node— технология сборки priv.js— кастомизация технологии сборки bemhtml— технологии для блоков: priv.js

18

Page 19: Презентация к докладу про БЭМ  by Mikhail Troshev

Результат

github.com/mishanga/serp

19

Page 20: Презентация к докладу про БЭМ  by Mikhail Troshev

разработчик интерфейсов

[email protected]

@ya_mishanga

Михаил Трошев