osvita.ua · Web viewТакже работа над проектом поможет углубить знания о существенных признаках ...
Workflow: работа над проектом в Яндексе
-
Upload
denis-chistyakov -
Category
Software
-
view
112 -
download
2
Transcript of Workflow: работа над проектом в Яндексе
Руководитель группы разработки интерфейсов
Workflow: работа над проектом в Я
Чистяков Денис
Школа Разработки Интерфейсов,Екатеринбург, 10 декабря 2013
От А до Я
• Сбор требований и составление ТЗ
• Проектирование макета и дизайн• Верстка• Программирование• Тестирование• Релиз-деплой• Следующая итерация
2
Сбор требований и составление ТЗ
• Структурирует мысли и снижает количество бреда
• Замечательно, если для этого есть отдельный человек• Помогает дизайнеру и тестировщикам• Крупную задачу проще бить на этапы• Используйте коллаборативные редакторы• ТЗ — не панацея :(
5
Всё начинается с таска
• Bugzilla, GitHub, JIRA, Mantis, Redmine, …
• Позволяют отслеживать статус выполнения задачи и затраченное не неё время
• Получать оповещения об изменениях• Составлять план ведения работ и релизов
7
Проектирование макета
• Начинайте с эскиза
• Используйте сетки• Разбивайте всё на отдельные слои• Учитывайте разные длины слов в разных языках
Например: Скачать, Завантажити, Download, İndir• Не злоупотребляйте с кастомными шрифтами
11
Верстка
• Заводите отдельные таски для «верстки» и «программирования»
• Требуйте реальные тексты для «рыбы»• Используйте сервера приложения с моками• Среда разработки должна быть доступна в виртуальных
машинах• Автоматизируйте процесс сборки html, css и js файлов: grunt,
bash, make-файлы, …
14
Верстка
• Используйте готовые сетки: anygrid, bootstrap, …
• Используйте «динамические сниппеты» (emmet, шаблоны в редакторе)
• Выделяйте общие блоки• Делайте блоки максимально независимыми
15
Программирование
• Разворачивайте на виртуальной машине систему аналогичную продакшин
• Процесс «разворачивания» приложения должен быть максимально автоматизирован и документирован
• Данные из хранилища должны быть легко заменяемы на моки• Используйте готовые фреймворки• Выделяйте общие компоненты в независимые модули
17
Программирование
• Покрывайте тестами основные страницы и компоненты
• Создавайте API с автогенерируемой документацией• Версионируйте API и до последнего поддерживайте обратную
совместимость• Создавайте рабочее окружение удобное для всех членов
команды разработки
18
• Именуем ветки в соответствии с номерами тасков
• Много коммитим в форк / ветку, после завершения «сквошим»• «Финальный» коммит берем из „Commit message“• Автоматически собираем ченжлог со списком тасков-коммитов
перед релизом
19
Программирование
• Тестирование должно проходить на отдельном инстансе приложения, доступному по отдельному URL
• Тестовый сервер должен быть полностью аналогичен продакшн• Приложение развернутое на тестовом сервере должно
вспоследствие „as is“ с точностью до байта переноситься в продакшн
21
Тестирование
Релиз-деплой
• Автоматизировать можно как угодно: grunt, bash, make-файлы, мы используем deb-пакеты
• Собираем автоматически пулл-реквесты через Teamcity• Travis CI, Jenkins, GitHub Web-hooks, …• Изменения должны разворачиваться в продакшине
максимально атомарно
24
Резюме
• Принимайте участие в обсуждении ТЗ, дизайна и технических моментов
• Бейте задачу на подзадачи и создавайте дерево тасков• Старайтесь держать «чистой», но полной историю изменений• Севера разработки должны быть легко поднимаемы и
требовать минимальной настройки• Упрощайте процесс сборки и релиза до максимума
25