SlideShare a Scribd company logo
БЭМ методология
БЭМ
Блок-Элемент-Модификатор
Для чего?
• Типовые проекты должны
разрабатываться быстро, но жить
долго
• Над проектом работает много людей
• Масштабируемость команд
• Повторное использование кода
БЛОК
ЭЛЕМЕНТ
МОДИФИКАТОР
Независимость кода
Независимость блоков

Независимость CSS
Предметная абстракция
С точки зрения процесса разработки:
• Все участники процесса оперируют одними терминами

С точки зрения CSS:
• CSS блоков и элементов можно описывать на
псевдоязыке, который затем компилируется в чистый CSS
согласно принятой схеме именования.
С точки зрения JavaScript:
• Не нужно обращаться к DOM-узлам блоков и элементов по
имени класса
Консистентность блока
Организация файловой системы
Инструменты
bem-tools это инструмент для работы с файлами, написанными по
БЭМ-методу.
CSSO (CSS Optimizer) является минимизатором CSS, выполняющим
как минимизацию без изменения структуры, так и структурную
минимизацию с целью получить как можно меньший текст.
SVGO (SVGO Optimizer) — это инструмент для оптимизации
векторной графики в формате SVG, написанный на Node.js.

Расширяемый сборщик файлов borschik может использоваться для
сборки текстовых файлов из кусочков. Например, для сборки
статических файлов веб-страниц (CSS, JS, etc).
А как же рельсы?!

BEM on Rails
github.com/verybigman/bem-on-rails
Как пользоваться?
thor bem:create -b test -m color -v red
thor bem:create -b test -e icon -m size -v small

= b "test", mods: [{color: "red"}],
content: [{
elem: "icon",
elemMods: [{size: "small"}]
}]
На этом всё.
Вопросы?
ru.bem.info
github.com/verybigman/bem-on-rails

More Related Content

What's hot

Преимущества и недостатки микросервисной архитектуры в HeadHunter / Антон Ива...
Преимущества и недостатки микросервисной архитектуры в HeadHunter / Антон Ива...Преимущества и недостатки микросервисной архитектуры в HeadHunter / Антон Ива...
Преимущества и недостатки микросервисной архитектуры в HeadHunter / Антон Ива...Ontico
 
State of the Standardized Web. YaC 2014
State of theStandardized Web. YaC 2014State of theStandardized Web. YaC 2014
State of the Standardized Web. YaC 2014Yandex
 
Микросервисы для Machine Learning / Дмитрий Ходаков (Avito)
Микросервисы для Machine Learning / Дмитрий Ходаков (Avito)Микросервисы для Machine Learning / Дмитрий Ходаков (Avito)
Микросервисы для Machine Learning / Дмитрий Ходаков (Avito)Ontico
 
Yaremchuk - Drupal CodeLobster
Yaremchuk - Drupal CodeLobsterYaremchuk - Drupal CodeLobster
Yaremchuk - Drupal CodeLobsterAndrii Podanenko
 
«Новый 2ГИС Online» — Влад Семенов, 2ГИС
«Новый 2ГИС Online» — Влад Семенов, 2ГИС «Новый 2ГИС Online» — Влад Семенов, 2ГИС
«Новый 2ГИС Online» — Влад Семенов, 2ГИС DevDay
 
лекция №10
лекция №10лекция №10
лекция №10student_kai
 
Serge P Nekoval Grails
Serge P  Nekoval GrailsSerge P  Nekoval Grails
Serge P Nekoval Grailsrit2010
 
Backbone.js Профилактика сколиоза
Backbone.js Профилактика сколиоза Backbone.js Профилактика сколиоза
Backbone.js Профилактика сколиоза MitinPavel
 
Реализация нагруженных и отказоустойчивых систем
Реализация нагруженных и отказоустойчивых системРеализация нагруженных и отказоустойчивых систем
Реализация нагруженных и отказоустойчивых системRuslan Safin
 
CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥
CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥
CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥CodeFest
 
