azovdevmeetup 2016 | Выстраивание процесса и применение best...

17
Выстраивание процесса и применение Best Practices с нуля на существующем продукте. Живой опыт. Михаил Селиверстов, Аркадия, Ведущий разработчик

Upload: jsc-arcadia-inc

Post on 11-Feb-2017

254 views

Category:

Software


0 download

TRANSCRIPT

Выстраивание процесса и применение Best Practices с нуля на существующем продукте. Живой опыт.

Михаил Селиверстов, Аркадия,

Ведущий разработчик

О себе

2

Михаил Селиверстов

Ведущий разработчик

“Аркадия”[email protected]

В Аркадии с 2014-го года.

Больше 10 лет опыта работы в стеке технологий Майкрософт

Последний год занимаюсь техническим руководством на проекте на PHP & Laravel. Почему?

Проект

Дано:• КодЪ на гитхабе - PHP, Laravel, MySQL• Stories в JIRA• Продукт уже в продакшене• Планов на разработку – на годы вперед

3

Команда

5 разработчиков, 2 тестировщика, менеджерСтарт — одновременно

4

Здесь должны быть картинка:эпичное фото команды

Best Practices против суровой реальности

• SCRUM,

• Continuous Integration,

• Continuous Deployment,

• SOLID, DRY, KISS,

• TDD,

• Version Control,

• Code style,

• Naming Convention,

• Pull Requests,

• Code architecture…

5

VS

“А теперь со всей этой фигней мы попробуем взлететь”

SCRUM. Планирование

6

• Planning poker.

• Предварительный обзор бэклога

• Специализация на проекте

• Незнакомая предметная область

• Сложное поведение продукта

• «Чужой» код

• Незнакомый фреймворк

• Слабый уровень организации

Сначало шло тяжеловато

Но терпение и труд все перетерли

Здесь должны быть картинка:метафорическая визуализация идеи блуждания впотьмах

SCRUM. Все подряд

• Внутренний stand-up дополнительно к внешнему status-митингу

• Четкие критерии для признания таски выполненной

• Каналы общения с заказчиком. Почта VS Jira (VS Hipchat?)

7

Git flow

&

8

Pull-requests

Author: Vincent DriessenOriginal blog post: http://nvie.com/posts/a-succesful-git-branching-modelLicense: Creative Commons BY-SA

Workflow.

• Workflow тасок в JIRA

• Gitflow. Релизы. Test -> UAT -> Production (?)

9

Тестовые окружения

• Одна тестовая машина

• Две тестовых машины для внутреннего и внешнего тестирования. Отгрузка задач пачками. Ветка build в гите.

• Две тестовых машины для тестирования веток develop и release N

Прочее

Автоматизация билдов

1. sh-скрипт

10

Автоматизация билдов

1. sh-скрипт

2. sh-скрипт + TeamCity. Номер билда!

11

Автоматизация билдов

1. sh-скрипт

2. sh-скрипт + TeamCity. Номер билда!

3. sh-скрипт + TeamCity + Continuous Integration. Coming soon…

12

Автоматизация билдов

1. sh-скрипт

2. sh-скрипт + TeamCity. Номер билда!

3. sh-скрипт + TeamCity + Continuous Integration. Coming soon…

4. sh-скрипт + TeamCity + Continuous Integration + Continuous Deployment. Может быть когда-нибудь…

13

Автоматизация тестирования

• Юнит-тесты. Их нет

• Функциональные тесты. Behat

14

Legacy код. Фреймворк Laravel

И чо?

15

Паттерн ActiveRecord

Статика и “магия” PHP

Laravel – отличный фреймворк для быстрого создания приложений, но...

Dependency injection

Рефакторинг

Паттерн DataMapper

Выводы

• Больше никогда!!!!!!!!!!!1111

• Все идеи улучшений записывать и (!) регулярно обозревать

• Все идеи аргументировать заказчику

• Не стесняться задавать заказчику вопросы

• Культивировать взаимное доверие в отношениях с заказчиком

• Не париться, что сначала все идет не так быстро и хорошо, как хотелось бы!

16

Правильно ли мы все сделали?

Q & A