"代碼重用性"是開發(fā)人員經(jīng)常提起的問題。 但是到實際項目中,很多人并不知道怎么落地。
本文介紹一些方法,可以幫助你編寫可重用的代碼,節(jié)省寶貴時間。

一、 項目開始前,要有個正確的規(guī)劃
在開始正式編碼前,召集團隊成員,規(guī)劃應(yīng)用程序所有的需求,并按照水平方向分層,垂直方向模塊化的方式來劃分。
例如 —— 考慮一個需要數(shù)據(jù)模型、數(shù)據(jù)庫、組件控制器和視圖的應(yīng)用程序。 所有這些單元都應(yīng)該以同樣一種方式開發(fā),通過有效的分層,降低層與層之間的依賴。比較簡單的【表現(xiàn)層/業(yè)務(wù)層/數(shù)據(jù)持久層】的分法可以借鑒。 這些分層可能是團隊里不同人員負責的,好的分層方式,有助于將來的升級維護,技術(shù)鄰域常說的低耦合設(shè)計方式,就是這樣的道理。??
?高耦合的極端例子, 就是oracle版本升級的時候,一個簡單的bug,都需要非常專業(yè)的技術(shù)人員測試修改2周??梢姼唏詈舷到y(tǒng),在系統(tǒng)升級維護上,造成巨大的成本支出。
二、創(chuàng)建通用的功能函數(shù)類庫UtilityClass
這些類庫應(yīng)該是跟項目本身無關(guān), 可以直接在其他項目中使用。例如
所有日期字符串格式方法;
Html 錯誤代碼檢測和錯誤信息;
電子郵件驗證;
日期格式;
圖像壓縮;
圖像轉(zhuǎn)換(png-jpg 或反之亦然);
圖片下載;
Excel處理;
文件格式轉(zhuǎn)換;
可被抽象的, 在多個項目中,無差別使用的功能,都應(yīng)該添加到通用類庫UtilityClass中。
三、 盡力避免復制粘貼代碼片段
初級開發(fā)人員經(jīng)常將代碼片段從一個模型復制到另一個模型,而沒有為它創(chuàng)建一個單獨的公共類 。 當需要更改任何邏輯或要添加新代碼時,需要在所有其他地方進行更新。
任何一組代碼至少需要兩次,你應(yīng)該為其制定一個方法,一堆相似的功能或相同用途的功能放在一個新的類中, 一堆沒有任何依賴性的類構(gòu)成了一個包或可重用的庫。
當然初級開發(fā)人員可能是因為抽象能力弱,或者是圖前期的省事,大量復制粘貼代碼片段,造成后面系統(tǒng)維護困難的局面。
四、將一個復雜的過程拆分成幾個簡單的過程
拆解后,每個簡單的過程,都有比較明確的職能。? 這樣簡單的過程具有很好地重用性,而不是僅服務(wù)于一處代碼。
假設(shè)您需要解析一個 json 文件,選取一個出生日期并計算年齡。 這個任務(wù)非常小,以至于人們在大多數(shù)情況下都希望用一種方法編寫整個任務(wù)。 實際上你應(yīng)該分兩步來完成,解析 json 并從中創(chuàng)建一個模型對象, 然后傳遞給另外一個方法,該方法用于計算年份中兩個日期之間的差異,得出年齡。? 看似瑣碎的拆分,我們得到了2個可重用的過程,解析模型過程,計算年齡過程。 大部分初級人員需要養(yǎng)成正確拆解復雜過程的良好習慣。
五、做一個思想勤快,四肢懶惰的程序員
資深的技術(shù)會建議大家做一個思想勤快,四肢懶惰的程序員,一生不要寫兩次類似的代碼。 不斷提高抽象思維能力,以跨項目有用的方式編寫代碼/方法。
通過上面的介紹,大家對如何提高代碼重用性應(yīng)該有了不錯的了解。?
當然想要在代碼重用性層面上,有更進一步的造詣,需要更深入的研究, 比較好的方向就是借鑒低代碼編程。
低代碼編程的整個設(shè)計思想,把代碼重用性推向了極致。? 組件、元素、單頁、權(quán)限、事務(wù)、前后端函數(shù)等都是跨項目重用的。
原來認為無法抽象的業(yè)務(wù)層, 通過無結(jié)構(gòu)系統(tǒng)設(shè)計的思路,在線配置也完成了重用。
深奧的內(nèi)容,不適合于普通的技術(shù)人員,這里就不展開講, 歡迎資深的技術(shù)人員私信探討。