
A esponja é uma poderosa estrutura de desenvolvimento Go . Seu conceito principal gira em torno do código modular de engenharia reversa analisando arquivos JSON , SQL ou Protobuf . O código gerado pode ser montado de maneira flexível e perfeita em vários tipos de serviços de back -end completos (semelhantes às características das células de esponja, onde as células de esponja desmontadas podem se recombinar automaticamente em uma nova esponja). A esponja fornece uma solução completa para o desenvolvimento do projeto, cobrindo geração de código, desenvolvimento, teste, documentação da API e implantação, aumentando significativamente a eficiência do desenvolvimento, reduzindo a complexidade e permitindo projetos de alta qualidade com uma "abordagem de baixo código".
A esponja é adequada para desenvolver rapidamente vários serviços de back-end de alto desempenho, incluindo, entre outros,:
Web (Gin);gRPC ;HTTP+gRPC ;gRPC Gateway API Services.Além disso, os desenvolvedores podem usar modelos personalizados para gerar vários tipos de código para atender às necessidades de negócios específicas.
Geração de um clique de código de serviço de back-end completo
Para serviços Web ou gRPC que exigem apenas CRUD APIs , nenhum código Go precisa ser escrito. Basta conectar-se a um banco de dados (por exemplo, MySQL , MongoDB , PostgreSQL , SQLite ) para gerar um clique com um código de serviço de back-end completo e implantá-lo facilmente em servidores Linux, Docker ou Kubernetes.
Desenvolvimento eficiente de serviços de uso geral
Ao desenvolver serviços de gateway de uso geral Web , gRPC , HTTP+gRPC ou gRPC Gateway , você só precisa se concentrar em três aspectos:
O código da estrutura e o código da API CRUD são todos gerados automaticamente por esponja.
Suporte para modelos personalizados, oferecendo extensibilidade flexível
A esponja suporta gerar vários tipos de código específico do projeto usando modelos personalizados, não limitados ao idioma Go . Por exemplo:
Instale a esponja
A esponja suporta a instalação no Windows, MacOS e Linux. Clique para visualizar o guia de instalação de esponja .
Abra a interface do usuário da geração de código
Após a instalação, execute o seguinte comando para abrir a interface do usuário de esponja:
sponge run Acesse http://localhost:24631 em um navegador local para gerar código através da interface da interface do usuário, como mostrado abaixo:
Para acessar a partir de um navegador em um host diferente, especifique o host IP ou o domínio ao iniciar a interface do usuário, por exemplo,
sponge run -a http://your_host_ip:24631. Como alternativa, você pode executar o serviço de interface do usuário no Docker para apoiar o acesso cruzado. Clique para visualizar o guia na execução do serviço de interface do usuário de esponja no Docker.
A esponja suporta gerar código usando modelos internos e modelos personalizados, conforme mostrado nos diagramas abaixo.
A esponja suporta a criação de seis tipos de serviços de back -end, todos baseados na arquitetura de microsserviços. O diagrama abaixo ilustra uma estrutura de microsserviço em camadas típica, com capacidades de governança de alto desempenho, escalabilidade e serviços integrados.
Teste de desempenho do código de serviço HTTP e GRPC criado pela estrutura MicrosServices: 50 solicitações totais simultâneas.
Clique para visualizar o código de teste .
A estrutura do diretório de código do projeto criada pela esponja segue o projeto do projeto.
Aqui está a estrutura do diretório para o código monolithic application single repository (monolith) ou 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. Aqui está a estrutura do diretório para o código de microservice monolithic repository (mono-repo) (também conhecido como grande estrutura de diretório de repositório):
.
├── 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.Clique para visualizar a documentação detalhada do projeto de desenvolvimento de esponja, incluindo geração de código, desenvolvimento, configuração e instruções de implantação e muito mais.
Se for ajuda para você, dê uma estrela.