我是如何成為一個Java Web開發者的

2015-09-01    分類:程式設計師人生、首頁精華6人評論發表於2015-09-01

本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃

最近有人在我的Facebook頁面上問我,“我怎麼才能成為一個Java Web開發者?”對於這個問題,答案其實並不簡單。成為一個Java Web開發人員包括很多方面。我遇到過的Java程式設計師,可能曾是優秀的前端開發人員,也可能以前是不錯的後端開發人員。所謂“前端”,我指的是眾多瀏覽器端技術——HTML、CSS、Javascript,以及Java模板技術,如Thymeleaf、SiteMesh,或者古老的JSPs。後端開發人員有更堅實的Java、資料庫(SQL和NoSQL),訊息傳遞(JMS/AQMP)和Web服務(SOAP/REST)技能。

你應該也知道所謂的“全棧”Java開發人員。這是個人的技能集合。一個完整的全棧開發者應該同樣勝任前端開發和後端開發的工作。這可能是難度係數最高的一條路了,因為所涉及得技術非常多樣。也許有一天,你前一秒還在jQuery除錯,接下來就去效能調優Oracle資料庫查詢了。但是,成為一個全棧Java開發人員是需要時間和經驗的。

從哪裡開始?

對於有抱負的開發人員,技術的前景會成為壓倒一切的動力。但是技術也是在不斷變化發展中的。你會冒著學習的東西很快就會過時的風險嗎?

客戶端技術

我建議新手開發人員可以從基礎的學起;HTML,CSS和JavaScript。這些技術是web開發的核心。而且這些技術在某種意義上說也是通用的,無論你是Java web開發人員還是Ruby Web開發人員都要用到。

HTML

HTML——超文字標記語言。這是用來生成網頁的。你需要對HTML有一個深入的瞭解。在全球資訊網初期,HTML習慣上是一個由網頁伺服器向瀏覽器提供的檔案。它對靜態內容非常有效。不會改變內容。但是,現在人們越來越傾向於動態的內容。於是,HTML不再是靜態的檔案,HTML開始按需生成。作為一個Java web開發者,你得會編寫如何為網頁瀏覽器生成HTML檔案的程式碼。你需要對HTML文件的結構有一個深刻的理解。

CSS

CSS——層疊樣式表。這是用來顯示頁面樣式的。它控制字型、顏色和佈局。與HTML定義的是網頁的內容不同,CSS定義的是當在瀏覽器中呈現時網頁的外觀。例如,你可以對桌面Web應用程式使用一套CSS規則,對移動應用程式使用另一套不同的CSS規則。相同的HTML,當渲染在瀏覽器上時,就有了兩個完全不同的外觀。

Javascript

Javascript——製作網頁上的東西。不要將Java與Javascript混淆。雖然它們有一些語法的相似性,但這是兩個完全不同的程式語言。JavaScript才能真正推動Web 2.0應用程式。通過使用Javascript,你可以根據使用者的操作,動態地改變HTML/CSS,提供更有視覺感受的網頁給使用者。

HTTP

HTTP(超文字傳輸協議)——客戶端和Web伺服器之間的通訊。有太多的web開發人員居然對HTTP一無所知。HTTP絕對是你必學的關鍵技能。尤其是當你要用AJAX工作的時候。你需要知道一個POST和一個GET之間的區別。你應該記住HTTP狀態碼200,301和404的含義——以及更多。作為一個Java web開發人員,你的日常工作不可避免要與HTTP打交道。

伺服器端技術

Java

Java——本文的問題就是如何成為一個Java web開發人員。所以,你當然得知道Java程式語言。除了Java本身,你還應該熟悉Java Servlet API。有一些Java web框架,隱藏著Java Servlet API的用法。如果出現問題,那麼你需要知道幕後究竟發生了什麼事情。

JPA

JPA——Java永續性API——使用資料庫。JPA是Java傳統關聯式資料庫的標準。Hibernate是現在使用最廣泛的JPA實現。作為一個Java web開發人員,你肯定要用到資料庫。你要從資料庫中得到內容,以顯示在網頁上,或從使用者那裡接收內容儲存到資料庫中。所以,Java web開發人員需要知道如何使用JPA。

Java應用程式伺服器

Java應用程式伺服器——Java web應用程式的執行時容器。Tomcat是到目前為止最流行的Java應用程式伺服器。Web應用程式歸檔檔案,又名WAR檔案,有一個Java標準。這些被部署到應用程式伺服器,如Tomcat,以此為你的web應用程式提供執行環境。十年以前,還流行在應用程式和應用程式伺服器之間應用更復雜的耦合。然而,現在的趨勢更支援應用程式和應用伺服器之間的鬆散耦合。

Java框架

請注意,到目前為止,我還沒有提到任何Java框架。我所描述的,都是你作為一個Java web開發人員會用到的不同技術。客戶端技術完全獨立於伺服器端技術。Firefox不在乎,伺服器執行的是Java,Python還是.NET。不過,新手開發人員似乎常常遺忘這一點。

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

Spring框架

Spring框架是構建web應用程式一個非常棒的工具集合。雖然沒有精確的統計資料,但我看到有文章估算已有超過60%基於Java的web應用程式使用Spring。這其實也不奇怪。Spring Core有IoC容器和依賴注入。Spring MVC,是一款基於MVC的成熟又靈活的web框架。Spring Security是保護網站最好的工具。Spring Date有助於維護永續性。Spring還有其他的專案,你可以用來構建大範圍推廣的應用。

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

Grails

Grails是建立在Spring之上的快速應用程式開發框架。它不但擁有Spring的所有內容,還借鑑了Groovy的生產力優勢。我喜歡將Grails形容為用Groovy包裝過的Spring。關鍵一點要記住的是,其背後依然是Spring。

Grails現在越來越受到企業的歡迎。Grails的優勢之一就是其出色的社群支援。

Spring Roo

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

Play

基於Scala的框架。雖然我還沒有嘗試過Play。但是現在市場上面的反響不錯。所以有機會的話我會試一試。不過它目前還沒有被企業中廣泛採用。至少到現在為止還沒有。

JBoss Sea

JBoss Seam可能是最接近Spring框架的替代品。JBoss Seam遵循JEE標準。JBoss Seam是一個很好的選擇,具有良好的支援而被企業所接受。不過,JBoss Seam經常因為在開發和效能方面比Spring慢而飽受詬病。但是有的批評對於JBoss Seam過於苛刻了。

結論

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

成為Java web開發人員是一個非常有意義的事業。你剛入門的時候可以只專注於前端技術,也可以只專研後端技術。隨著以後開發的專案增多,你就可以從這一技術領域轉移到另一個技術領域。

如果我現在作為一個Java web開發人員入門的話,我會先專注於客戶端技術,因為客戶端技術獨立於伺服器端技術。因此,等你入門了以後,你將會有更多的就業選擇。此外,雖然客戶端技術的薪酬通常比伺服器端的低,但這會是一個良好的開端。你可以快速獲得技能以便於就業,然後再轉移焦點,拓寬技能集,以謀求更好的就業機會。

譯文連結:http://www.codeceo.com/article/how-i-be-java-web-developer.html
英文原文:How Do I Become a Java Web Developer?
翻譯作者:碼農網 – 小峰
轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]

相關文章