其中我覺得有一個重點,就是跟以往寫程式方法不太一樣的地方,Pair programming。這次的pair programming讓我
們整個寫程式的過程相當的有趣也順利,雖然有時候會跟同伴有些小地方的想法有出入,但最後結果都是對程式有最好的結果。而且在經由跟同伴互相腦力的付
出,有些他有的優點,我可以學習,我有的優點,他也可以學習。讓我們互相都會增進自己對程式所不了解、不熟悉的coding能力以及實作上的能力。
Continuous integration,這也是這是作業中滿重要的一環,我們從底層的method開發,由下往上的這種bottom-
up方法,一邊寫method,一邊做整合,也就是開發完一個method,做完測試後就能直接整合進去整個系統裡了。不必說整個系統還要在整個重新來
整合,這樣會很麻煩,而且可能也會出現一些無法預測的bug。
Simple design,這次的系統,整個method都分割很完整,而且也沒有多餘的地方,都是相當精簡。class與class之間也
有簡潔外觀的interface,彼此間也是平衡的結構。這也是整個設計的精隨地方,不會讓整個系統相當複雜而難懂,是個值得學習的地方!
而在myAgile方法當中,探索需求、使用情節及驗收測試案例,在文件中老師都已經提供給我們。還有就是比較重要的CRC session,
這個設計也是相當重要的一環,利用老師給的架構,再來一步一步地完成整個系統,有條理的一個一個method去開發完成,有好的架構,就會讓整個開發過
程是相當順利的,也讓系統會比較穩定,不會時常有bug問題。
經過必經之路資料結構的設計、演算法的設計以及coding後,進入到最後階段的Unit testing及Acceptance
testing,有著這兩項測試,是非常輕鬆的。在後面階段要進行測試時候,只要執行一次,就會測試所有的method,整個系統的完整度就會出來,不
至於說某些地方漏掉了、出現bug不知道。
而test code的部分,在我們每一個method的test code上,需要寫上清楚簡單又明瞭的header,讓
programmer之後在修改時能清楚的知道每個test code 是在做什麼,以便能夠快速地測試以及解決bug。
補充重要一點,在每個method上,因為我們 開發出來的method,都是有pseudo code後,再來進行coding的部
分,所以在每個method上都是需要附上pseudo code,才會讓其他programmer能夠很清楚快速地知道這method他是怎麼的來實
作。
這次的整個開發系統,過程中一步一步的整合、測試、開發method,跟夥伴一起完成這個系統,而且開發出來的,是一個相當穩定又完整的,所以
最後完成會是相當的有成就。