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

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

Avatar for SECR 2018 SECR 2018
October 12, 2018

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

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

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

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

Avatar for SECR 2018

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. Адекватный менеджмент, осознающий проблему Наличие пары экспертов, желающих что-то изменить

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