springcloud 研發規范


1) 程序結構規范

 

   

1: Facade-Stub:包含所有對外提供服務的借口定義,並對外提供

2:  Façade:實現Façade-Stub里面定義的全部借口,可以調用Service模塊和Common模塊

3:  Task:包含全部的任務實現,可以調用Service模塊和Common模塊

4:  Service:包含業務處理邏輯,通常來說事務在此模塊中實現,可以調用Client、Dao和Common

5:  Client:包含全部對其他服務的調用,通過引入Façade-Stub實現借口調用,可以調用其他服務的Façade-Stub和本服務Common

6:  Dao:包含所有對數據的操作,包含SQL、NoSql等,可以調用Common

7:  Common:一些本服務中通用的方法

8:  模塊命名方法: 業務名稱-服務名稱-模塊名稱 akucun-user-client

9: 使用子模塊的方式引入到主POM中

<modules>
  <module>akucun-user-client</module>
  <module>akucun-user-common</module>
  <module>akucun-user-dao</module>
  <module>akucun-user-facade</module>
  <module>akucun-user-facade-stub</module>
  <module>akucun-user-service</module>
  <module>akucun-user-task</module>
</modules>

 

2) 技術棧規范

      

新業務應用全部使用:

java + mybatis + springcloud 的技術棧進行研發

老系統逐步替換成規定的技術棧

 

l  數據庫設計規范                    

        

mer_bank.sql

 

ID 統一叫: pid

created_time、updated_time、created_by、update_by是必須要加到表定義中的。

如果有刪除動作還需要加上is_delete、delete_time、delete_by等字段 , is_delete 為NOT NULL字段 默認為0 ,   1 表示刪除

所有字段盡量全部都是NOT NULL,如果業務上確實需要使用為NULL的字段,請說明。

請盡量將數據庫的默認步長設置為2方便以后擴展

頻繁需要連表查詢的數據,考慮是否可以進行數據冗余

 

3) 接口設計規范

 

對外接口設計時參照RESTful風格

使用HTTP Method 來標識操作:

POST:              表示新增

GET:                  表示查詢

DELETE:      表示刪除

PUT:                   表示更新

PATCH:           表示部分更新(依照以前的經驗老說,不太常用,或者轉義使用)

使用資源來標識操作的對象

http://www.a.com/api/v1/b2b/users/1

這個URL標識將   api->v1版本->b2b域下->ID為1的用戶   作為操作對象

注:對於特別復雜的接口,可以不嚴格遵照規范設計,但是要在設計時提出

 

接口數據傳遞通過原則上通過JSON實現

所有接口的返回值必須有統一的結構,具體結構會在后面給出

接口返回的狀態碼需要統一分段分配

前端和后端需要共同維護狀態碼和報錯信息的對應表

每個服務都要提供health-check接口,用於檢測其可用

 

 

4) 提測規范

 

開發人員根據接口文檔完成研發后需要將接口(編號)提測

提測的接口集合應該至少是一個完整的流程或功能(例如對會員信息的增刪改查,應該一起提測)

有依賴關系的接口應該先提測底層接口再提測上層接口

每個提測接口應需給出一個調用示例(可以保存在postman上)

postman 賬號:aikucun

密碼:aikucun123456

完成接口測試之后才能進行前端系統的測試(可能是某個模塊的接口)

 

 

5) 上線規范

 

測試人員在某個代碼版本上完成測試后(通常完成測試可以認為是沒有優先級高的BUG即可不需要修改完全部BUG)方可上線

每一次上線都應該至少記錄BUG FIX List, 新應用或者新功能列表,已有功能的修改列表三個表格

上線步驟通常可以分為:1)數據上線 2)應用服務上線 3)前端系統上線

 

可以對數據進行適當備份.

執行DDL

執行DML

執行緩存數據的上線

 

 

6) 數據上線規范

 

可以對數據進行適當備份.

執行DDL

執行DML

執行緩存數據的上線

 

 

7) 應用服務上線規范

理清需要上線服務的調用關系

執行底層服務的上線

執行上層服務的上線

線上冒煙測試

回歸測試(可選)

 

 

8) 前端系統上線規范

 

將靜態資源發布到各個前端系統中(nginx、cdn等,沒有順序限制)

線上冒煙測試

回歸測試(可選)

 

9) springcloud項目規范

 

1:  輸出規范

 

輸出類: com.akucun.common.Result

分頁類: com.akucun.common.Pagination

Result中的code message對應的枚舉: com.akucun.common.utils.enums.CodeMsg 

 

2: 項目發布規范說明: 

git 的分支整體預覽圖如下。

從上圖可以看到主要包含下面幾個分支:

  • master: 主分支,主要用來版本發布。
  • develop:日常開發分支,該分支正常保存了開發的最新代碼。
  • feature:具體的功能開發分支,只與 develop 分支交互。
  • release:release 分支可以認為是 master 分支的未測試版。比如說某一期的功能全部開發完成,那么就將 develop 分支合並到 release 分支,測試沒有問題並且到了發布日期就合並到 master 分支,進行發布。
  • hotfix:線上 bug 修復分支。

 參考: http://blog.jobbole.com/109466/

 

3: springboot 項目運行說明: 

添加啟動參數:   -Ddeploy.app.name=merchant-platform-facade  和  -Dhost=192.168.1.1  -Dlog.level=info -Dguid.datacenter.id=2  -Dguid.machine.id=3

說明:

deploy.app.name 日志文件夾名稱如:  /home/用戶/logs/merchant-platform-facade/日志文件
host    服務器的ip地址 ELK用來區分那台服務器打印的日志
log.level  初始日志級別
guid.datacenter.id 數據中心
guid.machine.id 數據中心中對應的服務器編號

 

 

4:  啟動類繼承 SpringBootServletInitializer 可以打war包

 

5:  待續...

 

10) 屬性文件中敏感數據加密處理
     測試環境和線上環境對數據文件中的敏感數據加密處理, 可借助springcloud config加密解密功能
11) 用戶登錄行為埋點
待續...

 

12) 技術選型

當前階段愛庫存技術選擇如下

緩存 阿里雲 redis 集群
數據庫 RDS 的讀寫分離
API通信 restfulAPI 為主
消息隊列 rocketMQ
文件存儲  OSS 與 fastDFS  (優化抽像可切換)
搜索引擎  ElasticSearch

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM