← Назад к обзору

Непрерывное устаревание

Здесь всё просто: нужно смотреть, что сейчас новое и правильное из технологий, и внедрять то, что было новым хотя бы пару лет назад. Ну или не внедрять, но осознанно — понимая, что дальше произойдёт с вашим кодом.

Частный случай устаревания — когда какой-то компонент перестаёт поддерживаться, и поддержку фактически оказывает команда разработки. Это даже веселее, чем просто работа на старой технологии.

Заканчивается это либо тем, что система умирает от старости и больше становится не нужна, либо рефакторингом, больше похожим на переписывание с нуля.

Симптомы

  • В проекте технологии, которые уже сняты с поддержки или вот-вот будут.
  • Вендор не отвечает, а «чинить» приходится своими силами.
  • Новые сотрудники не могут работать: документации нет, комьюнити нет.
  • Каждая плановая модернизация превращается в переписывание.

Пример

«Плохой» вариант: сервис на компоненте, который давно в EOL, с «заплатками» от команды:

# используется компонент xmllib (удалён из Python 3)
# команда поддерживает внутренний форк своими силами
from vendor_xmllib import parse   # внутренний форк

«Хороший» вариант: осознанный выбор поддерживаемого инструмента:

from xml.etree import ElementTree as ET   # встроенный, поддерживаемый

Как исправить

  • Завести реестр используемых технологий с датами окончания поддержки.
  • При выборе новой технологии смотреть не на «новизну», а на поддержку и перспективу.
  • Планировать миграции заранее, а не в момент, когда поддержка закончилась.
  • Если миграция неизбежна и выглядит как переписывание — сделать это осознанно, с характризационными тестами.