開篇詞-java序員如何快速成長_第1頁
開篇詞-java序員如何快速成長_第2頁
開篇詞-java序員如何快速成長_第3頁
開篇詞-java序員如何快速成長_第4頁
開篇詞-java序員如何快速成長_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、開篇詞-Java程序員如何快速成長?你好,我是雙,很高興你走進“深入拆解Tomcat & Jetty”專欄,與我和其他同學(xué)起探討熟悉又陌生的Tomcat和Jetty。如果你和我樣選擇了Java Web開發(fā)這個方向,并且正在學(xué)習(xí)和提高的,你定思考過這個問題:我怎樣才能成長為名高級程序員或者架構(gòu)師?對于這個問題,每個人的都可能都不太樣,我先來講講經(jīng)歷。十年前我在實習(xí)的時候是做系統(tǒng)開發(fā),用的開發(fā)語言是C和C+。出于我個人的,當時轉(zhuǎn)Java,在學(xué)了段時間的Java后,發(fā)現(xiàn)Java上手還是挺快的,API比較齊全,而且也不需要自己來管理內(nèi)存,感覺比C語言高級。畢業(yè)后我也順利地找到了個Java開發(fā)的工作,入

2、職后工作主要是實現(xiàn)些小模塊,很多時候通過代碼的粘貼,再稍微改改就能完成功能,這樣的狀態(tài)大概持續(xù)了年。在這個過程中,雖然我對Java語法更加熟悉了,也“背”過 些設(shè)計模式,用過 些Web框架,但是我很少有機會將 些Java的高級特性運用到實際項目中,因此我對它們的理解也是模糊的。那時候如果讓我獨立設(shè)計 個系統(tǒng),我會感到非常茫然,不知道從哪里下手;對于Web框架,我也只是知道這樣用是可以的,不知道它背后的原理是什么。并且在我腦子里也沒有 張Java Web開發(fā)的全景圖,比如我并不知道瀏覽器的請求是怎么跟Spring中的代碼聯(lián)系起來的。后來我分析發(fā)現(xiàn),知識體系在廣度和深度上都有問題。為了突破這個瓶頸

3、,我當時就想,為什么不站在巨人的肩膀上學(xué)習(xí)些優(yōu)秀的開源系統(tǒng),看看大牛們是如何思考這些問題的呢。于是我注意到了像Tomcat和Jetty這樣的Web容器,覺得它們很神奇,只需要把Web應(yīng)用打成WAR包放到它的目錄下,啟動起來就能通過瀏覽器來了,我非常好奇Web容器是如何工作的。此外Tomcat的設(shè)計非常經(jīng)典,并且運用了方方面面的Java技術(shù),而這些正好是我欠缺的,于是我決定選擇Tomcat來深入研究。學(xué)習(xí)了Tomcat的原理之后,我發(fā)現(xiàn)Servlet技術(shù)是Web開發(fā)的原點,幾乎所有的Java Web框架(比如 Spring)都是基于Servlet的封裝,Spring應(yīng)用本身就是個Servlet,

4、而Tomcat和Jetty這樣的Web容器,負責(zé)加載和運行Servlet。你可以通過下面這張圖來理解Tomcat和Jetty在Web開發(fā)中的位置。隨著學(xué)習(xí)的深入,我還發(fā)現(xiàn)Tomcat和Jetty中用到不少Java高級技術(shù),比如Java多線程并發(fā)編程、Socket網(wǎng)絡(luò)編程以及反射等等。之前我僅僅只是了解這些技術(shù),為了面試也背過些題,但是總感覺“知道”和“會用”之間存在道鴻溝。通過對Tomcat和Jetty源碼的學(xué)習(xí),我學(xué)會了在什么樣的場景下去用這些技術(shù),這點。還有就是系統(tǒng)設(shè)計能力,Tomcat和Jetty作為工業(yè)級的中間件,它們的設(shè)計非常優(yōu)秀,比如面向接口編程、組件化、骨架抽象類、鍵式啟停、對象

5、池技術(shù)以及各種設(shè)計模式,比如模板方法、觀察者模式、責(zé)任鏈模式等,之后我也開始模仿它們并把這些設(shè)計運用到實際的工作中。在理解了Web容器以及JVM的工作原理后,我開始解決線上的疑難雜癥,并且嘗試對線上的Tomcat進行調(diào)優(yōu)。性能的也是實實在在的成果,我也因此得到了同事們的認可。總之在這個過程中,我逐漸建立起了自己的知識體系,也開始獨立設(shè)計個系立解決技術(shù)難題,也就是說我漸漸具備了獨當面的能力,而這正是高級程序員或者架構(gòu)師的特質(zhì)。概括下,獨當面的能力,離不開技術(shù)的廣度和深度。技術(shù)的廣度體現(xiàn)在你的知識是成體系的,從前端到后端、從應(yīng)用層面到操作系統(tǒng)、從到硬件、從開發(fā)、測試、部署到運維有些領(lǐng)域雖然你不需要

6、挖得很深,但是你必須知道這其中的“門道”。而技術(shù)的深度體現(xiàn)在對于某種技術(shù),你不僅知道怎么用,還知道這項技術(shù)如何產(chǎn)生的、它背后的原理是什么,以及它為什么被設(shè)計成這樣,甚至你還得知道如何去改進它。但是人的精力是有限的,廣度和深度該如何權(quán)衡呢?我建議找準個點先突破深度,而Tomcat和Jetty就是非常好的選擇。但同時它們也是比較復(fù)雜的,具體應(yīng)該怎么學(xué)呢?驗。通過這個專欄,來些經(jīng)首先要學(xué)習(xí)些基礎(chǔ)知識,比如操作系統(tǒng)、計算機網(wǎng)絡(luò)、Java語言,面象設(shè)計、HTTP協(xié)議以及Servlet規(guī)范等。接下來會學(xué)習(xí)Tomcat的Jetty的總體架構(gòu),并從全貌逐步深入到各個組件。在這個過程中,我會重點關(guān)件的工作原理和

