SlideShare uma empresa Scribd logo
1 de 190
Baixar para ler offline
Как использовать БЭМ!
вне Яндекса

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

#БЭМ
Я.Субботник, Челябинск, 25 февраля 2012 года
2
    photosight.ru
3
4
    photosight.ru
HTML/CSS верстальщик




6
JavaScript программист




                         +
7
Front-end разработчик




8
Серверный разработчик




9
Разработчик “под ключ”




10
Руководитель разработки




11
Как использовать БЭМ!
вне Яндекса
Варвара Степанова
разработчик интерфейсов

#БЭМ
Я.Субботник, Челябинск, 25 февраля 2012 года
БЭМ!
Блок




14
Блок




15
HTML-код блока

 <div class=”search”>
     <!-- // -->
 </div>




16
Файлы блока

 search/
     __input/
         search__input.css
     __button/
         search__button.css
    search.css

17
Элемент




18
Блок с элементами




19
Элемент




20
HTML код элементов

 <div class=”search”>
     <input class=”search__input” .../>
     <span class=”search__button”>
         ...
     </span>
 </div>




21
Файлы элементов

 search/
     __input/
         search__input.css
     __button/
         search__button.css
    search.css

22
Модификатор




23
Модификатор




24
HTML код модификатора

 <div class=”search
     search_bg_red”>
     ...
 </div>




25
Файлы модификаторов

 search/
     _color/
         search_bg_red.css
     search.css




26
27
     photosight.ru
28
29
30
bem.github.com/bem-method




31
Делаем обычный сайт
33
HTML/CSS вёрстка
Традиционная вёрстка
Файловая структура проекта




36
Файловая структура проекта

 css/




36
Файловая структура проекта

 css/
 img/




36
Файловая структура проекта

 css/
 img/
 page.html




36
Файловая структура проекта

 css/
 img/
 page.html
 index.html




36
Обычный CSS файл

 #head {
   /* ... */
 }
 #head a {
   /* ... */
 }


37
Вёрстка по БЭМ!
39
Файловая структура проекта




40
Файловая структура проекта

 blocks/




40
Файловая структура проекта

 blocks/
   head/
   auth/
   search/
   footer/



40
Файловая структура проекта

 blocks/        pages/
   head/
   auth/
   search/
   footer/



40
Файловая структура проекта

 blocks/        pages/
   head/          index/
   auth/          profile/
   search/        order/
   footer/



40
41
Файловая структура блока

 search/
   _bg/
     search_bg_red.css
   __input/
     search__input.css
     search__input.ie.css
   search.css

42
github.com/bem/bem-tools




43
bem create




44
bem create

 > bem create block search




44
bem create

 > bem create block search
 > bem create elem -b search input




44
bem create

 > bem create block search
 > bem create elem -b search input
 > bem create mod -b search size -v big




44
bem create

 > bem create block search
 > bem create elem -b search input
 > bem create mod -b search size -v big

 > bem create --help



44
Шаблоны технологий
> bem create -T css ...

 .search {
 }

 .search__input {
 }

 .search_bg_red {
 }

46
clck.ru/0QqW1




47
Сборка
49
50
Декларация
52
page.bemdecl.js

 exports.blocks = [
     { block: ‘head’ },
     { block: ‘footer’ },
     { block: ‘search’ },
     ...
 ]

53
Превращение




54
Превращение

 index.bemdecl.js ⇉




54
Превращение

 index.bemdecl.js ⇉   index.css
                      index.ie.css




54
index.css

 @import(blocks/head/head.css);
 @import(blocks/search/search.css);
 @import(blocks/search/_bg/search_bg_red.css);
 @import(blocks/search/__input/search__input.css);
 @import(blocks/search/__button/search__button.css);
 ...




55
index.ie.css

 @import(index.css);
 @import(blocks/search/__input/search__input.ie.css);
 @import(blocks/search/__button/search__button.ie.css);
 ...




56
bem build




57
bem build

 > bem build




57
bem build

 > bem build
   -T css




57
bem build

 > bem build
   -T css
   -l blocks -d page.bemdecl.js




