SlideShare une entreprise Scribd logo
1  sur  51
Télécharger pour lire hors ligne
Дом из готовых кирпичей
                   Библиотека блоков, тюнинг, инструменты


                   Елена Глухова и Варвара Степанова
                   Разработчики интерфейсов


                   YAC, Москва, 19 сентября 2011 года



Wednesday, October 5, 2011
clck.ru/L462
                                шпаргалка к мастер-классу
                             Дом из готовых кирпичей




Wednesday, October 5, 2011
Немного теории



                   3

Wednesday, October 5, 2011
Образец подзаголовка

                              Картинка про предметную область БЭМ




                   4

Wednesday, October 5, 2011
Картинка про уровни переопределения




                                                 Образец текста




                   5

Wednesday, October 5, 2011
Про что мастер-класс?



                   6

Wednesday, October 5, 2011
Мы сделаем:




                   7

Wednesday, October 5, 2011
Мы сделаем:

                   Проект с типовой архитектурой




                   8

Wednesday, October 5, 2011
Мы сделаем:

                   Проект с типовой архитектурой
                   Страницу на блоках из библиотеки




                   9

Wednesday, October 5, 2011
Мы сделаем:

                   Проект с типовой архитектурой
                   Страницу на блоках из библиотеки
                   Свои блоки на ядре библиотеки




                   10

Wednesday, October 5, 2011
Мы сделаем:

                   Проект с типовой архитектурой
                   Страницу на блоках из библиотеки
                   Свои блоки на ядре библиотеки
                   Используем БЭМ-инструменты


                   11

Wednesday, October 5, 2011
Конкретно:




                   12

Wednesday, October 5, 2011
Конкретно:

                   Подключение библиотеки




                   13

Wednesday, October 5, 2011
Конкретно:

                   Подключение библиотеки
                   Сборка страницы




                   14

Wednesday, October 5, 2011
Конкретно:

                   Подключение библиотеки
                   Сборка страницы
                   Переопределение уровнем




                   15

Wednesday, October 5, 2011
Конкретно:

                   Подключение библиотеки
                   Сборка страницы
                   Переопределение уровнем
                   Переопределение в разных технологиях



                   16

Wednesday, October 5, 2011
БЭМ библиотека

                   Репозиторий
                             github.com/bem/bem-bl
                                              или clck.ru/Kuu4
                   Документация
                             bem.github.com/bem-bl
                                              или clck.ru/Kuuk
                   17

Wednesday, October 5, 2011
Среда разработки



                   18

Wednesday, October 5, 2011
Инструменты и окружение

                Локальный web-сервер
                БЭМ-инструменты
                         github.com/bem/bem-tools
                         или clck.ru/Kz8v



                   19

Wednesday, October 5, 2011
Установка bem-tools

                Node.js
                  nodejs.org
                Пакетный менеджер NPM
                  npmjs.org




                   20

Wednesday, October 5, 2011
Установка БЭМ-инструментов


                      > npm install -g
                          bem ometajs xjst




                   21

Wednesday, October 5, 2011
Команды:


                      > bem --help

                      > bem create

                      > bem build


                   22

Wednesday, October 5, 2011
Новый проект



                   23

Wednesday, October 5, 2011
Проект на GitHub

                   clck.ru/LP3d
                   git://github.com/toivonen/yac2011-bem-bl-in-use.git


                      > git checkout first

                      > make branches


                   24

Wednesday, October 5, 2011
Подключение библиотеки
                   bem-bl

      > git clone
        git://github.com/bem/bem-bl.git




                   25

Wednesday, October 5, 2011
Создание уровня (папки)
                   pages

                      > bem create level --help

                      > bem create level pages




                   26

Wednesday, October 5, 2011
Создание страницы
                   pages/index

                      > bem create block --help

                      > bem create block index
                          -l pages



                   27

Wednesday, October 5, 2011
Создание страницы
                   pages/index

                      > bem create block index
                          -l pages -T bemjson.js




                   28

Wednesday, October 5, 2011
Настройки уровня


                      > .bem/level.js




                   29

Wednesday, October 5, 2011
Создание страницы pages/index


                      > bem create block index
                          -l pages -T bemjson.js




                   30

Wednesday, October 5, 2011
Сборка страницы



                   31

Wednesday, October 5, 2011
Собранные файлы
                   для браузера

                      pages/index/index.css
                      pages/index/index.ie.css




                   32

Wednesday, October 5, 2011
Собранные файлы
                   для браузера

                      pages/index/index.css
                      pages/index/index.ie.css
                      pages/index/index.js




                   33

Wednesday, October 5, 2011
Собранные файлы
                   для браузера

                      pages/index/index.css
                      pages/index/index.ie.css
                      pages/index/index.js
                      pages/index/index.html



                   34

Wednesday, October 5, 2011
Сборка css и js


                      bemjson.js -> bemdecl.js
                      bemdecl.js -> deps.js
                      deps.js -> css, js, ie.css




                   35

