开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第2天,点击查看活动详情
1、方法和类控制长度,尽量避免使用大类和长方法
为便于阅读和理解,单个函数的有效代码长度当尽量控制在70 行以内(不包括注释行),当一个功能模块过大时往往造成阅读困难,因此当使用子函数等将相应功能抽取出来,这也有利于提高代码的重用度。 单个类也不宜过大,当出现此类情况时当将相应功能的代码重构到其他类中,通过组合等方式来调用,建议单个类的长度包括注释行不超过 1500 行。
2、控制语句,包含大括号{}
所有的判断语句必须包含大括号,即使语句只有一行。
3、循环有终止,避免死循环,避免循环嵌套 循环中必须有终止循环的条件或语句,避免死循环。当在 for 语句的初始化或更新子句中使用逗号时,避免因使用三个以上变量,而导致复杂度提高。若需要,可以在 for 循环之前(为初始化子句)或 for 循环末尾(为更新子句)使用单独的语句。因为循环条件在每次循环中多会执行一次,故尽量避免在其中调用耗时或费资源的操作。
4、处理可变 String 的时候要尽量使用 StringBuffer 类。
StringBuffer 类是构成 String类的基础。String 类将 StringBuffer 类封装了起来,(以花费更多时间为代价)为开发人员提供了一个安全的接口。
5、三个以上判断时,switch case效率高于if else:
过多的if else 分句请将其转成 switch 语句或使用子函数。 switch case 的效率更高。
6、手动释放资源和数据库连接和流
不要过分依赖 JVM 的垃圾收集机制,因为你无法预测和知道 JVM 在什么时候运行 GC。尽可能早的释放资源,不再使用的资源请立即释放。可能有异常的操作时必须在 try 的 finally 块中释放资源,如数据库连接、IO 操作等
7、要想代码好,注释少不了
类上、方法、字段、关键不走添加注释,提高代码的可读性。
文件注释内容:文件名、描述信息、作者、生成日期,修改人、版本号,格式如下:
/**
@Title: LogcatUtil.java
@Description: 调试信息工具文件
@author: zhang
@date: 2018-08-08
@modifier:
@version: V1.0
*/
类和接口的注释:类名、类功能描述、作者、生成日期
/**
@ClassName: LogcatUtil
@Description: 用于程序中调试信息输出的工具类
@author: zhang
@date: 2018-08-08
*/
方法注释:方法名、功能描述、输入参数、返回值
/**
*
@Title: getInstance
@Description: 调试工具类实例获取方法
@author: zhang
@param: mountain
@param: water
@return: LogcatUtil
*/
成员变量、常量注释:对应的功能定义
/**
是否输出打印信息开关
true:输出打印信息
false:不输出打印信息
/
private final static boolean DEBUG_ENABLE = false;
/*
默认输出log信息的Tag标识
*/
private final static String DEBUG_TAG = "k_debug";
8、equals使用,把能确认的值作为前者
if("你好".equals(str)){}
9、方法参数不能过多,做多不要超过5个,否则Map封装
图中建议Map封装
10、最基本的命名规范
-
类命名使用驼峰式
-
方法名命名规范,方法命名使用小驼峰英文命名,禁止出现中文拼音。
1)获取单个对象使用get作为前缀
2)获取多个对象使用list作为前缀
3)获取统计数据使用count作为前缀
4)插入数据使用insert作为前缀
5)修改数据使用update作为前缀
6)删除数据使用delete作为前缀
7)批量操作使用batchXXX
-
变量与常量命名规范 变量名使用小驼峰命名,并且使用英文,禁止出现中文拼音 常量名使用全大写命名,并且使用英文,禁止出现中文拼音 boolean类型,变量不要用is开头。
11、编码风格
- 接口之间尽量解耦,不共用请求、响应类,每个接口都应该有请求响应体;
- 常量尽量定义在常量类中;
- 多张表的更新根据情况考虑使用事务,但@Transactional事务不要滥用,事务会影响数据库的 QPS;
- 非必要的业务逻辑单独提取出来,考虑用异步注解@Async修饰;
- 判空统一使用工具类方法;
- 相同之处的代码优先考虑提取公共