結對程式設計(鋪墊)
1.對敏捷開發和結對程式設計的理解
首先,敏捷開發,簡單的說,敏捷開發是一種以人為核心、迭代、循序漸進的開發方法。怎麼理解呢?首先,我們要理解它不是一門技術,它是一種開發方法,也就是一種軟體開發的流程,它會指導我們用規定的環節去一步一步完成專案的開發;而這種開發方式的主要驅動核心是人;它採用的是迭代式開發;在敏捷開發中,軟體專案的構建被切分成多個子專案,各個子專案的成果都經過測試,具備整合和可執行的特徵。換言之,就是把乙個大專案分為多個相互聯絡,但也可獨立執行的小專案,並分別完成,在此過程中軟體一直處於可使用狀態。
對於結對程式設計,也就是兩個人組隊寫乙個程式,其中,乙個人叫driver,另乙個人叫observer,driver在程式設計**,而observer在旁邊實時檢視driver的**,並幫助driver程式設計。並且,driver和observer在一起時可以相互討論,有效地避免了閉門造車,並可以減少後期的code review時間,以及**的學習成本。實驗證明,平均下來,結對程式設計時間花銷比單人程式設計增加10%的時間,但也會比單人程式設計減少15%的**bug。如果再算上後期**的維護和學習成本,結對程式設計比單人程式設計更有效率,還更為節省成本。 所以無論是對開發團隊還是對於business,結對程式設計都會是非常不錯的programming practice。另一方面,兩個有經驗的人可能會發現配對程式設計裡沒有什麼技能的轉移,但是讓他們在不同的抽象層次解決同乙個問題會讓他們更快地找到解決方案,而且錯誤更少。兩個程式設計師具有相同的缺點和盲點的可能性很小,所以我們當我們採用結對程式設計的時候會獲得乙個強大的解決方案。而這個解決方案恰恰是其它軟體工程方法學中所沒有的。
2.組隊和選題
(1)首先,我們通過學習通組隊,在軟體工程的課程的中,我們建立一支雙人小隊,取名零零七,邀請隊友加入隊伍即可。
(2)通過對課題的研究與**,我們選擇了生命遊戲作為此次實驗的課題,生命遊戲是john conway 發現的一種遊戲。 其底層規則非常簡單。 在乙個二維點狀平面上, 每乙個點遵循如下規則:
少於2個鄰居的點,在下一回合死去。模擬生命較少的情況。
在周圍鄰居數量是2和3時,下一回合保持不變
在周圍鄰居數量大於3時,下一回合死去,模擬生命擁擠的情況。
當乙個空白的點,周圍的鄰居數量是3個是, 下一回合將會產生乙個新的點。模擬繁殖。
3.github學習過程
fork專案完成後,我們開啟git,進入本地資料夾se2020-git-course,並在此目錄下進行clone(資料夾在之前的實驗已經建立,注意clone位址為fork專案的位址)
在這之後,我們進行配置本地庫和原始庫的關聯,用於與主開發者保持同一進度,從原始庫中抓取最新以保持進度。
我們現在可修改己檔案,新增自己的組隊和選題等相關資訊,完成後進行提交操作,push到我們的fork專案主頁中
在push的操作過程中,要注意輸入自己的github帳號和密碼(由於自己的疏忽,直接將輸入使用者名稱過程回車略過,導致在驗證密碼的時候發生錯誤,顯示匿名賬戶,經改正後完成)
然後我們通過pull request操作等待開發者merge,在此過程中要注意,你是否和主倉庫產生conflict,如果產生,你需要更新同步主倉庫,如果沒有,你只需等待郵件通知結果即可。
下面是我組新增的資訊
並且我們需建立專案倉庫位址,用於實驗
等待實驗後續......
C 入門鋪墊
這是一篇樸實的入門教程,咳咳,好吧它並不準確,因為掌握了這裡面的所有內容也並不能算是c 入門了。寫這個是因為感覺很多書裡一上來就有很多理論知識和專業術語,0基礎的童鞋看起來很費勁。所以我想寫個能幫助0基礎的童鞋能在讀教程的時候不那麼頭疼的 初級教程。這裡便是在簡要地介紹其中的 編寫部分。我是覺得程式...
從結對程式設計到結對工作
熟悉極限程式設計的人都知道,在極限程式設計的十二項實踐中,有乙個非常重要的實踐就是結對程式設計,也就是兩個人坐在同一臺電腦前面,使用相同的鍵盤和滑鼠來開發同樣的乙個模組,乙個負責 的鍵入,另外乙個人負責盯緊可能出現的錯誤,包括低階錯誤和方向性的錯誤。而且,當乙個問題對其中乙個人難以解決而恰好是另外乙...
從結對程式設計到結對工作
熟悉極限程式設計的人都知道,在極限程式設計的十二項實踐中,有乙個非常重要的實踐就是結對程式設計,也就是兩個人坐在同一臺電腦前面,使用相同的鍵盤和滑鼠來開發同樣的乙個模組,乙個負責 的鍵入,另外乙個人負責盯緊可能出現的錯誤,包括低階錯誤和方向性的錯誤。而且,當乙個問題對其中乙個人難以解決而恰好是另外乙...