Стандарты кода для Python и Go в проекте AIOps.
Python
Стиль и форматирование
- Ruff — линтер и форматтер (замена black + isort + части flake8).
- Настройка:
pyproject.toml, линия длины по умолчанию 100. - Перед коммитом:
ruff check .,ruff format ..
Типизация
- mypy в strict mode для production-кода.
- Все публичные функции и методы с аннотациями типов.
- Использование
list,dict,tupleи т.д. из встроенных; изtyping— при необходимости (Any,Callable,Coroutine,Literal,TypedDictи т.п.).
Именование
- Модули, пакеты:
snake_case. - Классы:
PascalCase. - Функции, переменные:
snake_case. - Константы:
UPPER_SNAKE_CASE. - Приватные сущности: префикс
_.
Структура кода
- Импорты: стандартная библиотека → сторонние → локальные; группы разделены пустой строкой.
- В модуле: константы, затем классы/функции; порядок логичный для чтения.
- Docstrings — в публичном API (модуль, класс, метод); формат по соглашению проекта (например, Google-style).
Зависимости
- Управление через
uv; зависимости вpyproject.toml. - Версии фиксированы (без верхней границы только при явной необходимости).
- Не добавлять неиспользуемые зависимости.
Тесты
- pytest; асинхронные тесты — pytest-asyncio.
- Имена:
test_<что_проверяем>. - Без хардкода чувствительных данных; фикстуры и фабрики для тестовых данных.
Go
Стиль
- gofmt / goimports — обязательно.
- Следование Effective Go и типовым Go-конвенциям.
Именование
- Пакеты: короткие, в нижнем регистре.
- Экспортируемые типы/функции:
PascalCase. - Неэкспортируемые:
camelCase.
Ошибки
- Обработка всех возвращаемых ошибок; не игнорировать.
- Оборачивание при необходимости:
fmt.Errorf("context: %w", err).
Общее
- Не оставлять закомментированный «мертвый» код — удалять или оформлять как TODO с задачей.
- Секреты и пароли — только через конфигурацию/окружение, никогда в коде.
- Логирование — структурированное (structlog в Python, zap в Go), без избыточного логирования в горячих путях.
Связанные страницы
- Git Workflow — pre-commit и проверки
- Code Review Guide — что проверять в ревью
- Backend Overview — стек и структура