我们为什么提出 PRECFIX 方法?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
首先,借鉴于 SZZ 算法,commit message 中往往包含了用户的修复意图,可以依据 commit message 来过滤出一部分数据。另外我们在调研 SZZ 算法数据时,发现 75%的修复提交都有这样的模式:删除一些缺陷代码,然后新增一些代码,比如修改了一个参数,在 diff(差异文件)中便是删除了一行, 新增了一行。 还观察到一个细节就是一个修复的操作往往涉及的文件数不超过两个,而一些不太规范的 commit 里面含有大量的文件,即使里面包含了修复行为,也会被稀释掉,引入不被欢迎的噪音。 同时我们也调研了在代码评审阶段用户比较关心的缺陷,如故障点、重构点、代码风格、性能问题等等,很多问题都有重复出现、重复修改的记录。我们萌生了从海量的提交历史中挖掘出重复常见的缺陷,防止开发者再次犯错的想法。于是我们提出了 PRECFIX,Patch Recommendation by Empirically Clustering。
答复内容摘自《云原生技术与架构实践年货小红书》,这本电子书收录开发者藏经阁 下载连接:https://developer.aliyun.com/topic/download?id=1127
阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。