写代码有这16个好习惯,可以减少80非业务的bug
1. 修改完代码,记得自测一下
改完代码,自测一下 是每位程序员必备的基本素养。尤其不要抱有这种侥幸 心理:我只是改了一个变量或者我只改了一行配置代码,不用自测了 。改完代码,尽量要求自己都去测试一下哈,可以规避很多不必要bug的。 2. 方法入参尽量都检验
入参校验也是每个程序员必备的基本素养。你的方法处理,必须先校验参数。比如入参是否允许为空,入参长度是否符合你的预期长度。这个尽量养成习惯吧,很多低级bug都是不校验参数导致的。
如果你的数据库字段设置为varchar(16),对方传了一个32位的字符串过来,你不校验参数,插入数据库直接异常了。3. 修改老接口的时候,思考接口的兼容性。
很多bug都是因为修改了对外老接口,但是却不做兼容导致的。关键这个问题多数是比较严重的,可能直接导致系统发版失败的。新手程序员很容易就犯这个错误了哦~
所以,如果你的需求是在原来接口上修改,,尤其这个接口是对外提供服务的话,一定要考虑接口兼容。举个例子吧,比如dubbo接口,原本是只接收A,B参数,现在你加了一个参数C,就可以考虑这样处理。//老接口 void oldService(A,B);{ //兼容新接口,传个null代替C newService(A,B,null); } //新接口,暂时不能删掉老接口,需要做兼容。 void newService(A,B,C)4.对于复杂的代码逻辑,添加清楚的注释
写代码的时候,是没有必要写太多的注释的,好的方法变量命名就是最好的注释。但是,如果是 业务逻辑很复杂的代码 ,真的非常有必要写 清楚注释 。清楚的注释,更有利于后面的维护。 5. 使用完IO资源流,需要关闭
应该大家都有过这样的经历,windows系统桌面如果打开太多文件或者系统软件,就会觉得电脑很卡。当然,我们linux服务器也一样,平时操作文件,或者数据库连接,IO资源流如果没关闭,那么这个IO资源就会被它占着,这样别人就没有办法用了,这就造成资源浪费。
所以使用完IO流,可以使用finally关闭哈FileInputStream fdIn = null; try { fdIn = new FileInputStream(new File("/jay.txt")); } catch (FileNotFoundException e) { log.error(e); } catch (IOException e) { log.error(e); }finally { try { if (fdIn != null) { fdIn.close(); } } catch (IOException e) { log.error(e); } }
JDK 7 之后还有更帅的关闭流写法,使用try-with-resource。/* * 关注公众号,捡田螺的小男孩 */ try (FileInputStream inputStream = new FileInputStream(new File("jay.txt")) { // use resources } catch (FileNotFoundException e) { log.error(e); } catch (IOException e) { log.error(e); }6.代码采取措施避免运行时错误(如数组边界溢出,被零除等)
日常开发中,我们需要采取措施规避数组边界溢出,被零整除,空指针等运行时错误。
类似代码比较常见:String name = list.get(1).getName(); //list可能越界,因为不一定有2个元素哈
所以,应该采取措施,预防一下数组边界溢出,正例:if(CollectionsUtil.isNotEmpty(list)&& list.size()>1){ String name = list.get(1).getName(); }7.尽量不在循环里远程调用、或者数据库操作,优先考虑批量进行。
远程操作或者数据库操作都是比较耗网络、IO资源的,所以尽量不在循环里远程调用、不在循环里操作数据库,能批量一次性查回来尽量不要循环多次去查。(但是呢,也不要一次性查太多数据哈,要分批500一次酱紫)
正例:remoteBatchQuery(param);
反例:for(int i=0;i
iPhone关机后仍可以定位追踪!网友手机丢失也不怕了苹果宣布ios15系统到现在,已有一段时间了,虽然发布会上没有介绍太多的功能,但是实际上,ios15隐藏了不少实用的功能。比如,ios15系统对查找功能进行了升级,可以支持iPho
三星GalaxyZFold3即将发布与上一代比如何作为5G时代而生的折叠屏手机产品,这二年受到一众手机大商追捧,2021年多家厂商都发布了折叠屏产品,还有更多也正在路上,而做为折叠屏手机的鼻祖三星,自然引领了折叠屏形态的趋势,备受
最后倒计时!OPPOWatch2即将开售,智能长续航表现了解一下熟悉数码圈的小伙伴都知道,在初代OPPOWatch刚推出时,其极具辨识度的外观以及智能表现着实赢得了很不错的口碑。正因为有了第一代产品的成功,使得将于8月6日迎来开售的OPPOWa
分享一下自己最新配置的电脑处理器10700k主板M12F内存皇家戟426684(实际只能4000c17用)电源雷鹰850w显卡3080ti超龙散热龙神360机箱太阳神硬盘970evoplus1T2西数机械2
iOS15重拳出击,Siri被取消22条指令iOS15中加入了许多新功能,但苹果最近却宣布将弃用数十条Siri指令。Siri弃用的主要是针对SiriKit框架中与第三方应用集成的指令,苹果列出了将在iOS15iPadOS15
滴滴事件对中概股的影响扭腰人是贝瑞研究旗下的美股采访类播客节目,立足纽约深度对话华尔街投资人士,解析热点事件背后透露的投资逻辑。海投全球CEOJerry王金龙于七月中旬受邀参与本次采访,为您揭秘滴滴上市
比索尼X80J好?小米电视ES测评6月28日小米上线了两款新机型,分别是小米电视6至尊版和小米电视ES系列,6代自然不必说,有了重大革新,直接对标索尼X95J,网上测评也很多,激起了热烈讨论,小米终于站起来了。而E
黑客攻击币价下跌,PopsicleWault损失超2100万美元有虚拟货币以来,币圈就成为了黑客的提款机。交易所的实力差异很大,对系统安全的重视程度也不同,所以被黑客攻击的事件频频发生。8月4日,跨链收益率提升平台PopsicleFinance
惹事了!美团腾讯投资的易久批被抓了个现行易久批是那种让我们眼睛一亮的企业,公司创始人思维清晰,业务脚踏实地,发展步步为营华平投资董事总经理张磊曾如是评价易久批这家快消品产业互联网平台。据公开报道,2018年9月,易久批获
1600得苹果x和2000多得安卓新机哪个好点?感谢您的阅读!1600的苹果x和2000多的安卓新机哪个好点?1600块钱的iPhoneX和2000多的安卓手机,我们该选择哪一款?实际上我们也很清楚现在的iPhoneX,一般这样
7月手机性能排行榜出炉!看看你的手机排在第几?近日,安兔兔公布了7月份手机性能天梯榜。由于是安卓旗舰排行,所以苹果iOS和华为鸿蒙并未参与其中。首先是旗舰手机排行榜从图中可以看到,上榜的十部手机全部都是骁龙888的机型,虽说今