前段時間,我負責一款APP的接口開發,其中有一個新增的操作,邏輯比較復雜,涉及到9個數據表的數據改動,而且表又跨庫,這9個表呢,個別在別處還有單表操作,所以為了復用之前的數據層,筆者直接想 ...
分離和組合關注點。 引子 如下代碼所示: 兩段 getComparator 有一些明顯重復的代碼。 看上去應該可以消減這種重復,不過仔細一看,似乎還不那么容易。 這里有三點差異: 根據指定字段比較 根據指定方向排序 返回指定對象類型的比較器。 看上去是三個不同維度的用來排序的組合。怎么才能把這三個維度分離開呢 使用反射進行優化 第一個自然的想法,是使用反射的方式,將字段的獲取通用化。 如下所示: ...
2021-06-11 22:51 2 208 推薦指數:
前段時間,我負責一款APP的接口開發,其中有一個新增的操作,邏輯比較復雜,涉及到9個數據表的數據改動,而且表又跨庫,這9個表呢,個別在別處還有單表操作,所以為了復用之前的數據層,筆者直接想 ...
好久沒寫代碼了,終於好不容易接到了開發任務,一看時間還挺充足的,我就慢慢整吧,若是遇上趕進度,基本上直接是功能優先,完全不考慮設計。你可以認為我完全沒有追求,當身后有鞭子使勁趕的時候,神馬設計都是浮雲,按時上線才是王道,畢竟領導是不會關注過程和代碼質量的,領導只看結果,這也許就是我等天朝碼 ...
對於這一次重構的項目,我還是比較陌生的,因為我也是剛剛介入該項目,並且趕在了項目交付期,雖然做了一些功能, ...
一次項目代碼重構-使用spring容器干掉條件判斷 這是在一次公司項目中進行重構時,一些復雜業務時想到的一個去掉一些if else的辦法。能夠使代碼邏輯更加清晰,減少一些業務上的耦合。 業務說明 我所在的是一個做保險的項目組,這次重構是針對其中的保費計算和核保的業務。 項目重構之前,在保費 ...
Java生鮮電商平台-一次代碼重構的實戰案例 說明,Java開源生鮮電商平台-一次代碼重構的實戰案例,根據實際的例子,分析出重構與抽象,使代碼更加的健壯與高效。 1.業務說明 系統原先已有登錄功能,我們打算增加一個登錄IP和允許登錄時間的安全限制業務。 IP 分為內網ip ...
摘要:通過一次並發處理數據集的Java代碼重構之旅,展示函數式編程如何使得代碼更加精練。 難度:中級 基礎知識### 在開始之前,了解“高階函數”和“泛型”這兩個概念是必要的。 高階函數就是接收函數參數的函數,能夠根據傳入的函數參數調節自己的行為。類似C語言中接收函數指針的函數。最經典 ...
事情的經過是這樣的: 一個夏日的午后,我在啪啪啪的敲代碼,正爽着呢,老大在背后拍了拍我的肩膀,說讓我寫個功能。 我說啥功能,他說:“operate 模塊那邊每次收到文件都會給你發一條消息。然后對消息進行計數,每隔一段時間,你把這個計數寫入一次數據庫。” 我說為什么。老大說對 ...
摘要: 科學的重構流程。 原文:如何來一次說干就干的重構 (流程篇) 作者:逐鹿 IT, 猛猛如玉 Fundebug經授權轉載,版權歸原作者所有。 前言 隨着公司業務的爆炸式的增長,需求規模和用戶規模也迅速地膨脹起來,這樣給系統的三高(高性能、高並發、高可用)以及擴展性 ...