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

вересень 2026

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

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

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

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

---

- Роль: Python‑інженер
- Категорії: [DevOps](https://advisory.engineer.company/uk/categories/devops/), [Автоматизація та CI/CD](https://advisory.engineer.company/uk/categories/automation/), [Тестування та QA](https://advisory.engineer.company/uk/categories/testing/), [Python](https://advisory.engineer.company/uk/categories/python/), [Документація](https://advisory.engineer.company/uk/categories/documentation/)
- Послуги: [Backend- та API‑розробка](https://advisory.engineer.company/uk/services/backend-development/), [DevOps та автоматизація CI/CD](https://advisory.engineer.company/uk/services/devops-cicd/), [Технічне лідерство та консалтинг](https://advisory.engineer.company/uk/services/technical-leadership/)

<https://advisory.engineer.company/uk/portfolio/enabled-every-python-linter-rule-as-an-error-147/>
