
Sponge ist ein mächtiger Go -Entwicklungsrahmen. Das Kernkonzept dreht sich um den umgekehrten modularen Code, indem Sie JSON , SQL oder Protobuf Dateien analysieren. Der generierte Code kann flexibel und nahtlos in verschiedene Arten von vollständigen Backend -Diensten zusammengestellt werden (ähnlich wie die Eigenschaften von Schwammzellen, in denen zerkleinerte Schwammzellen automatisch zu einem neuen Schwamm rekombinieren können). Sponge bietet eine All-in-One-Lösung für die Projektentwicklung, die Abdeckung der Codegenerierung, -entwicklung, -versuche, der API-Dokumentation und des Einsatzes, die Entwicklung der Entwicklungseffizienz, die Verringerung der Komplexität und die Ermöglichung hochwertiger Projekte mit einem "Low-Code-Ansatz".
Sponge ist geeignet, um schnell verschiedene Hochleistungs-Backend-Dienste zu entwickeln, einschließlich, aber nicht beschränkt auf:
Web (GIN);gRPC -Dienste;HTTP+gRPC Hybrid Services;gRPC Gateway API -Dienste.Darüber hinaus können Entwickler benutzerdefinierte Vorlagen verwenden, um verschiedene Arten von Code zu generieren, um bestimmte Geschäftsanforderungen zu erfüllen.
Ein-Klick-Generation des vollständigen Backend-Servicecode
Für Web oder gRPC -Dienste, die nur CRUD APIs erfordern, muss kein Go -Code geschrieben werden. Stellen Sie einfach eine Verbindung zu einer Datenbank (z. B. MySQL , MongoDB , PostgreSQL , SQLite ) her, um einen Klick zu erstellen, um einen vollständigen Backend-Service-Code zu generieren und ihn einfach für Linux-Server, Docker oder Kubernetes bereitzustellen.
Effiziente Entwicklung allgemeiner Dienstleistungen
Bei der Entwicklung Web , gRPC , HTTP+gRPC oder gRPC Gateway Diensten im Allgemeinen müssen Sie sich nur auf drei Aspekte konzentrieren:
Der Framework -Code und der CRUD -API -Code werden alle automatisch durch Schwamm generiert.
Unterstützung für benutzerdefinierte Vorlagen und bietet eine flexible Erweiterbarkeit
Sponge unterstützt die Erzeugung verschiedener Arten von projektspezifischen Code mit benutzerdefinierten Vorlagen, die nicht auf die Go Sprache beschränkt sind. Zum Beispiel:
Schwamm installieren
Sponge unterstützt die Installation unter Windows, MacOS und Linux. Klicken Sie hier, um den Sponge -Installationshandbuch anzuzeigen.
Öffnen Sie die UI der Codegenerierung
Führen Sie nach der Installation den folgenden Befehl aus, um die Schwamm -Benutzeroberfläche zu öffnen:
sponge run Greifen Sie auf http://localhost:24631 in einem lokalen Browser, um Code über die UI -Schnittstelle zu generieren, wie unten gezeigt:
Geben Sie beim Starten der Benutzeroberfläche, z. B.
sponge run -a http://your_host_ip:24631die Host -IP oder Domäne an, um von einem Browser auf einem anderen Host zuzugreifen. Alternativ können Sie den UI-Dienst in Docker ausführen, um den Cross-Host-Zugriff zu unterstützen. Klicken Sie hier, um die Anleitung zum Ausführen des Sponge UI -Dienstes in Docker anzuzeigen.
Sponge unterstützt das Erzeugen von Code, die sowohl integrierte Vorlagen als auch benutzerdefinierte Vorlagen mithilfe von in den Diagrammen unten gezeigten Vorlagen gezeigt.
Sponge unterstützt das Erstellen von sechs Arten von Backend -Diensten, die alle auf Microservice -Architektur basieren. Das folgende Diagramm zeigt eine typische geschichtete Microservice-Struktur mit hohen Leistungen, Skalierbarkeit und integrierten Dienstleistungsfunktionen.
Leistungstests des vom Microservices Framework erstellten HTTP- und GRPC -Servicecode: 50 gleichzeitig 1 Million Anfragen.
Klicken Sie hier, um den Testcode anzuzeigen.
Die von Sponge erstellte Projektcode-Verzeichnisstruktur folgt dem Projekt-Layout.
Hier ist die Verzeichnisstruktur für das generierte monolithic application single repository (monolith) oder microservice multi-repository (multi-repo) -Code:
.
├── 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. Hier ist die Verzeichnisstruktur für den generierten microservice monolithic repository (mono-repo) (auch als große Repository-Verzeichnis-Struktur bezeichnet):
.
├── 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.Klicken Sie hier, um die detaillierte Dokumentation für das Schwammentwicklungsprojekt anzuzeigen, einschließlich Codegenerierung, Entwicklung, Konfiguration und Bereitstellungsanweisungen und vielem mehr.
Wenn es Ihnen Hilfe ist, geben Sie ihm einen Stern.