
Губка - мощная структура разработки Go . Его основная концепция вращается вокруг модульного кода с обратной инженерией путем анализа файлов JSON , SQL или Protobuf . Сгенерированный код может быть гибко и беспрепятственно собран в различные типы полных бэкэнд -сервисов (аналогично характеристикам губчатых ячеек, где разборные губчатые ячейки могут автоматически рекомбинироваться в новую губку). Sponge предоставляет все в одном решение для разработки проектов, обеспечения генерации кода, разработки, тестирования, документации API и развертывания, значительного повышения эффективности разработки, снижения сложности и обеспечения высококачественных проектов с «низким кодным подходом».
Губка подходит для быстрого разработки различных высокопроизводительных бэкэнд-услуг, включая, помимо прочего:
Web -сервисы (джин);gRPC ;HTTP+gRPC Hybrid Services;gRPC Gateway API Услуги.Кроме того, разработчики могут использовать пользовательские шаблоны для создания различных типов кода для удовлетворения конкретных потребностей бизнеса.
Поколение полного бэкэнд-сервисного кода в одном клике
Для Web -услуг или сервисов gRPC , которые требуют только CRUD APIs , код Go не требует написания. Просто подключитесь к базе данных (EG, MySQL , MongoDB , PostgreSQL , SQLite ), чтобы сгенерировать полное бэкэнд-код службы с одним щелчком и легко развернуть его на серверах Linux, Docker или Kubernetes.
Эффективное развитие услуг общего назначения
При разработке услуг общего назначения Web , gRPC , HTTP+gRPC или gRPC Gateway вам нужно только сосредоточиться на трех аспектах:
Код фреймворта и код API CRUD автоматически генерируются Sponge.
Поддержка пользовательских шаблонов, предлагая гибкую расширяемость
Sponge поддерживает генерирование различных типов кода, специфичных для проекта, используя пользовательские шаблоны, не ограничивающиеся языком Go . Например:
Установите губку
Губка поддерживает установку в Windows, MacOS и Linux. Нажмите, чтобы просмотреть руководство по установке губки .
Откройте пользовательский интерфейс генерации кода
После установки запустите следующую команду, чтобы открыть пользовательский интерфейс губки:
sponge run Доступ к http://localhost:24631 в локальном браузере, чтобы генерировать код через интерфейс пользовательского интерфейса, как показано ниже:
Чтобы получить доступ из браузера на другом хосте, укажите IP -IP хоста или домен при запуске пользовательского интерфейса, например,
sponge run -a http://your_host_ip:24631. В качестве альтернативы, вы можете запустить службу пользовательского интерфейса в Docker, чтобы поддержать доступ к перекрестному хозяйству. Нажмите, чтобы просмотреть руководство по запуску услуги пользовательского интерфейса Sponge в Docker.
Губка поддерживает генерирование кода, используя как встроенные шаблоны, так и пользовательские шаблоны, как показано на диаграммах ниже.
Sponge поддерживает создание шести типов бэкэнд -сервисов, и все это на основе архитектуры микросервиса. Диаграмма ниже иллюстрирует типичную многослойную структуру микросервиса, обладающая высокой производительности, масштабируемостью и встроенными возможностями управления обслуживанием.
Тестирование производительности кода сервиса HTTP и GRPC, создаваемого в рамках MicroServices Framework: 50 одновременных, 1 миллион общих запросов.
Нажмите, чтобы просмотреть тестовый код .
Структура каталога кодов проекта, созданная Sponge, следует за проектом Layout.
Вот структура каталога для сгенерированного monolithic application single repository (monolith) или microservice multi-repository (multi-repo) :
.
├── api # Protobuf files and generated * pb.go directory
├── assets # Store various static resources, such as images, markdown files, etc.
├── cmd # Program entry directory
├── configs # Directory for configuration files
├── deployments # Bare metal, docker, k8s deployment script directory.
├── docs # Directory for API interface Swagger documentation.
├── internal # Directory for business logic code.
│ ├── cache # Cache directory wrapped around business logic.
│ ├── config # Directory for Go structure configuration files.
│ ├── dao # Data access directory.
│ ├── database # database directory.
│ ├── ecode # Directory for system error codes and custom business error codes.
│ ├── handler # Directory for implementing HTTP business functionality (specific to web services).
│ ├── model # Database model directory.
│ ├── routers # HTTP routing directory.
│ ├── rpcclient # Directory for client-side code that connects to grpc services.
│ ├── server # Directory for creating services, including HTTP and grpc.
│ ├── service # Directory for implementing grpc business functionality (specific to grpc services).
│ └── types # Directory for defining request and response parameter structures for HTTP.
├── pkg # Directory for shared libraries.
├── scripts # Directory for scripts.
├── test # Directory for scripts required for testing services and test SQL.
├── third_party # Directory for third-party protobuf files or external helper programs.
├── Makefile # Develop, test, deploy related command sets .
├── go.mod # Go module dependencies and version control file.
└── go.sum # Go module dependencies key and checksum file. Вот структура каталога для сгенерированного кода microservice monolithic repository (mono-repo) (также известный как крупная структура каталога хранилища):
.
├── api
│ ├── server1 # Protobuf files and generated *pb.go directory for service 1.
│ ├── server2 # Protobuf files and generated *pb.go directory for service 2.
│ ├── server3 # Protobuf files and generated *pb.go directory for service 3.
│ └── ...
├── server1 # Code directory for Service 1, it has a similar structure to the microservice multi repo directory.
├── server2 # Code directory for Service 2, it has a similar structure to the microservice multi repo directory.
├── server3 # Code directory for Service 3, it has a similar structure to the microservice multi repo directory.
├── ...
├── third_party # Third-party protobuf files.
├── go.mod # Go module dependencies and version control file.
└── go.sum # Go module dependencies' checksums and hash keys.Нажмите, чтобы просмотреть подробную документацию для проекта разработки губки, включая генерацию кода, разработку, конфигурацию и инструкции по развертыванию, а также многое другое.
Если это помогает вам, дайте ему звезду.