【Spring Cloud + Vue 有來商城】研發小組開發規範全方位梳理
阿新 • • 發佈:2020-10-30
# 專案演示
![](https://i.loli.net/2020/10/26/z3XiWdjcTORUM71.gif)
![](https://i.loli.net/2020/10/25/Ns1Ep6wqyV9MrYx.gif)
> 後端
1. [Spring Cloud實戰 | 第一篇:Windows搭建Nacos服務 ](https://www.cnblogs.com/haoxianrui/p/13581881.html)
2. [Spring Cloud實戰 | 第二篇:Spring Cloud整合Nacos實現註冊中心](https://www.cnblogs.com/haoxianrui/p/13584204.html)
3. [Spring Cloud實戰 | 第三篇:Spring Cloud整合Nacos實現配置中心](https://www.cnblogs.com/haoxianrui/p/13585125.html)
4. [Spring Cloud實戰 | 第四篇:Spring Cloud整合Gateway實現API閘道器](https://www.cnblogs.com/haoxianrui/p/13608650.html)
5. [Spring Cloud實戰 | 第五篇:Spring Cloud整合OpenFeign實現微服務之間的呼叫](https://www.cnblogs.com/haoxianrui/p/13615592.html)
6. [Spring Cloud實戰 | 第六篇:Spring Cloud Gateway+Spring Security OAuth2+JWT實現微服務統一認證授權](https://www.cnblogs.com/haoxianrui/p/13719356.html)
7. [Spring Cloud實戰 | 最終篇:Spring Cloud Gateway+Spring Security OAuth2整合統一認證授權平臺下實現登出使JWT失效方案](https://www.cnblogs.com/haoxianrui/p/13740264.html)
> 管理前端
1. [vue-element-admin實戰 | 第一篇: 移除mock接入後臺,搭建有來商城youlai-mall前後端分離管理平臺](https://www.cnblogs.com/haoxianrui/p/13624548.html)
2. [vue-element-admin實戰 | 第二篇: 最小改動接入後臺實現根據許可權動態載入選單](https://www.cnblogs.com/haoxianrui/p/13676619.html)
> 微信小程式
1. [vue+uniapp商城實戰 | 第一篇:【有來小店】微信小程式快速開發接入Spring Cloud OAuth2認證中心完成授權登入]()
# 一. 程式碼規範
## 1. Service/DAO 層方法命名規約
1) 獲取單個物件的方法用 get 做字首。
2) 獲取多個物件的方法用 list 做字首,複數結尾,如:listObjects。
3) 獲取統計值的方法用 count 做字首。
4) 插入的方法用 save/insert 做字首。
5) 刪除的方法用 remove/delete 做字首。
## 2. SQL語句規範
1)SQL 語句中表的別名前加 as,並且以 t1、t2、t3、...的順序依次命名。
```
select t1.name from table_first as t1, table_second as t2 where t1.id=t2.id;
```
**摘自:**
- [Java開發手冊【泰山版】](https://developer.aliyun.com/topic/java2020?utm_content=g_1000113416)
# 二. 介面規範
專案介面是基於REST構建的API也就是RESTful架構風格設計。
在RESTful架構中,每個URL代表一種資源,所以不能有動詞,只能有名詞,而且所用的名詞往往與資料庫的表格名對應。一般來說,資料庫中的表都是同種記錄的"集合",所以API中的名詞也應該使用複數。
**最佳案例**
- https://youlai.store/users GET 獲取所有使用者資訊
- https://youlai.store/users/1 GET 獲取標識為1使用者資訊
- https://youlai.store/users/1 DELETE 刪除標識為1使用者資訊
- https://youlai.store/users/1 Patch 更新標識為1使用者部分資訊,包含在body中
- https://youlai.store/users POST 新增新的使用者
- https://youlai.store/users/me GET 獲取當前使用者資訊
> 如果記錄數量很多,伺服器不可能都將它們返回給使用者。API應該提供引數,過濾返回結果。
- ?limit=10:指定返回記錄的數量
- ?offset=10:指定返回記錄的開始位置。
- ?page=2&per_page=100:指定第幾頁,以及每頁的記錄數。
- ?sortby=name&order=asc:指定返回結果按照哪個屬性排序,以及排序順序。
- ?animal_type_id=1:指定篩選條件
**參考:**
- [RESTful API 設計指南](http://www.ruanyifeng.com/blog/2014/05/restful_api.html)
# 三. Git規範
## 1. Commit message的格式規範
> **Commit message 包括三個欄位:type(必需)、scope(可選)和subject(必需)。**
```
():
```
**1).type**
type用於說明 commit 的類別,規範使用以下標識。
- feat:新功能(feature)
- fix:修補bug
- docs:文件(documentation)
- style: 格式(不影響程式碼執行的變動)
- refactor:重構(即不是新增功能,也不是修改bug的程式碼變動)
- test:增加測試
- chore:構建過程或輔助工具的變動
- revert:回滾到上一個版本
- merge:程式碼合併
- sync:同步主線或分支的Bug
**2).scope**
scope用於說明 commit 影響的範圍,比如資料層、控制層、檢視層等等,視專案不同而不同。
**3). subject**
subject是 commit 目的的簡短描述,不超過50個字元。
> **最佳案例**
```
git commit -m docs(README.md):分支修改專案說明文件
```
> **格式化Commit message的好處**
1). 快速預覽歷史
```
git log HEAD --pretty=format:%s
```
2). 快速過濾查詢
```
git log HEAD --grep feature
```
3). commit生成Change log
```
Change Log 是釋出新版本時,用來說明與上一個版本差異的文。
```
**參考:**
- [Commit message 和 Change log 編寫指南](http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html)
## 2. 分支開發主幹釋出模式
禁止在主幹直接修改程式碼,需在開發分支開發並在測試環境測試通過之後由相關人員同步到主幹
**最佳案例**
```
[master] > git checkout dev
[dev] > git add .
[dev] > git commit -m docs(README.md):分支修改專案說明文件
[dev] > git push origin dev
[dev] > git checkout master
[master] > git merge dev
[master] > git add .
[master] > git commit -m sync:主幹同步分支
[master] > git push origin master
```
# 四. 錯誤碼規範
有來商城專案錯誤碼需參照 **Java開發手冊【泰山版】** 的錯誤碼列表
[Java開發手冊【泰山版】](https://developer.aliyun.com/topic/java2020?utm_content=g_1000113416)
![](https://i.loli.net/2020/10/30/HRuZeND6f4SGiYJ.png)
[有來商城youlai-mall原始碼](https://github.com/hxrui/youlai-mall.git)
![](https://i.loli.net/2020/10/30/OKlBt5cuDjPZCAX.png)
# 專案原始碼
專案名稱 | github | gitee
---|---|---|
後臺 | [youlai-mall](https://github.com/hxrui/youlai-mall)|[youlai-mall](https://gitee.com/haoxr/youlai-mall.git)
管理前端 | [youlai-mall-admin](https://github.com/hxrui/youlai-mall-admin)|[youlai-mall-admin](https://gitee.com/haoxr/youlai-mall-admin.git)
微信小程式 | [youlai-mall-weapp](https://github.com/hxrui/youlai-mall-weapp)| [youlai-mall-weapp](https://github.com/hxrui/youlai-mall-weapp)
如果對你有幫助的話,希望能給個關注或star,有問題隨時聯絡我就好(微訊號:haoxianrui)
# 持續更新