怎樣成長為一個專業(yè)的java web 開發(fā)者?

“我怎么才能成為一個JavaWeb開發(fā)者?”

對于這個問題,答案其實并不簡單。成為一個JavaWeb開發(fā)人員包括很多方面。我遇到過的Java程序員,可能曾是優(yōu)秀的前端開發(fā)人員,也可能以前是不錯的后端開發(fā)人員。所謂“前端”,我指的是眾多瀏覽器端技術(shù)——HTMLCSS、Java,以及Java模板技術(shù),如Thymeleaf、SiteMesh,或者古老的JSPs。后端開發(fā)人員有更堅實的Java、數(shù)據(jù)庫(SQL和NoSQL),消息傳遞(JMS/AQMP)和Web服務(wù)(SOAP/REST)技能。

你應(yīng)該也知道所謂的“全?!盝ava開發(fā)人員。這是個人的技能集合。一個完整的全棧開發(fā)者應(yīng)該同樣勝任前端開發(fā)和后端開發(fā)的工作。這可能是難度系數(shù)最高的一條路了,因為所涉及得技術(shù)非常多樣。也許有一天,你前一秒還在jQuery調(diào)試,接下來就去性能調(diào)優(yōu)Oracle數(shù)據(jù)庫查詢了。但是,成為一個全才Java開發(fā)人員是需要時間和經(jīng)驗的。

從哪里開始?

對于有抱負(fù)的開發(fā)人員,技術(shù)的前景會成為壓倒一切的動力。但是技術(shù)也是在不斷變化發(fā)展中的。你會冒著學(xué)習(xí)的東西很快就會過時的風(fēng)險嗎?

客戶端技術(shù)

我建議新手開發(fā)人員可以從基礎(chǔ)的學(xué)起;HTML,CSS和Java。這些技術(shù)是web開發(fā)的核心。而且這些技術(shù)在某種意義上說也是通用的,無論你是Java web開發(fā)人員還是RubyWeb開發(fā)人員都要用到。

HTML

HTML——超文本標(biāo)記語言。這是用來生成網(wǎng)頁的。你需要對HTML有一個深入的了解。在萬維網(wǎng)初期,HTML習(xí)慣上是一個由網(wǎng)頁服務(wù)器向瀏覽器提供的文件。它對靜態(tài)內(nèi)容非常有效。不會改變內(nèi)容。但是,現(xiàn)在人們越來越傾向于動態(tài)的內(nèi)容。于是,HTML不再是靜態(tài)的文件,HTML開始按需生成。作為一個Java web開發(fā)者,你得會編寫如何為網(wǎng)頁瀏覽器生成HTML文件的代碼。你需要對HTML文檔的結(jié)構(gòu)有一個深刻的理解。

CSS

CSS——層疊樣式表。這是用來顯示頁面樣式的。它控制字體、顏色和布局。與HTML定義的是網(wǎng)頁的內(nèi)容不同,CSS定義的是當(dāng)在瀏覽器中呈現(xiàn)時網(wǎng)頁的外觀。例如,你可以對桌面Web應(yīng)用程序使用一套CSS規(guī)則,對移動應(yīng)用程序使用另一套不同的CSS規(guī)則。相同的HTML,當(dāng)渲染在瀏覽器上時,就有了兩個完全不同的外觀。

Java

Java——制作網(wǎng)頁上的東西。不要將Java與Java混淆。雖然它們有一些語法的相似性,但這是兩個完全不同的編程語言。Java才能真正推動Web 2.0應(yīng)用程序。通過使用Java,你可以根據(jù)用戶的操作,動態(tài)地改變HTML/CSS,提供更有視覺感受的網(wǎng)頁給用戶。

HTTP

HTTP(超文本傳輸協(xié)議)——客戶端和Web服務(wù)器之間的通信。有太多的web開發(fā)人員居然對HTTP一無所知。HTTP絕對是你必學(xué)的關(guān)鍵技能。尤其是當(dāng)你要用AJAX工作的時候。你需要知道一個POST和一個GET之間的區(qū)別。你應(yīng)該記住HTTP狀態(tài)碼200,301和404的含義——以及更多。作為一個Java web開發(fā)人員,你的日常工作不可避免要與HTTP打交道。

服務(wù)端技術(shù)

Java

Java——本文的問題就是如何成為一個Java

web開發(fā)人員。所以,你當(dāng)然得知道Java編程語言。除了Java本身,你還應(yīng)該熟悉Java Servlet API。有一些Java

web框架,隱藏著Java Servlet API的用法。如果出現(xiàn)問題,那么你需要知道幕后究竟發(fā)生了什么事情。

JPA

JPA——Java持久性API——使用數(shù)據(jù)庫。JPA是Java傳統(tǒng)關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)。

Hibernate是現(xiàn)在使用最廣泛的JPA實現(xiàn)。作為一個Java web開發(fā)人員,你肯定要用到數(shù)據(jù)庫。你要從數(shù)據(jù)庫中得到內(nèi)容,以顯示在網(wǎng)頁上,或從用戶那里接收內(nèi)容存儲到數(shù)據(jù)庫中。所以,Java web開發(fā)人員需要知道如何使用JPA。

