
Sponge هو إطار تنمية قوي Go . يدور مفهومها الأساسي حول رمز وحدات الهندسة العكسية عن طريق تحليل ملفات JSON أو SQL أو Protobuf . يمكن تجميع الكود الذي تم إنشاؤه بمرونة وسلاسة في أنواع مختلفة من خدمات الواجهة الخلفية الكاملة (على غرار خصائص خلايا الإسفنج ، حيث يمكن لخلايا الإسفنج المفككة إعادة تجميعها تلقائيًا إلى إسفنجة جديدة). يوفر Sponge حلاً شاملًا لتطوير المشروع ، وتغطية توليد الكود ، والتطوير ، والاختبار ، وتوثيق API ، والنشر ، وتعزيز كفاءة التطوير بشكل كبير ، وتقليل التعقيد ، وتمكين المشاريع عالية الجودة مع "نهج منخفض الرمز".
الإسفنج مناسب لتطوير مختلف خدمات الخلفية العالية ذات الأداء العالي ، بما في ذلك على سبيل المثال لا الحصر:
Web (GIN) ؛gRPC ؛HTTP+gRPC الخدمات الهجينة ؛gRPC Gateway API Services.بالإضافة إلى ذلك ، يمكن للمطورين استخدام قوالب مخصصة لإنشاء أنواع مختلفة من التعليمات البرمجية لتلبية احتياجات العمل المحددة.
بنقرة واحدة من رمز خدمة الواجهة الخلفية الكاملة
بالنسبة لخدمات Web أو gRPC التي تتطلب فقط CRUD APIs ، لا يلزم كتابة رمز Go . ما عليك سوى الاتصال بقاعدة بيانات (على سبيل المثال ، MySQL ، MongoDB ، PostgreSQL ، SQLite ) لإنشاء رمز خدمة خلفي كامل ونشره بسهولة على خوادم Linux أو Docker أو Kubernetes.
التطوير الفعال للخدمات للأغراض العامة
عند تطوير Web للأغراض العامة أو gRPC أو HTTP+gRPC أو gRPC Gateway Services ، تحتاج فقط إلى التركيز على ثلاثة جوانب:
يتم إنشاء رمز الإطار ورمز API CRUD تلقائيًا بواسطة Sponge.
دعم القوالب المخصصة ، مما يوفر قابلية للمرونة
يدعم Sponge توليد أنواع مختلفة من التعليمات البرمجية الخاصة بالمشروع باستخدام قوالب مخصصة ، لا تقتصر على لغة Go . على سبيل المثال:
تثبيت الإسفنج
يدعم Sponge التثبيت على Windows و MacOS و Linux. انقر لعرض دليل تثبيت الإسفنج .
افتح واجهة مستخدم Code Generation
بعد التثبيت ، قم بتشغيل الأمر التالي لفتح واجهة المستخدم الإسفنج:
sponge run الوصول إلى http://localhost:24631 في متصفح محلي لإنشاء رمز من خلال واجهة واجهة المستخدم ، كما هو موضح أدناه:
للوصول من متصفح على مضيف مختلف ، حدد IP المضيف أو المجال عند بدء تشغيل واجهة المستخدم ، على سبيل المثال ،
sponge run -a http://your_host_ip:24631. بدلاً من ذلك ، يمكنك تشغيل خدمة واجهة المستخدم في Docker لدعم الوصول عبر المضيف. انقر لعرض الدليل على تشغيل خدمة UI Sponge في Docker.
يدعم Sponge توليد رمز باستخدام كل من القوالب المدمجة والقوالب المخصصة ، كما هو موضح في المخططات أدناه.
يدعم Sponge إنشاء ستة أنواع من خدمات الواجهة الخلفية ، وكلها تعتمد على بنية الخدمات الصغيرة. يوضح الرسم البياني أدناه بنية خدمة microservice ذات الطبقات النموذجية ، والتي تتميز بأداء عالي وقابلية للتوسع وقدرات حوكمة الخدمات المدمجة.
اختبار الأداء لرمز خدمة HTTP و GRPC الذي تم إنشاؤه بواسطة إطار الخدمات الصغيرة: 50 متزامنًا ، مليون طلب إجمالي.
انقر لعرض رمز الاختبار .
يتبع هيكل دليل رمز المشروع الذي أنشأته Sponge طرف المشروع.
فيما يلي هيكل الدليل 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.انقر لعرض الوثائق التفصيلية لمشروع تطوير الإسفنج ، بما في ذلك توليد التعليمات البرمجية ، والتطوير ، والتكوين ، وتعليمات النشر ، والمزيد.
إذا كان ذلك يساعدك ، فامنحه نجمة.