Разработка фронтенда: от кузницы до металлургического завода
Дмитрий Поляков
разработчик команды Яндекс.Маркета
Первые версии фронденда Маркета далали всего несколько человек. Сегодня нас больше 20, а за это время сам Маркет технологически вырос из кузницы с ручным трудом до маленького html-завода, где многое за разработчика делают скрипты.
В докладе я расскажу особенности разработки фронтенда Маркета:
— создание рабочей копии для разработчика "в один клик";
— файловая структура шаблонов и их сборка;
— фриз статики;
— выкладка в продакшн: как обновить верстку на десятке серверов;
— общие компоненты между проектами: как избавиться от копипаста и ничего не сломать новой фичей.
4. 4
А помнишь как все начиналось?
Большинство маленьких проектов:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" href="css/style.css" type="text/css" />
<script type="text/javascript" src="js/jquery-1.4.0.min.js"></script>
<script type="text/javascript" src="js/main.js"></script>
</head>
5. 5
А помнишь как все начиналось?
Добавим немного редизайна:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN”>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" href="css/style.css" type="text/css" />
<link rel="stylesheet" href="css/new-style.css" type="text/css" />
<script type="text/javascript" src="js/jquery-1.4.0.min.js"></script>
<script type="text/javascript" src="js/main.js"></script>
<script type="text/javascript" src="js/new-script.js"></script>
</head>
6. 6
Добавим немного редизайна
style.css
a {
new-style.css
.newpage a {
color: blue !important;
text-decoration: none !important;
}
color: #369;
outline: none;
text-decoration: underline;
}
8. Решение
Верстка абсолютно независимыми
блоками
Основные принципы подхода:
• для описания элемента используется только классы;
• в таблице стилей нет классов вне блоков;
• минимальное количество каскадов.
8
9. 9
Методология верстки
Верстка абсолютно независимыми
блоками
• Статья Виталия Харисова bit.ly/harisov
37. 37
Общие компоненты
• Берем последнюю версию из мастера
• Фриз на конкретном коммите
38. 38
Общие компоненты
• Берем последнюю версию из мастера
• Фриз на конкретном коммите
• Семантическое версионирование
• Разбиение на отдельные компоненты
39. 39
Общие компоненты
Выбор Маркета:
Разбиение на
компоненты и их
семантическое
версионирование
50. 50
Подробнее о deb-пакетах
• Лекция «Развёртывание вёрстки»
в ШРИ от Павла Пушкарёва bit.ly/deb-‐shri
51. 51
Подробнее о deb-пакетах
• Лекция «Развёртывание вёрстки»
в ШРИ от Павла Пушкарёва bit.ly/deb-‐shri
• Документация bit.ly/deb-info
52. 52
Подробнее о deb-пакетах
• Лекция «Развёртывание вёрстки»
в ШРИ от Павла Пушкарёва bit.ly/deb-‐shri
• Документация bit.ly/deb-info
• Как собрать бинарный deb пакет: подробное
HowTo bit.ly/deb-habr