Java應(yīng)用程序服務(wù)器

Java應(yīng)用程序服務(wù)器——Java web應(yīng)用程序的運(yùn)行時容器。Tomcat是到目前為止最流行的Java應(yīng)用程序服務(wù)器。Web應(yīng)用程序歸檔文件,又名WAR文件,有一個Java標(biāo)準(zhǔn)。這些被部署到應(yīng)用程序服務(wù)器,如Tomcat,以此為你的web應(yīng)用程序提供運(yùn)行環(huán)境。十年以前,還流行在應(yīng)用程序和應(yīng)用程序服務(wù)器之間應(yīng)用更復(fù)雜的耦合。然而,現(xiàn)在的趨勢更支持應(yīng)用程序和應(yīng)用服務(wù)器之間的松散耦合。

Java框架

請注意,到目前為止,我還沒有提到任何Java框架。我所描述的,都是你作為一個Java web開發(fā)人員會用到的不同技術(shù)??蛻舳思夹g(shù)完全獨立于服務(wù)器端技術(shù)。Firefox不在乎,服務(wù)器運(yùn)行的是Java,Python還是.NET。不過,新手開發(fā)人員似乎常常遺忘這一點。

不使用Java框架的Java web開發(fā)也是可以的。但是這樣一來,你需要額外寫很多代碼來處理原本框架可以為你辦到的事情。這就是為什么開發(fā)Java web應(yīng)用程序時,你通常會想要使用某一個框架。

Spring框架

Spring框架是構(gòu)建web應(yīng)用程序一個非常棒的工具集合。雖然沒有精確的統(tǒng)計數(shù)據(jù),但我看到有文章估算已有超過60%基于Java的web應(yīng)用程序使用Spring。這其實也不奇怪。Spring Core有IoC容器和依賴注入。Spring MVC,是一款基于MVC的成熟又靈活的web框架。Spring Security是保護(hù)網(wǎng)站最好的工具。Spring Date有助于維護(hù)持久性。Spring還有其他的項目,你可以用來構(gòu)建大范圍推廣的應(yīng)用。

當(dāng)涉及到整體框架時,真的找不到替代品代替Spring。哪怕存在著很多針對不同Spring項目的競爭技術(shù)。但是,沒有單一的解決方案,能夠具備Spring框架系列項目的深度和廣度。在我的Spring入門在線教程上,我對主要的Spring框架項目做了一個很好的概述,并說明了如何使用它們來構(gòu)建企業(yè)級應(yīng)用程序。

Grails

Grails是建立在Spring之上的快速應(yīng)用程序開發(fā)框架。它不但擁有Spring的所有內(nèi)容,還借鑒了Groovy的生產(chǎn)力優(yōu)勢。我喜歡將Grails形容為用Groovy包裝過的Spring。關(guān)鍵一點要記住的是,其背后依然是Spring。

Grails現(xiàn)在越來越受到企業(yè)的歡迎。Grails的優(yōu)勢之一就是其出色的社區(qū)支持。

Spring Roo

Spring Roo是一個純Java框架,這似乎和Grails的作用相同,不過它沒有Groovy。我不是Spring Roo的的粉絲,并且我最后一次使用Spring Roo也不是因為市場要求。Spring Roo還沒有被廣泛接受。

Play

基于Scala的框架。雖然我還沒有嘗試過Play。但是現(xiàn)在市場上面的反響不錯。所以有機(jī)會的話我會試一試。不過它目前還沒有被企業(yè)中廣泛采用。至少到現(xiàn)在為止還沒有。

JBoss Seam

JBoss Seam可能是最接近Spring框架的替代品。JBoss Seam遵循JEE標(biāo)準(zhǔn)。JBoss Seam是一個很好的選擇,具有良好的支持而被企業(yè)所接受。不過,JBoss Seam經(jīng)常因為在開發(fā)和性能方面比Spring慢而飽受詬病。但是有的批評對于JBoss Seam過于苛刻了。

武漢中軟卓越總結(jié):

成為Java web開發(fā)人員是不可能一蹴而就的。沒有所謂的《21天自學(xué)成為Javaweb開發(fā)者》的速成教材,也沒有捷徑。你需要學(xué)習(xí)和掌握很多不同的技術(shù)。而所有這些都需要時間來學(xué)習(xí)。

成為Javaweb開發(fā)人員是一個非常有意義的事業(yè)。你剛?cè)腴T的時候可以只專注于前端技術(shù),也可以只專研后端技術(shù)。隨著以后開發(fā)的項目增多,你就可以從這一技術(shù)領(lǐng)域轉(zhuǎn)移到另一個技術(shù)領(lǐng)域。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,695評論 19 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,288評論 6 342
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,351評論 25 708
  • 余生有他 如此幸運(yùn) 執(zhí)子之手 與子偕老
    Oidrary閱讀 183評論 0 1
  • 晨 清明,正是雨紛紛的時節(jié)。我站在無數(shù)荒墳前。太陽剛剛升起,晨曦照到細(xì)雨,雨便成了...
    半月仙河北廊坊閱讀 298評論 3 7

友情鏈接更多精彩內(nèi)容