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

写代码的16个好习惯,减少80%的bug

时间:2023-03-20 11:00:37 科技观察

写代码的16个好习惯可以减少80%的bug避免大部分非业务bug!希望对大家有所帮助,感谢阅读,加油~github地址,感谢各位star。https://github.com/whx123/JavaHome1.修改代码后,记得测试自己“修改代码后,测试自己”是每个程序员必须具备的基本素质。尤其不要有这种侥幸心理:我只是改了一个变量或者我只改了一行配置代码,不用自己考。改完代码后,尽量要求自己去测试一下,可以避免很多不必要的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之后,有了更帅气的关闭流的写法,“try-with-资源”。/**关注公众号,捡蜗牛的小男孩*/try(FileInputStreaminputStream=newFileInputStream(newFile("jay.txt")){//useresources}catch(FileNotFoundExceptione){log.error(e);}catch(IOExceptione){log.error(e);}六、代码采取措施避免运行时错误(如数组边界溢出、被零除等)在日常开发中,我们需要采取措施避免“数组boundaryoverflow,divisionbyzero,emptyPointer”等运行时错误。类似的代码比较常见:Stringname=list.get(1).getName();//list可能越界,因为不一定有2元素。因此,你应该“采取措施防止数组边界溢出”,正例:if(CollectionsUtil.isNotEmpty(list)&&list.size()>1){Stringname=list.get(1).getName();}七、尽量不要在循环中调用远程,或者操作数据库,优先考虑远程操作或者批量操作数据库比较消耗网络和IO资源,所以尽量不要调用remotely在循环中或在循环中操作数据库。如果可以一次批量检查,尽量不要循环检查多次。.(但是,不要一次查太多数据,需要batch500次)正例:remoteBatchQuery(param);反例:for(inti=0;i