Java行業的聖經-四本最重要的個人藏書 (轉)
行業的聖經 四本最重要的個人藏書,他們的書名都不含Java
作者 Thomas E. Davis
譯者 to:mskl@263">msklsf@263.net
摘要
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 Vlisss, 和Grady Boocha——the Gang of Four是他們著名的呢稱,由 Addison-Wesley出版社在1995年出版。模式一詞描述了一類重複的問題而且提供了一個可重用的解決方案。設計模式至少可以透過物件共享來幫助你避免限制的缺陷以簡化你的工作,設計模式也可以創造一個類似於介面的、可以靈活地同第三方庫進行綜合的整合方式來簡化你的工作。《Design patterns》仔細描述了這兩種設計模式,給出了評價,而且提供了程式碼例子和易於理解的相關圖表。雖然程式碼例子都是C++的,但是語法十分類似於Java,因此大多數程式設計師將毫無問題地掌握這些概念。有一本本書的仿製品,它採用Java作為例子,書名是《Java Design Patterns: A Tutorial》,作者是James William Cer,由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. McCock 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居住在陽關充足的南佛羅里達,遺憾的是大部分時間他都呆在室內的一臺前面
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-1008678/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 企業級證書和個人證書的區別
- Java好不好求職?個人能力很重要Java求職
- 加密行業最瘋狂的一週!盤點本週加密市場的重要事件!加密行業事件
- 英語《聖經》的版本
- 架構模式的聖經架構模式
- 學Java最值得讀的10本英文書Java
- 一名想入java行業大學生的最後期待Java行業
- IT行業學歷重要嗎?行業
- RPA機器人成為金融銀行業轉型的重要推手機器人行業
- 聖經
- 搭建個人圖書館!一個簡單的線上個人書庫
- 思科證書的重要性
- IT綜合是IT行業中的一個重要領域行業
- 幾本早期很重要的黑客的書黑客
- 一個人情緒穩定的重要性
- 解釋java的物件導向及資訊隱藏的模型(轉)Java物件模型
- JAVA基礎:我個人的物件導向的程式觀(轉)Java物件
- 個人從事設計行業的40個感受行業
- IT行業已離開個人英雄主義的年代行業
- 網際網路職業入門聖經
- java的執行流程(轉)Java
- 深度學習聖經“花書”各章摘要與筆記整理深度學習筆記
- 淺談iPaaS對企業轉型的重要性
- IT行業最重要的四件寶--我的實習體會行業
- 最直白的方式直面Java多執行緒Java執行緒
- 個人努力很重要,但是歷史程式更重要……
- 可以高薪就業的行業有哪些?選對風口很重要高薪就業行業
- 《每個人的戰爭》讀書筆記筆記
- 論java的重要性Java
- Java設計模式聖經連載之(00)-前言Java設計模式
- 個人最順手的git工作流程Git
- 是企業故事也是行業縮影!2019年“全球最靚”的超休閒發行的轉型之路行業
- go 聖經---PDFGo
- 探索 Java 隱藏的開銷Java
- 網際網路行業中蘋果企業簽名的重要性行業蘋果
- 轉---推薦最容易成功的創業模式創業模式
- 談談遊戲行業最愁人的這件事遊戲行業
- 企業級Java應用最重要的4個效能指標Java指標