Update file README.md

This commit is contained in:
Mikhail 2023-12-04 15:09:31 +00:00
parent 8b8d74e5c5
commit cbe4766ac6

@ -8,30 +8,29 @@
├── docs - Директория с документацией ├── docs - Директория с документацией
├── internal - Директория с внутренним кодом приложения ├── internal - Директория с внутренним кодом приложения
├── migrations - Директория с миграциями изменений БД ├── migrations - Директория с миграциями изменений БД
├── pkg - Директория с общими пакетами приложения ├── pkg - Директория с общими пакетами приложения - пакеты общие между доменами выносим в common, общее в рамках домена - в pkg
├── proto - Директория с описанием прототипа интерфейса gRPC ├── proto - Директория с описанием прототипа интерфейса gRPC
├── tests - Директория с тестами проекта (integration/e2e) ├── tests - Директория с тестами проекта (integration/e2e)
├── .dockerignore - Файл для перечисления игнорирования докером файлов/директорий ├── .dockerignore - Файл для перечисления игнорирования докером файлов/директорий
├── .gitignore - Файл для перечисления игнорирования гитом файлов/директорий ├── .gitignore - Файл для перечисления игнорирования гитом файлов/директорий
├── .gitlab-ci.yml - Файл настройки Gitlab CI ├── .gitlab-ci.yml - Файл настройки Gitlab CI
├── .golangci.yaml - Файл настройки линтера для Golang ├── .golangci.yaml - Файл настройки линтера для Golang -- убрать, вынести в общий репозиторий, в хуки
├── .mockery.yaml - Файл настройки пакета mockery для генерации моков на Golang ├── .mockery.yaml - Файл настройки пакета mockery для генерации моков на Golang -- либо заменяем мокери, либо мок имиспользуем для внешних зависимостей или пустых сервисов
├── .buf.gen.yaml - https://buf.build/docs/configuration/v1/buf-gen-yaml ├── .buf.gen.yaml - https://buf.build/docs/configuration/v1/buf-gen-yaml
├── .buf.work.yaml - https://buf.build/docs/configuration/v1/buf-work-yaml/ ├── .buf.work.yaml - https://buf.build/docs/configuration/v1/buf-work-yaml/
├── .buf.yaml - https://buf.build/docs/configuration/v1/buf-yaml/ ├── .buf.yaml - https://buf.build/docs/configuration/v1/buf-yaml/ -- proto2swagger не используем
├── Dockerfile - Файл контейнеризации сервиса
├── go.mod - Корень управления зависимостями в GoLang ├── go.mod - Корень управления зависимостями в GoLang
├── go.sum - Файл содержащий хеши для нескольких версий модуля ├── go.sum - Файл содержащий хеши для нескольких версий модуля
├── Makefile - Набор команд ├── Makefile - Набор команд -- заменить на go-task
├── openapi.yaml - Файл описания REST документации в формате OpenAPI (swagger)
├── README.md - Общий файл документации (путеводитель) ├── README.md - Общий файл документации (путеводитель)
``` ```
## Структура `/cmd`: ## Структура `/cmd`:
``` ```
├── [app name] - Название приложения (app) ├── [app name] - Название приложения (app) -- уходим от пракки некольких сервисов в одном репозитории, поэтому подкаталог делать не надо
│ ├── main.go - Точка входа в приложение │ ├── main.go - Точка входа в приложение
│ ├── Dockerfile - Файл контейнеризации сервиса -- проверить возможность скопировать из корня проекта
``` ```
## Структура `/docs`: ## Структура `/docs`:
@ -39,6 +38,7 @@
``` ```
├── [group] - Группа документации ├── [group] - Группа документации
│ ├── README.md - Файл документации │ ├── README.md - Файл документации
├── openapi.yaml - Файл описания REST документации в формате OpenAPI (swagger)
``` ```
## Структура `/internal`: ## Структура `/internal`:
@ -48,27 +48,25 @@
``` ```
├── app - Пакет приложения ├── app - Пакет приложения
│ ├── [app name].go - Приложение │ ├── [app name].go - Приложение
├── dto - Data Transfer Object ├── errors - Пакет для обработки и создания ошибок приложения (желательно вынести в pkg) -- 2 common, вынести как категоризатор ошибок и действий о них
│ ├── [group] - Группа DTO объектов
│ │ ├── [name].go - Название файла, содержащий структуры для DTO объектов
├── errors - Пакет для обработки и создания ошибок приложения (желательно вынести в pkg)
├── initialize - Пакет для инициализации модулей (контроллеров, репозиториев, клиентов) ├── initialize - Пакет для инициализации модулей (контроллеров, репозиториев, клиентов)
├── interface - Данная директория хранит адаптеры для взаимодействия с внешними сервисами ├── adapters - Данная директория хранит адаптеры для взаимодействия с внешними сервисами
│ ├── client - Пакет клиента для взаимодействия с другими приложениями (REST, gRPC) │ ├── client - Пакет клиента для взаимодействия с другими приложениями (REST, gRPC)
│ │ ├── [name].go - Сам клиент │ │ ├── [name].go - Сам клиент
│ ├── controller - Директория контроллеров ├── repository - Директория репозиториев для взаимодействия с базой данных -- если есть набор отдельных баз, то делаем отдельные подкаталоги
│ ├── [name] - Директория контроллера ├── [name].go - Файл репозитория (user.go)
│ │ │ ├── mocks - Директория, которая хранит сгенерированные моки для контроллера ├── controller - Директория контроллеров
│ │ ├── [name].go - Сам контроллер. Хранит в себе обработчики внешних запросов ├── [name] - Директория контроллера
│ │ │ ├── [name]_test.go - Файл тестов для контроллера │ │ ├── mocks - Директория, которая хранит сгенерированные моки для контроллера
├── repository - Директория репозиториев для взаимодействия с базой данных │ ├── [name].go - Сам контроллер. Хранит в себе обработчики внешних запросов
│ │ ├── [name].go - Файл репозитория (user.go) │ │ ├── [name]_test.go - Файл тестов для контроллера
├── models - Пакет моделей данных ├── models - Пакет моделей данных
│ ├── [name].go - Файл структур, которые относятся к определённой модели (user.go) │ ├── [name].go - Файл структур, которые относятся к определённой модели (user.go)
├── proto - Директория, содержащая сгенерированные proto файлы ├── proto - Директория, содержащая сгенерированные proto файлы
├── server - Пакет хранящий инициализации серверов (http/tcp/grpc) ├── server - Пакет хранящий инициализации серверов (http/tcp/grpc) -- 2 common
│ ├── [name].go - Файл инициализации сервера (http/tcp/grpc) │ ├── [name].go - Файл инициализации сервера (http/tcp/grpc)
├── utils - Пакет внутренних функций/утилит приложения ├── services - Пакет слоя бизнес логики
├── utils - Пакет внутренних функций/утилит приложения - не больше одного уровня вложенности
│ ├── [name].go - Утилита │ ├── [name].go - Утилита
│ ├── [name]_test.go - Тесты утилиты │ ├── [name]_test.go - Тесты утилиты
├── worker - Пакет, для запуска и инициализации воркеров ├── worker - Пакет, для запуска и инициализации воркеров
@ -78,6 +76,7 @@
│ │ ├── [name]_test.go - Файл тестов воркера │ │ ├── [name]_test.go - Файл тестов воркера
│ ├── run.go - Файл запуска воркеров │ ├── run.go - Файл запуска воркеров
``` ```
config? app
## Структура `/pkg`: ## Структура `/pkg`: