Kitty-Cloud中的編碼規範

項目地址

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, 歡迎勾搭。

相關推薦

掃下面的碼加技術羣,廣告勿擾

如有收穫,點個在看,誠摯感謝

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章