结对编程这个概念我还是第一次听说。最开始接触pair programming的时候,我有一个很大的疑问”这样做不是浪费了一个人的劳动力吗”?
但是经过了这次结对编程的经历,我原来的想法实在是“too simple, naive”
存在就有其道理,结对编程必然有其可取之处
我(yutao)在与张宁合作的过程中,深刻体会到了结对编程的优势,它把两个人的力量合在一起,在提高开发速度的同时,也保证了代码质量,同时两个人也都能从对方身上学到很多东西。
当自己一个人写程序的时候,难免会犯一些很愚蠢的小错误,而这些小错误反倒需要大量的时间来debug,效率非常的低。
然而,当两个人坐在一起的时候,那些非常可笑的错误出现的几率就很小了,省去了很多debug的时间。
而且,经过两个人的讨论得到的方案肯定跟靠谱。
同时,两个人在一起的时候,一个人写累了可以换一换角色,效果也不错。
这一次我们组的任务是“给academic map的数据库中organizations的地理位置信息进行更新和矫正”,其实蛮简单的,就是原来的很多地理数据并不准确,我们也把它们校正。
要完成这个任务,我们大体需要三步:1. 用多种方式根据机构名称获得地理位置 2. 从很多数据中选出比较准确的数据 3. 人工测试我们的数据是否足够准确
第一项任务主要就是用一些api来geocoding,我们使用了google maps api, bing maps api和yahoo maps api, 不同api返回的数据质量和数量都不同,我们会有一个优先级。同时我们还发现很多学校相应的wikipedia页面都有人工编辑的地理位置信息,这个信息肯定是更加准确的,但是后来我们又发现有这种信息的学校很少,利用价值并不大。这第一部分用一句话来概括就是“爬数据”,我们预计用1-2天完成,实际上用了2天。
第二项任务就是根据数据进行分析。张宁同学对于excel的使用很熟悉,他通过excel的一些高级功能就轻松的搞定了这一步。这一步,我们预计用一天时间搞定,实际上两个小时就搞定了。
最后一项工作就是人工验证我们数据的准确率。由于我们面对的问题根本没有现成的“标准答案”,这就需要我们自己人工验证一小部分,很大程度就是体力活,很快就搞定了。事实证明,我们的结果还是很不错的。
下图是我们最终的数据:
下图是我们一起工作的照片^_^:
张宁是个非常靠谱的哥们,合作的很愉快。