項目地址
https://github.com/yinjihuan/kitty-cloud
規範定義
每個公司,每個團隊都有不同的規範,有的人喜歡這樣,有的人喜歡那樣。所以一個團隊中最好有明確的一份規範,這樣代碼看起來就會很清爽。
本文只寫了一些最基本的,更全的大家可以參考阿里編碼規範。
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。
註釋規範
類註釋:必須要有,說明類的作用。
<code>/** * 評論業務接口 * * @作者 尹吉歡 * @個人微信 jihuan900 * @微信公眾號 猿天地 * @GitHub https://github.com/yinjihuan * @作者介紹 http://cxytiandi.com/about * @時間 2020-02-13 20:44:04 */ /<code>
方法註釋:必須要有,說明方法的作用。
<code>/** * 保存評論 * @param param 評論參數 * @return 評論ID */ String saveComment(CommentSaveParam param); /<code>
字段註釋:必須要有,說明字段的作用。
<code>/** * 評論保存參數 * * @作者 尹吉歡 * @個人微信 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; } /<code>
關於作者:尹吉歡,簡單的技術愛好者,《Spring Cloud微服務-全棧技術與案例解析》, 《Spring Cloud微服務 入門 實戰與進階》作者, 公眾號 猿天地 發起人。個人微信 jihuan900, 歡迎勾搭。