問(wèn)題
一般程序員都會(huì)發(fā)現(xiàn)這樣的問(wèn)題,需求拿了,編碼寫完了,編譯也通過(guò)了,運(yùn)行也沒(méi)報(bào)錯(cuò),就以為程序OK了,但到測(cè)試人員那里,一運(yùn)行測(cè)試用例,就發(fā)現(xiàn)漏了這個(gè)那個(gè)的,產(chǎn)生了所謂的質(zhì)量問(wèn)題。
原因
這通常是由于程序員一拿到需求,就馬上想要幾個(gè)CLASS,然后就開(kāi)始編碼了。
解決方案
- 拿到需求后,先想大概會(huì)用到哪些OBJECT,即SERVICE,DAO之類的
- 設(shè)計(jì)出會(huì)遇到哪些場(chǎng)景
- 設(shè)計(jì)出分別在這些場(chǎng)景中,那些OBJECT合作的流程圖
- 編碼
舉例
需求:有一系統(tǒng)會(huì)在每天的某個(gè)時(shí)間點(diǎn),在某個(gè)文件夾內(nèi),導(dǎo)出一個(gè)一定格式名稱的文件,現(xiàn)在要求程序?qū)崿F(xiàn)在文件生成后,讀取這個(gè)文件,抽取某些內(nèi)容后,再生成另一文件,通過(guò)SFTP發(fā)走。
方案:
- 會(huì)用到排程器,控制器,SPRING BATCH JOB
- 有這幾種場(chǎng)景:沒(méi)有發(fā)現(xiàn)文件時(shí),發(fā)現(xiàn)了文件后正常處理,控制器和SPRING BATCH JOB出現(xiàn)錯(cuò)誤時(shí)等
- 處理流程:控制器沒(méi)有發(fā)現(xiàn)文件后,通知排程器繼續(xù)下一次循環(huán);控制器發(fā)現(xiàn)文件后,通知SPRING BATCH JOB處理,然后通知控制器退出;控制器出現(xiàn)錯(cuò)誤或SPRING BATCH JOB出現(xiàn)錯(cuò)誤后,控制器通知排程器退出。
- 根據(jù)這幾種場(chǎng)景設(shè)計(jì)程序結(jié)構(gòu),編碼
- 編寫單元測(cè)試用例