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`: точка входа в приложение, инициализация маршрутизации и запуск сервера. Эта структура позволяет организовать код логично и поддерживать чистоту проекта, а также упрощает процесс разработки и поддержки.