接手一個新項目,實現一個新功能,你是不是經常立馬開干,建庫、建表,擼代碼呢?如果是,請停下來,慢慢看完這篇文章,如果不是,也請踩下,或許你也能學到一點東西。
(一) 了解業務
首先要了解業務,如果業務需求都不清楚,哪怎么開發,了解業務不僅僅是了解從產品經理、或者銷售獲取需求,也可以根據自己的經歷經驗,提出合適的建議。同時也要知道業務場景、及項目周邊環境,比如需要的開發的項目有沒有跟其它項目交互、其它項目是自家的項目,還是第三方開發的項目等等,總之,前期對業務的了解越清楚、越周全,后期開發落地就容易很多。
(二) 設計
了解了業務業務需求后,可以做設計,這里的設計不僅僅是我們平時見到
數據庫設計,還應該包括需求設計、架構設計、技術方案設計、部署設計等等。
設計階段也是對了解業務需求的查缺補漏階段。同時也是承上啟下的階段,因為這是后續階段的依據,所有,這個階段一般有技術經理、架構師或者CTO直接參與進來,做整體設計。
(三) 實現方式
實現階段主要是考慮實現業務邏輯采用何種技術、哪些方式來實現,比如消息,我們用kafka、rabbitMq、還是rocketMQ呢,我一般是在滿足業務的前提下再看團隊成員對每種消息隊列的熟悉程度,盡量采用團隊熟悉的中間件,盡可能不要在正式項目中實踐新技術或者沒有中間件,以免開發周期不好控制。
其次在實現階段考慮的問題就是,主要功能、核心邏輯是不是需要慎重設計,比如,核心點有沒有高性能突發性、需求的經常變動性、跟第三方對接是否考慮一致性等等,這些都是要認真對待的實際問題,擼代碼之前規划好,會省很多事情,不然,二次返工或者重構會更痛苦。
(四) 交付
開發的功能經過測試及產品經理的確認,是不是可以直接上線了呢?實際經驗告訴我,最好不要直接發到線上環境,加一個仿真環境非常的有必要,就算是不能按照生產環境還原,但建議是等比還原,再按照業務需求把功能在仿真環境測試通過后再交付,這個階段也是開發最喜歡的階段,養好精神,迎接下一個循環,吼吼。
擼代碼之前,你是否考慮過這些,其實這也是一個軟件開發的過程,看似過程很長,其實如果團隊配合比較默契,是非常有效的,再加上已經成熟的DEVOPS,更是大大節省從開發到測試、交付的時間。
如果有什么問題,可以加我微信,多多交流,共同進步。