Skip to main content

📜 NOM-112. Refactoring Catastrophe Protocol (RCP)

Стандарт благих намерений во имя процесса рефакторинга


📑 Паспорт стандарта

ПараметрЗначение
КодNOM-112
НазваниеRefactoring Catastrophe Protocol (RCP)
СтатусДействующий
Дата выпуска2025-11-09
Версияv1.0
Краткое описаниеСтандарт оценки, предупреждения и документирования рефакторинга: от невинного «чуть-чуть поправлю» до системного коллапса.

Термины и определения

ТерминОпределение
РефакторингПроцесс устранения боли, эстетических страданий и случайных импортов. Начинается как страсть. Заканчивается откатом.
КатастрофаНеобратимое состояние системы, вызванное благими намерениями.
Объём трагедии (T)Количественная мера последствий: баги, хотфиксы, сопли QA.
Интенсивность намерений (I)Насколько сильно разработчик верил, что делает мир лучше.
Глубина вмешательства (D)Насколько глубоко вошли руки.

Модель RCP

Рефакторинг оценивается по трём критериям:

КритерийОписание
I — IntentionСтепень «я хотел как лучше». Чем выше I, тем хуже всё кончится.
D — DepthГлубина трогания кода: от переименования переменной до «я улучшил архитектуру».
T — TragedyФактический объём разрушений: баги, падения, отвалы, выгорание.

Каждый критерий оценивается от 0 до 1.


Формула Catastrophe Score

RCP_Score = (I × D) + T

Интерпретация:

  • если I высокое — всё будет плохо
  • если D глубокое — всё будет плохо
  • если T уже случилась — всё уже плохо

Уровни катастрофы

RCP_ScoreУровеньВердикт
0.0–0.3«Рефакторинг косметический»жить можно, прод почти не заметил
0.3–0.6«Рефакторинг с последствиями»разработчик устал, QA скулит, продукт под угрозой
0.6–0.8«Рефакторинг трагический»сорваны сроки, баги плодятся, менеджеры вьются кругами
0.8–1.0«Архитектурный Армагеддон»откат, поезд из хотфиксов, годовая травма команды

Процедура проведения RCP

  1. Инициация Фраза-триггер:

«Там чуть-чуть кривовато, сейчас поправлю».

  1. Оценка намерений (I) Чем более вдохновлён разработчик - тем выше риск.

  2. Определение глубины (D)

  • 0.1 — «переименовал переменную»
  • 0.5 — «разделил слой на три»
  • 1.0 — «полностью переписал сервис»
  1. Сбор трагедии (T) Считаются:
  • новые баги
  • сломанные тесты
  • увеличившийся time-to-delivery
  • эмоциональный ущерб команды
  1. Расчёт RCP_Score

  2. Принятие решения:

  • продолжить
  • остановить
  • выжечь всё огнём и откатить

Симптомы надвигающейся катастрофы

  • «Кажется, так будет лучше».
  • «Почему оно вообще работало до меня?»
  • «Я вдруг понял, что тут надо всё переписать».
  • «Ребят, не тестите пока, я скоро закончу».
  • «Я хотел как лучше».
  • «Делаем ревью по частям, там много».
  • «Прошу не смотреть diff».
  • «GitHub что-то не показывает количество изменённых файлов».

Если услышали хотя бы два симптома — катастрофа уже идёт.


Уровни зрелости RCP

УровеньНазваниеХарактеристика
RCP-L1«Наивный герой»Рефакторинг делается на эмоциях.
RCP-L2«Осознанный суицид»Разработчик понимает риски, но всё равно идёт.
RCP-L3«QA монах»Тесты ломаются, но никто не шевелится.
RCP-L4«Архитектор-спасатель»Команда начинает писать документацию до рефакторинга.
RCP-L5«Просветленный DevSecOps»Рефакторинг планируется, мониторится, проживается без трагедий.

Взаимосвязь со стандартами

🔗 Связь с NOM-101 (STM)

STM отвечает на вопрос «Съедобно ли?». RCP«А не убьём ли мы никого, если попытаемся сделать лучше?».

🔗 Связь с NOM-203 (SRAP)

SRAP оценивает токсичность продукта. RCP — токсичность процесса.

🔗 Связь с NOM-301 (ISEF)

ISEF анализирует продукт. RCP — разработчика.


9. Заключение

Рефакторинг — это путь героя. Но иногда — путь героя к катастрофе.