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

Как не потонуть в пучине легаси

SECR 2018
October 12, 2018

Как не потонуть в пучине легаси

SECR 2018
Михаил Матросов
Ведущий инженер по разработке, Align Technology

Создать отличное ПО с нуля и превратить груду беспорядочного легаси кода в конфетку – совершенно разные задачи. Многие из нас понимают, как делать понятные и надёжные интерфейсы, пользоваться самыми эффективными и продвинутыми инструментами. Но когда стоишь перед огромным продуктом, который развивался много лет и превратился в кучу спагетти, когда устоявшиеся процессы неэффективны, а в спринте ждут срочные задачи…

Я расскажу собственный опыт участия в развитии команды, основная задача которой в глобальном улучшении качества кода подобного продукта. Я был в роли разработчика, который участвовал в решении множества организационных задач. Поэтому, доклад будет интересен не только менеджерам, но и продвинутым разработчикам, которые видят системные проблемы (и хотят их решать).

SECR 2018

October 12, 2018
Tweet

More Decks by SECR 2018

Other Decks in Programming

Transcript

  1. • 20 лет разработки • 2М строк кода • Windows

    desktop • C++ • 100 разработчиков • Быстрый рост
  2. • Большой объём кода • Работает и приносит деньги (много)

    • Множество авторов • Множество стилей и подходов • Проблемы с документацией • Устаревшие инструменты • Скрытые связи
  3. • Большой объём кода • Работает и приносит деньги (много)

    • Множество авторов • Множество стилей и подходов • Проблемы с документацией • Устаревшие инструменты • Скрытые связи Сложность разработки
  4. Устаревший и дублицированный код Переиспользование существующего кода Производительность приложения Создание

    серверного бэкенда Увеличение продуктивности пользователя Увеличение скорости разработки Уменьшение стоимости разработки Миграция в облако и продажа подписки Разнородные конфигурационные файлы Классы смешивают уровни модели и визуализации Разные сторонние библиотеки для решения одной задачи Алгоритмы оперируют конкретными типами, а не интерфейсами Задачи бэклога Группы проблем Видимые эффекты Бизнес цели
  5. • Множество стилей и подходов  Внедрение автоматического форматирования кода

    (clang-format)  Унификация конфигурационных файлов  Развитие стандарта кодирования • Проблемы с документацией  Создание документации по процессам разработки  Покрытие юнит-тестами базовых компонентов • Скрытые связи  Явное выделение слоёв (layers) приложения  Разбитие монолитного приложения на изолированные компоненты • Устаревшие инструменты  Переход с 32-битной на 64-битную архитектуру  Переход на новую версию компилятора (VS2013 -> VS2017)
  6. Адекватный менеджмент, осознающий проблему Наличие пары экспертов, желающих что-то изменить

    Поддержка и доверие разработчиков Удачный найм увлечённых специалистов