Wednesday, October 5, 2011
Сборка html


                      deps.js -> bemhtml.js
                      bemjson + bemhtml.js = html




                   36

Wednesday, October 5, 2011
Команды сборки


                      > bem build --help
                      > bem create --help




                   37

Wednesday, October 5, 2011
Развернуть @import


                      npm install -g
                          borschik coa
                          node-inherit
                          cssp ometajs



                   38

Wednesday, October 5, 2011
Развернуть @import


                      borschik -t css
                       -i pages/index/index.css
                       -o pages/index/_index.css




                   39

Wednesday, October 5, 2011
GNUmake le



                   40

Wednesday, October 5, 2011
GNUmake le


                      > make
                      > make -B
                      > make -B
                          pages/index/index.html
                      > make -B
                          pages/index/index.css
                   41

Wednesday, October 5, 2011
Делаем страницу




                   42

Wednesday, October 5, 2011
43

Wednesday, October 5, 2011
Будем создавать:

                   Уровень переопределения блоков
                   Свой блок
                   Модификатор блока
                   Зависимость блока от другого блока



                   44

Wednesday, October 5, 2011
Создаем уровень переопределения
                   проекта blocks

                     > bem create level blocks
                       -l bem-bl/blocks-common/
                       .bem/level.js



                   45

Wednesday, October 5, 2011
Создаем блок
                      > bem create block b-page
                         -l blocks -T css




                   46

Wednesday, October 5, 2011
Сборка css для index.html
                      > make
                        pages/index/index.css -B

                      — index.css




                   47

Wednesday, October 5, 2011
Сборка любой другой технологии js

                      > make
                        pages/index/index.js -B
                      или
                      > make
                        pages/index/index.ie.css -B



                   48

Wednesday, October 5, 2011
Сборка всей страницы

                      > make
                        pages/index/index.html -B

                      — index.html
                      — index.js
                      — index.css
                      — index.ie.css
                   49

Wednesday, October 5, 2011
Ссылки
                   для “почитать”

                Репозиторий библиотеки
                   github.com/bem/bem-bl или clck.ru/Kuu4
                Сайт с документацией
                   clck.ru/KzG7
                Клуб в Ярушке
                   clubs.ya.ru/bem/ или clck.ru/4Jl3
                   50

Wednesday, October 5, 2011
Варвара Степанова
                             toivonen@yandex-team.ru



                             Елена Глухова
                             lento4ka@yandex-team.ru




Wednesday, October 5, 2011

Contenu connexe

Plus de yaevents

Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...
Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...
Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...yaevents
 
Тема для WordPress в БЭМ. Владимир Гриненко, Яндекс
Тема для WordPress в БЭМ. Владимир Гриненко, ЯндексТема для WordPress в БЭМ. Владимир Гриненко, Яндекс
Тема для WordPress в БЭМ. Владимир Гриненко, Яндексyaevents
 
Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...
Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...
Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...yaevents
 
i-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндекс
i-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндексi-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндекс
i-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндексyaevents
 
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...yaevents
 
Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...
Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...
Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...yaevents
 
Мониторинг со всех сторон. Алексей Симаков, Яндекс
Мониторинг со всех сторон. Алексей Симаков, ЯндексМониторинг со всех сторон. Алексей Симаков, Яндекс
Мониторинг со всех сторон. Алексей Симаков, Яндексyaevents
 
Истории про разработку сайтов. Сергей Бережной, Яндекс
Истории про разработку сайтов. Сергей Бережной, ЯндексИстории про разработку сайтов. Сергей Бережной, Яндекс
Истории про разработку сайтов. Сергей Бережной, Яндексyaevents
 
Разработка приложений для Android на С++. Юрий Береза, Shturmann
Разработка приложений для Android на С++. Юрий Береза, ShturmannРазработка приложений для Android на С++. Юрий Береза, Shturmann
Разработка приложений для Android на С++. Юрий Береза, Shturmannyaevents
 
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...yaevents
 
Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав З...
Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав З...Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав З...
Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав З...yaevents
 
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, ЯндексСканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндексyaevents
 
Масштабируемость Hadoop в Facebook. Дмитрий Мольков, Facebook
Масштабируемость Hadoop в Facebook. Дмитрий Мольков, FacebookМасштабируемость Hadoop в Facebook. Дмитрий Мольков, Facebook
Масштабируемость Hadoop в Facebook. Дмитрий Мольков, Facebookyaevents
 
Контроль зверей: инструменты для управления и мониторинга распределенных сист...
Контроль зверей: инструменты для управления и мониторинга распределенных сист...Контроль зверей: инструменты для управления и мониторинга распределенных сист...
Контроль зверей: инструменты для управления и мониторинга распределенных сист...yaevents
 
Юнит-тестирование и Google Mock. Влад Лосев, Google
Юнит-тестирование и Google Mock. Влад Лосев, GoogleЮнит-тестирование и Google Mock. Влад Лосев, Google
Юнит-тестирование и Google Mock. Влад Лосев, Googleyaevents
 
