docs: package rules in code style — README, api, Django modules
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
ddadcbd1a9
commit
06647e39c3
2 files changed
+48
No files matched your search
@@ -113,3 +113,27 @@ Docstring обязателен для публичных функций и кл
|
||||
- Сообщение коммита в формате conventional commits: `feat:`, `fix:`, `refactor:`, `docs:`, `chore:`.
|
||||
- В основную ветку не попадает код, который не проходит линтер и тесты.
|
||||
- Секреты, ключи и `.env` никогда не попадают в репозиторий.
|
||||
|
||||
## 10. Пакеты
|
||||
|
||||
- **В каждом пакете есть `README.md`.** В нем написано, зачем пакет существует и какую задачу решает. Открыл папку и сразу понял, что внутри, без чтения кода.
|
||||
- **Программный интерфейс живет в модуле `api`.** Если пакетом пользуются из другого кода, все, что можно вызывать снаружи, собрано в `api`. Остальные модули пакета внутренние: другой код в них не лезет, и я могу менять их, не оглядываясь на тех, кто пакетом пользуется. Если пакет никто не вызывает из кода, `api` не нужен.
|
||||
|
||||
### Django-пакеты
|
||||
|
||||
Для Django-приложения набор модулей такой:
|
||||
|
||||
- **`settings`, всегда.** Перечень всех настроек, которые пакет понимает, с умолчаниями и документацией к каждой. Внутри пакета настройки берутся только отсюда, а не через `django.conf.settings` вразброс по коду. Чтобы узнать, как настроить пакет, достаточно открыть один файл.
|
||||
- **`urls`, если у пакета есть вьюхи.** Маршруты пакета, проект подключает их через `include()`.
|
||||
- **`api`, если к пакету обращаются из кода.** По правилу выше.
|
||||
|
||||
```python
|
||||
# reports/settings.py
|
||||
from django.conf import settings
|
||||
|
||||
# Сколько дней хранить сформированные отчеты. После этого срока они удаляются.
|
||||
REPORTS_TTL_DAYS = getattr(settings, "REPORTS_TTL_DAYS", 30)
|
||||
|
||||
# Адрес, с которого уходят письма с отчетами.
|
||||
REPORTS_FROM_EMAIL = getattr(settings, "REPORTS_FROM_EMAIL", settings.DEFAULT_FROM_EMAIL)
|
||||
```
|
||||
Reference in new issue
Block a user