官术网_书友最值得收藏!

回想起我第一次接觸電腦的時間應該是在10年前了,記得當時連怎么開電腦都不會,當時感覺電腦真是一個讓人著迷的東西,但是那時別說擁有一臺電腦,就算是能玩上電腦也算是一件奢侈的事情了。人總是有好奇心的,而我也因為追隨著這份好奇和電腦一起走過了將近10年的光陰,也是這份好奇讓我接觸了電腦,認識了電腦,到現在了解了電腦。但是到目前為止我仍然有很多好奇的東西,所以我將一直求解下去。

回想我開始學習編程的時候,在大學期間開始構建自己的第一個網頁到第一個網站,其中的復雜程度真是難以想象,要構建一個網頁,需要學習當時的“網頁三劍客”,頁面布局需要學習Dreamweaver、圖片處理需要學習Fireworks、動畫制作需要學習Flash。有時候為了一個導航欄甚至通宵達旦。還有要自己搭建一個本地服務器,要學習IIS、Apache等。當時的我竟然能夠一個人完成這一系列的事情,現在想想還真是有點佩服自己。

現在回想一下當時自己的學習過程,真是走了很多彎路,浪費了很多時間。當時的學習就像是在一個陌生的城市找路一樣,不知道如何才能到達目的地,只能邊走邊問別人,這個人告訴你一點,那個人告訴你一點,一點一點往前走。但是雖然在往前走,但走的路并不是最近的,甚至有人指的方向是錯的。當時缺少一個總攬全局的地圖,所以不能畫出一條最優的路。雖然走了很多彎路,但是這種不斷自學的過程還是大大地提升了我的學習能力,這種好的自學能力也在我以后的學習工作中起到了關鍵作用。

IT行業知識變化很快,需要不斷地學習新東西,所以學習知識的能力比掌握知識本身更重要。這也是目前大公司招聘標準中很重要的一條。記得當時我的老大在招聘我進入淘寶時,面試時就問我如何學習一門新技術的問題。當你在學習的過程中碰到了很多難題,然后克服這些難題,很多這種過程積累起來就是你無形的寶貴財富。因為你遇到的問題肯定也是其他人遇到的問題,從發現問題、分析問題再到解決問題的過程遠比這個問題本身更有價值。

愛因斯坦說過:“發現問題比解決問題更重要。”對IT人員來說,發現Bug和重現Bug比解決這個Bug更有難度。這就好比一個外國人問周總理中國有多少廁所,總理回答說只有兩個廁所:男廁所和女廁所。但是,什么人在什么時間、什么地點需要上廁所,考慮這樣的情形恐怕需要多少廁所就很難計算了。同樣電腦中也只有0和1兩個選擇,電腦中的程序也同樣如此,每寫一行代碼就能增加甚至一個數量級的出錯的概率。但是我們還是要學習如何避免出現Bug,這就要求我們能有總理的看問題的思維,將復雜的問題簡單化,發現問題背后的本質,找到解決問題的背后的一些通用邏輯,按照這種思路來解決問題可能會讓你事半功倍。

如何讓學習知識的過程事半功倍,尤其是我們程序員如何做到,從我這么多年的學習過程來說,有一些經驗可以分享給大家,這也是我寫這本書的初衷,我真正想分享的不是我掌握的知識,而更多的是我如何學習這個知識的過程,或者說我是如何學習這個知識的,以及我對這些知識的一些總結和提煉。

雖然要掌握整個Web開發中涉及的所有知識是一件非常困難的事情,尤其是要掌握這些知識的實現原理,不僅知其然還要知其所以然。所以掌握學習它們的方法至關重要。如何快速高效地閱讀它們的源碼,有很多同學看到我在developerWorks發表的文章時來信問我如何閱讀各種框架的源碼,很多同學都說不知道從哪里入手來看。其實,當你掌握了一些技巧,加上你的一點耐心,這并不是很難的。

本書雖然介紹了很多開源框架,但是始終都在告訴你如何才能更深入和簡單地掌握這個框架,告訴你學習的方法,而并不是告訴你這個框架有哪些類、怎么用這些零碎的知識。打個比喻,本書并不是告訴你1+1=2,1+2=3,2+2=4這個結果,然后你可以根據這個方式得出1+1+2=4,你要計算其他數必須根據它給你的公式才能計算,而是告訴你加減乘除的算法規則,然后你就可以根據這個規則自己做運算了。

另外本書為什么要選擇介紹Web開發中這些技術的實現原理,因為只有你掌握它們的實現原理,你就能夠快速地解決一些意想不到的問題。例如,當你理解了ClassLoader的工作機制后,遇到ClassNotFoundException時,你就能快速地判斷,到底為什么會報這個錯誤,可能是哪個地方出錯導致的。

另外還有一個很重要的原因是,如果你很想進入淘寶、騰訊、百度這樣的大型互聯網企業工作,不掌握本書講到的這些技術的實現原理,是很難通過技術面試的。因為面試官不僅希望你會用這些技術,還要求你說出個所以然來。所以掌握這些技術的實現原理可以為你的職業發展提供更好的機會。

本書組織結構

