溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java行業(yè)的圣經(jīng)-四本最重要的個(gè)人藏書 (轉(zhuǎn))

發(fā)布時(shí)間:2020-08-11 08:21:11 來(lái)源:ITPUB博客 閱讀:261 作者:gugu99 欄目:編程語(yǔ)言
Java行業(yè)的圣經(jīng)-四本最重要的個(gè)人藏書 (轉(zhuǎn))[@more@]

Java行業(yè)的圣經(jīng) 四本最重要的個(gè)人藏書,他們的書名都不含Java

作者 Thomas E. Davis
譯者 Mailto:msklsf@263.NET">msklsf@263.net

摘要

Thomas Davis 推薦了四本書,它們可以讓你在java開(kāi)發(fā)中受益非淺。這些書擴(kuò)展了Java的基本語(yǔ)法和語(yǔ)義,使你能更全面地理解面向?qū)ο蟮某绦蛟O(shè)計(jì)。

正文

《Design patterns》

《Refactoring: Improving the Design of Existing Code》

《AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis》

《Extreme Programming Explained: Embrace Change》

  在這篇文章中,我提出了新手和專家在使用Java進(jìn)行開(kāi)發(fā)的區(qū)別,而且也給出了一個(gè)參考書目,幫助新手超越這個(gè)界限。這不是一個(gè)書目回顧,而是你通往職業(yè)發(fā)展中下一步的車票。

  Java是一個(gè)程序設(shè)計(jì)語(yǔ)言。它也是一個(gè)工具,如果錯(cuò)誤地使用,它就是無(wú)用的,某些時(shí)候甚至是危險(xiǎn)的。僅僅知道它的語(yǔ)法和語(yǔ)義不是一個(gè)程序員要做的。一個(gè)程序員也必須密切地關(guān)注和理解環(huán)境模式,也就是說(shuō)在Java環(huán)境中,什么是面向?qū)ο笤O(shè)計(jì)。知道對(duì)象是什么、接口是什么、多少對(duì)象實(shí)現(xiàn)了一個(gè)接口等等無(wú)聊的東西是遠(yuǎn)遠(yuǎn)不夠的。一個(gè)程序員必須知道這種使那些規(guī)則和關(guān)系融合成一個(gè)靈活的、可重用的、可擴(kuò)展的系統(tǒng)的神秘方法。我在這里討論的這些書將給你那些經(jīng)驗(yàn),提高你作為一名Java程序員的職業(yè)素質(zhì)。令人奇怪的是,沒(méi)有一本書在他們的書名中包括Java一詞。

注:本文所討論的所有書目的URL地址可以在本文后面的資源中找到。

《Design patterns》

  這本書的作者是Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, 和Grady Boocha——the Gang of Four是他們著名的呢稱,由 Addison-Wesley出版社在1995年出版。模式一詞描述了一類重復(fù)的問(wèn)題而且提供了一個(gè)可重用的解決方案。設(shè)計(jì)模式至少可以通過(guò)對(duì)象共享來(lái)幫助你避免內(nèi)存限制的缺陷以簡(jiǎn)化你的工作,設(shè)計(jì)模式也可以創(chuàng)造一個(gè)類似于接口的、可以靈活地同第三方庫(kù)進(jìn)行綜合的集成方式來(lái)簡(jiǎn)化你的工作。《Design patterns》仔細(xì)描述了這兩種設(shè)計(jì)模式,給出了評(píng)價(jià),而且提供了代碼例子和易于理解的相關(guān)圖表。雖然代碼例子都是C++的,但是語(yǔ)法十分類似于Java,因此大多數(shù)程序員將毫無(wú)問(wèn)題地掌握這些概念。有一本本書的仿制品,它采用Java作為例子,書名是《Java Design Patterns: A Tutorial》,作者是James William Cooper,由Addison-Wesley出版社在 2000年出版;但是沒(méi)有the Gang of Four在《Design patterns》中所闡述的透徹和深度。

  一旦你熟悉了《Design Patterns》中所列出的設(shè)計(jì)模式,將認(rèn)識(shí)到他們中的一些是如何發(fā)展的。在Addison-Wesley出版社1998年出版的《Design Patterns Applied(Software Patterns Series)》中,John Vlissides 敘述了在某些最流行模式上的爭(zhēng)論和討論,而且介紹了一些新的在《Design Patterns》中刪去的模式。

《Refactoring: Improving the Design of Existing Code》

  會(huì)犯錯(cuò)誤就是人。如果這是真理的話,我看到了數(shù)以百計(jì)比我更象人的程序。項(xiàng)目出問(wèn)題了。錯(cuò)誤出現(xiàn)了。進(jìn)度延期了,質(zhì)量犧牲了。這些都是對(duì)我們所從事的職業(yè)的警告。但是當(dāng)事情逐漸變得最糟時(shí),你需要在什么地方改變方向呢?我的非常多的同事采用"throw-away-and-start-over"的方法:從零開(kāi)始,希望自己已經(jīng)可以避免錯(cuò)誤了。那是最極端的解決辦法,它一定激怒了你的老板。但是不要絕望,因?yàn)橛刑娲霓k法。

  《Refactoring: Improving the Design of Existing Code》是Addison-Wesley出版社面向?qū)ο蠹夹g(shù)系列叢書中的一本,作者是Martin Fowler, Kent Beck, John Brant, William Opdyke, 和Don Roberts ,出版日期是1999年,這本書給開(kāi)發(fā)者提供了重新開(kāi)始的不同選擇。Refactoring就是通過(guò)重構(gòu)一個(gè)程序的內(nèi)部結(jié)構(gòu)但是不改變它的外部行為來(lái)提高它的性能的處理過(guò)程。Refactoring能讓一個(gè)方法執(zhí)行得更快或者提供更精確的執(zhí)行結(jié)果,但是不改變這個(gè)方法的名字。這些改變對(duì)調(diào)用該方法的程序而言是不可見(jiàn)的,因此沒(méi)有代碼需要修改。

  這本書教讀者如何通過(guò)一個(gè)特殊的意識(shí)來(lái)識(shí)別問(wèn)題代碼,而且將每一個(gè)放到一個(gè)程序目錄中以便修改。例如,一個(gè)意識(shí)或許是一個(gè)不適當(dāng)?shù)挠H密關(guān)系——描述了兩個(gè)或更多個(gè)類的關(guān)系太緊密了以致對(duì)一個(gè)類的改變要求另一個(gè)類也要改變。這本書所建議的眾多的解決方法的一個(gè)是將這個(gè)存在問(wèn)題的方法移到一個(gè)更適當(dāng)?shù)念愔小?/P>

《AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis》

  軟件開(kāi)發(fā)不是易于出錯(cuò)和疏忽的唯一地方。管理同樣易于出現(xiàn)缺陷,這是由于混亂的開(kāi)發(fā)過(guò)程和不現(xiàn)實(shí)的開(kāi)發(fā)進(jìn)度。大多數(shù)因特網(wǎng)公司在他們的開(kāi)發(fā)部門有一個(gè)令人擔(dān)憂的人員流動(dòng)速度。隨著程序員的加入和退出,職責(zé)的層次結(jié)構(gòu)就想代碼結(jié)構(gòu)一樣變得令人費(fèi)解。《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年出版,這本書將把上述加入到你整個(gè)的事業(yè)目標(biāo)中。它對(duì)計(jì)劃、錯(cuò)誤管理、基本方法中的常見(jiàn)錯(cuò)誤進(jìn)行分類,使你跳出深淵。

  你的方案是否正遭受委員會(huì)的挑剔?就象有非常多的廚師在調(diào)一鍋湯一樣。或者你的代碼基礎(chǔ)是違反模式的賣方代碼,導(dǎo)致你依賴一個(gè)不可靠的第三方產(chǎn)品?!禔ntiPatterns》將這些問(wèn)題分為12大類和大約24個(gè)小類,指導(dǎo)你避免這些問(wèn)題或者跳離你偶然進(jìn)去的陷阱。

《Extreme Programming Explained: Embrace Change》

  XP是一種新鮮的、有些爭(zhēng)議的新的開(kāi)發(fā)過(guò)程,Kent Beck是它的先行者。XP力爭(zhēng)按時(shí)提供好的軟件,沒(méi)有官僚作風(fēng),不重視傳統(tǒng)的開(kāi)發(fā)周期。在因特網(wǎng)啟動(dòng)的發(fā)燒期,每個(gè)人的目光都聚焦在趕上市場(chǎng)。在現(xiàn)實(shí)世界中,項(xiàng)目超過(guò)了預(yù)算或者過(guò)了最后期限,就會(huì)被取消,這最終導(dǎo)致某些公司徹底失敗。項(xiàng)目開(kāi)始的文檔和圖表很少能夠反映最終的產(chǎn)品。因此,開(kāi)發(fā)團(tuán)隊(duì)需要適應(yīng)項(xiàng)目需求的頻繁變化并作出反映。那正是XP要發(fā)光的地方。

  “溝通、簡(jiǎn)潔、反饋、勇氣”是XP愛(ài)好者的秘訣。溝通有很多種途徑,例如在成雙成對(duì)的程序設(shè)計(jì)中完成。也就是一個(gè)人編碼,伙伴們進(jìn)行對(duì)等的實(shí)時(shí)檢查。

  簡(jiǎn)潔意味著當(dāng)你需要它的時(shí)候就僅僅建造那些你需要的。不浪費(fèi)時(shí)間執(zhí)行那些解決將來(lái)或許會(huì)發(fā)生的問(wèn)題的奢侈方案。

反饋意味著“早發(fā)布,常發(fā)布”,這些為那些開(kāi)放源代碼的狂熱者所喜愛(ài)。通過(guò)在開(kāi)發(fā)的早期將產(chǎn)品呈現(xiàn)在用戶的面前,你能盡量避免出現(xiàn)在開(kāi)發(fā)周期后期的劇烈變動(dòng)要求。

  最后,勇氣促使XP弟子抓住機(jī)會(huì)并從結(jié)果中吸取經(jīng)驗(yàn)。只有在極少見(jiàn)的場(chǎng)合,你才必須求助于"throw-away-and-start-over"技術(shù)。《Extreme Programming Explained: Embrace Change》中描述了那些秘訣和它們是如何幫助你的。這本書的作者是Kent Beck,由Addison-Wesley出版社在1999年出版。

結(jié)論

  最近我有機(jī)會(huì)從零開(kāi)始一個(gè)公司項(xiàng)目。我的開(kāi)發(fā)隊(duì)伍靠這些書的教導(dǎo)生活和呼吸,成果是顯著的。我們按照進(jìn)度、沒(méi)有延期建造了一個(gè)特別健壯和可擴(kuò)展的系統(tǒng)。這些書改善了我的職業(yè)生涯,我相信他們也將改善你的職業(yè)生涯。

關(guān)于作者
    Thomas E. Davis是一個(gè)具有SUN認(rèn)證資質(zhì)的Java軟件工程師,也是他的第二個(gè)成功的Internet計(jì)劃的首席技術(shù)官。目前Thomas居住在陽(yáng)關(guān)充足的南佛羅里達(dá),遺憾的是大部分時(shí)間他都呆在室內(nèi)的一臺(tái)計(jì)算機(jī)前面


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI