> Доброго солнечного вторника всем!
Регулярно работаю с легаси-проектами — переношу на новую архитектуру, ускоряю и делаю другую магию. И, почти в каждом из них, вижу повторяющиеся ошибки и проблемы. Многие решаются простым и мощным недооценённым правилом «бойскаута» — оставляй код чище, чем он был. Звучит банально, а именно оно спасает проекты от хаоса.
Остановимся на двух классических проблемах, которые уже попались мне в текущем проекте: плохие названия и мёртвый импорт.
1. Опасность плохих названий
В легаси-коде часто встречаются переменные и функции, которые называются одним, а делают другое. Это как табличка «Выход» на двери, за которой тупик. Разработчик видит знакомое название, доверяет ему и заходит в ловушку.
Вот и сейчас поймал такое: `function getProducts($active)` по логике должен возвращать только активные товары. А внутри `return $this->productRepository->findAll();` (Эй, я же просил ТОЛЬКО активные товары!) — просто всё подряд.
Разработчик подключает этот метод в новом модуле, надеется на фильтрацию и в проде получает, в том числе, архивные товары.
Что делает правильный бойскаут: - Переименовывает функцию: `getAllProducts()` вместо `getProducts($active)` - Или убирает параметр `$active`, если он не используется - Или переписывает логику, чтобы параметр заработал как заявлено
2. Мёртвые импорты — зона комфорта для ошибок
Кажется, что неиспользуемый `use` в начале файла — это мелочь. А это мусор, который мешает дыханию.
Пример: в файле болтаются `use PaymentProcessor` и `use LegacyCache`, хотя реально используется только `OrderCalculator`. Разработчик видит `PaymentProcessor` и думает: «Ага, тут есть платёжный процессор», начинает его искать, тратит время, путается. В больших файлах это превращается в информационный шум.
> Правильный бойскаут просто убирает лишние импорты.
Почему это важно: - Упрощается чтение кода — меньше шума, быстрее понимаешь суть - Снижаются риски — когда имя честное, сложнее ошибиться - Формируется культура — каждый разработчик знает: названия должны быть честными - Падает порог входа — новичок быстрее вливается в проект
Попробуйте сами, ведь это не страшно!
Переименовать плохую переменную или убрать мёртвый импорт — это 5 минут работы, которые сэкономят 5 часов в будущем. Так что если видите в коде что-то подозрительное — не проходите мимо. Исправьте и двигайтесь дальше. Небольшой шаг, но для всего проекта он может быть огромным.
#мотивациядлятебя #позитивдлятебя #рефакторинг #чистыйкод #легаси #правилобойскаута
«А какие «запахи» в названиях переменных или функций раздражают вас больше всего? 👇»