Перейти до вмісту

Увімкнула всі правила лінтера Python як помилки й довела 1 815 зауважень до нуля; кожен із небагатьох винятків має письмове обґрунтування, а два з них підкріплені перевіркою, а не коментарем.

1,815 зауважень лінтера доведено до нуля

Ситуація. Більшість проєктів обирає зручну підмножину правил свого лінтера, і до неї потрапляють ті правила, які мовчали того дня, коли його налаштовували. Тоді налаштування фіксує наявні звички коду, а не стандарт, якого код мусить дотримуватися, і кожне невключене правило — це клас дефектів, про які ніхто ніколи не дізнається.

Завдання. Підхід за замовчуванням треба було перевернути — увімкнути як помилку кожне правило, яке реалізує інструмент, — а отриманий беклог опрацювати до нуля, а не зменшувати, торгуючись і знову вимикаючи правила.

Дія. Увімкнення повного набору правил дало 1 815 зауважень під час першого прогону. Їх опрацьовували за категоріями, а не за файлами, бо категорії дещо підказують: невикористані аргументи й затінені вбудовані імена — це шум, а кожна з категорій безпеки, змінюваних значень за замовчуванням і обробки винятків вказувала на реальну поведінку коду. Справжні несумісності трапляються — форматувальник і лінтер можуть по‑різному оцінювати той самий рядок, а кілька правил суперечать свідомим рішенням самого проєкту, — і для кожного з нечисленних винятків прямо в тому місці, де його зроблено, письмово пояснено, чого вимагало правило і чому цей код робить інакше. Два з них ідуть далі й підкріплені перевіркою, а не коментарем, тож виняток не може непомітно розширитися: правило вимкнено, а тест перевіряє саме ту властивість, дотримання якої забезпечувало б правило. Поряд у суворому режимі працює перевірка типів — окремий і жорсткіший стандарт, — і саме вона виявила дефекти, яких лінтер не бачив, бо вони стосуються того, чим є значення, а не того, як його записано.

Результат. Лінтер працює з усіма правилами й не дає жодного зауваження, а кожне відхилення задокументовано в тому рядку, де його зроблено. Ціна реальна, і її варто назвати: найсуворіше налаштування дає зауваження, на які справді не варто зважати, і комусь доводиться ухвалювати таке рішення 1 815 разів, а не один раз.

Одна частина довшого переліку — і він увесь на цьому сайті.

Кожен запис написано однаково: ситуація, завдання, що ми зробили і що змінилося.

Переглянути весь перелік