> Страшная история на ночь

Сегодня расскажу вам страшную историю на ночь — историю о тёмном легаси, в котором даже самые простые вещи умеют удивлять.

Сказ о `is_top`

В некотором царстве, в некотором государстве жило-было тёмное легаси. И было у этого легаси много тёмных-претёмных уголков, до которых не доходил свет рефакторинга. И пошёл добрый молодец в это тёмное легаси, чтобы принести свет и превратить его в светлую радость.

Много всякого было сделано добрым молодцем. И в том числе сортировка в каталоге товаров, которая принесла радость, добавив ускорения проекту.

Но оказалось, что сортировка работает не так, как ожидалось. Тёмное легаси просто так не сдаётся.

Методом светлых мечей-отладчиков и магических логов было найдено страшное заклинание. Сортировка называлась is_top и имела тип bool. Но на самом деле это был int! А в тёмном-тёмном чулане, в дальней-дальней базе данных, оно хранилось как top и имело тип string!

И тогда добрый молодец понял: это не просто баг - это архитектурное проклятие. Правильно это чудо-юдо называть popularity_score, он взял свою светлую клавиатуру Vortex Race III и:

- Переименовал поле в понятное имя - Поправил типизацию на правильную - Написал новые тесты - И даже на бересте закорябал документацию для будущих поколений

И как только истинное имя было произнесено — чары рассеялись! Сортировка заработала как ожидалось и наступила в том проекте благодать, ибо всё теперь называется своими именами и работает согласовано.

Мораль сей истории

Называйте свои классы, методы, параметры и другие вещи своими именами.

- is_active — это bool (активен или нет) - status — это string или enum (какой статус) - count — это int (сколько штук) - popularity_score — это int (насколько популярен)

Когда код говорит правду о себе — его не нужно разгадывать как ребус. Когда имя соответствует сути — система становится предсказуемой.

Тёмное легаси питается неопределённостью и любит такие загадки. И оно ждёт, пока добрый молодец снова ошибётся. Свет рефакторинга начинается с честных имён.

Как победить — говорить правду в коде.

#AmbrionDev #легаси #рефакторинг #типизация #именование #сказкананочь

«А какие «страшные истории» из легаси встречали вы? Делитесь в комментариях — давайте посмеёмся (и поплачем) вместе! 👇»

Страшная история на ночь | Сетка — социальная сеть от hh.ru