代码注意事项
代码指南:
1. 代码必须format,用idea默认的代码风格来保证风格一致
2.一律使用驼峰法命名
3.类名大写,名词;方法名:动词或者动词+名词/形容词;变量名:名词/形容词
4.单词不用简写,例如Description不要写成desc,以便尽可能的在不看代码上下文的情况下就能读懂代码想干什么
5.变量/属性命名,尽量不要在名字里面带上List这样的字样
命名示例:List<Food> foods;
6.注释必须有意义,无意义的注释不要有。API和Struct的注释必须用javadoc方式,方便生成文档。
7.代码与数据分离,不要混合编码,也不要有magic number/magic string ,可以使用枚举、常量替代之
8.return 语句只有一行的时候,保持统一的风格,要么带花括号写3行,要么写一行,不要用缩进写2行
意思是:
要么写 if condition return xx;
要么写 if condition {
return xx;
}
9.可以用短路的地方尽可能的用短路,不要if层层嵌套
10.方法有默认参数的需求用重载,不要在调用的时候传默认值
11.API与Service的类命名有冲突,API统一在名字前面加S
12.使用String.valueOf 代替toString 防止空指针异常,推荐使用Optional
13.MySQL建表每张表都要有createdAt和updateAt字段并且加好索引
14.面向接口编程,API先行,定义完成并且review后可直接合并进入master或者develop
15. 禁止try{}catch(Exception e){log.error(e)} 这种写法,禁止吞没未受检异常
16. 所有写入db的数据,必须校验类型长度,例如int/bigint,varchar要在业务代码中对length进行校验,防止某些字符串长度超限(使用Size注解)
API设计原则:
1.Get什么就返回什么
例如:Food getFood(int);
2.接口中不出现Boolean类型的参数,一个接口做且只做一件事
3.接口参数不超过5个,参数数量>=5的时候要考虑参数聚合
4.接口设计返回List,就不要返回null。返回值要对应接口类型
5.文案要做到对用户友好,并且一个接口不要出现一模一样的文案,有的时候需要根据文案、截图定位代码
6.不要用Date,用LocalDate,防止出现时区不对的问题
7.翻页接口参数名用offset和limit
8.crud遵循接口命名原则:create、get、update、remove
9.List类型的返回值注意接口名要为复数
代码质量原则:
1.重复代码不要有,DRY原则
2.代码必须精简,KISS原则
git开发规范:
1.请不要直接在master分支开发,功能或修复bug新开分支进行开发
2.为了保证项目分支命名一致,我们约定以下分支命名规则:
1).新功能分支,命名示例:feature/dist-api
2).修复bug分支,命名示例:bugfix/qrcode-path
3).热修补分支,命名示例:hotfix/add-algorithm
4)分支命名以feature/task/bugfix/hotfix/开头,后面跟分支名字,单词之间用 - 分割
5)API定义从master切分支,保证master、develop上的API版本一直都是最新并且一致的
让我们共同努力,自我要求严格一些,就算时间紧、任务重也不能以降低代码、产品质量为牺牲。