Yandex Metrika
sanches.free 1 просмотр

Рефакторинг через «TODO‑маркеры»: исключения вместо полной переписки кода

Зачем так делают в проектах на Битрикс

Когда нужно заменить сложный участок — сохранение сущности в инфоблоке, нестандартный обмен, кастомную обёртку над ядром — правки часто размазаны по десятку файлов. Сразу вычитать всё «в уме» трудно: проще увидеть, по какому пути реально идёт выполнение. Если на тестовом окружении сообщения исключений попадают в лог или на экран (без маскировки под пустую страницу), можно временно использовать исключения как маркеры: вставить throw перед использованием спорного куска и по сообщению понять, какая ветка сработала.

Как это выглядит на практике

  1. Находите опорные точки старого механизма — публичные свойства сервиса, методы сохранения заказа, обработчики событий каталога.
  2. Перед вызовом такого фрагмента вставляете явное прерывание с понятным текстом, например имя метода или короткий TODO, чтобы по стеку сразу читалось место.
throw new \Exception('TODO: recalcBasketDiscounts', 1);

При прохождении сценария срабатывает первое же «недоделанное» место — вы фиксируете фактический порядок вызовов и приоритет доработок, а не только статическую картину из IDE.

Плюсы подхода

  • Не нужно переписывать всё до первого деплоя: можно картографировать код по мере навигации по задачам.
  • Разработка идёт в связке с отладкой: «сломалось сохранение» → смотрите последнее исключение и адрес в стеке.

Оговорки для продакшена и Битрикс

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

Кратко

  • Исключения с пометками TODO помогают увидеть реальные пути выполнения в большом наследии.
  • Используйте осознанно и снимайте маркеры до вывода в прод.
  • Соединяйте с нормальной обработкой ошибок и логами, а не с «немым» падением страницы.

Не хотите копаться сами?

Починю за 1-3 дня. Без предоплаты — оплата по результату.

15+ лет опыта с 1С-Битрикс · Без предоплаты · 7 дней гарантии