我是如何成為一個Java Web開發者的
本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃!
最近有人在我的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?
翻譯作者:碼農網 – 小峰
[ 轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]
相關文章
- 如何成為一個出色的敏捷開發者?敏捷
- 如何成為一個偉大的開發者
- 如何成為坐擁百萬的Web開發者?Web
- 我是一名WEB開發者Web
- 我是如何從一個學物理的成為前端的 | 掘金年度徵文前端
- 什麼是Web開發?如何成為一個Python Web開發人員?WebPython
- 10個步驟讓你成為高效的Web開發者Web
- 如何在不到六個月的時間內成為一個開發者
- 我是一個壞軟體開發者
- 結婚養幾個孩子是如何讓我成為一個更好的程式設計師的程式設計師
- 21 步助你成為成功的 Web 開發者Web
- 作為前端開發者我是如何跟上時代腳步的前端
- [譯] 如何成為更好的開發者
- Growth: 一個關於如何成為優秀Web Developer 的 AppWebDeveloperAPP
- [譯] 如何從一個業餘愛好者成長成為專業開發者
- 我如何零基礎轉行成為一個自信的前端前端
- 如何成為一名合格的 C/C++ 開發者?C++
- 如何成為一名優秀的移動開發者?移動開發
- 我是一個請求,我是如何被髮送的?
- 一個NB的web前端開發者,是怎麼學習的?Web前端
- 我是如何從礦工成為程式設計師的程式設計師
- 如何成為一個JavaScript 大牛?JavaScript
- 我為什麼選擇成為獨立開發者
- Python 潮流週刊#53:我輩楷模,一個約見諾獎得主,一個成為核心開發者Python
- 如何成為優秀的遠端開發者
- 成長路線圖:如何成為一名Python開發者?Python
- 【福利】那些年我總結的Web開發者成長路線Web
- Web開發者需養成的8個好習慣Web
- 超硬核的Java工程師分享,什麼是Java?為什麼我要做Java,我是如何學習Java的?Java工程師
- 我是如何成為一名機器學習工程師,並很快找到工作的?機器學習工程師
- 從Java到區塊鏈:如何成為區塊鏈開發者?Java區塊鏈
- 我是如何從煤礦工成為程式設計師的程式設計師
- 你應該成為 Web 開發者的 5 大理由Web
- 掌握這10個技能,成為高效的Web前端開發者,就是這麼簡單!Web前端
- 如何成為一個架構師架構
- 分享我成為GDE(Google開發者專家)的經歷Go
- 成為自信的node.js開發者(一)Node.js
- Spark 是一個基於Java的微Web框架SparkJavaWeb框架