在當今快節奏的軟件開發環境中,提高效率至關重要。開發人員持續尋求工具和技術,以縮短開發時間併產出更高質量的應用程序。本文將介紹一款創新性的開發神器,它可以將開發項目效率可以提高 5 倍以上,並支持多種常用的數據庫。
如果開發只有簡單CRUD api接口的web或微服務,不需要編寫任何go代碼就可以編譯並部署到linux服務器、docker、k8s上,只需要連接到數據庫(mysql、mongodb、postgresql、tidb、sqlite)就可以一鍵自動生成完整的服務代碼。
如果開發通用的web或微服務,只需聚焦在在數據庫定義表、在proto文件定義api接口、在生成的模板文件填寫業務邏輯代碼三個核心部分,其他go代碼自動生成。
sponge 介紹
sponge 是一個集成了 自動生成代碼、Gin和GRPC 的基礎開發框架。sponge擁有豐富的生成代碼命令,生成不同的功能代碼可以組合成完整的服務(類似人為打散的海綿細胞可以自動重組成一個新的海綿)。代碼解耦模塊化設計,很容易構建出從開發到部署的完整工程項目,只需在生成的模板代碼上填充業務邏輯代碼,大幅的提高了開發效率和降低了開發難度。
項目地址: https://github.com/zhufuyi/sponge
生成代碼框架
sponge主要基於SQL和Protobuf兩種方式生成代碼,每種方式擁有生成不同用途的代碼。其中SQL支持數據庫mysql、mongodb、postgresql、tidb、sqlite。
生成代碼的框架圖
生成代碼框架對應的UI界面
生成服務代碼的雞蛋模型
生成服務代碼對應的框架圖
主要特性
sponge 是一個比較全面的綜合開發框架,旨在簡化和加速開發過程。它提供了一系列強大的功能和特性,幫助開發人員克服常見的瓶頸並顯著提高效率。
| 界面化操作 | 生成代碼命令UI界面化,簡單易用。 |
| 數據庫支持 | 支持 MySQL、MongoDB、PostgreSQL、TiDB 和 SQLite 等主流數據庫。 |
| 自動生成代碼 | 根據數據庫表自動生成代碼、合併代碼,節省大量時間和精力。 |
| 服務類型豐富 | 支持web服務、grpc服務、grpc網關服務開發。 |
| 高可靠高性能 | 服務代碼解耦模塊化設計,代碼經過嚴格的測試,並遵循良好的編碼規範,自帶緩存輕鬆應對高併發。 |
| 部署自動化 | 提供二進制、docker、kubernetes一站式自動化部署,快速將應用程序部署到生產環境。 |
| 團隊協作 | 代碼統一規範化,團隊協作更高效。 |
優勢
sponge提供了以下優勢:
| 提升開發效率 | 自動生成代碼、合併代碼等特性顯著提高了開發速度。 |
| 降低開發難度 | 低代碼開發使開發人員無需編寫大量代碼即可創建應用程序。 |
| 縮短上線時間 | 部署自動化功能減少了部署時間,使應用程序更快地投入生產使用。 |
| 提高代碼質量 | 自動生成的單元測試確保應用程序的高質量和可維護性。 |
| 降低開發成本 | 通過大幅提高效率和減少開發人員投入,降低了應用程序的總體開發成本。 |
使用場景
sponge適用於各種業務的後端服務開發場景,包括:
- 高性能 Web 服務
- 微服務
- grpc網關服務
快速開始
首先要安裝sponge,支持在windows、mac、linux、docker環境下安裝,點擊查看安裝sponge説明。
安裝完成後,啓動sponge UI服務:
sponge run
在UI界面上可以生成你需要的服務和相關代碼,具體的詳細教程點擊這裏查看:
- web服務開發
- 微服務開發
- grpc網關服務開發
sponge開發示例
| 一天開發完成一個簡單版的社區web後端服務 | 本示例演示如何使用 Sponge 為社區快速開發一個簡單的網絡後台服務。該服務包括用户註冊、登錄和發帖等基本功能。 |
| 單體web服務無縫快速遷移到微服務 | 本示例展示瞭如何使用 sponge 以最小的代價將單體web服務遷移到微服務,示例涵蓋了將服務拆分成多個獨立服務並實現它們之間通信的過程。 |
| 從0開始快速搭建一個包含分佈式事務的簡單版訂單系統 | 本示例演示如何使用 sponge 建立一個具有分佈式交易功能的簡單訂單系統,該系統包括訂單創建、優惠券、付款和庫存管理等功能。 |
總結
sponge 是一個幫助你大幅提高開發效率、降低開發成本的開發框架,通過支持主流數據庫、低代碼開發和自動化功能,它為各種後端服務開發場景提供了無與倫比的價值。如果您正在尋找一種方法來顯著提高開發效率並縮短上線時間,那麼sponge絕對值得一試。