Python 3.12+
Полная типизация обязательна.
Избегать использования Any.
Желательно не более 40 строк.
Максимум около 80 строк.
Если функция становится длиннее — разделить её.
Желательно до 300 строк.
Максимум около 500 строк.
Использовать понятные имена.
Хорошо:
load_image()
split_grid()
rotate_image()
add_border()
Плохо:
proc()
run2()
tmp()
Не использовать глобальные переменные.
Не использовать Singleton.
Все значения должны быть вынесены в именованные константы либо параметры функций.
Использовать исключения.
CLI должен завершаться ненулевым кодом возврата.
Сообщения должны быть понятны пользователю.
Использовать logging.
Не использовать print() для отладки.
Следовать PEP8.
Использовать Ruff.
Не оставлять: