Зазеркалье разработки ПО
Акуляков Артем.net разработчик
сотрудник неизвестного банка
Кто я?
● 5+ лет разработки● c#, f#, c++, python● параллельное и асинхронное
программирование● тот еще enterprise разработчик
Рутина
● Управление кодовой базой● Управление задачами● Публикация● Качество кода
Как справится с рутиной?
Выработать devworkflow. Провести автоматизацию с использованием подхода
continuous integration.
Как управлять кодовой базой?
Система контроля версий
● Без неё никак● Git, Mercurial(hg)● Удобное ветвление решает
Ветки — это параллельные реальности вашей кодовой базы.
Пример названия:
Login form #123
Как управлять задачами?
Нужно использовать bug-tracker
Bug-tracker
● Bug-tracker должен быть● В bug-tracker'е не только баги,
но и задачи● Подзадачи необходимы,
обойтись можно, но не надо
Жизненный путь бага\задачи
Рекомендую
Redmine, YouTrack, Jira, Track
Вы используете систему контроля версий и bug-tracker?
Для ленивых - Github, Bitbucket
Как осуществлять публикацию?
Автоматически
● Роботы не ошибаются● Автоматизировать нужно всё
Как контролировать качество кода?
Контроль качества кода
● Это не сложно● Проверка стиля кодирования● Проверка наличия и количества
комментариев
Code review
● Не дает программировать заведомо плохо
● Помогает делить опыт на команду● Меньше ошибок
Как объединить все эти разрозненные части в единый
инструмент?
CI
● CI — это практика частых автоматических сборок проекта.
● Сейчас это методология фиксации и автоматизации рабочего процесса.
CI базируется на событиях
● Изменения в ветке dev● Изменения в ветке test● Изменения в ветке prod
● Закрытие задачи\бага в bug-tracker'е
Когда отдавать версию на тестирование?
● По расписанию● По условию
Когда выпускать новый релиз?
● Механизм milestone