选择程序员工具的实验方法
如果您喜欢这篇文章,可以在我自己的博客上阅读此文章。 像很多人一样,我有一种宠物编程范例,我喜欢适应各种代码库和使用的语言。 我想稍微标准化一下,并与世界分享。 它被称为“专注于明确性的最小共享状态编程” (我不太擅长命名)。 当我心中的应用统计学家开始教我道:“嘿,我可以尝试做一个小实验”时,我正在考虑如何向全世界和我自己证明它的价值。 所以我做到了,我写了两段代码来做同一件事,这是一个相当简单的任务。 一个是功能性的,另一个是我的宠物范例编写的。 我创建了一个网站,可以为参与者提供一个或另一个代码段,并请他们解释(在几段中)代码的作用。 代码很简单,任何能读代码的人只要摸了一下脑子,就能弄清代码的作用。 确实,在手动检查大约20%的答案(随机选择)后,没有一个是错误的。 但是,答案本身并不是我真正关心的数据。 相反,我要监视的是,人们花了多长时间得出答案,多少人在阅读完任务后放弃了却什么也没写。 我的想法是:“如果一种编程风格确实易于阅读,那意味着程序员应该有一个更轻松的时间将其转化为大脑中的抽象概念,然后转化为单词”。 因此,您可以通过查看某人能以多快的速度理解一个“简单”的代码,而不是查看他是否能够理解一个大型的代码库(其中包含许多问题)来部分评估编程风格的困难。 令我惊讶和不满的是,该研究未能证明我的假设。 在数百个答案的样本中,人们解释我的宠物范例代码与以纯功能样式编写的代码的速度有多大差异(在删除了一些可疑数据并且z得分> 5类异常值之后)…