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

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

2
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Сбор требований и составление ТЗ

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

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

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

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

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

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

• Заводите отдельные таски для «верстки» и
«программирования»
• Требуйте реальные тексты для «рыбы»
• Используйте сервера приложения с моками
• Среда разработки должна быть доступна в виртуальных
машинах
• Автоматизируйте процесс сборки html, css и js файлов: grunt,
bash, make-файлы, …

14
Верстка

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

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

• Разворачивайте на виртуальной машине систему аналогичную
продакшин
• Процесс «разворачивания» приложения должен быть
максимально автоматизирован и документирован
• Данные из хранилища должны быть легко заменяемы на моки
• Используйте готовые фреймворки
• Выделяйте общие компоненты в независимые модули

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

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

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

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

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

• Тестирование должно проходить на отдельном инстансе
приложения, доступному по отдельному URL
• Тестовый сервер должен быть полностью аналогичен продакшн
• Приложение развернутое на тестовом сервере должно
вспоследствие „as is“ с точностью до байта переноситься в
продакшн

21
Денис Чистяков: Workflow. Работа над проектом в Яндексе
„Can you make a build in one
step?“

23

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

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

24
Резюме

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

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

dench@yandex-team.ru
@denchistyakov

Спасибо!

More Related Content

PDF
Возможна ли жизнь без тестировщика?
PPT
Новый процесс тестирования на "старом" проекте
PPTX
Способы организаций больших Java проектов по Автоматизированному тестированию
PDF
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
PPTX
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
PPT
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
PPT
Делаем автоматизацию проектных KPIs
PPTX
Гибкое тестирование
Возможна ли жизнь без тестировщика?
Новый процесс тестирования на "старом" проекте
Способы организаций больших Java проектов по Автоматизированному тестированию
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Делаем автоматизацию проектных KPIs
Гибкое тестирование

What's hot (20)

PDF
Enter: testing
PDF
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014
PPTX
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
PDF
WP как экспериментальная платформа
PPTX
Quality Assurance vs Quality Control - так в чем же заключается работа специа...
PPTX
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
PDF
C&C for coffee'n'code
PPTX
10 принципов автоматизации, которые я не предам
PPTX
Добиваемся эффективности каждого из 9000+ UI-тестов
PPT
Внедрение тестирования в Scrum
PDF
Как 3 тестировщика играючи тестируют приложение для 10млн пользователей
PPTX
Тестирование веб-проектов в Agile
PPTX
IT-шная история игрушек или feature-driven тестирование в действии
PPTX
Test link introduction
PPTX
TestLink
PPTX
Free Desktop QA Engineers: implement automation testing
PPTX
Jubula – TDD UI QA Automation Tool
PPTX
Контроль качетсва в компании iiko
PPTX
Альтернативные способы изучения программирования с нуля
PPT
Тестирование инсталляторов
Enter: testing
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
WP как экспериментальная платформа
Quality Assurance vs Quality Control - так в чем же заключается работа специа...
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
C&C for coffee'n'code
10 принципов автоматизации, которые я не предам
Добиваемся эффективности каждого из 9000+ UI-тестов
Внедрение тестирования в Scrum
Как 3 тестировщика играючи тестируют приложение для 10млн пользователей
Тестирование веб-проектов в Agile
IT-шная история игрушек или feature-driven тестирование в действии
Test link introduction
TestLink
Free Desktop QA Engineers: implement automation testing
Jubula – TDD UI QA Automation Tool
Контроль качетсва в компании iiko
Альтернативные способы изучения программирования с нуля
Тестирование инсталляторов
Ad

Viewers also liked (6)

PPTX
Обзор_про_Яндекс_как_компанию
PPTX
Использование Jira Agile как инструмент для контроля гибкой разработкиLaf2015...
PDF
Процессы разработки в Яндексе
PPT
Jira - обучение, внедрение и практика использования
PPT
Agile, SCRUM, Планирование – что в этом для программистов?
PPTX
Agile/Scrum методологии разработки программного обеспечения
Обзор_про_Яндекс_как_компанию
Использование Jira Agile как инструмент для контроля гибкой разработкиLaf2015...
Процессы разработки в Яндексе
Jira - обучение, внедрение и практика использования
Agile, SCRUM, Планирование – что в этом для программистов?
Agile/Scrum методологии разработки программного обеспечения
Ad

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

