博客 / 詳情

返回

一個企業級高質量開發框架 sponge,幫助你大幅提高開發效率和降低開發難度

在當今快節奏的軟件開發環境中,提高效率至關重要。開發人員持續尋求工具和技術,以縮短開發時間併產出更高質量的應用程序。本文將介紹一款創新性的開發框架,它可以大幅提高開發項目效率同時降低開發難度,並支持多種常用的數據庫。

如果開發只有簡單CRUD api接口的web或微服務,不需要編寫任何go代碼就可以編譯並部署到linux服務器、docker、k8s上,只需要連接到數據庫(mysql、mongodb、postgresql、tidb、sqlite)就可以一鍵自動生成完整的服務代碼。

如果開發通用的web或微服務,只需聚焦在在數據庫定義表在proto文件定義api接口在生成的模板文件填寫業務邏輯代碼三個核心部分,其他go代碼自動生成。


sponge 介紹

sponge 是一個集成了 自動生成代碼Gin和GRPC 的基礎開發框架。sponge擁有豐富的生成代碼命令,生成不同的功能代碼可以組合成完整的服務(類似人為打散的海綿細胞可以自動重組成一個新的海綿)。從生成代碼、開發、測試、api文檔到部署一站式項目開發,大幅提高了開發效率和降低了開發難度,實現"低代碼方式"進行開發項目。

github地址: https://github.com/zhufuyi/sponge


生成代碼框架

sponge主要基於SQLProtobuf兩種方式生成代碼,每種方式擁有生成不同用途的代碼。其中SQL支持數據庫mysqlmongodbpostgresqltidbsqlite

生成代碼的框架圖


生成代碼框架對應的UI界面


生成服務代碼對應的框架圖


主要特性

sponge 是一個比較全面的綜合開發框架,旨在簡化和加速開發過程。它提供了一系列強大的功能和特性,幫助開發人員克服常見的瓶頸並顯著提高效率。

界面化操作 生成代碼命令UI界面化,簡單易用。
數據庫支持 支持 MySQL、MongoDB、PostgreSQL、TiDB 和 SQLite 等主流數據庫。
自動生成代碼 根據數據庫表自動生成代碼、合併代碼,節省大量時間和精力。
豐富的服務類型 支持web服務、grpc服務、http+grpc服務、grpc網關服務開發。
豐富的組件 集成了常用的 gin 中間件和 grpc 攔截器,根據配置按需使用。
高可靠高性能 服務代碼解耦模塊化設計,代碼經過嚴格的測試,自帶緩存輕鬆應對高併發。
部署自動化 提供裸機、docker、kubernetes多種方式自動化部署,快速將應用程序部署到生產環境。
團隊協作 代碼統一規範化,團隊協作更高效。


優勢

sponge提供了以下優勢:

提升開發效率 自動生成代碼、合併代碼等特性顯著提高了開發速度。
降低開發難度 低代碼開發使開發人員無需編寫大量代碼即可創建應用程序。
縮短上線時間 部署自動化功能減少了部署時間,使應用程序更快地投入生產使用。
提高代碼質量 自動生成的單元測試確保應用程序的高質量和可維護性。
降低開發成本 通過大幅提高效率和減少開發人員投入,降低了應用程序的總體開發成本。


使用場景

sponge適用於各種業務的後端服務開發場景,包括:

  • 高性能 Web 服務
  • 微服務


快速開始

首先要安裝sponge,支持在windows、mac、linux、docker環境下安裝,點擊查看安裝sponge説明。

安裝完成後,啓動sponge UI服務:

sponge run

在UI界面上可以生成你需要的服務和相關代碼,然後在生成的代碼基礎上開發項目。


sponge開發示例

一天開發完成一個簡單版的社區web後端服務 本示例演示如何使用 Sponge 快速開發一個簡單的web後端服務。該服務包括用户註冊、登錄、發帖、評論、關注等基本功能。
單體web服務無縫快速遷移到微服務 本示例展示瞭如何使用 sponge 以最小的代價將單體web服務遷移到微服務,示例涵蓋了將服務拆分成多個獨立服務並實現它們之間通信的過程。
從0開始快速搭建一個包含分佈式事務的簡單版訂單系統 本示例演示如何使用 sponge 建立一個具有分佈式交易功能的簡單訂單系統,該系統包括訂單創建、優惠券、付款和庫存管理等功能。


總結

sponge 是一個幫助你大幅提高開發效率、降低開發成本的開發框架,通過支持主流數據庫、低代碼開發和自動化功能,它為各種後端服務開發場景提供了無與倫比的價值。如果您正在尋找一種方法來顯著提高開發效率並縮短上線時間,那麼sponge絕對值得一試。

user avatar changhao_flag 頭像 u_16618148 頭像 emtalk_qf 頭像 rhqyz 頭像 herodotus 頭像
5 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.