Денис Чистяков: workflow. Работа над проектом в Яндексе

26
Руководитель группы разработки интерфейсов Workflow: работа над проектом в Я Чистяков Денис Школа Разработки Интерфейсов, Екатеринбург , 10 декабря 2013

Upload: yandex

Post on 12-Jul-2015

2.916 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Денис Чистяков: Workflow. Работа над проектом в Яндексе

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

Workflow: работа над проектом в Я

Чистяков Денис

Школа Разработки Интерфейсов,Екатеринбург, 10 декабря 2013

Page 2: Денис Чистяков: Workflow. Работа над проектом в Яндексе

От А до Я

• Сбор требований и составление ТЗ

• Проектирование макета и дизайн• Верстка• Программирование• Тестирование• Релиз-деплой• Следующая итерация

2

Page 3: Денис Чистяков: Workflow. Работа над проектом в Яндексе
Page 4: Денис Чистяков: Workflow. Работа над проектом в Яндексе
Page 5: Денис Чистяков: Workflow. Работа над проектом в Яндексе

Сбор требований и составление ТЗ

• Структурирует мысли и снижает количество бреда

• Замечательно, если для этого есть отдельный человек• Помогает дизайнеру и тестировщикам• Крупную задачу проще бить на этапы• Используйте коллаборативные редакторы• ТЗ — не панацея :(

5

Page 6: Денис Чистяков: Workflow. Работа над проектом в Яндексе
Page 7: Денис Чистяков: Workflow. Работа над проектом в Яндексе

Всё начинается с таска

• Bugzilla, GitHub, JIRA, Mantis, Redmine, …

• Позволяют отслеживать статус выполнения задачи и затраченное не неё время

• Получать оповещения об изменениях• Составлять план ведения работ и релизов

7

Page 8: Денис Чистяков: Workflow. Работа над проектом в Яндексе
Page 9: Денис Чистяков: Workflow. Работа над проектом в Яндексе
Page 10: Денис Чистяков: Workflow. Работа над проектом в Яндексе
Page 11: Денис Чистяков: Workflow. Работа над проектом в Яндексе

Проектирование макета

• Начинайте с эскиза

• Используйте сетки• Разбивайте всё на отдельные слои• Учитывайте разные длины слов в разных языках

Например: Скачать, Завантажити, Download, İndir• Не злоупотребляйте с кастомными шрифтами

11

Page 12: Денис Чистяков: Workflow. Работа над проектом в Яндексе
Page 13: Денис Чистяков: Workflow. Работа над проектом в Яндексе
Page 14: Денис Чистяков: Workflow. Работа над проектом в Яндексе

Верстка

• Заводите отдельные таски для «верстки» и «программирования»

• Требуйте реальные тексты для «рыбы»• Используйте сервера приложения с моками• Среда разработки должна быть доступна в виртуальных

машинах• Автоматизируйте процесс сборки html, css и js файлов: grunt,

bash, make-файлы, …

14

Page 15: Денис Чистяков: Workflow. Работа над проектом в Яндексе

Верстка

• Используйте готовые сетки: anygrid, bootstrap, …

• Используйте «динамические сниппеты» (emmet, шаблоны в редакторе)

• Выделяйте общие блоки• Делайте блоки максимально независимыми

15

Page 16: Денис Чистяков: Workflow. Работа над проектом в Яндексе
Page 17: Денис Чистяков: Workflow. Работа над проектом в Яндексе

Программирование

• Разворачивайте на виртуальной машине систему аналогичную продакшин

• Процесс «разворачивания» приложения должен быть максимально автоматизирован и документирован

• Данные из хранилища должны быть легко заменяемы на моки• Используйте готовые фреймворки• Выделяйте общие компоненты в независимые модули

17

Page 18: Денис Чистяков: Workflow. Работа над проектом в Яндексе

Программирование

• Покрывайте тестами основные страницы и компоненты

• Создавайте API с автогенерируемой документацией• Версионируйте API и до последнего поддерживайте обратную

совместимость• Создавайте рабочее окружение удобное для всех членов

команды разработки

18

Page 19: Денис Чистяков: Workflow. Работа над проектом в Яндексе

• Именуем ветки в соответствии с номерами тасков

• Много коммитим в форк / ветку, после завершения «сквошим»• «Финальный» коммит берем из „Commit message“• Автоматически собираем ченжлог со списком тасков-коммитов

перед релизом

19

Программирование

Page 20: Денис Чистяков: Workflow. Работа над проектом в Яндексе
Page 21: Денис Чистяков: Workflow. Работа над проектом в Яндексе

• Тестирование должно проходить на отдельном инстансе приложения, доступному по отдельному URL

• Тестовый сервер должен быть полностью аналогичен продакшн• Приложение развернутое на тестовом сервере должно

вспоследствие „as is“ с точностью до байта переноситься в продакшн

21

Тестирование

Page 22: Денис Чистяков: Workflow. Работа над проектом в Яндексе
Page 23: Денис Чистяков: Workflow. Работа над проектом в Яндексе

„Can you make a build in one step?“

23Joel Spolsky

Page 24: Денис Чистяков: Workflow. Работа над проектом в Яндексе

Релиз-деплой

• Автоматизировать можно как угодно: grunt, bash, make-файлы, мы используем deb-пакеты

• Собираем автоматически пулл-реквесты через Teamcity• Travis CI, Jenkins, GitHub Web-hooks, …• Изменения должны разворачиваться в продакшине

максимально атомарно

24

Page 25: Денис Чистяков: Workflow. Работа над проектом в Яндексе

Резюме

• Принимайте участие в обсуждении ТЗ, дизайна и технических моментов

• Бейте задачу на подзадачи и создавайте дерево тасков• Старайтесь держать «чистой», но полной историю изменений• Севера разработки должны быть легко поднимаемы и

требовать минимальной настройки• Упрощайте процесс сборки и релиза до максимума

25

Page 26: Денис Чистяков: Workflow. Работа над проектом в Яндексе

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

[email protected]@denchistyakov

Спасибо!

Чистяков Денис