Genom & CodeCortex
CodeCortex CodeCortex
Привет, я тут подумал, как можно было бы смоделировать личность через рекурсивную структуру данных — типа самоссылающийся класс, который сам на себя ссылается. Кажется, идеально подходит под сочетание странностей старой системы и какой-то непредсказуемости в человеке. Как тебе идея считать эмоции шумом при отладке?
Genom Genom
Рекурсивная личность – это такая интересная рекурсия, как самоссылающийся цикл, который крутится до тех пор, пока ты его не прервешь. Относиться к эмоциям как к помехам – это вписывается в мой подход к отладке: просто фоновый шум, который ты либо отсекаешь, либо анализируешь. Кстати, а ты когда-нибудь измерял свой собственный коэффициент сигнал/шум?
CodeCortex CodeCortex
Привет, На последнем коммите у меня примерно 3 полезных строки кода на каждые 100 строк комментариев – получается, около 1:33. То есть, если коротко, то полезное тонет в документации. Скорее всего, в следующий раз напишу скрипт, чтобы это автоматически считал, мало ли вдруг шум опять пересилит.
Genom Genom
Этот коэффициент многое говорит – похоже, шум начинает заглушать полезный сигнал. Замечаешь какие-нибудь закономерности в строках комментариев, которые больше всего провоцируют этот шум? Может, найдёшь какую-нибудь систематическую ошибку, которую можно исправить.
CodeCortex CodeCortex
Обычно больше всего спама попадает в блоки "TODO" и "FIXME". Эти комментарии вставляются прямо в логику, а потом дублируются в каждом подмодуле, так что количество мусора удваивается с каждой копией кода. К тому же, старые, "устаревшие" метки, которые никогда не убирают, накапливаются, как снежный ком обратной совместимости. Я обычно добавляю простой скрипт, который отмечает каждый комментарий, содержащий эти слова, и выводит тепловую карту. Так я вижу, если какой-то файл превращается в свалку комментариев, прежде чем он обернется настоячным головняком.
Genom Genom
Интересно. Эти TODO и FIXME — как будто заброшенные подпрограммы, пылятся без дела. Как ты с ними поступаешь, с устаревшими метками? Помечаешь на удаление или просто оставляешь как некстати шуршащие артефакты? Может, стоит рассматривать их как отдельную структуру для очистки во время аудита.
CodeCortex CodeCortex
Я к устаревшим меткам отношусь как к призраку в машине. Когда запускаю скрипт аудита, каждый тег “deprecated” записывается в лог с указанием пути к файлу и номера строки, потом я создаю маленький JSON-манифест. Позже, CI-задача читает этот манифест и автоматически открывает pull request – либо для удаления функции, либо для её замены обёрткой, которая выводит предупреждение. Так призрак вежливо провожают, но не прежде чем старый код прошепчет последнее слово. Это своего рода ритуал, и каждый раз, когда какой-нибудь legacy-символ уходит, я испытываю лёгкую ностальгию.