57
bem build

 > bem build
   -T css
   -l blocks -d page.bemdecl.js
   -o pages/index -n index




57
bem build

 > bem build
   -T css
   -l blocks -d page.bemdecl.js
   -o pages/index -n index

 > ls pages/index



57
bem build

 > bem build
   -T css
   -l blocks -d page.bemdecl.js
   -o pages/index -n index

 > ls pages/index
 index.bemdecl.js index.css


57
bem build




58
bem build

 > bem build
   -T ie.css
   -l blocks -d page.bemdecl.js
   -o pages/index -n index




58
bem build

 > bem build
   -T ie.css
   -l blocks -d page.bemdecl.js
   -o pages/index -n index

 > ls pages/index



58
bem build

 > bem build
   -T ie.css
   -l blocks -d page.bemdecl.js
   -o pages/index -n index

 > ls pages/index
 index.bemdecl.js index.css index.ie.css


58
bem build




59
bem build

 > bem build --help




59
Система сборки
GNU Make




61
clck.ru/089oL




62
Оптимизация
64
index.css

 @import(blocks/head/head.css);
 @import(blocks/search/search.css);
 @import(blocks/search/_bg/search_bg_red.css);
 @import(blocks/search/__input/search__input.css);
 @import(blocks/search/__button/search__button.css);
 ...




65
_index.css

 .head {
   /* ... */
 }
 .search {
   /* ... */
 }
 .search_bg_red {
   /* .. */
 }

66
borschik




67
borschik

 > borschik




67
borschik

 > borschik
   -i pages/index/index.css




67
borschik

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




67
Утилиты




68
Утилиты

сБорщик
     https://github.com/veged/borschik




68
Утилиты

сБорщик
     https://github.com/veged/borschik
CSSO
     https://github.com/afelix/csso




68
Утилиты

сБорщик
     https://github.com/veged/borschik
CSSO
     https://github.com/afelix/csso
Сеточка
     https://github.com/afelix/setochka



68
bem server
bem server




70
bem server

 > bem server




70
71
index.css

 @import url(blocks/i-reset/i-reset.css);
 @import url(blocks/b-page/b-page.css);
 @import url(blocks/b-description/b-description.css);
 @import url(blocks/b-link/b-link.css);
 @import url(blocks/b-page-title/b-page-title.css);
 @import url(blocks/b-blocks-list/b-blocks-list.css);
 @import url(blocks/b-blocks-desc/b-blocks-desc.css);
 @import url(blocks/b-text/b-text.css);
 @import url(blocks/i-desc/_type/i-desc_type_mod.css);
 @import url(blocks/i-desc/_type/i-desc_type_elem.css);



72
73
clck.ru/0Q9UF




74
Внесение изменений
76
77
78
79
github.com/bem/bem-haml




80
81
search.haml

 - DECL :search do |content|
   %form.search
     = DO content

 - DECL :search__input
   %input.search__input

 - DECL :search__button do |content|
   %button.search__button
     = DO content

82
index.haml

 -   DECL :search do |content|
     - DO :search__input
     - DO :search__button
       Найти




83
Превращение

 index.bemdecl.js ⇉   index.css
                      index.ie.css




84
Превращение

 index.bemdecl.js ⇉   index.css
                      index.ie.css


index.haml       ⇉




84
Превращение

 index.bemdecl.js ⇉   index.css
                      index.ie.css


index.haml       ⇉    index.html




84
Документация
86
Что плохо?




87
Что плохо?

Длинные CSS классы




87
Что плохо?

Длинные CSS классы
Много файлов




87
Что плохо?

Длинные CSS классы
Много файлов
Сборка и пересборка




87
88
Радость
в контексте HTML/CSS




89
Радость
в контексте HTML/CSS
Порядок




89
Радость
в контексте HTML/CSS
Порядок
Независимость блоков




89
Радость
в контексте HTML/CSS
Порядок
Независимость блоков
Компиляция / оптимизация




89
Радость
в контексте HTML/CSS
Порядок
Независимость блоков
Компиляция / оптимизация
Станок (реиспользование кода)




89
Радость
в контексте HTML/CSS
Порядок
Независимость блоков
Компиляция / оптимизация
Станок (реиспользование кода)
Документируемость




89
Пишем JavaScript
Обычный JavaScript
Файловая структура проекта

 css/
 img/
 js/
 page.html
 index.html



92
HTML-код страницы

 <html>
     <head>
         <script src=”js/plugins/ui.js”/>
         <script src=”js/page.js”/>
     ...
 </html>




93
JavaScript по БЭМ!
95
96
Файловая структура блока

 search/
     ...
     search.css
     search.js




97
98
JavaScript блоков




99
JavaScript блоков

 blocks/
     search/
         ...
         search.js




99
JavaScript блоков

 blocks/
     search/
         ...
         search.js
     visualsearch/
         visualsearch.js

99
Зависимости блоков
search.deps.js

 ({
      shouldDeps: [

          { block: ‘visualsearch’ }

      ]
 })



101
bem build




102
bem build

 > bem build
   -T js
   -l blocks -d page.bemdecl.js
   -o pages/index -n index




102
bem build

 > bem build
   -T js
   -l blocks -d page.bemdecl.js
   -o pages/index -n index

 > ls pages/index



102
bem build

 > bem build
   -T js
   -l blocks -d page.bemdecl.js
   -o pages/index -n index

 > ls pages/index
 index.bemdecl.js ... index.js


102
index.js

 /* visualsearch.js */
 ...

 /* search.js */
 var visualSearch = VS.init({
     ...
 });



103
Блоки, которых не видно
105
http://yandex.st/jquery/1.7.1/jquery.js


105
106
Вспомогательные блоки

 blocks/
     backbone/
         backbone.js
     underscore/
         underscore.js



107
Что плохо?

Длинные CSS классы
Много файлов
Сборка и пересборка




108
Что плохо?

Длинные CSS классы
Много файлов
Сборка и пересборка
Надо договариваться




108
109
Радость
в контексте JavaScript




110
Радость
в контексте JavaScript

Порядок




110
Радость
в контексте JavaScript

Порядок
Интеграция с HTML-вёрсткой




110
Радость
в контексте JavaScript

Порядок
Интеграция с HTML-вёрсткой
Зависимости




110
Радость
в контексте JavaScript

Порядок
Интеграция с HTML-вёрсткой
Зависимости
Компиляция




110
Радость
в контексте JavaScript

Порядок
Интеграция с HTML-вёрсткой
Зависимости
Компиляция
Документируемость


110
Натягивание рыбы
112
Обычно
114
Server-side по БЭМ!
github.com/bem/bem-django




116
117
118
119
119
Радость
при управлении разработкой




120
Радость
при управлении разработкой
Быстрее работают




120
Радость
при управлении разработкой
Быстрее работают
Больше делают




120
121
121
Итоги
Всеобщая радость




123
Всеобщая радость

Модульность




123
Всеобщая радость

Модульность
Единая предметная область




123
Всеобщая радость

Модульность
Единая предметная область
Документируемость




123
Всеобщая радость

Модульность
Единая предметная область
Документируемость
Компиляция




123
Всеобщая радость

Модульность
Единая предметная область
Документируемость
Компиляция
Станок


123
124
124
124
clck.ru/WVmV
      ВАКАНСИЯ




125
Варвара Степанова
toivonen@yandex-team.ru

   toivonens

   #БЭМ
   #yasubbotnik

Mais conteúdo relacionado

Mais procurados

Unit-тестирование скриншотами: преодолеваем звуковой барьер
Unit-тестирование скриншотами: преодолеваем звуковой барьерUnit-тестирование скриншотами: преодолеваем звуковой барьер
Unit-тестирование скриншотами: преодолеваем звуковой барьерRoman Dvornov
 
Компонентный подход: скучно, неинтересно, бесперспективно
Компонентный подход: скучно, неинтересно, бесперспективноКомпонентный подход: скучно, неинтересно, бесперспективно
Компонентный подход: скучно, неинтересно, бесперспективноRoman Dvornov
 
Регрессионное тестирование верстки
Регрессионное тестирование версткиРегрессионное тестирование верстки
Регрессионное тестирование версткиTalks&Works
 
Knockoutjs на примере 2ГИС-Онлайн
Knockoutjs на примере 2ГИС-ОнлайнKnockoutjs на примере 2ГИС-Онлайн
Knockoutjs на примере 2ГИС-Онлайн2ГИС Технологии
 
Практические вопросы и ответы по Qlikview - часть 1
Практические вопросы и ответы по Qlikview - часть 1Практические вопросы и ответы по Qlikview - часть 1
Практические вопросы и ответы по Qlikview - часть 1Ivan Shamaev
 
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов2ГИС Технологии
 
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИСTARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС2ГИС Технологии
 
Looking into WordPress Core, WordCamp Russia 2015
Looking into WordPress Core, WordCamp Russia 2015Looking into WordPress Core, WordCamp Russia 2015
Looking into WordPress Core, WordCamp Russia 2015Sergey Biryukov
 
Web осень 2013 лекция 4
Web осень 2013 лекция 4Web осень 2013 лекция 4
Web осень 2013 лекция 4Technopark
 
Профилирование и оптимизация jQuery–кода
Профилирование и оптимизация jQuery–кодаПрофилирование и оптимизация jQuery–кода
Профилирование и оптимизация jQuery–кодаprivate_face
 
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)Ontico
 
ДАМП 2015 Екатеринбург
ДАМП 2015 ЕкатеринбургДАМП 2015 Екатеринбург
ДАМП 2015 ЕкатеринбургAlexey Ivanov
 
Не бойся, это всего лишь данные... просто их много
Не бойся, это всего лишь данные... просто их многоНе бойся, это всего лишь данные... просто их много
Не бойся, это всего лишь данные... просто их многоRoman Dvornov
 
SPA инструменты
SPA инструментыSPA инструменты
SPA инструментыRoman Dvornov
 
Basis.js - Production Ready SPA Framework
Basis.js - Production Ready SPA FrameworkBasis.js - Production Ready SPA Framework
Basis.js - Production Ready SPA FrameworkMoscowJS
 
"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)
"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)
"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)AvitoTech
 

Mais procurados (20)

Unit-тестирование скриншотами: преодолеваем звуковой барьер
Unit-тестирование скриншотами: преодолеваем звуковой барьерUnit-тестирование скриншотами: преодолеваем звуковой барьер
Unit-тестирование скриншотами: преодолеваем звуковой барьер
 
Компонентный подход: скучно, неинтересно, бесперспективно
Компонентный подход: скучно, неинтересно, бесперспективноКомпонентный подход: скучно, неинтересно, бесперспективно
Компонентный подход: скучно, неинтересно, бесперспективно
 
Регрессионное тестирование верстки
Регрессионное тестирование версткиРегрессионное тестирование верстки
Регрессионное тестирование верстки
 
Knockoutjs на примере 2ГИС-Онлайн
Knockoutjs на примере 2ГИС-ОнлайнKnockoutjs на примере 2ГИС-Онлайн
Knockoutjs на примере 2ГИС-Онлайн
 
Практические вопросы и ответы по Qlikview - часть 1
Практические вопросы и ответы по Qlikview - часть 1Практические вопросы и ответы по Qlikview - часть 1
Практические вопросы и ответы по Qlikview - часть 1
 
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов
 
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИСTARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС
 
Looking into WordPress Core, WordCamp Russia 2015
Looking into WordPress Core, WordCamp Russia 2015Looking into WordPress Core, WordCamp Russia 2015
Looking into WordPress Core, WordCamp Russia 2015
 
Web осень 2013 лекция 4
Web осень 2013 лекция 4Web осень 2013 лекция 4
Web осень 2013 лекция 4
 
Профилирование и оптимизация jQuery–кода
Профилирование и оптимизация jQuery–кодаПрофилирование и оптимизация jQuery–кода
Профилирование и оптимизация jQuery–кода
 
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)
 