PDF
Workflow: работа над проектом в Яндексе
PPTX
Лучшие практики на практике
PDF
Юрий Василевский «Автоматизация в XCode»
PDF
Юрий Василевский "Автоматизация в XCode"
PPT
Владимир Никонов "Вызовы при разработке enterprise продукта"
PPTX
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
PDF
PDF
"Девопс - это не только для программистов. Практические примеры из жизни одно...
PDF
C# Web. Занятие 14.
PPTX
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
PDF
Отладка веб-приложений на Javascript
PDF
QAFest. Роль тестирования в Devops
PDF
Павел Брылов, Skype
PPTX
Protrarctor and Angular
PPTX
Как за $5 и несколько вечеров сделать интегрированную новостную платформу
PPTX
Test Driven Development in .NET Applications
PPTX
Automation from the trenches
PPTX
Automation from the trenches
PDF
Zero Downtime PHP Deployment with Envoyer And Forge
PDF
DevOps guide for awesome quality assurance
Workflow: работа над проектом в Яндексе
Лучшие практики на практике
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский "Автоматизация в XCode"
Владимир Никонов "Вызовы при разработке enterprise продукта"
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
"Девопс - это не только для программистов. Практические примеры из жизни одно...
C# Web. Занятие 14.
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
Отладка веб-приложений на Javascript
QAFest. Роль тестирования в Devops
Павел Брылов, Skype
Protrarctor and Angular
Как за $5 и несколько вечеров сделать интегрированную новостную платформу
Test Driven Development in .NET Applications
Automation from the trenches
Automation from the trenches
Zero Downtime PHP Deployment with Envoyer And Forge
DevOps guide for awesome quality assurance

More from Yandex (20)

PDF
Предсказание оттока игроков из World of Tanks
PDF
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
PDF
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
PDF
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
PDF
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
PDF
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
PDF
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
PDF
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
PDF
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
PDF
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
PDF
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
PDF
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
PDF
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
PDF
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
PDF
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
PDF
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
PDF
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
PDF
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
PDF
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
PDF
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Предсказание оттока игроков из World of Tanks
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...

Денис Чистяков: 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
  • 15. Верстка • Используйте готовые сетки: anygrid, bootstrap, … • Используйте «динамические сниппеты» (emmet, шаблоны в редакторе) • Выделяйте общие блоки • Делайте блоки максимально независимыми 15
  • 17. Программирование • Разворачивайте на виртуальной машине систему аналогичную продакшин • Процесс «разворачивания» приложения должен быть максимально автоматизирован и документирован • Данные из хранилища должны быть легко заменяемы на моки • Используйте готовые фреймворки • Выделяйте общие компоненты в независимые модули 17
  • 18. Программирование • Покрывайте тестами основные страницы и компоненты • Создавайте API с автогенерируемой документацией • Версионируйте API и до последнего поддерживайте обратную совместимость • Создавайте рабочее окружение удобное для всех членов команды разработки 18
  • 19. Программирование • Именуем ветки в соответствии с номерами тасков • Много коммитим в форк / ветку, после завершения «сквошим» • «Финальный» коммит берем из „Commit message“ • Автоматически собираем ченжлог со списком тасков-коммитов перед релизом 19
  • 21. Тестирование • Тестирование должно проходить на отдельном инстансе приложения, доступному по отдельному URL • Тестовый сервер должен быть полностью аналогичен продакшн • Приложение развернутое на тестовом сервере должно вспоследствие „as is“ с точностью до байта переноситься в продакшн 21
  • 23. „Can you make a build in one step?“ 23 Joel Spolsky
  • 24. Релиз-деплой • Автоматизировать можно как угодно: grunt, bash, make-файлы, мы используем deb-пакеты • Собираем автоматически пулл-реквесты через Teamcity • Travis CI, Jenkins, GitHub Web-hooks, … • Изменения должны разворачиваться в продакшине максимально атомарно 24
  • 25. Резюме • Принимайте участие в обсуждении ТЗ, дизайна и технических моментов • Бейте задачу на подзадачи и создавайте дерево тасков • Старайтесь держать «чистой», но полной историю изменений • Севера разработки должны быть легко поднимаемы и требовать минимальной настройки • Упрощайте процесс сборки и релиза до максимума 25
  • 26. Чистяков Денис Руководитель группы разработки интерфейсов dench@yandex-team.ru @denchistyakov Спасибо!