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

• Сбор требований и составление ТЗ
• Проектирование макета и дизайн
• Верстка
• Программирование
• Тестирование...
Сбор требований и составление ТЗ

• Структурирует мысли и снижает количество бреда
• Замечательно, если для этого есть отд...
Всё начинается с таска

• Bugzilla, GitHub, JIRA, Mantis, Redmine, …
• Позволяют отслеживать статус выполнения задачи и
за...
Проектирование макета

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

• Заводите отдельные таски для «верстки» и
«программирования»
• Требуйте реальные тексты для «рыбы»
• Используйте...
Верстка

• Используйте готовые сетки: anygrid, bootstrap, …
• Используйте «динамические сниппеты» (emmet, шаблоны в
редакт...
Программирование

• Разворачивайте на виртуальной машине систему аналогичную
продакшин
• Процесс «разворачивания» приложен...
Программирование

• Покрывайте тестами основные страницы и компоненты
• Создавайте API с автогенерируемой документацией
• ...
Программирование

• Именуем ветки в соответствии с номерами тасков
• Много коммитим в форк / ветку, после завершения «скво...
Тестирование

• Тестирование должно проходить на отдельном инстансе
приложения, доступному по отдельному URL
• Тестовый се...
„Can you make a build in one
step?“

23

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

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

• Принимайте участие в обсуждении ТЗ, дизайна и технических
моментов
• Бейте задачу на подзадачи и создавайте дере...
Чистяков Денис
Руководитель группы разработки
интерфейсов

dench@yandex-team.ru
@denchistyakov

Спасибо!
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Upcoming SlideShare
Loading in...5
×

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

2,907

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,907
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
10
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

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

  1. 1. Workflow: работа над проектом в Я Чистяков Денис Руководитель группы разработки интерфейсов Школа Разработки Интерфейсов, Екатеринбург, 10 декабря 2013
  2. 2. От А до Я • Сбор требований и составление ТЗ • Проектирование макета и дизайн • Верстка • Программирование • Тестирование • Релиз-деплой • Следующая итерация 2
  3. 3. Сбор требований и составление ТЗ • Структурирует мысли и снижает количество бреда • Замечательно, если для этого есть отдельный человек • Помогает дизайнеру и тестировщикам • Крупную задачу проще бить на этапы • Используйте коллаборативные редакторы • ТЗ — не панацея :( 5
  4. 4. Всё начинается с таска • Bugzilla, GitHub, JIRA, Mantis, Redmine, … • Позволяют отслеживать статус выполнения задачи и затраченное не неё время • Получать оповещения об изменениях • Составлять план ведения работ и релизов 7
  5. 5. Проектирование макета • Начинайте с эскиза • Используйте сетки • Разбивайте всё на отдельные слои • Учитывайте разные длины слов в разных языках Например: Скачать, Завантажити, Download, İndir • Не злоупотребляйте с кастомными шрифтами 11
  6. 6. Верстка • Заводите отдельные таски для «верстки» и «программирования» • Требуйте реальные тексты для «рыбы» • Используйте сервера приложения с моками • Среда разработки должна быть доступна в виртуальных машинах • Автоматизируйте процесс сборки html, css и js файлов: grunt, bash, make-файлы, … 14
  7. 7. Верстка • Используйте готовые сетки: anygrid, bootstrap, … • Используйте «динамические сниппеты» (emmet, шаблоны в редакторе) • Выделяйте общие блоки • Делайте блоки максимально независимыми 15
  8. 8. Программирование • Разворачивайте на виртуальной машине систему аналогичную продакшин • Процесс «разворачивания» приложения должен быть максимально автоматизирован и документирован • Данные из хранилища должны быть легко заменяемы на моки • Используйте готовые фреймворки • Выделяйте общие компоненты в независимые модули 17
  9. 9. Программирование • Покрывайте тестами основные страницы и компоненты • Создавайте API с автогенерируемой документацией • Версионируйте API и до последнего поддерживайте обратную совместимость • Создавайте рабочее окружение удобное для всех членов команды разработки 18
  10. 10. Программирование • Именуем ветки в соответствии с номерами тасков • Много коммитим в форк / ветку, после завершения «сквошим» • «Финальный» коммит берем из „Commit message“ • Автоматически собираем ченжлог со списком тасков-коммитов перед релизом 19
  11. 11. Тестирование • Тестирование должно проходить на отдельном инстансе приложения, доступному по отдельному URL • Тестовый сервер должен быть полностью аналогичен продакшн • Приложение развернутое на тестовом сервере должно вспоследствие „as is“ с точностью до байта переноситься в продакшн 21
  12. 12. „Can you make a build in one step?“ 23 Joel Spolsky
  13. 13. Релиз-деплой • Автоматизировать можно как угодно: grunt, bash, make-файлы, мы используем deb-пакеты • Собираем автоматически пулл-реквесты через Teamcity • Travis CI, Jenkins, GitHub Web-hooks, … • Изменения должны разворачиваться в продакшине максимально атомарно 24
  14. 14. Резюме • Принимайте участие в обсуждении ТЗ, дизайна и технических моментов • Бейте задачу на подзадачи и создавайте дерево тасков • Старайтесь держать «чистой», но полной историю изменений • Севера разработки должны быть легко поднимаемы и требовать минимальной настройки • Упрощайте процесс сборки и релиза до максимума 25
  15. 15. Чистяков Денис Руководитель группы разработки интерфейсов dench@yandex-team.ru @denchistyakov Спасибо!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×