让重构工具对程序员更有吸引力
研究人员提出了一种让程序员使用重构工具的新方法,希望使这个过程更加直观,使程序员更有可能使用这些工具。
重构是指你改变了一段代码的结构而不改变代码的实际功能——你可能改变了它的工作方式,但最终结果是一样的。
你为什么要这么做?因为改变结构可以使程序员更容易地修改或更新整个程序。例如,重构可以使程序员更容易地识别和修复程序中的错误。
但是重构是很耗时的,并且当程序员手动输入更改时,可能会导致新的bug进入代码。因此,已经创建了一些工具来部分自动化重构过程,从而使重构过程更快、更不容易出错。然而,程序员通常不使用这些工具.
这些工具经常被忽略的原因之一是,使用它们要么需要拉出一个笨拙的下拉菜单,要么需要记住一列“热键”或键组合。
来自北卡罗来纳州立大学和波特兰州立大学的研究人员利用所谓的标记菜单开发了一种解决这个特殊问题的方法。在这种方法中,程序员可以高亮显示要重构的代码部分,然后单击鼠标,弹出一个标记菜单,该菜单以圆圈的形式出现,代码周围排列着各种重构选项——很像一个饼图。菜单中可用的重构选项各不相同,这取决于哪些工具适用于突出显示的代码。
研究人员设计了标记菜单,以便重构工具以一种对程序员有意义的方式布局。例如,具有相反功能的工具会在标记菜单中出现。在不同上下文中具有相似功能的工具会出现在各自标记菜单的相同位置。
早期的测试表明,程序员能够快速掌握标记菜单的过程,并且菜单中的工具布局是直观的。一个描述新菜单和早期测试的论文将于9月21日在IEEE视觉语言和以人为中心的计算研讨会在匹兹堡,宾。这篇论文是由爱默生Murphy-Hill北卡罗来纳州的莫因·阿亚兹法尔和波特兰州立大学的安德鲁·p·布莱克。这项研究得到了美国国家科学基金会的部分支持。
Murphy-Hill认为,下一步是让更多的程序员长时间使用标记菜单,以评估他们是否鼓励程序员更频繁地使用重构工具。研究人员还计划探索类似的标记菜单绘制工作是否也能在其他软件环境下发挥作用,比如照片编辑程序。
