风行的编码建议不必然即是安适编码建议

时间:2021-10-12 17:16:20

Stack Overflow是一个非常受欢迎的在线论坛/问答网站,许多措施员和软件开发人员使用它来查找特定编程问题的答案。
 

不幸的是,研究人员比来发明,许多孝敬者供给的相当一部分信息/代码包罗可操作的安适缝隙。由于常识渊博的用户不太可能发明这些,因此问题是:他们能否依靠网站的用户社区来辅佐他们区分安适和不安适的选择?
 

按照弗吉尼亚理工大学,慕尼黑产业大学和德克萨斯大学圣安东尼奥分校的一组研究人员比来的研究,答案是“不”。
 

研究成就

研究人员对安适相关的Stack Overflow帖子进行了研究,并对社区给出的内容评估进行了比拟安适和不安适的建议。为了确保安适和不安适建议之间的公平对照,他们专注于与Java安适性相关的讨论线程。
 

“我们体例了类似的安适相关的代码示例953个差此外群体和符号他们的安适,确定785分安适答案的帖子和644发不安适答案的帖子,”他们解释说。
 

“与安适建议对比,不安适的人有更高的不雅概念数(36,508对18,713),获得更高的分数(14对5),并且平均有更多的反复(3.8对3.0)。由信誉良好的所谓可信用户供给的帖子中有34%是不安适的。“
 

研究功效表白,该网站的投票系统无法识别和奖励安适答案。
 

别的,其声誉机制未能在安适问题方面指出值得信赖的用户。
 

研究人员指出,供给安适答案的用户的声誉远高于不安适答案的供给者,但幅度上的差异可以忽略不计,因此用户不能依靠声誉机制来识别安适答案。
 

其他查询拜访功效包孕:
 

接受的答案和片段反复性也不是用户识别安适编码建议的可靠方法。

不安适的答案在SSL / TLS类别中占主导职位地方(70%)。安适答案在其他类别中占主导职位地方(Asymmetric为 94%,Hash为 71 %,Symmetric为54%,Random为 52%)。

创建了反复的答案,因为用户询问了类似或相关的问题,并且一些用户盲目地复制和粘贴代码以回答更多问题并获得积分。好动静是,研究人员没有通过颁布不安适的答案来识别任何故意误导人的用户。


建议改造

研究人员指出,“令人担忧的是SO用户不能依赖信誉机制或投票系统来揣度答案的安适属性”,并指出比来的Meta Exchange讨论线程显示了Stack Overflow开发人员的挫败感过时的安适答案是最新的。
 

他们对工具构建器的建议是测试代码并探索检测和修复安适缝隙的要领,最好是以半自动或自动方法,以及Stack Overflow开发人员:
 

集成静态查抄措施以扫描提交下的现有帖子和帖子

自动向任何易受打击代码的帖子添加警告动静或特殊符号

鼓励版主或可信用户操作克隆检测技术来检测和删除反复的问题和答案。

从使用每个用户的单个声誉分数切换到使用反应常见/回答问题的每个标签的一个分数,以便可以更好地表征他们的专业常识。


在改造漫衍式代码示例的安适属性时,Stack Overflow用于激励用户的游戏化要领也是无效的。实际上,由于回答更多问题可以提高声誉,因此有效地鼓励孝敬者供给反复的,不太有用的或不安适的编码建议。