codereview CodeReview 常见代码问题( 上 )( 三 )
错误代码超出规格
错误码本身不是代码问题,但是基于整个组织和工程的可维护性,可以避免错误码作为错误不符合规范。方法:对错误码进行可控管理,并按标准使用。您可以使用通用文档维护或开发一个错误代码管理系统来避免相同的错误代码。
【codereview CodeReview 常见代码问题( 上 )】参数检测的缺乏或不足
参数检测是业务处理的第一个重要过滤器。如果参数检测不够,会导致脏数据进入服务处理,甚至导致异常,甚至会将脏数据插入数据库,给后续维护造成大量的维护成本。方法:采用“契约式编程”,规定前提条件,单次测试覆盖。
对于复杂的业务应用,优雅的参数检测处理尤为重要。根据“集中管理、处理一致”的原则,可以建立一个参数检查器包,并设计一个可重用的微框架,以统一、集中的方式测试应用程序中的所有参数。参数检测主要包括:(1)参数的值类型,根据值类型不同可以作为基础检测;(2)参数的业务类型,包括基本非业务参数、基本业务参数和具体业务参数。不同的参数业务类型有不同的处理方式。将参数值类型与参数业务类型相结合,以及一致的异常捕获处理,可以实现可重用的参数检测框架。参数检测可以使用普通的分支语句或注释。批注可读性更强,但单选题写作更有技巧。
引用错误
对于动态语言,由于缺乏强大的静态代码检测,要特别注意类引用的修改,这可能会导致其他依赖服务出现错误;尤其是修改同名引用的时候。网上失败有教训。PHP项目中有两个Format类,一个是basic,一个是业务相关的。更改后的类文件中最初没有指示引用,默认采用基本Format类的实现。然后提交者在修改后的文件头增加了对业务格式的引用,导致依赖基本格式类的其他业务无法正常工作。避免引用错误的方法:向文件添加新的类引用时,首先在文件中搜索同名类的引用。如果是的话,你要格外小心。
错误的细节
比如数组越界、JSON解析错误、函数参数传递错误、API版本错误、在线复制未经测试的代码、算法不成熟、传递值和引用、相等比较等。
对于数组越界错误,通常需要为空数组和数组大小的边界值+1和-1编写一个测试来避免它。使用网上复制的代码可以节省时间,而且必须经过处理,覆盖一个单独的测试;传递值和传递参考可以通过单次测量避免误差;对象的相等比较不应使用等号=。
多重条件
类似于if((!A ||!b)和amp& ampc | |(D & amp;& ampe)的多重条件要仔细推敲。方法:最好拆分成几个有意义的变量。isNotDelay =!A ||!b;isNormal = C;isAllow = D & amp& ampe;cond = isNotDelay & amp& amp是正常的|是允许的.
这篇课文不是真的
不一致是一个可能导致在线失败的错误。例如,一个getXXX函数,结果还做添加、添加、更新操作。对故障排除和产品操作维护有很大的杀伤力。所以命名必须与物质一致,除非是故意破坏。
跨语言或系统交互
小型互联网创业公司通常采用多语言开发,比如PHP作为前端,Java作为后端服务。动态类型语言与静态类型语言交互时,会出现一些问题。比如PHP的对象通常是一个Map。如果是空,会写成[],但是[]会被Java解析成列表。这样,如果数据库的值是通过PHP写的,那么这个值可能要么是JSON对象字符串,要么是空数组字符串,Java解析起来就有点尴尬了。同样,Java调用PHP接口时,非标准的PHP接口可能会返回一个列表,也可能会返回true或false,Java解析并返回结果会很尴尬。因此,在跨语言交互的边界上,应该特别注意这些类型转换的差异。
推荐阅读
- 南瓜和面粉最常见的做法,胖嘟嘟的肉虫子,十分可爱
- 省中医名医教路吸氧可以长寿? | 超过两成老人都有!这种症状为什么那么常见?
- 什么时间吃降糖药效果更好?10类常见降糖药,服用时间各不同
- 运动神经元病常见治疗方法有哪些?
- 王者荣耀:新赛季60级奖励终于加入了不常见的皮肤,终于有你了
- 警惕!牙膏中的这种常见物质,会引发肠道炎症
- 从一个善良的姑娘到“恶媳妇”,最常见的三种可能
- 健康公开课 | 家有儿女,冬季常见病应对技能get一下
- 家有儿女,冬季常见病应对技能get一下
- 紧急提醒!女子体内取出2条活虫,竟是这种水果惹祸!四川很常见