Kitty-Cloud中的编码规范

2020-04-30  本文已影响0人  猿天地

项目地址

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。

注释规范

类注释:必须要有,说明类的作用。

/**
 * 评论业务接口
 *
 * @作者 尹吉欢
 * @个人微信 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;
}

关于作者:尹吉欢,简单的技术爱好者,《Spring Cloud微服务-全栈技术与案例解析》, 《Spring Cloud微服务 入门 实战与进阶》作者, 公众号 猿天地 发起人。个人微信 jihuan900, 欢迎勾搭。

上一篇 下一篇

猜你喜欢

热点阅读