ECOM Expo 2016, Hosting
ECOM Expo 2016, HostingECOM Expo 2016, Hosting
ECOM Expo 2016, Hostingvpiskov
 
Разработка небольшого проекта c BEM и node.js — Сергей Пузанков
Разработка небольшого проекта c BEM и node.js — Сергей ПузанковРазработка небольшого проекта c BEM и node.js — Сергей Пузанков
Разработка небольшого проекта c BEM и node.js — Сергей ПузанковYandex
 
Федеральный Семинар Битрикс, Владимир Писков
Федеральный Семинар Битрикс, Владимир ПисковФедеральный Семинар Битрикс, Владимир Писков
Федеральный Семинар Битрикс, Владимир Писковvpiskov
 
Эффективный JavaScript - IQLab Frontend Fusion 2012
Эффективный  JavaScript - IQLab Frontend Fusion 2012Эффективный  JavaScript - IQLab Frontend Fusion 2012
Эффективный JavaScript - IQLab Frontend Fusion 2012Ecommerce Solution Provider SysIQ
 
По-настоящему ВИЗУАЛЬНОЕ построение лендинг-страниц на WP Gutenberg!
По-настоящему ВИЗУАЛЬНОЕ построение лендинг-страниц на WP Gutenberg!По-настоящему ВИЗУАЛЬНОЕ построение лендинг-страниц на WP Gutenberg!
По-настоящему ВИЗУАЛЬНОЕ построение лендинг-страниц на WP Gutenberg!Yevhen Kotelnytskyi
 
JavaScript + Webdriver = ♥
JavaScript + Webdriver = ♥ JavaScript + Webdriver = ♥
JavaScript + Webdriver = ♥ SQALab
 
Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают
Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают
Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают ADN Digital Studio
 
Игорь Лабутин «Продвинутое использование NuGet и MSBuild»
Игорь Лабутин «Продвинутое использование NuGet и MSBuild»Игорь Лабутин «Продвинутое использование NuGet и MSBuild»
Игорь Лабутин «Продвинутое использование NuGet и MSBuild»SpbDotNet Community
 

What's hot (19)

Преимущества и недостатки микросервисной архитектуры в HeadHunter / Антон Ива...
Преимущества и недостатки микросервисной архитектуры в HeadHunter / Антон Ива...Преимущества и недостатки микросервисной архитектуры в HeadHunter / Антон Ива...
Преимущества и недостатки микросервисной архитектуры в HeadHunter / Антон Ива...
 
State of the Standardized Web. YaC 2014
State of theStandardized Web. YaC 2014State of theStandardized Web. YaC 2014
State of the Standardized Web. YaC 2014
 
Микросервисы для Machine Learning / Дмитрий Ходаков (Avito)
Микросервисы для Machine Learning / Дмитрий Ходаков (Avito)Микросервисы для Machine Learning / Дмитрий Ходаков (Avito)
Микросервисы для Machine Learning / Дмитрий Ходаков (Avito)
 
Yaremchuk - Drupal CodeLobster
Yaremchuk - Drupal CodeLobsterYaremchuk - Drupal CodeLobster
Yaremchuk - Drupal CodeLobster
 
«Новый 2ГИС Online» — Влад Семенов, 2ГИС
«Новый 2ГИС Online» — Влад Семенов, 2ГИС «Новый 2ГИС Online» — Влад Семенов, 2ГИС
«Новый 2ГИС Online» — Влад Семенов, 2ГИС
 
лекция №10
лекция №10лекция №10
лекция №10
 
Serge P Nekoval Grails
Serge P  Nekoval GrailsSerge P  Nekoval Grails
Serge P Nekoval Grails
 
Backbone.js Профилактика сколиоза
Backbone.js Профилактика сколиоза Backbone.js Профилактика сколиоза
Backbone.js Профилактика сколиоза
 
Реализация нагруженных и отказоустойчивых систем
Реализация нагруженных и отказоустойчивых системРеализация нагруженных и отказоустойчивых систем
Реализация нагруженных и отказоустойчивых систем
 
Databases on Client Side
Databases on Client SideDatabases on Client Side
Databases on Client Side
 
CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥
CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥
CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥
 
ECOM Expo 2016, Hosting
ECOM Expo 2016, HostingECOM Expo 2016, Hosting
ECOM Expo 2016, Hosting
 
Разработка небольшого проекта c BEM и node.js — Сергей Пузанков
Разработка небольшого проекта c BEM и node.js — Сергей ПузанковРазработка небольшого проекта c BEM и node.js — Сергей Пузанков
Разработка небольшого проекта c BEM и node.js — Сергей Пузанков
 
Федеральный Семинар Битрикс, Владимир Писков
Федеральный Семинар Битрикс, Владимир ПисковФедеральный Семинар Битрикс, Владимир Писков
Федеральный Семинар Битрикс, Владимир Писков
 
Эффективный JavaScript - IQLab Frontend Fusion 2012
Эффективный  JavaScript - IQLab Frontend Fusion 2012Эффективный  JavaScript - IQLab Frontend Fusion 2012
Эффективный JavaScript - IQLab Frontend Fusion 2012
 
По-настоящему ВИЗУАЛЬНОЕ построение лендинг-страниц на WP Gutenberg!
По-настоящему ВИЗУАЛЬНОЕ построение лендинг-страниц на WP Gutenberg!По-настоящему ВИЗУАЛЬНОЕ построение лендинг-страниц на WP Gutenberg!
По-настоящему ВИЗУАЛЬНОЕ построение лендинг-страниц на WP Gutenberg!
 
JavaScript + Webdriver = ♥
JavaScript + Webdriver = ♥ JavaScript + Webdriver = ♥
JavaScript + Webdriver = ♥
 
Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают
Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают
Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают
 
Игорь Лабутин «Продвинутое использование NuGet и MSBuild»
Игорь Лабутин «Продвинутое использование NuGet и MSBuild»Игорь Лабутин «Продвинутое использование NuGet и MSBuild»
Игорь Лабутин «Продвинутое использование NuGet и MSBuild»
 

Similar to бэм методология

Современная верстка с адекватными трудозатратами Максим Тимохин, технолог, И...
 Современная верстка с адекватными трудозатратами Максим Тимохин, технолог, И... Современная верстка с адекватными трудозатратами Максим Тимохин, технолог, И...
Современная верстка с адекватными трудозатратами Максим Тимохин, технолог, И...Тарасов Константин
 
Создание веб-сайта. Курс молодого бойца
Создание веб-сайта. Курс молодого бойцаСоздание веб-сайта. Курс молодого бойца
Создание веб-сайта. Курс молодого бойцаAnton Cherepov
 
Александр Баумгертнер — Преимущества БЭМ для небольших проектов и компаний
Александр Баумгертнер — Преимущества БЭМ для небольших проектов и компанийАлександр Баумгертнер — Преимущества БЭМ для небольших проектов и компаний
Александр Баумгертнер — Преимущества БЭМ для небольших проектов и компанийYandex
 
как стать хорошим веб технологом. нарек мкртчян. зал 4
как стать хорошим веб технологом. нарек мкртчян. зал 4как стать хорошим веб технологом. нарек мкртчян. зал 4
как стать хорошим веб технологом. нарек мкртчян. зал 4rit2011
 
Alex baumgertner bem_in_small_projects
Alex baumgertner bem_in_small_projectsAlex baumgertner bem_in_small_projects
Alex baumgertner bem_in_small_projectsAlexander Baumgertner
 
Вёрстка по методологии БЭМ
Вёрстка по методологии БЭМВёрстка по методологии БЭМ
Вёрстка по методологии БЭМversusbassz
 
Виталий Харисов "История создания БЭМ. Кратко, сбивчиво и неполно"
Виталий Харисов "История создания БЭМ. Кратко, сбивчиво и неполно"Виталий Харисов "История создания БЭМ. Кратко, сбивчиво и неполно"
Виталий Харисов "История создания БЭМ. Кратко, сбивчиво и неполно"Yandex
 
