強推一個基於SpringCloudAlibaba的代碼生成器

簡介

該團隊經過多年大型企業中臺化改造項目的沉澱,不斷總結經驗教訓,不斷努力提升產能,不斷積極應對微服務改造過程中出現的分分合合。經歷無數日夜的持續迭代和優化,終於可以實現生成 70% 的適用於微服務架構的高質量範式化工程級代碼。此後,我們就很少加班,熱愛工作,並與領導成為了戰友,與客戶成為了朋友。

代碼生成器

如果說基礎框架是技術輪子,那麼我們就是生產線。不僅可以造出各種尺寸的輪子,通過我們的在線配置工具,還能生成您的更多業務所需,如:

  • 創建多個數據庫鏈接,並從中導入數據表。
  • 創建多個微服務,再關聯到一到多個數據庫鏈接。
  • 數據表之間可建立服務內和跨服務的“一對一、一對多、多對多、字典和分組聚合計算”等關聯關係。
  • 生成 Job 業務代碼,目前已支持“全量同步、增量同步、增量分組聚合轉換同步”等代碼模板。
  • 創建表單並對接後臺接口,操作並顯示後臺數據。

在創建項目時,下圖所示的微服務組件可正交化組合。生成後的工程不僅可用於企業中臺化改造,同樣也適用於開發者進行微服務全技術棧的快速學習。

強推一個基於SpringCloudAlibaba的代碼生成器

在線資源

覺得不錯可以轉發+關注支持一下,私信我【代碼生成器】即可

  • 網站首頁。
  • 教學視頻。
  • 生成器操作指南。
  • 後端代碼文檔。
  • 前端代碼文檔。
  • 更完整的演示項目。

主要功能

  • 提供前後端主流技術棧組件,可按需選擇生成您的工程基礎架構。
  • 可創建多數據庫、多應用服務,並導入業務數據表,配置服務內或跨服務的複雜表關係。
  • 前端支持基於 Fragment 和 Block 的嵌套佈局,配置後即可生成多樣化的表單頁面,並可預覽。
  • 操作權限和數據權限,靈活可配、運行時性能高度優化。
  • 有別於其他產品,我們不僅提供了Job框架的集成,更能生成任務處理器的業務邏輯代碼。
  • 微服務和單體服務的接口命名規則和參數定義完全一致,便於您今後的平滑升級。

競爭優勢

  • 排在首位的就是15萬字以上的專業、詳盡、完善和暗黑護眼的操作指南、開發文檔和教學視頻。
  • 真正的代碼生成器,而非腳手架,可生成相對複雜的中臺化業務代碼。
  • 淺顯易懂的高質量生成後工程代碼,經過SonarQube和Alibaba代碼規範的嚴格掃描。
  • 合理、全網超低價的教學版和企業版商業授權。(請我們擼一次串的價格)

開箱即用

項目信息如您所願,工程名稱、目錄結構、基礎包名、common模塊、代碼註釋中的@author信息等,在創建工程時即已配置,不會留有橙單的任何信息。因此無需二次修改,前後端直接編譯運行即可。如編譯器和運行時出現問題,那一定是我們的bug,在得到您反饋後,我們將及時修復。

技術選型

覺得不錯可以轉發+關注支持一下,私信我【代碼生成器】即可

  • 前端: Element (Vue) / Ant Design (React) + ECharts / AntV + Axios + Webpack。
  • 後端: Spring Boot / Spring Cloud / Spring Cloud Alibaba + Spring Security OAuth2 + Mybatis + Jwt。
  • 工具庫: Hutool + Guava + Caffeine + Lombok + MapStruct + 通用Mapper。
  • 服務組件: Redis + Zookeeper + Consul + Apollo + XXL-Job + Kafka + Nacos + Sentinel + Seata + Nepxion Discovery。
  • 系統監控: ELK + PinPoint / SkyWalking + Grafana + Prometheus。

