Зафиксировать структуру проектов в код-стайле
Правило: namespace = путь папки; состав папок по назначению и группировка тестовых проектов по областям (Support для общих хелперов).
This commit is contained in:
@@ -40,6 +40,14 @@
|
|||||||
|
|
||||||
- Один публичный тип — один файл; имя файла = имя типа. **[изм.]** Правило усилено: смешивать типы в
|
- Один публичный тип — один файл; имя файла = имя типа. **[изм.]** Правило усилено: смешивать типы в
|
||||||
одном файле нельзя (небольшие вспомогательные private-классы — исключение).
|
одном файле нельзя (небольшие вспомогательные private-классы — исключение).
|
||||||
|
- **`namespace` строго соответствует пути папки** (для тестов — тоже). Файлы группируются по назначению:
|
||||||
|
`Abstractions` (интерфейсы `I*`), `Services` (сервисы/воркеры/исполнители), `Models` (доменные типы,
|
||||||
|
enum/статусы/константные реестры), `Dtos` (`*Dto`/`*Request`/`*Response`/`*Patch`), `Extensions`
|
||||||
|
(`*Extensions`), `Options` (`*Options`), `Exceptions` (`*Exception`), `Registrars` (`*ModuleRegistrar`),
|
||||||
|
`Configurations` (EF-конфигурации), `Entities`, `Repositories`. Feature-папки допустимы и сохраняются
|
||||||
|
(`Endpoints`, `Middleware`, `Hosting`, `Parsing`, `ColumnRules` и т.п.).
|
||||||
|
- **Тестовые проекты** группируются по областям (`Modules/<X>`, `Api`, `Infrastructure`, `Contracts`,
|
||||||
|
`Grpc`, …), общие фейки/хелперы — в `Support`; `namespace` = `<ПроектТестов>.<Область>`.
|
||||||
- В одном файле — один `namespace`. File-scoped namespace допустим.
|
- В одном файле — один `namespace`. File-scoped namespace допустим.
|
||||||
- Все `using` — в начале файла; сначала системные, затем сторонние/project.
|
- Все `using` — в начале файла; сначала системные, затем сторонние/project.
|
||||||
- `using` внутри `namespace` не используются (внешние `using`).
|
- `using` внутри `namespace` не используются (внешние `using`).
|
||||||
|
|||||||
Reference in New Issue
Block a user