Python Web & Scripts — Django, FastAPI, скрипты

<b>7 привычек Python-кода, которые экономят часы на поддержке проекта</b>

<b>7 привычек Python-кода, которые экономят часы на поддержке проекта</b>

Если Python-проект начал «стареть», чаще всего проблема не в архитектурной магии, а в мелочах: непонятных именах, скрытых сайд-эффектах и разъехавшихся слоях. За неделю в репах обычно всплывают одни и те же вещи.

— Имена функций и переменных должны объяснять намерение, а не хранить исторический след. `process_data` хуже, чем `build_invoice_rows`.
— Не смешивайте I/O, бизнес-логику и форматирование ответа в одном модуле. Когда всё в одном файле, тесты превращаются в боль.
— Любой код с сетью, БД или файловой системой держите на границе системы, а не внутри вычислений.
— Если функция длиннее экрана, сначала ищите лишнюю ответственность, а не «нехватку комментариев». Комментарий не спасает от хаоса.

Есть наблюдение которое стоит проверить: чем меньше скрытого состояния, тем дешевле отладка. Передавать данные явно почти всегда лучше, чем тащить их через глобалы, singleton’ы и неочевидные импорты. Это особенно заметно в скриптах, которые внезапно стали «мини-сервисами».

Ещё один маркер зрелого кода — предсказуемые ошибки. Вместо голого `except:` ловите конкретные исключения и возвращайте понятный контекст: какой файл, какой пользовательский ввод, какой шаг упал. Тогда лог перестаёт быть детективом.

Если хочется быстрый аудит, начните с трёх вопросов: можно ли это протестировать без БД, можно ли это прочитать за минуту, и можно ли назвать это точнее. Обычно после этого половина «техдолга» становится видна без линтера.
Этот пост опубликован в Telegram-канале Python Web & Scripts — Django, FastAPI, скрипты. Подписаться можно по ссылке: @python_web_scripts.
tech

Свежие посты в категории «Tech Infrastructure»

Все каналы категории →

start

Готовы запустить рекламу через сеть public.tg?

Новый оффер, продукт, GEO, кейс, событие или партнёрский запуск — соберём маршрут под задачу и отдадим медиаплан.

Telegram для медиаплана: @dumay. Быстрый тест: $20 за канал, $1000 за пакет по сети.