85
МАНУФАКТУРА Интерактивное агентство

Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

Embed Size (px)

Citation preview

Page 1: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

МАНУФАКТУРАИнтерактивное агентство

Page 2: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn

МАНУФАКТУРАИнтерактивное агентство

Как мы жили до БЭМа и к чему пришли с ним

2 / 61

CodeFest 2015

Page 3: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

ОБО МНЕ

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 3 / 61

В «Мануфактуре» 3 года

Руководитель группы разработки

Воищев Иван

@voischev

Page 4: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 4 / 61

СОДЕРЖАНИЕПроблемы

• Старый подход

Решение

• Собственные инструменты

• BEM full stack (Сервис Myweddy.ru)

Профит

• Воркфлоу

• Библиотеки блоков и продукты

• О команде

2011

2012

2013

Cейчас

2014

Page 5: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

5 / 61

ПРОБЛЕМЫ

• Большие CSS файлы• HTML – это хаос!

• JS где-то сбоку

2011 год

• Нет общего языка общения в команде• Быстро развивающаяся индустрия

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn

• Низкая скорость разработки

Page 6: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

6 / 61

Проблемы

Page 7: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

7 / 61

Проблемы

Page 8: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

8 / 61Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn

Page 9: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

9 / 61

РЕШЕНИЕ 2012 год

• Выбрать методологию разработки• Инструменты сборки

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn

Page 10: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

10 / 61Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn

Page 11: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

11 / 61Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn

Сходство

Page 12: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

13 / 61Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn

Независимость

Page 13: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

13/ 61Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn

Page 14: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

14/ 61

ЗАДАЧИ ПЕРЕД ИНСТРУМЕНТОМ СБОРКИ ПРОЕКТОВ 2012 год

• Все технологии блока в одном месте • Простая модификация кода • Полное разделение ответственности разработчиков • Автоматическая подготовка кода к продакшену • Удобный деплой проектов

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn

Page 15: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

15 / 61Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn

Первый взгляд на bem-tools в 2012

Page 16: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

8 / 94Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn

Первый взгляд на bem-tools в 2012

• Не хватало технологий для связи с бэкендом

• Мало документации • Высокий порог входа

16 / 61

Page 17: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

17 / 61

СОБСТВЕННЫЕ ИНСТРУМЕНТЫ СБОРКИ 2012-2013

• Основа на Zend Framework • Blitz Templates + хелперы • Собственная система сборки • Поддержали БЭМ структуру хранения файлов • Сборка в дев. и продакшен режиме • Фриз статики

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn

Page 18: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

18 / 61

Собственные инструменты сборки

• Ходит в папку с именем блока • Подключает шаблоны, css и jsи др.

Page 19: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

19 / 61

Собственные инструменты сборки

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn

Page 20: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

20 / 61

• Работали с технологиями которые мы хорошо знали и умели • Заточен под наши процессы

Собственные инструменты сборки

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn

ПЛЮСЫ

Page 21: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

• Нужно поддерживать и развивать • Часть логики представления в контролерах • Подсветка синтаксиса • Нет документации • Нет переопределения шаблонов

Собственные инструменты сборки

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn

МИНУСЫ

21 / 61

Page 22: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

8 / 94

myweddy.ru

Page 23: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

ТЕМЫ ОФОРМЛЕНИЯ

Myweddy.ru

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 23 / 61

Page 24: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

Myweddy.ru

8 / 94

Page 25: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

8 / 94

Page 26: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

8 / 94

Page 27: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

ПАЛИТРЫ ТЕМ

Myweddy.ru

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 27 / 61

Page 28: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

28 / 61

Page 29: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 29 / 61

Page 30: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)
Page 31: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

СНОВА BEM STACK?• Появилась BEMTREE технология • bem-tools решает все задачи, поставленные перед инструментом сборки • Шаблонизатор, в котором можно всё • Больше нет проблем с подсветкой синтаксиса BEMHTML • Уровни переопределения • Модульная система для JS • CSS препроцессор на выбор из коробки • Любой бэкенд • Появилась актуальная документация

Профит с 2013

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 31 / 61

Page 32: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

Пример BEMTREE

32 / 61

Page 33: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

Доопределение BEMHTML

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 33 / 61

Page 34: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

РЕЗУЛЬТАТ СБОРКИ• _common.bemtree.js • _common.bemhtml.js • _common.js • _common.css (Autoprefixer) • папка с фризом (img, fonts, svg …)

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 34 / 61

Page 35: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

DATA  → BEMTREE → BEMHTML → HTML

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 35 / 61

Page 36: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

DATA  → BEMTREE → BEMHTML → HTML

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn

Бэкенд сервер

json

35 / 61

Page 37: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

DATA  → BEMTREE → BEMHTML → HTML

Nodejs

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn

Бэкенд сервер

json

35 / 61

Page 38: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

ВОРКФЛОУ

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 36 / 61

Page 39: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

ВОРКФЛОУ• Простой редактор кода

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 36 / 61

Page 40: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

ВОРКФЛОУ• Простой редактор кода• Препроцессор css

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 36 / 61

Page 41: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

ВОРКФЛОУ• Простой редактор кода• Препроцессор css• npm, bower, [git hooks, jshint, jscs, csscomb…] … Автоматизация

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 36 / 61

Page 42: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

ВОРКФЛОУ• Простой редактор кода• Препроцессор css• npm, bower, [git hooks, jshint, jscs, csscomb…] … Автоматизация• Любой бэкенд сервер

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 36 / 61

Page 43: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 37 / 61

myweddy.ru ashifin-gubernator.ru posmotri-vrn.ru

voronezharts.rudomjourvrn.ru 10+

polavkam.ru

ihvoronezh.comstudioelegantart.ru

Одностраничники Лендинги другие задачи

Page 44: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

БИБЛИОТЕКИ БЛОКОВ• bem-core • bem-components • bem-grid • bem-social • bem-factory • manufactura-bl • factory-fonts

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 38 / 61

Page 45: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)
Page 46: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)
Page 47: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

checkbox

Page 48: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

checkbox

bem-components / popup + menu

Page 49: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

checkbox

bem-components / popup + menu

link linklink

Page 50: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

checkbox

bem-components / popup + menu

link linklink

factory-fonts

Page 51: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)
Page 52: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

bem-factory / fancybox

Page 53: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

bem-factory / fancybox

bem-components / menu

Page 54: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)
Page 55: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

manufactura-bl / slider

Page 56: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)
Page 57: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

bem-components / button

Page 58: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

bem-components / button

popupinput select

textarea button

Page 59: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)
Page 60: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

bem-social

Page 61: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

manufactura-bl / map

bem-social

Page 62: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

manufactura-bl / map

factory

bem-social

Page 63: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 44 / 61

Page 64: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 44 / 61

Page 65: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

BEM-FONT

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 45 / 61

bit.ly/bem-font

Page 66: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

BEM-FONT

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 45 / 61

bit.ly/bem-font

Page 67: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

BEM-FONT

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 45 / 61

bit.ly/bem-font

Page 68: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

BEM-FONT

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 45 / 61

bit.ly/bem-font

Page 69: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

BEM-GRID

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 46 / 61

bit.ly/bem-grid

Page 70: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

8 / 94

BEM-SOCIAL

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn

bit.ly/bem-social

Page 71: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 48 / 61

bit.ly/bem-forms

BEM-FORMS

Page 72: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

ВНУТРЕННИЕ РАЗРАБОТКИ

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn

• bem-factory • manufactura-bl • factory-fonts • свой project-stub • продукты

49 / 61

Page 73: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

ИТОГИ

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn

• Полное разделение ответственности у разработчиков • Автоматизация многих процессов • Реиспользуемый код • Библиотеки блоков • Один язык общения для всей команды • Простая поддержка кода • Уменьшились сроки разработки

50 / 61

Page 74: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

ПРО СРОКИ

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 51 / 61

МЭР ГУБЕРНАТОР

Frontend 198 217

Backend 180 80

378 часов 297 часов(- 81 час)

первые результаты

Page 75: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

ПРО СРОКИ

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 52 / 61

сегодня

• бэкенд на 25% – 40% быстрее • фронтенд на 0% – 10% быстрее (ожидаем еще ускорения)

Ускорение за счет

• малой связности бэкенда и фронтенда • библиотек блоков и реиспользуемого кода • продуктового подхода к разработке

Page 76: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 53 / 61

Бэкенд Фронтенд

Page 77: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 54 / 61

ПРОДУКТОВАЯ ИСТОРИЯ

Page 78: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 55 / 61

Page 79: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 49 / 60

bit.ly/factory-redactor

Page 80: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 49 / 60

bit.ly/factory-redactor

Page 81: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 53 / 60

Page 82: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

ПРОДУКТОВАЯ ИСТОРИЯ

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn

• Блочный редактор текста для сайтов СМИ • Интерфейс управления сайтом • Быстрые сайты (три пакета) • Технологичные лендинги • Поддержка проектов

58 / 61

Page 83: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 59 / 61

Page 84: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn

@VOISCHEV

60 / 61

Page 85: Как мы жили до БЭМа и к чему пришли с ним (CodeFest 2015)

THANKUwww.factory.mn

МАНУФАКТУРАИнтерактивное агентство

[email protected]@voischev

voischev

СПАСИБО

ВОИЩЕВИВАН

Как мы жили до БЭМа и к чему пришли с ним • Воищев Иван • Factory.mn 61 / 61