結對程式設計這個概念我還是第一次聽說。最開始接觸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的一些進階功能就輕鬆的搞定了這一步。這一步,我們預計用一天時間搞定,實際上兩個小時就搞定了。
最後一項工作就是人工驗證我們資料的準確率。由於我們面對的問題根本沒有現成的“標準答案”,這就需要我們自己人工驗證一小部分,很大程度就是體力活,很快就搞定了。事實證明,我們的結果還是很不錯的。
是我們最終的資料:
是我們一起工作的照片^_^:
張寧是個非常靠譜的哥們,合作的很愉快。