基礎功能

  • 前端框架:單頁面、多標籤、多欄目和子路由,多套高顏值樣式模式可供選擇。
  • 前端能力:列表編輯、統計圖表、明細數據下載、上傳下載、數據導出、自定義打印樣式模板、富文本等。
  • 頁面佈局:支持基於 Fragment 和 Block 的靈活佈局方式,通過配置即可生成多樣化的表單頁面,並可預覽。
  • 接口規範:微服務和單體服務的接口命名規則和參數定義完全一致,便於日後的平滑升級。
  • 後臺架構:分佈式鎖、分佈式 Id 生成器、分佈式緩存、分佈式事務、分佈式限流和灰度發佈等,按需集成。
  • 用戶管理:支持基於OAuth2的單點登錄。
  • 操作權限:前端控制可精確到按鈕級的操作和標籤級的顯示,後臺統一攔截驗證更加安全。
  • 數據權限:基於 Mybatis 攔截器 + JSqlParser 的實現方式,配置更靈活,代碼侵入性更低。
  • 多數據源:可根據配置動態生成,路由策略靈活可擴展。
  • 數據組裝:Java 註解方式實現數據組裝,支持統一接口的服務內和跨服務的一對一、一對多、多對多、字典、聚合計算等關係數據組合。
  • 定時任務:我們不僅提供了 Job 基礎框架的集成,更能生成靈活可配、高度優化、便於二次開發的 Job 業務邏輯代碼。
  • 系統監控:基於 Kafka + ELK 的日誌收集,基於 PinPoint/SkyWalking 的服務鏈路跟蹤,基於 GPE 的服務性能指標監控。

設計理念

  • 前沿的單表組合式設計,使業務服務的拆分與再合併 SO EASY。
  • 先代碼,後SQL的原則,讓服務橫向擴充更具彈性。
  • 標準化的服務間調用接口,使業務服務組合更具正交性。
  • 前後端基於約定各司其職,默契配合,讓系統運行飛起來。
  • 可平滑的逐步演化為雲原生架構。

代碼質量

  • 無任何二次封裝,只生成您最懂的代碼。
  • 遵循阿里巴巴標準的代碼規範。
  • SonarQube 基於最嚴格檢測規則的代碼掃描。
  • 產品級代碼質量,層次清晰、滴水不漏。
  • 近乎於0的代碼重複率,35%以上的註釋覆蓋率。
  • 15年架構師優化的每一處細節。

規則掃描

此為在線演示工程的代碼審查報告,而非當前開源示例工程。前者代碼量更大,結構更復雜。

  1. SonarQube 掃描
  • 基於SonarQube8.2缺省最嚴格的代碼掃描規則,其中代碼複雜度要求為15。
  • 有氣味代碼共90處,其中85處為DTO、Model、常量字典、RPC接口等定義出現重複名稱所致,均與模擬實際業務有關。
  • 其餘氣味代碼,是在權衡性能、可讀性和易修改性等因素後保留下來的,具體見圖4。
強推一個基於SpringCloudAlibaba的代碼生成器

強推一個基於SpringCloudAlibaba的代碼生成器

強推一個基於SpringCloudAlibaba的代碼生成器

強推一個基於SpringCloudAlibaba的代碼生成器

  1. Alibaba Code Guide 掃描
  • 下載最新版本IDEA插件,同時打開所有審查條件。
  • 全部代碼掃描通過。
強推一個基於SpringCloudAlibaba的代碼生成器

強推一個基於SpringCloudAlibaba的代碼生成器

  1. Statistic 代碼統計
  • 生成代碼總量約為86000多行,主要包括Java、XML、YAML和SQL初始化腳本等。
  • Java代碼覆蓋率為37%。
強推一個基於SpringCloudAlibaba的代碼生成器

強推一個基於SpringCloudAlibaba的代碼生成器

開源工程部署

  1. 數據初始化。
  • 通過常用的數據庫訪問工具(如:navicat),執行工程目錄下的zz-orange-demo.sql文件。
  • 導入腳本主要負責,數據庫創建、數據表創建和測試數據的插入。
  1. 環境準備。 docker是必選組件。通過docker-compose命令,可快速啟停服務所依賴的服務中間件,如nacos、redis、zookeeper、kafka和sentinel dashboard等。中間件的控制檯訪問方式,可參考工程目錄下的README文件。
