Golang структура Архитектура
https://www.youtube.com/watch?v=B0lV7I3FO4E
Пример разработки
1 https://www.youtube.com/watch?v=mr3pywHOz7I
2 https://www.youtube.com/watch?v=RHatXuBXckM
https://github.com/golang-standards/project-layout/ 1 пример
https://github.com/evrone/go-clean-template/tree/master 2 пример
// Точка входа
cmd
-app
--main.go
-parse
--main.go для крона
build
/configs/main.yml
/internal/ (внутренний)1.4 Своё, что под запретом для публикации + Основная бизнес логика
/internal/app/app.go
/pkg/ Доступно для скачивания другим + клиенские библиотеки
/docs/ (авто-генерация через swagger)
// Структуры и их методы
/internal/models/
// Слой комуникации транспорта
/internal/delivery/http/handler.go
/internal/delivery/grpc/
// Для основной бизнес логики
/internal/service/
// Хранилище для работы с базами (mongoDB top)
/internal/repository/
/internal/repository/mongodb/
// Берёт данные с /configs/main.yml
/internal/config/config.go
/internal/config/config_test.go
// Сервер
/server/server.go
- /cmd
- /yourappname
- /internal
- /handlers
- /models
- /services
- /static
- /css
- /js
- /images
- /templates
- go.mod
- go.sum
- main.go
// php
index.php
config
-database.php
-constants.php
includes
templates
-header.php
-footer.php
-home.php
-product.php
-cart.php
assets/ - папка с ресурсами, такими как изображения, стили CSS, скрипты JavaScript и т.д.
admin
-index.php
-products.phpудаление).
-orders.php
uploads
Для создания проекта REST API на Go, рекомендуется использовать следующую структуру файлов и папок:
```go
/myproject
/api
/v1
/handlers
handlers.go
/models
models.go
/repositories
repositories.go
/services
services.go
/middlewares
middlewares.go
/v2
(аналогична структуре v1)
/configs
config.go
/db
db.go
/pkg
/utils
utils.go
main.go
```
Вот краткое описание структуры:
1. `/myproject`: корневая директория проекта.
2. `/api`: директория, содержащая код, связанный с API.
* `/v1`, `/v2`: директории для различных версий API.
+ `/handlers`: обработчики маршрутов и запросов.
+ `/models`: модели данных и схемы.
+ `/repositories`: слой работы с базой данных и доступа к данным.
+ `/services`: слой бизнес-логики, объединяющий обработчики и репозитории.
+ `/middlewares`: мидлвары для обработки запросов и ответов.
3. `/configs`: конфигурационные файлы и код для настройки приложения.
4. `/db`: код, связанный с подключением к базе данных и ее управлением.
5. `/pkg/utils`: вспомогательные функции и утилиты, которые могут использоваться в разных частях проекта.
6. `main.go`: точка входа в приложение, инициализация маршрутизации и запуск сервера.
Эта структура позволяет организовать код логично и поддерживать чистоту проекта, а также упрощает процесс разработки и поддержки.