G4Sui老师的pair project(197)
在做的云里霧里的individual project之后,這次的pair project讓我開始找到了一下軟件工程的感覺!其中原因除了C#能稍微捯飭明白了,還有就是合作的力量。
本次結對編程進程:
10.10~10.15 G4和Sui老師各自下載elevframework,嘗試讀懂代碼
10.16~10.19 G4和Sui老師經過交流,發現大家都沒怎么讀懂框架,但是大限將至,繼續讀代碼的同時也要想算法,Sui老師發了一篇博客
10.20~10.22 G4還苦于代碼讀不懂,而本班唯一的明白人不知去向,G4想等待明白人歸來問之;21號晚,Sui老師開始動手寫一個簡易版的算法,也就是BUS算法的初級優化版。不管多么簡易的算法,能夠在著手實踐就不簡單!懷著對Sui老師的敬佩之情,G4搬著凳子到Sui老師宿舍開始了真正的結對編程。即便是一個簡單的算法,在這個框架中實現都要理解了整個框架的工作機制、解決眾多的邊界問題、細節問題才能成功實現。在李棟大神的幫助下,最終G4和Sui老師用了一晚上的時間搞定了這個算法,雖然只是BUS算法的簡單改進,但G4和Sui老師都非常欣喜。不過,既然解決了眾多與算法無關的細節問題,G4和Sui老師想可以進一步優化這個算法。G4和Sui老師交流確定下算法后,G4在第二天中午實現了這個算法,運行結果不出意料地更加快了。
初步算法:
BUS算法中,StopAtEachFloor方法令電梯在每層都停靠。我們希望電梯在每次運行前,判斷一下下一層是否有內部與外部請求,如果沒有就停靠到下下層。
改進算法:
在初步算法基礎上,進階算法中,電梯在每次運行前會從電梯當前樓層開始,到當前方向頂層依次判斷此層是否有請求,發現第一個請求時設置此層設為目的地;若直至當前方向頂層也沒有請求,則改變運行方向。同時,改進了電梯初始狀態時的行為:初步算法中令電梯初始向上運行,進階算法中當外部請求發出時,判斷請求發出樓層,根據電梯當前樓層設置相應的電梯運行方向。
合作編程心得:
?
《移山之道》中,關于結對編程的優點是這樣寫的:
(1)在開發層次,結對編程能提供更好的設計質量和代碼質量,兩人合作能有更強的解決問題的能力。
(2)對于開發人員自身來說,結對工作能帶來更多的信心,高質量的產出能帶來更高的滿足感。
(3)在企業管理層次上,結對能更有效地交流,相互學習和傳遞經驗,能更好地處理人員流動。因為一個人的知識已被其他人共享。總之,如果運用得當,結對編程能得到更高的投入產出比(Return of Investment)。
在這次pair work中我深切地體會到了前兩點:我是個有點懶的人,如果事情有些基本問題搞不清楚我往往感到無從下手,而當別人都開始動手的時候又會有些急躁。但是我對工作很執著,比較完美主義。而partner隋宇豪比較積極主動,勇于實踐,但考慮略顯不夠細致。萬事開頭難,隋宇豪為我們的結對編程創造了一個良好的開始。當我們的簡易算法得以實現后,我并不滿足于這個初步的嘗試,于是我們共通進行改進、優化。我認為我們兩人配合還是很協調的。而結對編程的缺點,如老師在課上所講,時間安排不如個人靈活、雙方需要相互熟悉、磨合的過程、小型項目不需要太多人等。
程序運行結果:
passenger1:
passenger2:
passenger3:
轉載于:https://www.cnblogs.com/metalcrash/archive/2012/10/28/2734810.html
總結
以上是生活随笔為你收集整理的G4Sui老师的pair project(197)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win10怎么设置隐藏用户 Win10如
- 下一篇: poj 1125