当前位置: 首页 > 科技观察

写代码有这16个好习惯,可以减少80%非业务的bug

时间:2023-03-13 15:54:50 科技观察

写代码有这16个好习惯,可以减少80%的非业务bug这些习惯可以避免大部分的非业务bug!希望对大家有所帮助,感谢阅读,加油~github地址,感谢各位star1。修改代码后,记得测试自己“修改代码后,测试自己”是每个程序员都必须具备的基本素养。尤其不要有这种侥幸心理:我只是改了一个变量或者我只改了一行配置代码,不用自己考。改完代码后,尽量要求自己去测试一下,可以避免很多不必要的bug。2.方法输入参数要尽可能检查。输入参数检查也是每个程序员必须具备的基本素质。您的方法处理“必须首先验证参数”。比如入参是否允许为空,入参长度是否满足你期望的长度。尽量养成这样的习惯,很多“低级错误”都是“不检查参数”造成的。如果你的数据库字段设置为varchar(16),对方传的是32位的字符串,你不校验参数,“直接插入数据库异常”。3.修改旧接口时,要考虑接口的兼容性。很多bug都是修改旧的对外接口,但是“不兼容”造成的。大部分关键问题比较严重,可能直接导致系统发布失败。新手程序员很容易犯这个错误~因此,如果你的需求是修改原有的接口,尤其是这个接口对外提供服务的话,一定要考虑接口兼容性。比如dubbo接口本来只接收参数A和B,现在你加了一个参数C,你可以考虑这样处理。//OldinterfacevoidoldService(A,B);{//兼容新接口,传null代替CnewService(A,B,null);}//新接口,旧接口暂时不能删除,需要兼容。voidnewService(A,B,C);4.对于复杂的代码逻辑,添加清晰的注释编写代码时,不需要写太多的注释。好的方法变量命名是最好的注解。但是,如果是“业务逻辑复杂的代码”,真的有必要写“清晰的注释”。清晰的注释更有利于后续的维护。5.使用完IO资源流后,需要关闭。每个人都应该经历过这一点。如果你在windows系统的桌面上打开过多的文件或系统软件,你会感觉电脑卡住了。当然,我们的Linux服务器也是如此。如果在操作文件或数据库连接时不关闭IO资源流,IO资源就会被其占用,以至于其他人无法使用,造成“资源浪费”。所以在使用完IO流之后,可以使用finally来关闭它。FileInputStreamfdIn=null;try{fdIn=newFileInputStream(newFile("/jay.txt"));}catch(FileNotFoundExceptione){log.error(e);}catch(IOExceptione){log.error(e);}最后{try{if(fdIn!=null){fdIn.close();}}catch(IOExceptione){log.error(e);}}JDK7以后有更帅的closedstream写法,》try-with-资源”。/**关注公众号,捡蜗牛的小男孩*/try(FileInputStreaminputStream=newFileInputStream(newFile("jay.txt")){//useresources}catch(FileNotFoundExceptione){log.error(e);}catch(IOExceptione){log.error(e);}6.代码采取措施避免运行时错误(如数组边界溢出,被零除等)在日常开发中,我们需要采取措施避免“arrayboundaryoverflow,zeroout,Nullpointer”等运行时错误。类似的代码比较常见:Stringname=list.get(1).getName();//list可能越界,因为不一定有2个元素。因此,你应该“采取措施防止数组边界溢出”,正例:if(CollectionsUtil.isNotEmpty(list)&&list.size()>1){Stringname=list.get(1).getName();}7.尽量不要在循环中调用远程,或者操作数据库,优先考虑批量操作,远程操作或者数据库操作是“比较消耗网络和IO资源”,所以尽量不要调用远程在循环中,不要在循环中操作数据库,可以“一次批量回查,尽量不要循环多次查”。(但是,不要一次查太多数据,需要批500次)正例:remoteBatchQuery(param);反例:for(inti=0;i