7、設(shè)計思路,比如這個組件為什么設(shè)計成這樣,設(shè)計者們當時是怎么考慮這個問題的。然后通過源碼的剖析,加深你的理解。更重要的是,幫你學(xué)會在真實的場景下如何運用Java技術(shù)。同時我還會通過Jetty與Tomcat的對比,比較它們各自的設(shè)計特點,讓你對選型有更深的理解。并且通過思考和總結(jié),幫你從中提煉些通用的設(shè)計原則,以及實現(xiàn)高性能高并發(fā)的思路。在深入了解Tomcat和Jetty的工作原理之后,我會從實戰(zhàn)出發(fā),帶你看看如何Tomcat的性能,以及怎么從內(nèi)存、線程池和I/O三個方面進行調(diào)優(yōu),同時我也還會分析和解決些你在實際工作中可能會碰到的棘手問題。在這個過程中,我還會介紹Tomcat和Jetty支持的Se

8、rvlet新技術(shù),比如WebSocket和異步Servlet等,我會重點分析這些新技術(shù)是從何而來,以及Tomcat和Jetty是如何支持的。這些都是Web技術(shù)的在自己的工作中根據(jù)需要選用這些新技術(shù)。,你可以總之,弄懂了Tomcat和Jetty,Java Web開發(fā)對你來說就已經(jīng)毫無“”可言。并且你能體會到大神們是如何設(shè)計Tomcat和Jetty的,體會他們?nèi)绾嗡伎紗栴}、如何寫代碼。比如怎樣設(shè)計服務(wù)端程序的I/O和線程模型、怎樣寫高性能高并發(fā)程序、Spring的IoC容器為什么設(shè)計成這個樣子、設(shè)計個中間件或者框架有哪些套路等這些都能快速增加你的經(jīng)驗值。成長的道路沒有捷徑,不僅需要上進心和耐心,還

9、要保持對知識的好奇心。如果你也想在技術(shù)和視野上有所突破,擁有獨當面的能力,從Tomcat和Jetty入手是個非常好的選擇,我也邀請你與我起探究Tomcat和Jetty的設(shè)計精髓,起收獲經(jīng)驗、享受成長。最后,如果你正在Java Web開發(fā)這條向著架構(gòu)師的方向狂奔,歡迎你給我留言,講講你所付出的努力、遇到了哪些問題,或者寫寫你對這個專欄的期待,期待與你交流。精選留言:怪 2019-05-13 18:44:25終于等到老師的了,打卡ing 2贊作者回復(fù)2019-05-13 18:48:57 Monday 2019-05-13 23:50:37直想深入到tomcat這只喵的底層:包括但不僅限于tomc

10、at的底層數(shù)據(jù)結(jié)構(gòu)和算法、設(shè)計模式、源碼、s ocket編程、并發(fā)編程等等等等。以前有嘗試過好幾次細究tomcat,但總之還是沒堅持下來。今天終于等到你。希望和大家起學(xué)習(xí)成長。在此立下flag:保持這份學(xué)習(xí)的熱情,定下學(xué)透tomcat的目標,堅持不落隊讀本專欄的每篇,不懂就問,最后產(chǎn)出-調(diào)優(yōu)公司某套基于tomcat部署的環(huán)境。 1贊2019-05-13 18:40:05心情不好,聽節(jié),充滿期待。我希望把tomcat和jetty當成最基礎(chǔ)知識來充實自己,知道它能用,好用,還要知道它為什么會好用。 1贊作者回復(fù)2019-05-13 19:02:00讓自己充實起來,心情就會好了,起加油Fouy 飛虎

11、 2019-05-13 23:03:00尚未成功,仍需努力!加油!Amanda 2019-05-13 22:44:28工作中項目使用spring,但是都是現(xiàn)成的配置,并不知道其實現(xiàn)以及配置的原理,原來Servlet是Java Web的原點,期待跟隨老師同學(xué)起夯實這方面,能夠解決這些疑問并具備獨立開發(fā)的能力。作者回復(fù)2019-05-13 23:31:18嗯嗯,你說的很好,“獨立”兩字非常重要,需要建立你的知識體系,有深度,有廣度,加油 2019-05-13 22:40:09優(yōu)秀,學(xué)習(xí)了作者回復(fù)2019-05-13 23:24:43 Mr.z 2019-05-13 21:32:34問下 sprin

12、g boot這種集成Tomcat 和jetty的該如何優(yōu)化Tomcat呢作者回復(fù)2019-05-13 22:28:04嗯,其實跟tomcat獨立部署是樣的,調(diào)優(yōu)的原理相同的,你可以通過Springboot配置Tomcat的參數(shù)來調(diào)優(yōu),專欄最后個模塊有調(diào)優(yōu)的部分。2019-05-13 20:29:48Java開發(fā)兩年,這兩年明知道自己是在CV,但是卻找不到突破的方向!希望借此課程能讓自己有所!作者回復(fù)2019-05-13 20:37:21起進步吃飯飯 2019-05-13 20:14:27開篇點贊 作者回復(fù)2019-05-13 20:39:21!徐云天 2019-05-13 19:55:40不管你的目標是什么,實力才是。只有不斷累積才能有所突破。作者回復(fù)2019-05-13 20:39:39對的青梅煮酒 2019-

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論