# (五):重構有助于性能優化么?
項目從初次開發到現在,已經快3年了。期間,有N個工程師參與過。
需求方面:增加減少,反反復復,無數次;人力方面:增加減少,不穩定;時間方面:功能開發著急上線,Bug開發緊急修復。
因此,代碼臃腫,問題頗多。
自從畢業加入到項目,深感代碼質量問題對項目開發效率的影響,因此經常會對項目進行“重構”和“優化”。
主要經歷了2次大的重構和無數次小的改進。
今天,特別整理下,希望今后可以做得更好。
**重構事項**
**1.統一標準。**
?包、類、方法、字段等命名按照Java標準規范那樣,統一命名。
**2.重新組織代碼。**
a.?將項目代碼,按照業務邏輯等原則,重新組織到不同的包中。
b. 按照一定的原則,調整類中的方法。
比如對于數據訪問層Dao的方法,嚴格按照查詢、增加、修改、刪除這樣的順序組織。
而且,使用和修改頻率高的代碼,放在靠前的位置。
**3.增加必要的注釋。**
對于那些業務比較復雜,容易混淆的代碼,加上清晰簡潔的注釋。
**4.刪除無用的代碼。**
將廢棄的功能代碼,無用的注釋,先用@Deprecated標記,過段時間,然后徹底刪除。
**5.提高代碼復用。**
Dao層:編寫一個實現了常用CRUD功能的BaseDao。
工具層:對常用的工具代碼,進行整理,統一到工具庫中。
**6.清理數據庫。**
a.將數據庫中沒有用到的表、字段全部刪除。
b.優化表的數據類型。比如將longtext的字段,修改為varchar(20)。
c.規范化表和字段的命名。比如用戶表用User,用戶地址用userAddress表示。
同時,Java代碼和實體配置文件,盡可能與數據庫表相統一。
**參考建議**
更多重構和優化事項,不再贅述。
有興趣的同學,可以看看《代碼大全》、《重構》、《編寫可讀代碼的藝術》這3本書。
**重構有助于性能優化么**
我只能說,有一定的幫助。
a.重復代碼比較少,注釋清晰,命名合理的代碼,看起來“賞心悅目”。
本質上,不太可能提高系統性能,但是算得上是性能優化的準備工作。
項目重構后,開發更有效率,Bug更少,這樣才可能有更多的時間去做性能優化。
b.去掉數據庫表中無用的字段,這還是有點作用的。
至少,在SQL查詢的時候,比如select *,會少查詢一些字段。
**見仁見智**
重構是否有助于性能優化,是一個見仁見智的問題。
根據我有限的重構和優化經驗,我只能說,“重構有助于優化性能,但作用有限”。
打個比喻,當你學畫畫,想要畫一個蘋果的時候,“把蘋果洗干凈”是否有助于你畫出一個逼真的蘋果呢?
“把蘋果洗干凈”就是代碼重構的過程。
“畫出一個逼真的蘋果”就是性能優化的過程。
你是怎么看待這個問題的呢?愿聞其詳...