結對程式設計總結
這是第一次和別人合作一起實現某個需求,共同完成一個專案,確實是前所未有的體驗。首先從個人,我的搭檔和我所習慣使用的程式語言是不一樣的,所以商討後,我們決定用JAVA,而我之前是從來沒寫過JAVA程式的,所以我不得不在短時間內快速學會一門語言。好在對程式語言的特性較熟悉,JAVA的面向物件思想我也很熟悉,所以學習起來沒有太大的困難。我們的分工很明確,我負責UI介面的開發,搭檔負責後臺資料的管理。UI部分我也是第一次接觸,在網上和JAVA教程書籍的幫助下還是很順利地掌握了這一部分知識。UI相比命令列,和使用者的互動確實更方便,也讓我有了更多的開發動力,創造前所未有的事物真是一件令人興奮的事情。學習JAVA和UI設計花費了我不少的時間,以至於真正開始開發的時候搭檔因為國慶節放假的原因已經回家了,所以我們溝通只能通過QQ,開發也只能在兩地分別進行,不過這好像並沒有帶來太大的問題。完成各自的部分後,我們決定在最後兩天進行整合,在這之前,我都是擬定好了後臺需要傳來的資料,然後以假輸出的方式傳出,介面設想也十分清晰,需要從使用者那獲取什麼資料,傳給後臺,又要從後臺獲取哪些資料反饋給使用者,整個UI的按鍵互動都已經完成,可以跑通,只等待後臺的資料互動了。本以為各自完成了各自的部分後,整合應該會很順利,然而事實並非如此,儘管在前端後端各自除錯都沒有BUG的情況下,我們的整合依然出現了很多問題,我總結了一下,主要是以下的幾點。第一,程式碼風格差異帶來了很多困難,我在開發時多數用到了面向物件思想,所有函式的呼叫都需要通過物件,並且整個UI部分各個窗體的類設計都是封裝和打包好的,而搭檔更喜歡寫方法,而且方法零散沒有設計模組,也沒有打包,我很難直接呼叫,整合時只能將他的方法複製貼上到我的類設計中,以至於最後整個原始碼變得面目全非,個人感覺十分臃腫,因為搭檔的方法本來應該全部提出,獨立於我的類設計之外的。另一點是我們對需求的設想出現了偏差,以至於有些搭檔需要傳送的資料我在使用者介面中不好獲取,而有些我在使用者介面中獲取到的資料,搭檔完全沒有用到,主要是在使用者登入註冊方面出現了這方面的問題,好在在對部分後臺程式進行修改和拼接後還是按照我的想法實現了需求。總結原因在於我和搭檔的溝通不夠,在專案開發前期,對於前後端的介面沒有設計好,是在開發完成後才解決問題,在開發過程中也缺少交流,QQ上溝通的內容多是自己程式內部出現的問題而不是對接方面的問題。結對程式設計不容易,我更深刻地明白了1+1為什麼小於2,也懂得了溝通是需要成本的這個道理,但1+1仍然是大於1的,所以以後還是要多合作多進步。