項目地址
https://github.com/yinjihuan/kitty-cloud[1]
規範定義
每個公司,每個團隊都有不同的規範,有的人喜歡這樣,有的人喜歡那樣。所以一個團隊中最好有明確的一份規範,這樣代碼看起來就會很清爽。
本文只寫了一些最基本的,更全的大家可以參考阿里編碼規範。
API 層
autoconfigure:自動配置包名,類名以 AutoConfigure 結尾,比如 RemoteServiceAutoConfigure。
fallback:Feign 熔斷回退包名,類名以服務接口名開頭+FallbackFactory 結尾,比如 ArticleRemoteServiceFallbackFactory。
request:API 參數類包名,類名以 Request 結尾,比如 ArticleQueryRequest,ArticleSaveRequest。
response:API 響應類包名,類名以 Response 結尾,比如 ArticleResponse。
service:API 接口定義包名,類名以 RemoteService 結尾,比如 ArticleRemoteService。
BIZ 層
bo:業務對象包名,類名以 BO 結尾,比如 ArticleBO。
convert:實體類轉換包名,類名以 Convert 結尾,比如 ArticleBOConvert。
dataobject:數據對象(與表對應)包名,類名以 DO 結尾,比如 ArticleDO。
enums:枚舉包名,類名以 Enum 結尾,比如 ArticleStatusEnum。
manager:三方操作管理(RPC/Http/緩存)包名,類名以 Manager 結尾,比如 UserManager。
service:業務類包名,類名以 Service 結尾,比如 ArticleService。實現類放入子包 impl 裏面,類名以接口名開頭+Impl 結尾,比如 ArticleServiceImpl。
config:配置包名(Nacos 配置),類名以 Config 結尾,比如 ElasticSearchIndexConfig。
param:業務層參數包名,類名以 Param 結尾,比如 ArticleIndexSaveParam。
document:文檔(MongoDB,ElasticSearch)對象包名,類名以 Document 結尾,比如 ArticleDocument。
handler:定時任務類名以 Handler 結尾,比如 EsIndexBuildHandler。
PROVIDER 層
convert:實體類轉換包名,類名以 Convert 結尾,比如 ArticleBOConvert。
service:API 接口實現包名,類名以 API 接口名開頭+Impl 結尾,比如 ArticleRemoteServiceImpl。
服務啓動類以 ProviderApp 結尾。
方法名定義規範
get:單條數據獲取方法名以 get 開頭,比如 getArticle。
list:多條數據獲取方法名以 list 開頭,比如 listHotArticles。
save:數據保存方法名以 save 開頭,比如 saveComment。
remove:數據刪除方法名以 remove 開頭,比如 removeComment。
search:ES 搜索以 search 開頭,比如 searchArticle。
註釋規範
類註釋:必須要有,說明類的作用。
/**
* 評論業務接口
*
* @作者 尹吉歡
* @個人微信 jihuan900
* @微信公衆號 猿天地
* @GitHub https://github.com/yinjihuan
* @作者介紹 http://cxytiandi.com/about
* @時間 2020-02-13 20:44:04
*/
方法註釋:必須要有,說明方法的作用。
/**
* 保存評論
* @param param 評論參數
* @return 評論ID
*/
String saveComment(CommentSaveParam param);
字段註釋:必須要有,說明字段的作用。
/**
* 評論保存參數
*
* @作者 尹吉歡
* @個人微信 jihuan900
* @微信公衆號 猿天地
* @GitHub https://github.com/yinjihuan
* @作者介紹 http://cxytiandi.com/about
* @時間 2020-02-13 20:44:04
*/
@Data
public class CommentSaveParam {
/**
* 評論內容
*/
private String content;
/**
* 評論業務類型
*/
private int commentBizType;
/**
* 評論業務ID
*/
private String commentBizId;
/**
* 評論業務的用戶ID
*/
private Long commentBizUserId;
/**
* 用戶ID
*/
private Long userId;
}
參考資料
[1]
kitty-cloud: https://github.com/yinjihuan/kitty-cloud
關於作者:尹吉歡,簡單的技術愛好者,《Spring Cloud 微服務-全棧技術與案例解析》, 《Spring Cloud 微服務 入門 實戰與進階》作者, 公衆號 猿天地 發起人。個人微信 jihuan900, 歡迎勾搭。
相關推薦
掃下面的碼加技術羣,廣告勿擾
如有收穫,點個在看,誠摯感謝