БЭМ в дикой природе
БЭМ в дикой природеБЭМ в дикой природе
БЭМ в дикой природеIhor Zenich
 
Методологии верстки
Методологии версткиМетодологии верстки
Методологии версткиElizaveta Selivanova
 
Мировые информационные ресурсы. Лекция 4
Мировые информационные ресурсы. Лекция 4Мировые информационные ресурсы. Лекция 4
Мировые информационные ресурсы. Лекция 4Dmitriy Krukov
 
Версионирование требований. Бейзлайны
Версионирование требований. БейзлайныВерсионирование требований. Бейзлайны
Версионирование требований. БейзлайныEvgeny Savitsky
 
Кэш виджетов Yii в Redis. Отдача напрямую через Nginx. Трофименко
Кэш виджетов Yii в Redis. Отдача напрямую через Nginx. ТрофименкоКэш виджетов Yii в Redis. Отдача напрямую через Nginx. Трофименко
Кэш виджетов Yii в Redis. Отдача напрямую через Nginx. Трофименко2ГИС Технологии
 
Как использовать Rapid SQL для ускорения разработки SQL и другого кода для СУБД
Как использовать Rapid SQL для ускорения разработки SQL и другого кода для СУБДКак использовать Rapid SQL для ускорения разработки SQL и другого кода для СУБД
Как использовать Rapid SQL для ускорения разработки SQL и другого кода для СУБДAndrew Sovtsov
 
Управление требованиями в Devprom ALM 3.2
Управление требованиями в Devprom ALM 3.2Управление требованиями в Devprom ALM 3.2
Управление требованиями в Devprom ALM 3.2Dmitry Lobasev
 
Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"
Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"
Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"Yandex
 
Denis Bugarchev
Denis BugarchevDenis Bugarchev
Denis Bugarchevyaevents
 
Владимир Гриненко "i-bem.js: JavaScript в БЭМ-терминах"
Владимир Гриненко "i-bem.js: JavaScript в БЭМ-терминах"Владимир Гриненко "i-bem.js: JavaScript в БЭМ-терминах"
Владимир Гриненко "i-bem.js: JavaScript в БЭМ-терминах"Yandex
 
bem-components — от методологии до full stack платформы
bem-components — от методологии до full stack платформыbem-components — от методологии до full stack платформы
bem-components — от методологии до full stack платформыYandex
 
My Open Source (Sept 2017)
My Open Source (Sept 2017)My Open Source (Sept 2017)
My Open Source (Sept 2017)Roman Dvornov
 

Similar to бэм методология (20)

Современная верстка с адекватными трудозатратами Максим Тимохин, технолог, И...
 Современная верстка с адекватными трудозатратами Максим Тимохин, технолог, И... Современная верстка с адекватными трудозатратами Максим Тимохин, технолог, И...
Современная верстка с адекватными трудозатратами Максим Тимохин, технолог, И...
 
Создание веб-сайта. Курс молодого бойца
Создание веб-сайта. Курс молодого бойцаСоздание веб-сайта. Курс молодого бойца
Создание веб-сайта. Курс молодого бойца
 
Александр Баумгертнер — Преимущества БЭМ для небольших проектов и компаний
Александр Баумгертнер — Преимущества БЭМ для небольших проектов и компанийАлександр Баумгертнер — Преимущества БЭМ для небольших проектов и компаний
Александр Баумгертнер — Преимущества БЭМ для небольших проектов и компаний
 
как стать хорошим веб технологом. нарек мкртчян. зал 4
как стать хорошим веб технологом. нарек мкртчян. зал 4как стать хорошим веб технологом. нарек мкртчян. зал 4
как стать хорошим веб технологом. нарек мкртчян. зал 4
 
Alex baumgertner bem_in_small_projects
Alex baumgertner bem_in_small_projectsAlex baumgertner bem_in_small_projects
Alex baumgertner bem_in_small_projects
 
Вёрстка по методологии БЭМ
Вёрстка по методологии БЭМВёрстка по методологии БЭМ
Вёрстка по методологии БЭМ
 
