一次結(jié)對(duì)編程與TDD實(shí)踐
有機(jī)會(huì)可以接到一個(gè)小型商務(wù)平臺(tái)的項(xiàng)目,最近就開(kāi)始做一個(gè)平臺(tái)的一些基礎(chǔ)組件,比如新聞發(fā)布模塊和用戶管理模塊。開(kāi)發(fā)團(tuán)隊(duì)只有我和另一個(gè)同學(xué),一共兩個(gè)人。而我們對(duì)XP開(kāi)發(fā)過(guò)程比較有興趣,剛剛好可以進(jìn)行結(jié)對(duì)編程和TDD。
開(kāi)發(fā)已經(jīng)進(jìn)行了一個(gè)星期左右,已完成新聞發(fā)表模塊中的新聞管理模塊。因?yàn)橥耆珱](méi)有經(jīng)驗(yàn),而且開(kāi)發(fā)時(shí)間不夠(只能在沒(méi)有課的上午或者下午開(kāi)發(fā)),開(kāi)發(fā)進(jìn)度很慢。但是自我感覺(jué)不錯(cuò),因?yàn)轶w驗(yàn)了以前沒(méi)有體驗(yàn)過(guò)的開(kāi)發(fā)過(guò)程,從中學(xué)到了很多東西。
在整個(gè)開(kāi)發(fā)過(guò)程中,我們始終堅(jiān)持“測(cè)試先行”原則。首先列出要完成的任務(wù)清單,用JUnit寫出相應(yīng)測(cè)試代碼,然后運(yùn)行測(cè)試,出錯(cuò),偽實(shí)現(xiàn),重構(gòu)。一般都是兩個(gè)人,一個(gè)人持有鍵盤,寫一個(gè)鐘左右的代碼,然后一邊討論一邊寫代碼。在完成了一段代碼之后有種神奇的感覺(jué),好像不知不覺(jué)中代碼就被寫出來(lái)了,這可能是TDD神奇的地方。先寫出符合需求的測(cè)試,接著按照測(cè)試來(lái)寫代碼,就是這么簡(jiǎn)單。
不過(guò)完成了新聞發(fā)布模塊之后,經(jīng)過(guò)討論,決定下一步完成前臺(tái)的UI。對(duì)于UI的開(kāi)發(fā),平時(shí)例子學(xué)習(xí)了不少,自己寫的toycode也寫了一些,但是在實(shí)際應(yīng)用開(kāi)發(fā)中對(duì)我們還是比較陌生。一開(kāi)始準(zhǔn)備用簡(jiǎn)單的JSP和Servlet來(lái)做前端,但是在前端控制器中代碼實(shí)現(xiàn)有點(diǎn)混亂,現(xiàn)在就卡在UI這里了,最后經(jīng)過(guò)討論決定用WebWork作前端控制器。
以前在看K.Back的《解析極限編程》時(shí),看到他把結(jié)對(duì)編程描述的很神奇:
結(jié)對(duì)程序員:
五一應(yīng)該還會(huì)繼續(xù)完成這個(gè)項(xiàng)目,而且是一邊做一邊學(xué)。
開(kāi)發(fā)已經(jīng)進(jìn)行了一個(gè)星期左右,已完成新聞發(fā)表模塊中的新聞管理模塊。因?yàn)橥耆珱](méi)有經(jīng)驗(yàn),而且開(kāi)發(fā)時(shí)間不夠(只能在沒(méi)有課的上午或者下午開(kāi)發(fā)),開(kāi)發(fā)進(jìn)度很慢。但是自我感覺(jué)不錯(cuò),因?yàn)轶w驗(yàn)了以前沒(méi)有體驗(yàn)過(guò)的開(kāi)發(fā)過(guò)程,從中學(xué)到了很多東西。
在整個(gè)開(kāi)發(fā)過(guò)程中,我們始終堅(jiān)持“測(cè)試先行”原則。首先列出要完成的任務(wù)清單,用JUnit寫出相應(yīng)測(cè)試代碼,然后運(yùn)行測(cè)試,出錯(cuò),偽實(shí)現(xiàn),重構(gòu)。一般都是兩個(gè)人,一個(gè)人持有鍵盤,寫一個(gè)鐘左右的代碼,然后一邊討論一邊寫代碼。在完成了一段代碼之后有種神奇的感覺(jué),好像不知不覺(jué)中代碼就被寫出來(lái)了,這可能是TDD神奇的地方。先寫出符合需求的測(cè)試,接著按照測(cè)試來(lái)寫代碼,就是這么簡(jiǎn)單。
不過(guò)完成了新聞發(fā)布模塊之后,經(jīng)過(guò)討論,決定下一步完成前臺(tái)的UI。對(duì)于UI的開(kāi)發(fā),平時(shí)例子學(xué)習(xí)了不少,自己寫的toycode也寫了一些,但是在實(shí)際應(yīng)用開(kāi)發(fā)中對(duì)我們還是比較陌生。一開(kāi)始準(zhǔn)備用簡(jiǎn)單的JSP和Servlet來(lái)做前端,但是在前端控制器中代碼實(shí)現(xiàn)有點(diǎn)混亂,現(xiàn)在就卡在UI這里了,最后經(jīng)過(guò)討論決定用WebWork作前端控制器。
以前在看K.Back的《解析極限編程》時(shí),看到他把結(jié)對(duì)編程描述的很神奇:
結(jié)對(duì)程序員:
- 使彼此都專注于任務(wù)
- 一起頭腦風(fēng)暴,討論系統(tǒng)的精化
- 理清思路
- 在搭檔陷入困境時(shí)要主動(dòng),這樣才能減少挫折
- 使彼此都對(duì)團(tuán)隊(duì)的實(shí)踐負(fù)責(zé)
五一應(yīng)該還會(huì)繼續(xù)完成這個(gè)項(xiàng)目,而且是一邊做一邊學(xué)。
posted on 2007-04-28 20:40 _Kai_ 閱讀(496) 評(píng)論(0) 編輯 收藏 所屬分類: 隨感