14.4從任務(wù)到代碼
14.4.1接到任務(wù)
小飛接到任務(wù)后,他會(huì)怎么辦呢?他會(huì)做下面這幾件事情。
(1)估計(jì)開(kāi)發(fā)任務(wù)所需的時(shí)間,他會(huì)參考以前同類(lèi)任務(wù)所需花費(fèi)的實(shí)際時(shí)間,以及別的同事的時(shí)間估計(jì)。
?。?)小飛會(huì)試著寫(xiě)一些快速原型的代碼,看看效果會(huì)怎樣。他在這一過(guò)程中發(fā)現(xiàn)了一些問(wèn)題,通過(guò)和PM溝通,他們?nèi)〉昧艘恢乱庖?jiàn)。
?。?)在看到初始效果和了解了實(shí)現(xiàn)的細(xì)節(jié)后,小飛開(kāi)始寫(xiě)設(shè)計(jì)文檔,寫(xiě)好之后,他可以請(qǐng)同事一起來(lái)復(fù)審設(shè)計(jì)文檔 (復(fù)審可選,因?yàn)橐话闱闆r下任務(wù)都不大)。
?。?)設(shè)計(jì)文檔寫(xiě)好之后,小飛就會(huì)按照設(shè)計(jì)文檔寫(xiě)代碼。 在寫(xiě)的過(guò)程中,他又發(fā)現(xiàn)了一些原來(lái)沒(méi)有想到的問(wèn)題,通過(guò)和PM溝通,找到了解決方案。
(5)寫(xiě)好代碼后,小飛對(duì)照設(shè)計(jì)文檔和代碼的指南作自我復(fù)審。
?。?)創(chuàng)建或更新單元測(cè)試。
?。?)進(jìn)行單元測(cè)試(不僅要通過(guò)自己新創(chuàng)建或更新的單元測(cè)試,還要通過(guò)整個(gè)模塊/系統(tǒng)的單元測(cè)試)。
?。?)重構(gòu)代碼,如果必要的話。
?。?)代碼復(fù)審。
?。?0)把代碼簽入代碼庫(kù)中。
由上可知,開(kāi)發(fā)者必須寫(xiě)自己代碼的單元測(cè)試。開(kāi)發(fā)環(huán)境必須能夠很快地讓一些小的修改通過(guò)(做一個(gè)代碼修改的最低成本是多少?例如,如果我只改動(dòng)一個(gè)無(wú)關(guān)緊要的功能,要多長(zhǎng)時(shí)間才能運(yùn)行所有的單元測(cè)試。要求:快速,自動(dòng)化)。
14.4.2把修改集集成到代碼庫(kù)中
現(xiàn)在開(kāi)發(fā)人員手頭上有不少修改,分別屬于不同的具體任務(wù),那如何把這些修改簽入源代碼控制之中呢?
?。?)根據(jù)場(chǎng)景和開(kāi)發(fā)任務(wù)來(lái)決定集成的次序。
?。?)互相依賴的任務(wù)要一起集成。
?。?)在測(cè)試場(chǎng)景時(shí),要保證端到端的測(cè)試。
(4)場(chǎng)景的所有者必須保證場(chǎng)景完全通過(guò)測(cè)試,然后把場(chǎng)景的狀態(tài)改為“解決”。
圖14-1 移山公司開(kāi)發(fā)流程
14.4.3標(biāo)準(zhǔn)開(kāi)發(fā)人員的工作流程
綜上所述,我們就可以得到開(kāi)發(fā)人員的工作流程(如圖14-1所示)。