Виталий Харисов "История создания БЭМ. Кратко, сбивчиво и неполно"
Виталий Харисов "История создания БЭМ. Кратко, сбивчиво и неполно"Виталий Харисов "История создания БЭМ. Кратко, сбивчиво и неполно"
Виталий Харисов "История создания БЭМ. Кратко, сбивчиво и неполно"
 
БЭМ в дикой природе
БЭМ в дикой природеБЭМ в дикой природе
БЭМ в дикой природе
 
Методологии верстки
Методологии версткиМетодологии верстки
Методологии верстки
 
Мировые информационные ресурсы. Лекция 4
Мировые информационные ресурсы. Лекция 4Мировые информационные ресурсы. Лекция 4
Мировые информационные ресурсы. Лекция 4
 
Версионирование требований. Бейзлайны
Версионирование требований. БейзлайныВерсионирование требований. Бейзлайны
Версионирование требований. Бейзлайны
 
Кэш виджетов Yii в Redis. Отдача напрямую через Nginx. Трофименко
Кэш виджетов Yii в Redis. Отдача напрямую через Nginx. ТрофименкоКэш виджетов Yii в Redis. Отдача напрямую через Nginx. Трофименко
Кэш виджетов Yii в Redis. Отдача напрямую через Nginx. Трофименко
 
Как использовать Rapid SQL для ускорения разработки SQL и другого кода для СУБД
Как использовать Rapid SQL для ускорения разработки SQL и другого кода для СУБДКак использовать Rapid SQL для ускорения разработки SQL и другого кода для СУБД
Как использовать Rapid SQL для ускорения разработки SQL и другого кода для СУБД
 
Управление требованиями в Devprom ALM 3.2
Управление требованиями в Devprom ALM 3.2Управление требованиями в Devprom ALM 3.2
Управление требованиями в Devprom ALM 3.2
 
Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"
Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"
Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"
 
Denis Bugarchev
Denis BugarchevDenis Bugarchev
Denis Bugarchev
 
Владимир Гриненко "i-bem.js: JavaScript в БЭМ-терминах"
Владимир Гриненко "i-bem.js: JavaScript в БЭМ-терминах"Владимир Гриненко "i-bem.js: JavaScript в БЭМ-терминах"
Владимир Гриненко "i-bem.js: JavaScript в БЭМ-терминах"
 
bem-components — от методологии до full stack платформы
bem-components — от методологии до full stack платформыbem-components — от методологии до full stack платформы
bem-components — от методологии до full stack платформы
 
My Open Source (Sept 2017)
My Open Source (Sept 2017)My Open Source (Sept 2017)
My Open Source (Sept 2017)
 
Yac2012
Yac2012Yac2012
Yac2012
 

More from racoons

Cчастье и цели
Cчастье и целиCчастье и цели
Cчастье и целиracoons
 
Документо-ориентированные базы даннах
Документо-ориентированные базы даннахДокументо-ориентированные базы даннах
Документо-ориентированные базы даннахracoons
 
Модули на C для Ruby
Модули на C для RubyМодули на C для Ruby
Модули на C для Rubyracoons
 
Ведение переговоров
Ведение переговоровВедение переговоров
Ведение переговоровracoons
 
Развитие
РазвитиеРазвитие
Развитиеracoons
 
UNICORN vs PUMA
UNICORN vs PUMAUNICORN vs PUMA
UNICORN vs PUMAracoons
 

More from racoons (6)

Cчастье и цели
Cчастье и целиCчастье и цели
Cчастье и цели
 
Документо-ориентированные базы даннах
Документо-ориентированные базы даннахДокументо-ориентированные базы даннах
Документо-ориентированные базы даннах
 
Модули на C для Ruby
Модули на C для RubyМодули на C для Ruby
Модули на C для Ruby
 
Ведение переговоров
Ведение переговоровВедение переговоров
Ведение переговоров
 
Развитие
РазвитиеРазвитие
Развитие
 
UNICORN vs PUMA
UNICORN vs PUMAUNICORN vs PUMA
UNICORN vs PUMA
 

бэм методология