来源:互联网 作者:|发布时间:2018-10-08|0浏览
讲诉冗余代码检测与分析的导言
前段时间,我开发了一款工具,分析源代码中的依赖关系。它使用Roslyn创建C#源代码抽象语法树,使用libclang创建C++源代码抽象语法树。为了验证它是否可以取得预期效果,我接下来实现了识别未使用方法的功能。结果显示,C#代码解析比C++代码解析准确得多,因此,我选择把重点放在C#分析器的进一步开发和其他人开发的更复杂的C#代码上。
起初,该工具会标记出冗余方法所在的行,在弄清楚问题范围之后,我实现了自动删除那些行的选项。一个典型的分析过程会多次执行这个工具,尽可能地修剪源代码树。接下来是多个变更还原循环,以便可以成功地构建并通过测试。失败的原因是工具行为异常或者已知的局限性,例如,反射或代码契约。
我选择了多个自己用过而又想回馈的C#项目,用它们的GitHub库训练了这个工具。最后,我向社区提交了pull request,请求他们讨论我在自己的分支里做的变更。由于这个工具很苛刻,而我又是第一次在网上与人交流,不懂技巧,所以希望我没有冒犯太多的人。在向社区做贡献及参与后续讨论的过程中,我对问题的理解更深入了,本文旨在将我的所得回馈给更广泛的社区。
Free course or class
18986369768
Copyright©襄阳金砺教育科技有限公司襄阳网站建设:创杰科技 鄂ICP备2023020818号-1