面向復(fù)用進(jìn)行開(kāi)發(fā)

完成一個(gè)開(kāi)發(fā)任務(wù)有兩種做法,一種是面向短期交付的做法,一種是面向長(zhǎng)期復(fù)用的做法。

第一種做法是更加務(wù)實(shí)的,先用較小代價(jià)完成眼下的任務(wù),通常來(lái)說(shuō)可以快速響應(yīng)需求,及時(shí)回應(yīng)各方訴求。但第二種做法就不切實(shí)際了嗎?或者說(shuō)因?yàn)闀r(shí)間有限就無(wú)法實(shí)現(xiàn)了嗎?

我認(rèn)為恰恰相反,正因?yàn)闀r(shí)間緊張,才更應(yīng)該認(rèn)真考慮、仔細(xì)設(shè)計(jì)。原因有幾點(diǎn):(1)短期臨時(shí)任務(wù)往往需求多變,在功能、流程、數(shù)據(jù)、樣式等方面都可能反復(fù)修改 (2)臨時(shí)任務(wù)的結(jié)果也往往是臨時(shí)性的,任務(wù)結(jié)束后系統(tǒng)需要回到之前的狀態(tài),這意味著你做的所有增、刪、改操作以及部署、遷移都要做一遍逆操作,也就意味著實(shí)際的成本是我們粗看上去的2倍。(3)如果不想完全丟棄在臨時(shí)任務(wù)中所做的修改,那么還需要在任務(wù)完成后進(jìn)行代碼合并,那就意味著你要重新做設(shè)計(jì),而這個(gè)工作原本就應(yīng)該在一開(kāi)始做。

用同樣的時(shí)間,一種方法是只能滿足眼前需求,另一種方法雖然眼前增加了一點(diǎn)額外成本,但卻是未來(lái)可復(fù)用的方法,顯然應(yīng)該采用第二種方法。

那怎么才能做到長(zhǎng)期復(fù)用?首先,應(yīng)該反復(fù)理解需求,想想它是不是一個(gè)通用或常見(jiàn)的需求?有沒(méi)有可能不僅這次需要,未來(lái)某一天又會(huì)需要?如果是,那就應(yīng)該考慮如何能夠?qū)⒊晒恋硐聛?lái)。第二,完全了解已有系統(tǒng)的設(shè)計(jì),清楚新需求影響范圍內(nèi)的功能模塊、后臺(tái)接口、數(shù)據(jù)庫(kù)表、配置等。第三,采用無(wú)侵入的、可兼容的、可配置的設(shè)計(jì)。無(wú)侵入是盡量不對(duì)已有的核心邏輯做修改,比如通過(guò)外圍進(jìn)行if-else控制;可兼容是對(duì)業(yè)務(wù)邏輯和數(shù)據(jù)結(jié)構(gòu)進(jìn)行擴(kuò)展,例如對(duì)數(shù)據(jù)庫(kù)增加一個(gè)新的可NULL、帶有默認(rèn)值的字段,對(duì)接口返回?cái)?shù)據(jù)結(jié)構(gòu)增加一個(gè)新字段等;可配置是指能夠配置是否采用及如何啟用新的業(yè)務(wù)邏輯和功能,甚至可以配置加載不同的模塊、不同的class文件。

最重要的是,克服慣性、主動(dòng)思考,一定能夠提高!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容