本書從結構上主要分為三個部分:第一部分為基礎知識,主要介紹Java Web開發中涉及的一些基本知識,如一次HTTP請求是什么樣的,HTTP協議本身是如何工作的;第二部分將深入介紹Java技術,幫助讀者了解Java是如何工作的,在會用的基礎上進一步理解Java;第三部分是Java服務端技術,主要介紹Web服務器的處理流程,包括Servlet容器的工作原理和Web框架是如何運轉的,也就是從Web服務器接收到請求到返回請求這個過程中涉及的知識。

除了介紹在Java Web開發中用到的框架或系統外,本書還會在介紹這些框架的同時介紹這個框架用到的經典設計模式,因為只有掌握了這些設計模式才能更好地理解這些框架的設計原理。另外用具體的示例來講解設計模式也能讓我們更好地理解設計模式在框架設計中的作用。

目標讀者

如果你是學校剛畢業的學生或者剛剛準備學習Web開發并且不知道如何入手的人,那么這本書比較適合你;如果你已經工作1~2年,已經熟悉了Java Web開發的基本流程并且想進一步提高自己,那么這本書更適合你。

如果你已經知道了如何去學習Java Web開發技術,正準備入門去實際開發,也就是說你是一個開發新手,那么這本書不太適合你。但是當你知道了如何去開發一個Web應用想知道它們如何工作時,歡迎你再回來看看本書,它能幫助你進一步提高。

總的來說,本書適合以下讀者群:

◎ 對Web技術感覺迷茫,不知道如何開始學習,對整個B/S工作機制不了解的同學可以參考本書。

◎ Java技術愛好者,想深入學習Java技術內部實現細節的人。

◎ 有一定開發基礎,但是不了解Web中一些容器和框架的內部工作原理的人。

◎ 大型互聯網工程師,對性能優化和分布式數據管理有興趣,這里介紹了淘寶的一些實踐經驗。

◎ 開源代碼愛好者,喜歡研究開發代碼的Coder可以從本書中找到一些如何分析源碼的方法。

本書不會教你如何開發Web應用程序,也不會介紹Struts、Spring、iBatis等框架如何使用。我想這些框架的使用參考手冊圖書市場上有一大把,本書沒有必要再重復介紹。但是如果你已經掌握如何使用并且不滿足只會使用,想知道它們是如何工作的,想打開這些黑盒子,想以后告訴人家這些黑盒子里到底有些什么東西,對每種技術有強烈的好奇心,如果你是這樣的人,本書值得你擁有。

本書特點

◎ 本書按照通常的學習習慣設計,為你展示從瀏覽器發起請求到瀏覽器最終顯示出頁面整個過程,讓你對Web開發的整個過程有個總體的理解。

◎ 本書雖然講解的都是比較深入的技術,但是實踐示例和比較恰當的比喻將幫你更好地理解。

◎ 本書將結合淘寶網中真實使用示例應用程序來講解技術,讓讀者有更好的直觀認識。

讀者討論

在本書出版后的任何時間有任何問題,你都可以通過xulingbo0201@163.com發送郵件給我,或者到http://xulingbo.net上向我提交你的建議和想法,我會對所有問題給予回復。

致謝

感謝我的父母,在我高考失敗后仍然給我機會讓我選擇自己想做的事,支持我選擇了自己喜歡的電腦行業,在家庭并不富裕的情況下給我配置了第一臺電腦,讓我有機會繼續追求自己的夢想,是你們的支持和鼓勵讓我在做自己一直喜歡做的事。

感謝我的瑩,從大學就一直陪伴在我身邊,有你在我身邊是我一直不斷努力的最大動力,在本書寫作過程中,你完成初稿的審閱工作,同時也給了我很多鼓勵和建議。

感謝電子工業出版社的策劃編輯劉皎和責任編輯董英,你們嚴謹認真的工作態度讓我非常敬佩。

感謝吳澤明(范禹)老大為本書寫的序,不僅帶我進入淘寶,而且也一直幫助我持續進步,感謝王保平、林昊和劉達在繁忙的工作中為我寫推薦語。

感謝在本書寫作過程中提出寶貴意見的同事們,他們的花名是:小凡、小邪、丹臣、哲別、景升、文通、向飛、凌棄、路奇、濟城、大仁、常彬、旭天、韓章、小賭、雁聲、索尼、鳳豪、柳擎、華黎、空望、嗷嗷、漸飛、普智、勝衣、叔度、文景、撒迦、狄龍、祝幽、單通、承澤等。

感謝developerWorks上所有給我提出問題和建議的網友們。

許令波

2012.7

主站蜘蛛池模板: 广饶县| 甘孜县| 德庆县| 新蔡县| 富宁县| 临汾市| 五华县| 苍梧县| 修水县| 海丰县| 新宁县| 昭觉县| 隆安县| 平原县| 黄冈市| 平和县| 衡南县| 石门县| 青州市| 馆陶县| 会东县| 瓦房店市| 新郑市| 萨迦县| 平和县| 威宁| 来凤县| 临沂市| 阿尔山市| 清河县| 房产| 济宁市| 准格尔旗| 剑河县| 大连市| 林芝县| 文山县| 虹口区| 光山县| 磴口县| 南阳市|