常见代码问题
未捕获潜在的异常
API返回做判断;切记默默吞掉异常
低性能
批量调用接口或者访问DB;处理超时,降维多重循环;复用大对象
影响范围过大
谨慎修改公共函数、基础函数、基类等;充分测试;评估影响范围
单测问题
重要业务逻辑必有单测;单测全部通过;代码bug或变更单测覆盖;增加异常单测
缺乏必要日志
重要而关键的实例状态、代码路径及API调用,打印INFO日志;异常捕获并打印Error日志
错误码不符合规范
错误码集中在一个类管理,切忌分散在代码中;遵循团队规范
参数检测缺乏或不足
参数值类型;参数业务类型;契约式编程
API参数传递错误
参数类型具体化;避免相同类型参数相邻
引用错误
有多个重名类时仔细核对类的全名;添加新类时先搜索重名类引用
细节错误
数组越界、JSON解析出错、函数参数传递出错、API版本不对、使用网上拷贝的未经测试的代码、不成熟的算法、传值与传引用、相等性比较
文不符实
查询接口中有增删改操作,引发故障的定时炸弹
跨语言或跨系统交互
空值、JSON、数组的不同解析;接口与交互约定;联调确认
可维护性问题
硬编码
魔法值(枚举代替)
写死的配置(配置项)
临时加的逻辑和文案(抽离管理)
通用逻辑与业务逻辑耦合
通用处理流程抽离,业务逻辑以回调函数传入
复用而非混杂
直接在原方法里加逻辑
新增一个函数,然后在原方法中调用并说明原因
多业务耦合
先划分业务边界,定义好接口设计和服务依赖关系,再着手开发
代码层次不合理
代码的放置位置不符合当前架构设计约定;dao调用service
不用多余的代码
后续维护时造成困惑;确认不用及时删除
缺乏必要的注释
重要和关键点的代码;特殊处理缺乏说明