ДАМП 2015 Екатеринбург
ДАМП 2015 ЕкатеринбургДАМП 2015 Екатеринбург
ДАМП 2015 Екатеринбург
 
За пределами PageObject
За пределами PageObjectЗа пределами PageObject
За пределами PageObject
 
чернобай т., гайдай ю.
чернобай т., гайдай ю.чернобай т., гайдай ю.
чернобай т., гайдай ю.
 
Не бойся, это всего лишь данные... просто их много
Не бойся, это всего лишь данные... просто их многоНе бойся, это всего лишь данные... просто их много
Не бойся, это всего лишь данные... просто их много
 
Authentication security
Authentication securityAuthentication security
Authentication security
 
SPA инструменты
SPA инструментыSPA инструменты
SPA инструменты
 
Basis.js - Production Ready SPA Framework
Basis.js - Production Ready SPA FrameworkBasis.js - Production Ready SPA Framework
Basis.js - Production Ready SPA Framework
 
Basis.js - Production Ready Framework
Basis.js - Production Ready FrameworkBasis.js - Production Ready Framework
Basis.js - Production Ready Framework
 
"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)
"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)
"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)
 

Destaque

Destaque (20)

Ratoeira
RatoeiraRatoeira
Ratoeira
 
Como Vai Voce1
Como Vai Voce1Como Vai Voce1
Como Vai Voce1
 
Wc´S PúBlicos Espalhados Pelo Mundo . . V.Ppt
Wc´S PúBlicos Espalhados Pelo Mundo . . V.PptWc´S PúBlicos Espalhados Pelo Mundo . . V.Ppt
Wc´S PúBlicos Espalhados Pelo Mundo . . V.Ppt
 
Apresentacao Aula01 So
Apresentacao Aula01 SoApresentacao Aula01 So
Apresentacao Aula01 So
 
Os Melhores do Mundo, um comparativo entre Spring e EJB 3.0
Os Melhores do Mundo, um comparativo entre Spring e EJB 3.0Os Melhores do Mundo, um comparativo entre Spring e EJB 3.0
Os Melhores do Mundo, um comparativo entre Spring e EJB 3.0
 
Chineses
ChinesesChineses
Chineses
 
Desenvolvimento Iterativo e Incremental
Desenvolvimento Iterativo e IncrementalDesenvolvimento Iterativo e Incremental
Desenvolvimento Iterativo e Incremental
 
презентация1
презентация1презентация1
презентация1
 
U S A Leis
U S A LeisU S A Leis
U S A Leis
 
Sementes
SementesSementes
Sementes
 
Charles E Camila
Charles E  CamilaCharles E  Camila
Charles E Camila
 
Parameusamigos
ParameusamigosParameusamigos
Parameusamigos
 
As Galinhas
As GalinhasAs Galinhas
As Galinhas
 
Bioestadistica
BioestadisticaBioestadistica
Bioestadistica
 
Trabajo6
Trabajo6Trabajo6
Trabajo6
 
константинова гр.1602
константинова гр.1602константинова гр.1602
константинова гр.1602
 
Tem Coisa Melhor
Tem Coisa MelhorTem Coisa Melhor
Tem Coisa Melhor
 
ApresentaçãO45
ApresentaçãO45ApresentaçãO45
ApresentaçãO45
 
GC&I PDG 0708 JAC
GC&I PDG 0708 JACGC&I PDG 0708 JAC
GC&I PDG 0708 JAC
 
Habeaspinho
HabeaspinhoHabeaspinho
Habeaspinho
 

Semelhante a Сергей Бережной, Варвара Степанова "Как использовать БЭМ! вне Яндекса"

Жека Константинов, Дима Белицкий, Слава Аристов — Мастер-класс: разрабатываем...
Жека Константинов, Дима Белицкий, Слава Аристов — Мастер-класс: разрабатываем...Жека Константинов, Дима Белицкий, Слава Аристов — Мастер-класс: разрабатываем...
Жека Константинов, Дима Белицкий, Слава Аристов — Мастер-класс: разрабатываем...Yandex
 
CSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScript
CSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScriptCSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScript
CSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScriptAlexey Ivanov
 
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...Yandex
 
JavaScript в терминах БЭМ / Владимир Варанкин (Яндекс)
JavaScript в терминах БЭМ / Владимир Варанкин (Яндекс)JavaScript в терминах БЭМ / Владимир Варанкин (Яндекс)
JavaScript в терминах БЭМ / Владимир Варанкин (Яндекс)Ontico
 
Вёрстка WordPress тем - WP Kharkiv Meetup #1
Вёрстка WordPress тем - WP Kharkiv Meetup #1Вёрстка WordPress тем - WP Kharkiv Meetup #1
Вёрстка WordPress тем - WP Kharkiv Meetup #1dima_kuzovlev
 
Bootstrap 3. Адаптивная верстка для WordPress
Bootstrap 3. Адаптивная верстка для WordPressBootstrap 3. Адаптивная верстка для WordPress
Bootstrap 3. Адаптивная верстка для WordPressIgor Sazonov
 
Мастер-класс наоборот: вы пишете БЭМ-проект, а мы подсказываем — Евгений Конс...
Мастер-класс наоборот: вы пишете БЭМ-проект, а мы подсказываем — Евгений Конс...Мастер-класс наоборот: вы пишете БЭМ-проект, а мы подсказываем — Евгений Конс...
Мастер-класс наоборот: вы пишете БЭМ-проект, а мы подсказываем — Евгений Конс...Yandex
 
Евгений Филатов "Одностраничные приложения на БЭМ и Node.js"
Евгений Филатов "Одностраничные приложения на БЭМ и Node.js"Евгений Филатов "Одностраничные приложения на БЭМ и Node.js"
Евгений Филатов "Одностраничные приложения на БЭМ и Node.js"Yandex
 
БЭМ в дикой природе
БЭМ в дикой природеБЭМ в дикой природе
БЭМ в дикой природеIhor Zenich
 
Создание веб-сайта. Курс молодого бойца
Создание веб-сайта. Курс молодого бойцаСоздание веб-сайта. Курс молодого бойца
Создание веб-сайта. Курс молодого бойцаAnton Cherepov
 
Виталий Харисов "История создания БЭМ. Кратко, сбивчиво и неполно"
Виталий Харисов "История создания БЭМ. Кратко, сбивчиво и неполно"Виталий Харисов "История создания БЭМ. Кратко, сбивчиво и неполно"
Виталий Харисов "История создания БЭМ. Кратко, сбивчиво и неполно"Yandex
 
Сергей Бережной "Внедрение БЭМ в существующие системы"
Сергей Бережной "Внедрение БЭМ в существующие системы"Сергей Бережной "Внедрение БЭМ в существующие системы"
Сергей Бережной "Внедрение БЭМ в существующие системы"Yandex
 
CSSO — минимизируем CSS
 CSSO — минимизируем CSS CSSO — минимизируем CSS
CSSO — минимизируем CSSRoman Dvornov
 
CSS. Практика
CSS. ПрактикаCSS. Практика
CSS. ПрактикаVitebsk Miniq
 
Владимир Гриненко "i-bem.js: JavaScript в БЭМ-терминах"
Владимир Гриненко "i-bem.js: JavaScript в БЭМ-терминах"Владимир Гриненко "i-bem.js: JavaScript в БЭМ-терминах"
Владимир Гриненко "i-bem.js: JavaScript в БЭМ-терминах"Yandex
 

Semelhante a Сергей Бережной, Варвара Степанова "Как использовать БЭМ! вне Яндекса" (20)

Жека Константинов, Дима Белицкий, Слава Аристов — Мастер-класс: разрабатываем...
Жека Константинов, Дима Белицкий, Слава Аристов — Мастер-класс: разрабатываем...Жека Константинов, Дима Белицкий, Слава Аристов — Мастер-класс: разрабатываем...
Жека Константинов, Дима Белицкий, Слава Аристов — Мастер-класс: разрабатываем...
 
CSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScript
CSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScriptCSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScript
CSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScript
 
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
 
