什么是低代码?低代码开发平台靠谱吗?低代码平台优缺点
715
2022-05-29
一、编程规约
命名风格
抽象类命名使用Abstract或Base开头;异常类命名使用Exception结尾;测试类命名以Test结尾。
布尔类型的变量不要加is前缀。
如果模块、接口、类、方法使用了设计模式,应在命名时体现出具体模式。
暴露出来的服务一定是接口,内部的实现类用Impl后缀与接口区别。
枚举类名建议带上Enum后缀,成员名称全部大写,单词之间用下划线隔开。
获取单个对象的方法用get作为前缀。
获取多个对象的方法用list作为前缀。
获取统计值的方法用count作为前缀。
插入的方法用save/insert作为前缀。
删除的方法用remove/delete作为前缀。
修改的方法用update使为前缀。
数据对象:xxxDO。
数据传输对象:xxxDTO。
展示对象:xxxVO。
不要使用一个常量类维护所有常量,要按常量功能进行归类,分开维护。
采用4个空格缩进,禁止使用Tab控制符。
注释的双斜线与注释内容之间有且仅有一个空格。
多个参数逗号后边必须加一个空格。
OOP规约
直接用类名访问静态成员,避免通过一个类的对象引用访问此类的静态变量或静态方法,造成无谓的编译器解析成本。
所有覆写的方法,必须加@override注解。
不使用过时的类或方法。
构造方法里面禁止加入任何业务逻辑,如果有初始化逻辑,要放在init方法中(java web)。
在循环体内,字符串的连接方式使用StringBuilder的append方法进行扩展。
不允许被继承的类,使用final关键字修饰。
不允许修改引用的域对象,使用final关键字修饰。
不允许重写的方法,使用final关键字修饰。
不允许运行过程中重新赋值的局部变量。
不允许外部直接通过new来创建对象,那么构造方法必须限制为private。
工具类不允许有public或default构造方法。
类非static成员变量并且与子类共享,必须限制为protected。
仅在本类中使用的变量,必须限制为private。
仅在本类中使用的方法,必须限制为private。
类成员方法仅对继承类公开的,必须限制为protected。
集合处理
不要在foreach循环中进行元素的remove/add操作。remove元素请使用Iterator方式,如果并发操作,需要对Iterator对象加锁。
使用entrySet遍历集合K/V,而不是用keySet方式遍历。
并发处理
获取单例对象需要保证线程安全,其中的方法也要保证线程安全。
注释规约
所有枚举字段必须加注释说明数据字段的用途。
其他
获取当前毫秒数用System.currentTimeMillis()而不是用new Date().getTime();
二、异常日志
异常处理
finally块必须对资源对象、流对象进行关闭操作。如果有异常也要做try-catch操作。
日志规约
日志文件推荐至少保存15天,因为有些异常具备以周为周期发生的特点。
三、单元测试
1、编写测试代码应遵守BCDE原则,以保证被测试模块的交付质量。
B:Border,边界值测试,包括循环边界、特殊取值、特殊时间点、数据顺序等。
C:Correct,正确地输入,并得到预期的结果。
D:Design,与设计文档相结合,来编写单元测试。
E:Error,强制错误信息输入(如非法数据、异常流程、非业务允许输入等),并得到预期的结果。
四、安全规约
隶属于用户个人的页面或者功能必须进行权限控制校验。
用户敏感数据禁止直接展示,必须对展示数据进行脱敏。
用户输入的SQL参数严格使用参数绑定或者METADATA字段值限定,防止SQL注入,禁止字符串拼接SQL访问数据库。
用户请求传入的任何参数必须做有效性验证。
禁止向HTML页面输出未经安全过滤或未正确转义的用户数据。
五、MySQL数据库
建表规约
varchar是可变长字符串,不预先分配存储空间,长度不要超过5000个字符,如果存储长度大于此值,则应定义字段类型为text,独立出来一张表,用主键来对应,避免影响其他字段的索引效率。
表必备三个字段:id、gmt_create、gmt_modified。
表的命名最好加上“业务名称_表的作用"。
库名与应用名称尽量一致。
当单表行数超过500万行或者单表容量超过2GB时,才推荐进行分库分表。
索引规约
超过3个表禁止join。需要join的字段,数据类型必须绝对一致;当多表关联查询时,保证被关联的字段需要有索引。
页面搜索严禁左模糊或者全模糊,如果需要请通过搜索引擎来解决。
SQL语句
禁止使用存储过程,存储过程难以调试和扩展,更没有移植性。
不得使用外键与级联,一切外键概念必须在应用层解决。
在代码中写分页查询逻辑时,若count为0应直接返回,避免执行后面的分页语句。
谢谢阅读。
Java SQL
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。