Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Организация frontend-разработки 
на крупном проекте 
Кузнецов Дмитрий 
01
Обо мне 
Новосибирск 2GIS 
Online Lead Frontend 
02
Давным-давно 
03
04
Сейчас же 
05
06
07 
Много всякого 
разного фронтенда
Проблемы 
1. Анимация на каждый чих 
2. Бизнес-логика на клиенте 
3. Высокая связность внутри frontend-команды 
08
Да ладно ✌ 
09
10
Нельзя так просто взять 
и переиспользовать процессы разработки backend-приложений для frontend-приложений! 
11
Команда 
Процесс Ó 
Процесс 
Инструмент 
12
Frontend 
Design 
Testing 
JavaScript 
Команда 
Management 
13
Frontend- 
разработчик 
14
JavaScript- 
программист 
15
16 
Все другие ♘♙♖
Команда 
Процесс Ó 
Процесс 
Инструмент 
17
Процесс 
1. Дизайн 
2. Разработка 
3. Тестирование 
18
1. Дизайн 
19
2. Разработка 
— Конвертация psd в html / css / js 
— Смотрите в следующих слайдах... DOM-тесты спасают вёрстку! 
20
3. Тестирование 
— Функциональные тесты 
21
Процесс 
1. Дизайн 
2. Разработка 
3. Тестирование 
22
Передача контекста 
23
Процесс 
1. Дизайн 
2. Разработка 
3. Тестирование 
24
1. Определение модуля FE JS 
2. Формат данных FE 
3. HTML-шаблон FE 
4. Вёрстка FE 
5. Анимация FE 
6. DOM-тесты FE JS 
7. Внутримодульная логика JS 
8. Интеграция модуля JS 
9. Ревью FE JS 
25
26
1. Определение модуля 
27
2. Формат данных 
{ 
title: ITmozg.ru, Информационный сайт 
address: Обуховской обороны проспект, 70 к2 
attrs: Наличный расчет, Visa, MasterCard, Безналичный расчет, MaestroCard 
status: Открыто 
} 
28
3. HTML-шаблон 
<article class="mini-card"> 
<h1 class="mini-card__title"> {{title}} </h1> 
<address class="mini-card__address"> {{address}} </address> 
<div class="mini-card__attrs"> {{attrs}} </div> 
<div class="mini-card__status"> {{status}} </div> 
</article> 
29
4. Верстка 
.mini-card { 
display: flex; 
justify-content: center; 
align-items: center; 
flex-direction: column; 
-webkit-user-experience: fantastic; 
background: url(assets/baron.svg); 
} 
30
Проверяем верстку 
Вёрстка 
31
5. Анимация 
32
33
6. DOM-тесты 
— Наличие важных элементов, классов и стилей 
— Отработка скриптов по событиям 
— Показ или скрытие каких-то элементов при определенных условиях 
— ... 
34
Пример DOM-тестов 
it('Не заполнено имя', function() { 
$('.feedback__name').empty(); 
$('.feedback__form').trigger('submit'); 
var hasErrCls = $('.feedback__name').hasClass('error'); 
assert(hasErrCls, 'Выставлен класс ошибки'); 
}); 
01. 
02. 
03. 
04. 
05. 
06. 
35
Контентные тесты 
36
7. Внутримодульная логика 
37
8. Интеграция модуля 
38
9. Ревью 
39
1. Определение модуля FE JS 
2. Формат данных FE 
3. HTML-шаблон FE 
4. Вёрстка FE 
5. Анимация FE 
6. DOM-тесты FE JS 
7. Внутримодульная логика JS 
8. Интеграция модуля JS 
9. Ревью FE JS 
40
Команда 
Процесс Ó 
Процесс 
Инструмент 
41
Передача верстки в разработку 
1. Определение модуля FE JS 
2. Формат данных FE 
3. HTML-шаблон FE 
4. Вёрстка FE 
5. Анимация FE 
6. DOM-тесты FE 
7. Ревью FE 
1. Внутримодульная логика JS 
2. Интеграция модуля JS 
3. Ревью JS 
42
Процесс 
Дизайн 
Разработка 
Тестирование 
Дизайн 
Разработка 
Тестирование 
Дизайн 
Разработка 
Тестирование 
43
Команда 
Процесс Ó 
Процесс 
Инструмент 
44
45
46
47
Команда 
Процесс Ó 
Процесс 
Инструмент 
48
Резюме 
— Frontend-разработчик и javascript-программист 
— Передача контекста — самое важное в процессе 
— Делайте инструменты под себя 
49
Вопросы? 
d.kuznecov@2gis.ru 
github.com/diokuz 
@diokuz 
50

More Related Content

«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов