让建站和SEO变得简单

让不懂建站的用户快速建站,让会建站的提高建站效率!

技术发展

技术发展

Goland 2024.1终于援手DFA了,真真的bug的照妖镜

2024-11-06

好和坏

皆是征象

DFA是一种静态代码分析的形势,英文名唤作念data flow analysis 。她不错在技俩未启动的情况下就给咱们策划代码内部的一些变量的值,由此不错帮咱们发现一些潜在的问题bug。

比如空问题nil ,无穷轮回endless loop ,不变的条目判断等要领员一般在写代码的时候很难提前发现的问题。

DFA若何杀青展望bug

DFA会扫描代码,然后画出一幅图,这幅图抒发了代码的引申历程。基于这个图,Goland运转分析变量的值,包括不同期候的变量的及时值,这个过程止境肖似咱们手动debug 的要领的内心活动。

DFA告诉咱们通过手动debug 来发现bug也许太慢了,也不会加多咱们对展望bug的才略,归并个东谈主,1年诠释注解和5年诠释注解的时候,对归并个bug的debug 的领略水平需求可能是相同。

关联词,通过静态分析就不错提前展望bug,会大大减少天下重迭debug 的技巧老本。

底下来望望Goland 若何帮咱们发现这些bug。

第一个,不变的条目

如上,Goland 在DFA以后,提醒咱们err != nil ,因此咱们不错以为这个判断是不会引申到的。

因此不错删除这部分鼓胀的代码。

再看一个例子

如上是一个判断条目恒久是true,管束要领同上,删掉鼓胀的判断。

判断是要领的基本主题,着实无处不在,咱们在赞扬她的伟大的时候,也不要忘了if else 太多,也会带来代码惊叹相识上的横祸性的恶果。

鼓胀的判断也许不影响业务的才略体现,关联词不谈德,可能会为后头埋下许多悲催伏笔。

第二个,nil 提前展望

一个对象的一世至少会面临一次为nil 的时候,正如东谈主的生命相同,nil是一次生命的贬抑,亦然一次新的运转。

nil 以及null,不错说许多bug皆起首于他们,也许在咱们刚初学一门编程话语时,第一个遭受的问题即是它了吧,甚至于成为了一个bug恶梦。

淌若借助DFA的分析展望来发现他们,那真的要领员的福音啊。再也无谓我方的脑瓜子去花许多技巧找bug 的。

由于大部分话语抒发空是用null ,那么淌若你是其他话语的同学,对应的领导会造成null pointer。

留心,DFA的分析亦然需要技巧的,是以随机候淌若你撸码很快,可能会看到Goland 一些乌有的大略不足时的DFA 领导。

淌若你也但愿少一些闭幕,可爱Goland的DFA,那就快去尝鲜吧。

返回

Powered by 物联网资讯网 RSS地图 HTML地图

Copyright Powered by站群 © 2013-2024