<strike id="j6ksu"></strike>
<th id="j6ksu"></th>
  1. <th id="j6ksu"></th>

    目前Java后端開發技術有哪些不是很有必要去學的?

    培訓教學 潘老師 來源:知乎@沈世鈞 4個月前 (08-05) 201 ℃ (0) 掃碼查看

    我接觸 Java已近20年了,見證了許多Java技術變遷,包括:

    JavaEE框架,從百家混戰到現在Spring基本一統天下。
    Web開發,從標配的SSH到現在SpirngMVC + MyBatis組合。
    IDE,從當年如火如荼的JBuilder到Eclipse,再到更好用的IDEA。

    目前Java后端開發技術是否很有必要去學,我判斷的依據主要有以下幾點:

    • 實際開發能否用到?
    • 是否有助于加深對技術的理解?
    • 對面試是否有用?

    一、JSP

    JSP在實際開發中,主要是作為MVC模型中的V(View)層出現的。當然,View層的渲染技術除了JSP,還有FreeMaker、Velocity等。

    JSP作為頁面模板,在后端通過MVC框架渲染成HMTL,然后再發送到客戶端(例如瀏覽器)來呈現。這也就是我們常說的“前后端不分離”,“混合式”開發。而當前,包括我所在的公司,以及大部分互聯網公司。要么已經拋棄這種模式,要么正在拋棄的路上,而轉向徹底的“前后端分離”。

    在“前后端分離”模式下,后端只負責提供服務接口(例如REST),而前端(例如HTML5)通過接口發送/獲取,呈現數據(例如JSON格式)。這樣,在后端,原來的MVC框架,某種意義上已經演變為MC框架。因此,與V(View)相關的一切模板技術都失去了學習的必要,其中當然也包括JSP。

    所以,后來的Java學習者,我的建議是:“完全可以放棄對JSP的學習。”

    二、Struts/Struts2

    在Java后端開發中,MVC模型還是主流。而Struts作為一個MVC框架,單從技術上來說,還是很優秀的。但是,現在Spring實在是太強勢了,越來越成為Java開發中的“一站式”工具包,其中的一個利器就是Spring MVC。望名知意,Spring MVC也是一個MVC框架。而且因為它是Spring的親兒子,自然和Spring契合的非常完美。同時,在設計之初,Spring MVC就參照了其他MVC框架的優缺點(包括Struts),所以用起來非常爽。

    因此,在MVC框架領域,Spring MVC大有一統天下的趨勢。因此現在,很多公司,老的Struts項目還在維護。但新的項目開發,更多轉向了Spring MVC。

    因此,如果你是Java新手,正在學習中,我的建議是:“不要再學習Struts了,從Spring MVC開始吧!”

    三、Hibernate

    Hibernate作為老牌的OR映射框架,功能非常強大,涵蓋面非常廣。但這既是它的優點,同時也成為它的“負擔”,是開發人員“不能承受之重”。

    Hibernate的設計初衷,是為了最大程度的解放程序員,完全隔離數據庫,實現徹底的OR映射。程序員甚至可以不寫一行SQL語句,單通過配置就能實現對數據庫的操作。當然,為了實現這個目標,Hibernate也設計的非常復雜、非常精巧。就不可避免的帶來以下副作用:學習成本高配置復雜調優困難前兩點不難理解,單說“調優困難”:

    因為Hibernate的設計目標是徹底的OR映射,徹底的隔離SQL語句。但必然會帶來一定的性能損失。大部分情況下,應用如果對性能不敏感,Hibernate也沒問題。但應用一旦對性能敏感,有SQL級別調優的需求,Hibernate的優點反而成為缺點。雖然Hibernate也支持SQL級別的調優,但因為框架設計的過于復雜和精巧,這就需要開發人員對Hibernate理解的非常透徹,這就帶來了更高的學習成本。

    而現在最流行的MyBatis,作為一個“混合式”,輕量級OR映射框架,既繼承了Hibernate的優點,同時也吸取了他的教訓。在支持配置的同時,又能接觸SQL,從而帶來了更多靈活性(包括調試、優化)。當前,在實際開發中,Hibernate使用的越來越少了。大家更偏愛MyBatis這種輕量級框架。

    所以,對后來學習者,我的建議是:“不需要再學習Hibernate了,學MyBatis就夠了。”

    四、Servlet(要精通)

    當然,現在不會有任何公司,再用純粹的Servlet來時實現整個Web應用,而是轉向一些更高級的技術(例如各種MVC框架)。因此,會給人一種錯覺:Servlet已經過時,后來者就不需要再學習了

    在這里,我可以非常負責任的說:這種觀點是極端錯誤,極端不負責任的。Servlet不僅要學,而且要學深,學透。當前,Servlet雖然不再是一個主流web開發技術,但依然是Java Web開發技術的基礎,是Java Web容器的基石,是行業標準。而現在流行的各種MVC框架(包括SpringMVC),在最底層,還是以 Servlet為基礎的。為此,我畫了一個簡單的圖(不準確,會意即可):
    目前Java后端開發技術有哪些不是很有必要去學的?

    所以,如果你想要徹底掌握某個MVC框架,則必須徹底理解Servlet。而且,Servlet作為一個基礎設施。精通它,不僅有助于理解各種MVC框架。即使Servlet本身,也有很多實用價值。

    如果你深刻理解了Servlet的生命周期,就可以在底層做很多事情。譬如在Request進來的時候,進行攔截,進行權限的判定。也可以在Response發出的時候,進行攔截,統一檢查、統一附加。

    所以,如果你正在學習Java,對Servlet,我的建議是:“Servlet不僅要學,而且要學深,學透。”

    五、其他

    目前在國內,Java更多是作為web后端技術出現的。因此在實際學習中,很多技術就不符合“國情”,學習的現實意義不大。下面我就簡單列舉下。

    1.Applet

    作為頁面插件技術,不用多說,連flash都快被淘汰了,更無論從未流行的applet。

    2.Swing

    作為桌面UI框架。且不說本身設計的咋樣。現實開發中,我接觸的桌面應用,要么用C++(例如MFC),要么用C#(Winform、WPF)。所以,Swing就沒有學習的必要了。

    3.JDBC

    作為較低層的數據庫基礎設施,JDBC被很多框架(例如MyBatis)支持。但在實際開發中,程序員即使不了解也無大礙。因此,雖然我不能建議你放棄JDBC學習,但如果你時間有限,完全可以把它的優先級排低一點。

    4.XML

    XML現在還在廣泛應用。但作為一個web數據傳輸格式,正在逐漸被JSON替代。所以,對Java后端學習來說,XML簡單了解即可。至于龐雜的XML操作API(例如XPath),完全不必學習。將來真要用到,再查也不遲。

    最后上面是我的一家之言,肯定有武斷之處,見諒!


    版權聲明:本站所有文章,如無特殊說明,均為本站原創。全部下載資源版權歸原作者所有。任何個人或組織,若未征得本站同意,禁止復制、盜用、采集、發布本站內容到任何網站、書籍等各類媒體平臺。若需轉載請注明文章來源。
    本文鏈接:目前Java后端開發技術有哪些不是很有必要去學的?
    喜歡 (5)
    請潘老師喝杯Coffee吧!】
    分享 (0)
    用戶頭像
    發表我的評論
    取消評論
    表情 貼圖 簽到 代碼

    Hi,您需要填寫昵稱和郵箱!

    • 昵稱【必填】
    • 郵箱【必填】
    • 網址【可選】

    您也可以 微信登錄 來發表評論!

    韩国毛茸茸的丰满妇女