Java行業的聖經-四本最重要的個人藏書

  java行業的聖經 四本最重要的個人藏書,他們的書名都不含java

作者 thomas e. davis
譯者

摘要

thomas davis 推薦了四本書,它們可以讓你在java開發中受益非淺。這些書擴展了java的基本語法和語義,使你能更全面地理解面向對象的程式設計。

正文

《design patterns》

《refactoring: improving the design of existing code》

《antipatterns: refactoring software, architectures, and projects in crisis》

《extreme programming explained: embrace change》

在這篇文章中,我提出了新手和專家在使用java進行開發的區別,而且也給出了一個參考書目,幫助新手超越這個界限。這不是一個書目回顧,而是你通往職業發展中下一步的車票。

java是一個程式設計語言。它也是一個工具,如果錯誤地使用,它就是無用的,某些時候甚至是危險的。僅僅知道它的語法和語義不是一個程式設計師要做的。一個程式設計師也必須密切地關注和理解環境模式,也就是說在java環境中,什麼是面向對象設計。知道對象是什麼、接口是什麼、多少對象實現了一個接口等等無聊的東西是遠遠不夠的。一個程式設計師必須知道這種使那些規則和關係融合成一個靈活的、可重用的、可擴展的系統的神秘方法。我在這裡討論的這些書將給你那些經驗,提高你作為一名java程式設計師的職業素質。令人奇怪的是,沒有一本書在他們的書名中包括java一詞。

註:本文所討論的所有書目的url地址可以在本文後面的資源中找到。

《design patterns》

這本書的作者是erich gamma, richard helm, ralph johnson, john vlissides, 和grady boocha——the gang of four是他們著名的呢稱,由 addison-wesley出版社在1995年出版。模式一詞描述了一類重複的問題而且提供了一個可重用的解決方案。設計模式至少可以通過對象共享來幫助你避免記憶體限制的缺陷以簡化你的工作,設計模式也可以創造一個類似於接口的、可以靈活地同第三方庫進行綜合的集成方式來簡化你的工作。《design patterns》仔細描述了這兩種設計模式,給出了評價,而且提供了代碼例子和易於理解的相關圖表。雖然代碼例子都是c++的,但是語法十分類似於java,因此大多數程式設計師將毫無問題地掌握這些概念。有一本本書的仿製品,它採用java作為例子,書名是《java design patterns: a tutorial》,作者是james william cooper,由addison-wesley出版社在 2000年出版;但是沒有the gang of four在《design patterns》中所闡述的透徹和深度。

一旦你熟悉了《design patterns》中所列出的設計模式,將認識到他們中的一些是如何發展的。在addison-wesley出版社1998年出版的《design patterns applied(software patterns series)》中,john vlissides 敘述了在某些最流行模式上的爭論和討論,而且介紹了一些新的在《design patterns》中刪去的模式。

《refactoring: improving the design of existing code》

會犯錯誤就是人。如果這是真理的話,我看到了數以百計比我更象人的程式。項目出問題了。錯誤出現了。進度延期了,質量犧牲了。這些都是對我們所從事的職業的警告。但是當事情逐漸變得最糟時,你需要在什麼地方改變方向呢?我的非常多的同事採用"throw-away-and-start-over"的方法:從零開始,希望自己已經可以避免錯誤了。那是最極端的解決辦法,它一定激怒了你的老闆。但是不要絕望,因為有替代的辦法。

《refactoring: improving the design of existing code》是addison-wesley出版社面向對象技術系列叢書中的一本,作者是martin fowler, kent beck, john brant, william opdyke, 和don roberts ,出版日期是1999年,這本書給開發者提供了重新開始的不同選擇。refactoring就是通過重構一個程式的內部結構但是不改變它的外部行為來提高它的性能的處理過程。refactoring能讓一個方法執行得更快或者提供更精確的執行結果,但是不改變這個方法的名字。這些改變對調用該方法的程式而言是不可見的,因此沒有代碼需要修改。

這本書教讀者如何通過一個特殊的意識來識別問題代碼,而且將每一個放到一個程式目錄中以便修改。例如,一個意識或許是一個不適當的親密關係——描述了兩個或更多個類的關係太緊密了以致對一個類的改變要求另一個類也要改變。這本書所建議的眾多的解決方法的一個是將這個存在問題的方法移到一個更適當的類中。

《antipatterns: refactoring software, architectures, and projects in crisis》

軟體開發不是易於出錯和疏忽的唯一地方。管理同樣易於出現缺陷,這是由於混亂的開發過程和不現實的開發進度。大多數網際網路公司在他們的開發部門有一個令人擔憂的人員流動速度。隨著程式設計師的加入和退出,職責的層次結構就想代碼結構一樣變得令人費解。《antipatterns: refactoring software, architectures, and projects in crisis》的作者是william j. brown, raphael c. malveau, william h. brown, hays w. mccormick iii, 和 thomas j. mowbray ,由john wiley & sons出版社 在1998年出版,這本書將把上述加入到你整個的事業目標中。它對計畫、錯誤管理、基本方法中的常見錯誤進行分類,使你跳出深淵。

你的方案是否正遭受委員會的挑剔?就象有非常多的廚師在調一鍋湯一樣。或者你的代碼基礎是違反模式的賣方代碼,導致你依賴一個不可靠的第三方產品。《antipatterns》將這些問題分為12大類和大約24個小類,指導你避免這些問題或者跳離你偶然進去的陷阱。

《extreme programming explained: embrace change》

xp是一種新鮮的、有些爭議的新的開發過程,kent beck是它的先行者。xp力爭按時提供好的軟體,沒有官僚作風,不重視傳統的開發周期。在網際網路啟動的發燒期,每個人的目光都聚焦在趕上市場。在現實世界中,項目超過了預算或者過了最後期限,就會被取消,這最終導致某些公司徹底失敗。項目開始的文檔和圖表很少能夠反映最終的產品。因此,開發團隊需要適應項目需求的頻繁變化並作出反映。那正是xp要發光的地方。

“溝通、簡潔、反饋、勇氣”是xp愛好者的秘訣。溝通有很多種途徑,例如在成雙成對的程式設計中完成。也就是一個人編碼,夥伴們進行對等的實時檢查。

簡潔意味著當你需要它的時候就僅僅建造那些你需要的。不浪費時間執行那些解決將來或許會發生的問題的奢侈方案。

反饋意味著“早發布,常發布”,這些為那些開放原始碼的狂熱者所喜愛。通過在開發的早期將產品呈現在用戶的面前,你能儘量避免出現在開發周期後期的劇烈變動要求。

最後,勇氣促使xp弟子抓住機會並從結果中吸取經驗。只有在極少見的場合,你才必須求助於"throw-away-and-start-over"技術。《extreme programming explained: embrace change》中描述了那些秘訣和它們是如何幫助你的。這本書的作者是kent beck,由addison-wesley出版社在1999年出版。

結論

最近我有機會從零開始一個公司項目。我的開發隊伍靠這些書的教導生活和呼吸,成果是顯著的。我們按照進度、沒有延期建造了一個特別健壯和可擴展的系統。這些書改善了我的職業生涯,我相信他們也將改善你的職業生涯。

關於作者
thomas e. davis是一個具有sun認證資質的java軟體工程師,也是他的第二個成功的internet計畫的首席技術官。目前thomas居住在陽關充足的南佛羅里達,遺憾的是大部分時間他都呆在室內的一台計算機前面