JavaScript в терминах БЭМ / Владимир Варанкин (Яндекс)
JavaScript в терминах БЭМ / Владимир Варанкин (Яндекс)JavaScript в терминах БЭМ / Владимир Варанкин (Яндекс)
JavaScript в терминах БЭМ / Владимир Варанкин (Яндекс)
 
Yac2012
Yac2012Yac2012
Yac2012
 
БЭМ
БЭМБЭМ
БЭМ
 
Bootstrap 3
Bootstrap 3Bootstrap 3
Bootstrap 3
 
Вёрстка WordPress тем - WP Kharkiv Meetup #1
Вёрстка WordPress тем - WP Kharkiv Meetup #1Вёрстка WordPress тем - WP Kharkiv Meetup #1
Вёрстка WordPress тем - WP Kharkiv Meetup #1
 
Bootstrap 3. Адаптивная верстка для WordPress
Bootstrap 3. Адаптивная верстка для WordPressBootstrap 3. Адаптивная верстка для WordPress
Bootstrap 3. Адаптивная верстка для WordPress
 
Мастер-класс наоборот: вы пишете БЭМ-проект, а мы подсказываем — Евгений Конс...
Мастер-класс наоборот: вы пишете БЭМ-проект, а мы подсказываем — Евгений Конс...Мастер-класс наоборот: вы пишете БЭМ-проект, а мы подсказываем — Евгений Конс...
Мастер-класс наоборот: вы пишете БЭМ-проект, а мы подсказываем — Евгений Конс...
 
Евгений Филатов "Одностраничные приложения на БЭМ и Node.js"
Евгений Филатов "Одностраничные приложения на БЭМ и Node.js"Евгений Филатов "Одностраничные приложения на БЭМ и Node.js"
Евгений Филатов "Одностраничные приложения на БЭМ и Node.js"
 
БЭМ в дикой природе
БЭМ в дикой природеБЭМ в дикой природе
БЭМ в дикой природе
 
Создание веб-сайта. Курс молодого бойца
Создание веб-сайта. Курс молодого бойцаСоздание веб-сайта. Курс молодого бойца
Создание веб-сайта. Курс молодого бойца
 
Виталий Харисов "История создания БЭМ. Кратко, сбивчиво и неполно"
Виталий Харисов "История создания БЭМ. Кратко, сбивчиво и неполно"Виталий Харисов "История создания БЭМ. Кратко, сбивчиво и неполно"
Виталий Харисов "История создания БЭМ. Кратко, сбивчиво и неполно"
 
Сергей Бережной "Внедрение БЭМ в существующие системы"
Сергей Бережной "Внедрение БЭМ в существующие системы"Сергей Бережной "Внедрение БЭМ в существующие системы"
Сергей Бережной "Внедрение БЭМ в существующие системы"
 
CSSO — минимизируем CSS
 CSSO — минимизируем CSS CSSO — минимизируем CSS
CSSO — минимизируем CSS
 
Парсим CSS
Парсим CSSПарсим CSS
Парсим CSS
 
CSS. Практика
CSS. ПрактикаCSS. Практика
CSS. Практика
 
Code Style (in russian)
Code Style (in russian)Code Style (in russian)
Code Style (in russian)
 
Владимир Гриненко "i-bem.js: JavaScript в БЭМ-терминах"
Владимир Гриненко "i-bem.js: JavaScript в БЭМ-терминах"Владимир Гриненко "i-bem.js: JavaScript в БЭМ-терминах"
Владимир Гриненко "i-bem.js: JavaScript в БЭМ-терминах"
 

Mais de Yandex

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksYandex
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Yandex
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаYandex
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаYandex
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Yandex
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Yandex
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Yandex
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Yandex
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Yandex
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Yandex
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Yandex
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Yandex
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровYandex
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Yandex
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Yandex
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Yandex
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Yandex
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Yandex
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Yandex
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Yandex
 

Mais de Yandex (20)

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of Tanks
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
 

Сергей Бережной, Варвара Степанова "Как использовать БЭМ! вне Яндекса"