C++11 (formerly known as C++0x) is the new C++ language standard. Dave Abraha...
C++11 (formerly known as C++0x) is the new C++ language standard. Dave Abraha...C++11 (formerly known as C++0x) is the new C++ language standard. Dave Abraha...
C++11 (formerly known as C++0x) is the new C++ language standard. Dave Abraha...yaevents
 
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...yaevents
 
В поисках математики. Михаил Денисенко, Нигма
В поисках математики. Михаил Денисенко, НигмаВ поисках математики. Михаил Денисенко, Нигма
В поисках математики. Михаил Денисенко, Нигмаyaevents
 
Using classifiers to compute similarities between face images. Prof. Lior Wol...
Using classifiers to compute similarities between face images. Prof. Lior Wol...Using classifiers to compute similarities between face images. Prof. Lior Wol...
Using classifiers to compute similarities between face images. Prof. Lior Wol...yaevents
 
Поисковая технология "Спектр". Андрей Плахов, Яндекс
Поисковая технология "Спектр". Андрей Плахов, ЯндексПоисковая технология "Спектр". Андрей Плахов, Яндекс
Поисковая технология "Спектр". Андрей Плахов, Яндексyaevents
 

Plus de yaevents (20)

Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...
Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...
Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...
 
Тема для WordPress в БЭМ. Владимир Гриненко, Яндекс
Тема для WordPress в БЭМ. Владимир Гриненко, ЯндексТема для WordPress в БЭМ. Владимир Гриненко, Яндекс
Тема для WordPress в БЭМ. Владимир Гриненко, Яндекс
 
Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...
Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...
Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...
 
i-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндекс
i-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндексi-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндекс
i-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндекс
 
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
 
Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...
Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...
Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...
 
Мониторинг со всех сторон. Алексей Симаков, Яндекс
Мониторинг со всех сторон. Алексей Симаков, ЯндексМониторинг со всех сторон. Алексей Симаков, Яндекс
Мониторинг со всех сторон. Алексей Симаков, Яндекс
 
Истории про разработку сайтов. Сергей Бережной, Яндекс
Истории про разработку сайтов. Сергей Бережной, ЯндексИстории про разработку сайтов. Сергей Бережной, Яндекс
Истории про разработку сайтов. Сергей Бережной, Яндекс
 
Разработка приложений для Android на С++. Юрий Береза, Shturmann
Разработка приложений для Android на С++. Юрий Береза, ShturmannРазработка приложений для Android на С++. Юрий Береза, Shturmann
Разработка приложений для Android на С++. Юрий Береза, Shturmann
 
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
 
Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав З...
Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав З...Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав З...
Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав З...
 
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, ЯндексСканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
 
Масштабируемость Hadoop в Facebook. Дмитрий Мольков, Facebook
Масштабируемость Hadoop в Facebook. Дмитрий Мольков, FacebookМасштабируемость Hadoop в Facebook. Дмитрий Мольков, Facebook
Масштабируемость Hadoop в Facebook. Дмитрий Мольков, Facebook
 
Контроль зверей: инструменты для управления и мониторинга распределенных сист...
Контроль зверей: инструменты для управления и мониторинга распределенных сист...Контроль зверей: инструменты для управления и мониторинга распределенных сист...
Контроль зверей: инструменты для управления и мониторинга распределенных сист...
 
Юнит-тестирование и Google Mock. Влад Лосев, Google
Юнит-тестирование и Google Mock. Влад Лосев, GoogleЮнит-тестирование и Google Mock. Влад Лосев, Google
Юнит-тестирование и Google Mock. Влад Лосев, Google
 
C++11 (formerly known as C++0x) is the new C++ language standard. Dave Abraha...
C++11 (formerly known as C++0x) is the new C++ language standard. Dave Abraha...C++11 (formerly known as C++0x) is the new C++ language standard. Dave Abraha...
C++11 (formerly known as C++0x) is the new C++ language standard. Dave Abraha...
 
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...
 
В поисках математики. Михаил Денисенко, Нигма
В поисках математики. Михаил Денисенко, НигмаВ поисках математики. Михаил Денисенко, Нигма
В поисках математики. Михаил Денисенко, Нигма
 
Using classifiers to compute similarities between face images. Prof. Lior Wol...
Using classifiers to compute similarities between face images. Prof. Lior Wol...Using classifiers to compute similarities between face images. Prof. Lior Wol...
Using classifiers to compute similarities between face images. Prof. Lior Wol...
 
Поисковая технология "Спектр". Андрей Плахов, Яндекс
Поисковая технология "Спектр". Андрей Плахов, ЯндексПоисковая технология "Спектр". Андрей Плахов, Яндекс
Поисковая технология "Спектр". Андрей Плахов, Яндекс
 

Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухова, Варвара Степанова, Яндекс