python-basics

Тренажёр код-ревью 🔍🐍

Набор задач для прокачки навыка код-ревью Python-кода.

Идея: тебе дают реальный по духу кусок кода — веб-ручку, CLI-клиент, парсер, скриптик, автоматизацию — а ты играешь роль ревьюера. Твоя задача: найти в нём как можно больше проблем, объяснить почему это проблема и как починить. Потом сверяешься с эталонным разбором.

Тренируем только Python и его экосистему (stdlib, requests/httpx, asyncio, pytest, sqlalchemy и подобное). Никаких фронтов, инфры и алгоритмических головоломок — это про инженерное чтение чужого кода.

Как устроено

Набор задач NN_*.py — реальные по духу куски кода на ревью: мутабельные дефолты, утечки ресурсов, голые except, SQL-инъекции, краевые случаи, проблемы читаемости и корректности.

Баги в задачах — микс, как в жизни: в одном файле могут соседствовать баг корректности, дыра в безопасности, лишняя аллокация и стилевой запах. Не жди, что проблема ровно одна и ровно того типа, что ты ожидаешь.

Как заниматься

  1. Открываешь очередную задачу NN_*.py. Читаешь код так, будто это MR тебе на ревью. В сам файл не пишешь — веди заметки отдельно (блокнот, комменты в копии).
  2. Выписываешь все найденные проблемы: что не так → почему это плохо → как исправить.
  3. Только потом открываешь разбор в solutions/ с тем же номером и сверяешься. Считаем не «нашёл/не нашёл», а сколько реальных проблем поймал и не наловил ли ложных.
  4. Что упустил — записываешь себе в слабые места и приносишь ментору в личку.

Файлы задач намеренно «грязные» и часто нерабочие — так и задумано. Не запускай их вслепую: некоторые содержат опасные или зависающие места (в этом и суть — заметить их на ревью).

Формат задачи