Денис Чистяков: Workflow. Работа над проектом в Яндексе
•
2 likes•3,382 views
1 of 26
Download to read offline
More Related Content
Денис Чистяков: Workflow. Работа над проектом в Яндексе
1. Workflow: работа
над проектом в Я
Чистяков Денис
Руководитель группы разработки интерфейсов
Школа Разработки Интерфейсов,
Екатеринбург, 10 декабря 2013
2. От А до Я
• Сбор требований и составление ТЗ
• Проектирование макета и дизайн
• Верстка
• Программирование
• Тестирование
• Релиз-деплой
• Следующая итерация
2
5. Сбор требований и составление ТЗ
• Структурирует мысли и снижает количество бреда
• Замечательно, если для этого есть отдельный человек
• Помогает дизайнеру и тестировщикам
• Крупную задачу проще бить на этапы
• Используйте коллаборативные редакторы
• ТЗ — не панацея :(
5
7. Всё начинается с таска
• Bugzilla, GitHub, JIRA, Mantis, Redmine, …
• Позволяют отслеживать статус выполнения задачи и
затраченное не неё время
• Получать оповещения об изменениях
• Составлять план ведения работ и релизов
7
11. Проектирование макета
• Начинайте с эскиза
• Используйте сетки
• Разбивайте всё на отдельные слои
• Учитывайте разные длины слов в разных языках
Например: Скачать, Завантажити, Download, İndir
• Не злоупотребляйте с кастомными шрифтами
11
14. Верстка
• Заводите отдельные таски для «верстки» и
«программирования»
• Требуйте реальные тексты для «рыбы»
• Используйте сервера приложения с моками
• Среда разработки должна быть доступна в виртуальных
машинах
• Автоматизируйте процесс сборки html, css и js файлов: grunt,
bash, make-файлы, …
14
17. Программирование
• Разворачивайте на виртуальной машине систему аналогичную
продакшин
• Процесс «разворачивания» приложения должен быть
максимально автоматизирован и документирован
• Данные из хранилища должны быть легко заменяемы на моки
• Используйте готовые фреймворки
• Выделяйте общие компоненты в независимые модули
17
18. Программирование
• Покрывайте тестами основные страницы и компоненты
• Создавайте API с автогенерируемой документацией
• Версионируйте API и до последнего поддерживайте обратную
совместимость
• Создавайте рабочее окружение удобное для всех членов
команды разработки
18
19. Программирование
• Именуем ветки в соответствии с номерами тасков
• Много коммитим в форк / ветку, после завершения «сквошим»
• «Финальный» коммит берем из „Commit message“
• Автоматически собираем ченжлог со списком тасков-коммитов
перед релизом
19
21. Тестирование
• Тестирование должно проходить на отдельном инстансе
приложения, доступному по отдельному URL
• Тестовый сервер должен быть полностью аналогичен продакшн
• Приложение развернутое на тестовом сервере должно
вспоследствие „as is“ с точностью до байта переноситься в
продакшн
21
24. Релиз-деплой
• Автоматизировать можно как угодно: grunt, bash, make-файлы,
мы используем deb-пакеты
• Собираем автоматически пулл-реквесты через Teamcity
• Travis CI, Jenkins, GitHub Web-hooks, …
• Изменения должны разворачиваться в продакшине
максимально атомарно
24
25. Резюме
• Принимайте участие в обсуждении ТЗ, дизайна и технических
моментов
• Бейте задачу на подзадачи и создавайте дерево тасков
• Старайтесь держать «чистой», но полной историю изменений
• Севера разработки должны быть легко поднимаемы и
требовать минимальной настройки
• Упрощайте процесс сборки и релиза до максимума
25