Continuous Integration,
или как мы подружили
Front-end и Back-end
Почему?
Типовой процесс разработки
Проектирование
Front-end
Back-end
Продукт
Дизайн
Типовой процесс разработки
Проектирование
Дизайн
Front-end
Back-end
Продукт
.PSD
.html .css .js
Прототип
Что в этом плохого?
— Экспоненциально растущие риски
— Необходимость килограммового ТЗ
— Невозможность применять Agile
Типовые проблемы с “версткой”
— Не все макеты
— Логика ломается из-за скорости работы
back-end
— Верстка расползается на реальных
данных
Кто виноват?
Никто
— Спроектировали то что знали
— Нарисовали то что спроектировали
— Сверстали все макеты
— Интегрировали все что было
Что делать?
— Возврат к этапу с ошибкой и правят
— На текущем этапе “колхозят” как умеют
— Full-stack разработчик
— Работать сразу над конечным продуктом,
избегая промежуточных артефактов
Возврат на предыдущие этапы
Минусы
— Колоссальные затраты
— Недоступность исполнителей
Плюсы
— Можно освоить гигантские бюджеты
“Колхоз”
Минусы
— Требуется доп.квалификация сотрудника
— Низкое качество конечного продукта
Плюсы
— Дешево
Full-stack разработчик
Минусы
— Таких не существует
— Низкое качество проектов
— Высокие риски связанные с
исполнителем
Плюсы
— Очень просто для менеджера
Отказ от артефактов — тренды
— Дизайн в браузере
— Continuous Integration
“Непрерывная интеграция
(CI, англ. Continuous Integration)
— это практика разработки программного
обеспечения, которая заключается в
выполнении частых автоматизированных
сборок проекта для скорейшего выявления и
решения интеграционных проблем”.
© Википедия
Что значит CI для Front-end
разработчика?
— Применять автоматизацию сборки
— Верстать сразу на CMS/Framework
Как это внедрить в 1C-Bitrix
— Применять шаблонизатор (Twig)
— Готовить back-end и данные ДО front-end
Front-end CI для 1С-Bitrix — MVC
M C V
Модуль Компонент Шаблон
Front-end CI для 1С-Bitrix — Шаблоны
Структура
— Исходники front-end в том
же .git репозитории, что и
сборка Bitrix
— Все “исходники” вне
публичной папки
— Grunt собирает assets
сразу в шаблона Bitrix
Фактические изменения для
Front-end разработчика
— Нужен локальный web-сервер для работы
— Работа с Twig вместо HTML
— Grunt/Gulp собирает сразу “внутрь” Bitrix
— Тесная работа с back-end разработчиком
Что это дает?
— Улучшение качества продукта
— Командная работа
— Уменьшение сроков разработки
— Возможность гибко реагировать на
изменяющиеся требования (Agile)
— Continuous Deployment
Уменьшение сроков — как было
Дизайн
Интеграция
+ Back-end
Front-end
Прототип
QA
Уменьшение сроков — получше
Дизайн
Front-end
Прототип
Back-end
QA
Уменьшение сроков — идеально
Дизайн
Front-end
Прототип
Back-end
QAQA
Гибкие методологии — Agile
Дизайн
Front-end
Прототип
Back-end
QAQA
x N = Agile
Так зачем нам все это?
Чтобы делать
более крутые проекты
с меньшими усилиями
Спасибо за внимание
Подрубный Константин
email: support@wlbl.ru
fb: http://fb.com/podrubny
web: http://wlbl.ru/

Continuous Integration(как мы подружили frontend и backend)