問題
一般程序員都會發現這樣的問題,需求拿了,編碼寫完了,編譯也通過了,運行也沒報錯,就以為程序OK了,但到測試人員那里,一運行測試用例,就發現漏了這個那個的,產生了所謂的質量問題。
原因
這通常是由于程序員一拿到需求,就馬上想要幾個CLASS,然后就開始編碼了。
解決方案
- 拿到需求后,先想大概會用到哪些OBJECT,即SERVICE,DAO之類的
- 設計出會遇到哪些場景
- 設計出分別在這些場景中,那些OBJECT合作的流程圖
- 編碼
舉例
需求:有一系統會在每天的某個時間點,在某個文件夾內,導出一個一定格式名稱的文件,現在要求程序實現在文件生成后,讀取這個文件,抽取某些內容后,再生成另一文件,通過SFTP發走。
方案:
- 會用到排程器,控制器,SPRING BATCH JOB
- 有這幾種場景:沒有發現文件時,發現了文件后正常處理,控制器和SPRING BATCH JOB出現錯誤時等
- 處理流程:控制器沒有發現文件后,通知排程器繼續下一次循環;控制器發現文件后,通知SPRING BATCH JOB處理,然后通知控制器退出;控制器出現錯誤或SPRING BATCH JOB出現錯誤后,控制器通知排程器退出。
- 根據這幾種場景設計程序結構,編碼
- 編寫單元測試用例