歡迎您光臨本站 註冊首頁

Java工程師應該拋棄的10個編程習慣

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  

  
 摘要:作者結合實際,總結了10條Java開發人員應該注意和避免的開發習慣,希望這裡提供的信息能幫助到你!

當我看到成群的Java程序員在做下面這10件事情時,我真想大聲喊“停”。

1.遍歷結果集並且構建對象

  1. while (result.next()) {  
  2.  String name = result.getString(“name”);  
  3.  String address = result.getString(“address”);  
  4.  String email = result.getString(“email”);  
  5.  String phone = result.getString(“phone”);  
  6.  stuff.add(new AddressEntry(name,address,email,phone));  

從這段代碼可以看出,如果你是個非專業或者頹廢派的開發者,那麼肯定沒有深入理解ORM(對象關係映射),這可能是因為你看過Hibernate性能問題方面的博客,並且受了這方面的影響。但可以肯定,你會使用JDBC模板或者其他後台資料庫操作。

2.在事務系統中寫PL/SQL

隨著時間的推移,業務邏輯將會在RDBMS中表現出來。設備事務也會移進資料庫裡面,有些人會把這些轉換成類似COBOL的語言,並且綁定觸發器來調用其他通用版程序。換句話說,這樣做將會讓你在短期內遇到一些非常棘手的系統遺留問題。對於Oracle投資人來說,這或許是件好事,但對於我們來說,就是災難。

3.編寫Swing應用程序或者調試

多年來,我一直認為編寫GUI代碼是件非常可怕的事情,以至於我從不接觸前端代碼。這或許是因為Java被證明不適合做前端。Swing很慢。當然,你也能編寫出非常快的Swing代碼,如果你在NetBeans環境下去編寫並且無需擔心瀏覽器兼容問題、或者砸一堆錢進去……但是,Swing還是很慢。默認情況下,GUI的界面也是令人不滿意的。於是,出現了Java sandbox模型……

4.Cast

Java Generics並非完美,但在處理問題時,它卻成了優先選擇對象。這裡有一些非常極端的例子,說明Java Generics並非能夠高效的執行。說實話,我也不想這樣說:

  1. Foo bar = (Foo) FooFactory.get(“bar”); 

不幸地是,有些庫無法獲得消息並且還會代碼泄漏,但可以利用泛型來編寫單元測試

5.使用Calendar或Date進行日期計算

使用JDK Date和Calendar類來處理複雜的時間/日期計算,除了直觀上的操作外,內置類僅提供了最原始的操作。大家可以使用像JODA Time這樣的現代庫。除非你在x86彙編器上編寫應用程序。在這種的情況下,你可能很享受使用JDK Date和日曆進行計算。

6.配置Session Replication

所有的分散式緩存產品和項目已改為NoSQL的鍵值存儲。如果我們需要有狀態的客戶端並且不使用HttpSession,可以使用AJAX/Javascript,用於高度可靠的可伸縮應用程序。

7.寫排序演算法

可怕的是,我很少注意演算法類,甚至編寫代碼的人也不會注意到這些,Java裡面已經提供了滿足各種需求的排序演算法(或者是使用你名字命名的第三方庫)或者他們只是不太關心Comparable和Comparator是如何實現的。現在,你可以深入地探討一下,絕對是有益無害的。

8.寫自己的鏈接列表、棧、堆等

誠然,寫一個基礎的鏈接列表相當容易,Wikipedia上就提供了這樣的一個非常漂亮的頁面,上面彙集了所有的鏈表代碼。所以,我可以選擇複製——粘貼。但還是比較喜歡(建議)使用數據結構,並且一直堅持。

9.編寫自己的池、集合或者一般的併發代碼

凡是知道Doug Lea的開發者肯定都很喜歡他。Doug Lea的java.utl.concurrent集合可以幫你解決很多併發性問題,另外,他還能提供非常好的解決方案。

10.處理日誌框架

如何拼寫單詞,意味著所有的共享日誌:SLF4J,例如S-U-CK。這個問題不僅僅是因為多年前Sun把Log4J’s介面接入到JDK中,Oracle也編寫java.util.logging包進行修復。話雖如此,但我還是希望大家在suck上面標準化java.util.logging而不是由某個人提出“明智的解決方案”供大家採用。就好比你點了可樂,而服務人員提供百事可樂一樣,兩者有什麼區別嗎?還不是照樣讓你變胖!

來自:DZone



[火星人 ] Java工程師應該拋棄的10個編程習慣已經有619次圍觀

http://coctec.com/docs/program/show-post-71316.html