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

jopen 9年前發布 | 37K 次閱讀 Java

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

英文原文:How Do I Become a Java Web Developer?

最近有人在我的 非死book 頁面上問我,“我怎么才能成為一個 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

翻譯作者:碼農網 – 小峰

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!