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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- RPA機器人成為金融銀行業轉型的重要推手機器人行業
- IT綜合是IT行業中的一個重要領域行業
- 談談遊戲行業最愁人的這件事遊戲行業
- Java好不好求職?個人能力很重要Java求職
- 聖經
- 搭建個人圖書館!一個簡單的線上個人書庫
- Java 11中的11個隱藏的寶石Java
- 加密行業最瘋狂的一週!盤點本週加密市場的重要事件!加密行業事件
- 最近兩個月的招聘統計:只有IT行業最“缺人”行業
- 企業需要ERP系統的八大理由,最後一個尤其重要
- 是企業故事也是行業縮影!2019年“全球最靚”的超休閒發行的轉型之路行業
- 38 歲裸辭讀書 4 個月,轉戰紐西蘭的經歷!
- 深度學習聖經“花書”各章摘要與筆記整理深度學習筆記
- 最適合使用低程式碼平臺的四個行業行業
- 就業寒冬,最終拿到5個offer的一些經驗分享就業
- 網際網路職業入門聖經
- go 聖經---PDFGo
- 個人努力很重要,但是歷史程式更重要……
- 淺談iPaaS對企業轉型的重要性
- 最後的頌歌:《聖歌》與它未曾踏上的道路
- 個人最順手的git工作流程Git
- 歷經2個月從後端轉行到前端的改變後端前端
- 【Java分享客棧】我曾經的兩個Java老師一個找不到工作了一個被迫轉行了Java
- 從業者的吐槽:10個遊戲圈朋友7個失業2個轉行遊戲
- 這本最適合夯實基礎的經典 Java 書籍,可能 80% 的 Java 程式設計師沒認真看過!Java程式設計師
- 最直白的方式直面Java多執行緒Java執行緒
- 本週15個AI機器人最重要的發展AI機器人
- 《每個人的戰爭》讀書筆記筆記
- 讀書是個人成長最快的方法
- 史上最坑爹的程式碼!個個讓人崩潰!
- JAVA面試題筆試題-查詢一個字串不重複最長的串(個人方法)Java面試題筆試字串
- 遊戲行業的加班人遊戲行業
- IT行業學歷重要嗎?行業
- Java 開發最容易寫的 10 個bugJava
- 2014最熱門的10個Java話題Java
- 最熱門的13個Java微服務框架Java微服務框架
- 遮蔽力是一個人最頂級的能力
- IT 從業者必備的20個效率工具,速藏!
- 一個好的產品經理到底有多麼重要?