返回

Pecker:一种寻找项目中不用代码的自动利器

IOS

Pecker,请允许我向您郑重推荐它,是一款能自动探测项目中那些空摆着毫无建树的代码的工具。不少人需要这样一款工具,但事实是,诞生一款性能优良的探测利器殊为不易。它的出现并非凭空一现,实际,在敏捷开发生态中,软件需求变更的频率逐日递增,多如牛毛的代码如白驹过隙,如同水流逝,俯仰间便觉恍若隔世,且暗然不知来日方长。因此,代码质量和效率亟待精进。然而,Pecker的任务绝不仅仅局限于探测无用代码,更高的目标是要促使我们意识到和掌握健全代码质量的要旨何在,进而保障未来的代码能健全如初。

Pecker是一门依托于静态分析和“内置”编译器范畴的程序分析工具。鉴于Pecker完全依赖于静态分析,由编译器对代码执行“窥探”并作出判别,因此我们无须采取生成式分析(如基于运行数据和单元测试的覆盖率的动态分析),即便如此,也不可因此轻言Pecker侧重于编译器 层面。反观市场上绝大部分探测工具,它们聚焦运行时环境,而Pecker独辟蹊盘。能发现迄今为止难为工具侦测或觉察,甚或未曾为工具充分验证的无用代码,这究竟意味着什么?一旦有一无用的类继承了一个父类,父类相关祖宗十八代的代码皆需过堂公审,字字不差,颗粒必究,否决雷池,方可告慰列祖列宗!换言之,依赖Pecker的代码质量把控更加准确,因为我们通过分析更加顶端的层级,更能发现其渗透的各个层面。

再者,跟那些基于既有标准的常规工具(一般测试覆盖率为准绳)相比,工具炼就大成离不开实际开发条件和使用环境的滋养。Pecker别开生面,它得以构建编译器自生的事实标准,从而打破了相关工具“养而不教”的成规,听任众说纷纭的评判尺度左右。

敏捷开发生态中急剧变形的软件需求以及代码流经其间留下的星星足迹,这些轨迹往往并不指引开发或验证新代码的必要(难怪它们被抛却脑后),而是意味着代码的衰朽、变质。这些衰朽的代码会带来许多问题。

静态分析工具(例如Pecker)给出的信息比运行时分析工具更加深刻和有益。在无用代码的侦测方面,一些被现有工具坐视不察的代码,需要静态分析工具来发掘。或许有人会对这种说法颇有微词:无用代码的判定毕竟太过主观和凭空臆断了。但Pecker有一套严格和兼容的理论标准,可将二者之间的谬误率最小化。事实证明,由计算机全盘托管判定结果,准确度高,效率快。况且,代码生而有涯,由Pecker对其质量进行验证,等于让其免遭篡改和乱改的劫难。

由Pecker驱动的分析引擎,把遍历过程控制在最大限度内(约束条件见项目)。尽管工具性质上无损效率,而为防斩不断理还乱的“挂载”代码,Pecker也使用可调节的预测机制以确保高性能。由于源于编译器层面的分析结果以仓促收场的无用代码开刀太过于冒险,工具会识别高概率无用的代码,而后纳入“审查”黑单,以备用户优先查阅。随着时间的推移,Pecker会越发准确。

Pecker是了解代码质量利器,也是一把探寻提高代码质量的利刃。在项目中引入此工具,能有效提升项目的效率、质量以及可维护性,为日新月异的开发变革添砖加瓦。Pecker虽然尚不完满,但无疑在代码质量保障的崎岖小径上添砖加瓦。愿我们的生活多一点Pecker这样称职的工具,少一点无用代码。