原文地址:http://www.jdon.com/jivejdon/thread/37355

千里之行,始于足下,千里之堤,毀于蟻穴,做好設計的第一步就是寫好你的代碼,博文8 Signs your code sucks總結了代碼中第一個感覺的臭味,讓你能夠于細微之處發現軟件的質量問題。

1.方法內代碼超過一個電腦屏幕:
一個方法只應該執行特定的任務,一個方法不應該包含一些這樣的邏輯,例如判斷用戶名字段包哈巴的數據是否有效,是否存在等。如果一個方法代碼大得超過一個屏幕,那么這是表明它做了太多的事情,需要切分。

2.你在重用變量:
除非你工作于嵌入式領域,否則內存是便宜的,不要做內存的守財奴,要注重可維護性。

3.你直接訪問request/session :
這和具體應用服務器環境綁定,難于測試,所有應用數據應該直接解耦Session/request,保存到Bean中,通過 bean的 getters 和 setters方法, 創建使用者訪問數據的合約,這將大大幫助代碼的可維護性,個人補充,不要把類中的Collection字段直接通過Collection getCollection來暴露給外界,通過方法封裝對Collection的操作。


4.你需要使用注解來解釋代碼如何使用:
代碼應該自己能夠解釋它如何使用,易于可讀,如果你發現你自己都需要注解專門解釋如何使用,那么就要重構你的代碼。這里注解不是指javadoc等必要文檔。

5.一個exception系列錯誤沒有返回最原始的錯誤:
你不應該吃掉exception錯誤,在catch一個exception時,要打印出其出錯tack trace. 如果不知道錯誤來源,如何糾正錯誤呢?

6.你的代碼是一堆泥球:
代碼粘在一起,機會沒有分離分層,代碼應該是模塊化,這樣易于維護和重用。 MVC是關注用戶View視圖界面發生的事情,控制器是關注程序流程和數據的校驗,而處理業務邏輯是領域模型的事情,只有模型可以和數據庫訪問直接進行交互。

7.難于單元測試
如果你發現Bug,那么些一段新的代碼片段,它會花去你一些時間,但是這樣代碼就能處理更加復雜的事情了。