Profile

coolwolf0: (Default)
coolwolf0

May 2026

S M T W T F S
      12
3456789
101112 13 1415 16
17 1819 20 212223
24252627282930
31      

Custom Text

После очередного совета железного дровосека в лице Джемини, у меня в коде завелись баги. Случайно глянул в консоль, а там - кровавые потёки ошибок: переменная использована без объявления! Вот что бывает, когда копипастят всякую ии-шную фигню без минимального ревью.

Короче, решил я наконец-то озаботиться линтером. Чтобы и неиспользованные объекты в namespace не болтались, и опечатки в именах исключить (а этим мы, людишки, грешим), ну и от более серьёзных факапов тоже защититься. Сказано - сделано. Поставил себе через npm линтер:

npm init -y
npm init @eslint/config@latest


Он меня немного поспрашивал, мол на каком языке будем чиститься, используются ли библиотеки, всякие тайпскрипты и прочие детали. Я тут же сходу начал забрасывать невод и получать неслабый такой "улов". Первым делом выяснилось, что приличные люди уже давно так JS не инклюдят. Пришлось накатать на Пайтоне обработчик HTML, который извлекает по порядку все ссылки на скрипты и делает из них одну большую простыню для линтера. Ошибок стало немного меньше, но остались вызовы функций, которые существуют только как коллбеки в самом HTML. Деваться некуда, добавил их в парсер, с магическим присвоением в window - так линтер считает функцию использованной. И вот после этого стали очевидными настоящие ошибки: опечаточки в имени переменной (не сработало ни разу в какой-то ветке логики, но лучше исправить), потерянные переменные без использования, неудачно расположенные функции, даже непонятно как проскочивший BOM-код в начале файла!

Ну и раз уж я дошёл до полного устранения всех очевидных багов в коде, то тут же вписал эту проверку в git hooks. Теперь перед коммитом линтер обнюхивает код на предмет очевидных ляпов и не позволит (в случае чего) послать такое в репозиторий. Уга, товагищи! Да здгавствует автоматизация! Между прочим, оказалось, что git - тот ещё "жук". Он не надеется на милости от Винды, поэтому автоматом ставит в систему свой баш-интерпретатор. Естественно, не потому что он агрессивный фанат Линукса, просто так можно поддерживать однородный код hooks на всех платформах. Ну действительно, раз я могу запустить в Винде git difftool, то чем hooks хуже?

Expand Cut Tags

No cut tags

Style Credit