實驗二 結對程式設計第二階段
一、實驗目标
1)體驗靈活開發中的兩人合作。
2)進一步提高個人程式設計技巧與實踐。
二 、實驗内容
1)根據以下問題描述,練習結對程式設計(pair programming)實踐;
2)要求學生兩人一組,***組合。每組使用一台計算機,二人共同編碼,完成實驗要求。
3)要求在結對程式設計工作期間,兩人的角色至少切換 4 次;
4)程式設計語言不限,版本不限。建議使用 Python 或 JAVA 進行程式設計。
三、實驗過程
1、代碼規範
1)代碼編排
a.縮進。4個空格的縮進(編輯器都可以完成此功能),不使用Tap,更不能混合使用Tap和空格。
b.每行最大長度79,換行可以使用反斜杠,最好使用圓括号。換行點要在操作符的後邊敲回車。
c.如無特殊情況,檔案一律使用UTF-8編碼。
2)文檔編排
a.子產品内容的順序:子產品說明和docstring—import—globals&constants—其他定義。
其中import部分,又按标準、三方和自己編寫順序依次排放,每組之間空一行。
b.不要在一句import中多個庫。
3)空格的使用方法(總體原則:避免不必要的空格)
a.逗号、冒号、分号前不要加空格。
b.操作符左右各加一個空格,不要為了對齊增加空格。
c.不要将多句語句寫在同一行,盡管使用‘;’也不允許。
4)注釋(總體原則:錯誤的注釋不如沒有注釋)
a.塊注釋,在一段代碼前增加的注釋。在‘#’後加一空格。段落之間以隻有‘#’的行間隔。
b.行注釋,在一句代碼後加注釋。
c. 至少使用兩個空格和語句分開,避免無謂的注釋。
5)命名的規範(總體原則:新編的代碼必須按下面命名風格進行,現有庫的編碼盡量保持風格)
a.盡量單獨使用小寫字母‘l’,大寫字母‘O’等容易混淆的字母。
b.函數命名使用全部小寫的方式,可以使用下劃線; 常量命名使用全部大寫的方式,可以使用下劃線。
c. 類名使用駝峰命名風格,首字母大寫,私有類可用一個下劃線開頭。
2、程式的總體設計

3、程式結對程式設計過程及功能實作情況
1)首先我和葉子讨論了Python代碼的規範,好久沒有學習Python了,真的好多都忘記了,一些文法也忘的差不多,是以我們兩個就百度了一下,然後進行讨論分析,整理,得到了如上的代碼規範,覺得每個語言都有它的特殊性和複雜性,這就需要我們在程式設計的時候多多注意了。(我們的每次讨論都是通過QQ螢幕分享的)
2)結對程式設計第一階段的時候,葉子百度了一篇生命遊戲代碼,我們兩覺得這代碼還挺好的,然後就借鑒了那篇代碼,之後,我們各自先研究研究代碼。
3)當我想要運作那篇代碼時,出現了許多錯誤,首先是numpy和matplotlib子產品缺少,我就百度如何添加這兩個子產品,發現需要安裝與Python相比對的numpy版本,之後在這裡卡住了(因為我百度了,也不知道哪個版本是适合的版本),我就告訴了葉子,葉子說她也花了好長時間安裝numpy子產品,結果安裝上了,還是不能運作成功,最後她找到了一篇文章,pycharm可以自己安裝numpy子產品,不用去下載下傳,我們也是花了好長時間在安裝子產品上面。總結下來,還是我們對pycharm軟體不熟,不知道它有什麼功能,有什麼東西,以後還得多用用,才能發現新的東西。(不過pycharm真的挺好用的)
4)接下來幾天,我們對代碼進行讨論、修改和優化更新。
首先,我們對生命遊戲程式總體進行了設計:先輸入地圖的面積大小,然後對細胞生命狀态進行初始化,确定地圖變化的間隔時間,然後計算周圍8個細胞的生命狀态,來确定下一次的生命狀态....接着我們對遊戲進行了子產品劃分,分為:細胞生命狀态初始化子產品、遊戲規則子產品、動畫子產品、主函數子產品。我們對這些子產品進行了分工合作。
a.我負責細胞生命狀态初始化子產品和動畫子產品的程式設計,葉子負責領航,在程式設計過程中,有好多代碼的文法忘了,幸虧有了葉子在邊上的提醒,我才完成了這些子產品,但是在fetch遠端倉庫的時候,明明之前這些指令弄了好幾遍,當時都很熟,但是在這次,我忘了一些,記得merge,但是忘了建立分支,記得建立分支,但是忘了merge,我這個腦子真的不好用,導緻修改一次檔案并送出花了很長的時間,還是多得練練。
b.葉子負責主函數子產品、遊戲規則子產品以及接收動圖的長度值的程式設計,我來負責領航,這樣分工合作很互補,也會讓程序快很多。
c.當所有子產品弄好的時候,發現出來的圖不能動,我們兩個也很困惑,它為啥不動了,葉子覺得那個間隔時間部分有問題,然後她對其進行修改,發現沒有問題,最後百度了pycharm有個預設設定,将這個設定不勾選的狀态,運作出來的圖就可以動了。
d.最後我們對代碼進行了更新優化,把一些備援的代碼給删除,複雜的轉換成簡單。
e.功能實作結果
f.push和merge過程
4.項目github位址
四、實驗小結
1、俗話說,“衆人拾柴火焰高",雖然結對程式設計隻有兩個人,但我感覺我們兩個“女女搭配,幹活不累,還事半功倍“,說實話,兩個人合作真的挺好的,因為一個人想不到那麼的全面,而且兩個人輪換身份,加快了實驗進度,提高了代碼的品質,最後保證明驗成功完成。
2、這次實驗很感謝葉子,主要我在實驗的過程中,有些東西弄不出來,加上家裡事情有點多,心情有點煩,幸虧了有了葉子,她鼓勵我,幫助我。
3、通過這次實驗,我也發現了自己有許多缺點,不僅是自己專業知識上的漏洞,還有自己容易被情緒困擾,容易被情緒帶着走,就是心情不好的時候,啥也不想幹,之後我會努力克服這個問題,加油,未來是美好的。