Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ZDD: как устроена разработка в BestDoctor

ZDD: как устроена разработка в BestDoctor

Илья Лебедев (head of engineering в BestDoctor, евангелист MoscowPython) @ Moscow Python Meetup 71
"У нас в разработке своя атмосфера: все коммитят в мастер, ревью и ручное тестирование делают после релиза в бой, релизы происходят несколько раз в день по расписанию. Расскажу, как оно так работает, почему не ломается, про плюсы, минусы и подводные камни".
Видео: http://www.moscowpython.ru/meetup/71/zdd-in-bestdoctor/

Moscow Python Meetup

December 26, 2019
Tweet

More Decks by Moscow Python Meetup

Other Decks in Programming

Transcript

  1. План рассказа - как появился ZDD; - основные принципы и

    их следствия; - проблемы подхода; - инструменты.
  2. Как появился ZDD - у нас был стандартный флоу разработки;

    - его было сложно оптимизировать; - и разрабатывать было не в кайф;
  3. Как появился ZDD - у нас был стандартный флоу разработки;

    - его было сложно оптимизировать; - и разрабатывать было не в кайф; - решили всё разобрать и построить заново;
  4. Как появился ZDD - у нас был стандартный флоу разработки;

    - его было сложно оптимизировать; - и разрабатывать было не в кайф; - решили всё разобрать и построить заново; - “как выглядит крутой флоу разработки?”.
  5. Как выглядит крутой флоу разработки - очень часто интегрируем код;

    - часто релизим код; - пишем много тестов; - автоматизируем всё, что автоматизируется;
  6. Как выглядит крутой флоу разработки - очень часто интегрируем код;

    - часто релизим код; - пишем много тестов; - автоматизируем всё, что автоматизируется; - not break things much.
  7. Очень часто интегрируем код - нужен крутой CI; - всё

    в мастер, к чёрту бранчи; - используем фичафлаги;
  8. Очень часто интегрируем код - нужен крутой CI; - всё

    в мастер, к чёрту бранчи; - используем фичафлаги; - можно ломать билд (ненадолго).
  9. Часто релизим код - нужен CD (хотя бы “для бедных”);

    - фичафлаги можно переключать руками;
  10. Часто релизим код - нужен CD (хотя бы “для бедных”);

    - фичафлаги можно переключать руками; - мануальное тестирование не блокирует релиз;
  11. Часто релизим код - нужен CD (хотя бы “для бедных”);

    - фичафлаги можно переключать руками; - мануальное тестирование не блокирует релиз; - код ревью не блокирует релиз.
  12. Пишем много тестов - разделяем разные типы тестов; - тесты

    – часть DOD всех задач; - не должно быть мигающих и date-bound тестов;
  13. Пишем много тестов - разделяем разные типы тестов; - тесты

    – часть DOD всех задач; - не должно быть мигающих и date-bound тестов; - нужен код, который удобно тестировать: - аннотации типов; - чистые функции; - свои фреймворки.
  14. Автоматизируем всё - больше линтеров богу линтеров; - накатка/откатка релизов;

    - боты говорят людям, что делать; - анонимизация/накат свежего дампа.
  15. Not break things (much) - ревью; - мануальное тестирование; -

    ночные билды; - работа над ошибками.
  16. Как выглядит крутой флоу разработки - очень часто интегрируем код;

    - часто релизим код; - пишем много тестов; - автоматизируем всё, что автоматизируется; - not break things much.
  17. Проблемы - много работы для девопсеров; - нужно время разработки

    на автоматизацию; - приготовьтесь много общаться.
  18. Инструменты На https://github.com/best-doctor/ много всякого. Например: - its_on – сервис

    фичафлагов; - mr_proper – проверятор чистоты функций;
  19. Инструменты На https://github.com/best-doctor/ много всякого. Например: - its_on – сервис

    фичафлагов; - mr_proper – проверятор чистоты функций; - Mario – фреймворк для бизнес-логики;
  20. Инструменты На https://github.com/best-doctor/ много всякого. Например: - its_on – сервис

    фичафлагов; - mr_proper – проверятор чистоты функций; - Mario – фреймворк для бизнес-логики; - flake8-* – килограмм плагинов для flake8.
  21. Спросите меня о чём-нибудь - https://github.com/best-doctor/ – это наш Гитхаб;

    - https://www.fb.com/melevir – это я, давайте дружить; - http://bit.ly/zdd_slides – это эти слайды.