<code># 假定當前目錄為工程根目錄。
cd zz-resource/docker-files
# 啟動和停止帶有基礎服務中間件的docker-compose.yml文件
docker-compose up -d
# 徹底終止容器
docker-compose down
# 在第一次啟動之後,可以考慮每次執行下面的命令啟動和停止容器。
docker-compose start
docker-compose stop
/<code>
  1. 後臺工程導入。 以Maven的形式導入IDE,直接編譯運行即可。具體可參考我們的開發文檔教學版微服務工程導入章節。
  2. 後臺服務配置。
  • 進入工程目錄下的 zz-resource/config-data/ 子目錄,修改和數據庫相關的配置,具體操作詳見下圖及文字註釋。
強推一個基於SpringCloudAlibaba的代碼生成器

  • 將該目錄下的所有配置文件導入nacos。nacos控制檯訪問地址 localhost:8848/nacos,用戶名和密碼 nacos/nacos。
  • 具體導入方式可參考我們的開發文檔服務配置章節。
  1. 後臺服務啟動。 這裡僅以upms服務為例。在開發環境中,為每個微服務啟動項配置main class,下圖為IntelliJ IDEA中的配置截圖,配置後點擊Debug/Run按鈕即可啟動。
強推一個基於SpringCloudAlibaba的代碼生成器

  1. 前端工程導入和啟動。
  • 將前端工程導入vscode。
  • 修改 src -> core -> config 下的配置文件,將baseUrl修改為您服務器地址。
  • 安裝依賴,執行 npm install。
  • 啟動前端服務,執行 npm run dev。
  • 具體可參考我們的開發文檔教學版前端工程啟動段落。

主要截圖

覺得不錯可以轉發+關注支持一下,私信我【代碼生成器】即可

強推一個基於SpringCloudAlibaba的代碼生成器

強推一個基於SpringCloudAlibaba的代碼生成器

強推一個基於SpringCloudAlibaba的代碼生成器

強推一個基於SpringCloudAlibaba的代碼生成器

強推一個基於SpringCloudAlibaba的代碼生成器

強推一個基於SpringCloudAlibaba的代碼生成器

強推一個基於SpringCloudAlibaba的代碼生成器

強推一個基於SpringCloudAlibaba的代碼生成器

開發文檔

強推一個基於SpringCloudAlibaba的代碼生成器

強推一個基於SpringCloudAlibaba的代碼生成器

強推一個基於SpringCloudAlibaba的代碼生成器

強推一個基於SpringCloudAlibaba的代碼生成器

強推一個基於SpringCloudAlibaba的代碼生成器

強推一個基於SpringCloudAlibaba的代碼生成器

強推一個基於SpringCloudAlibaba的代碼生成器

強推一個基於SpringCloudAlibaba的代碼生成器

演示工程

強推一個基於SpringCloudAlibaba的代碼生成器

強推一個基於SpringCloudAlibaba的代碼生成器

強推一個基於SpringCloudAlibaba的代碼生成器

強推一個基於SpringCloudAlibaba的代碼生成器

強推一個基於SpringCloudAlibaba的代碼生成器

強推一個基於SpringCloudAlibaba的代碼生成器

強推一個基於SpringCloudAlibaba的代碼生成器

強推一個基於SpringCloudAlibaba的代碼生成器

微服務中間件

強推一個基於SpringCloudAlibaba的代碼生成器

強推一個基於SpringCloudAlibaba的代碼生成器

強推一個基於SpringCloudAlibaba的代碼生成器

強推一個基於SpringCloudAlibaba的代碼生成器

強推一個基於SpringCloudAlibaba的代碼生成器

強推一個基於SpringCloudAlibaba的代碼生成器

強推一個基於SpringCloudAlibaba的代碼生成器


分享到:


相關文章: