<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          這幾個(gè)已經(jīng)淘汰的Java技術(shù),請不要在繼續(xù)學(xué)了!!!

          共 3483字,需瀏覽 7分鐘

           ·

          2022-11-22 19:49

          馬斯克不懂GraphQL,員工指出錯(cuò)誤后當(dāng)場被 “開除”上一篇:馬斯克不懂GraphQL,員工指出錯(cuò)誤后當(dāng)場被 “開除”

          Java 已經(jīng)發(fā)展了近20年,極其豐富的周邊框架打造了一個(gè)繁榮穩(wěn)固的生態(tài)圈

          Java現(xiàn)在他不僅僅是一門語言,而且還是一整個(gè)生態(tài)體系,它實(shí)在是太龐大了,從誕生到現(xiàn)在, 有無數(shù)的技術(shù)不斷的在推出,也有很多技術(shù)在不斷的被淘汰。

          這導(dǎo)致很多人不知道到底哪些技術(shù)值得學(xué),哪些技術(shù)是主流,而哪些技術(shù)不應(yīng)該學(xué)呢?

          從學(xué)習(xí)Java到現(xiàn)在,也有挺多年的了,見證了許多 Java 技術(shù)變遷,包括:

          JavaEE 框架,從百家混戰(zhàn)到現(xiàn)在 Spring 基本一統(tǒng)天下。

          Web 開發(fā),從標(biāo)配的 SSH 到現(xiàn)在 SpirngMVC + MyBatis 組合。

          IDE,從當(dāng)年如火如荼的 JBuilder 到 Eclipse,再到更好用的 IDEA。

          隨著時(shí)間推移,一些優(yōu)秀的框架嶄露頭角,一些低效框架也慢慢退出歷史舞臺(tái)

          而本文,我主要談一下那些 Java 知識(shí)“已經(jīng)過時(shí)”,沒必要繼續(xù)學(xué)習(xí)了。您也可以把本文看做上篇文章的補(bǔ)充。

          我判斷的依據(jù)主要有以下幾點(diǎn):

          1. 實(shí)際開發(fā)能否用到?
          2. 是否有助于加深對技術(shù)的理解?
          3. 對面試是否有用?

          JSP

          JSP 在實(shí)際開發(fā)中,主要是作為 MVC 模型中的 V(View)層出現(xiàn)的。當(dāng)然,View 層的渲染技術(shù)除了 JSP,還有 FreeMaker、Velocity 等。

          JSP 作為頁面模板,在后端通過 MVC 框架渲染成 HMTL,然后再發(fā)送到客戶端(例如瀏覽器)來呈現(xiàn)。這也就是我們常說的“前后端不分離”,“混合式”開發(fā)。

          而當(dāng)前,包括我所在的公司,以及大部分互聯(lián)網(wǎng)公司。要么已經(jīng)拋棄這種模式,要么正在拋棄的路上,而轉(zhuǎn)向徹底的“前后端分離”。

          在“前后端分離”模式下,后端只負(fù)責(zé)提供服務(wù)接口(例如 REST),而前端(例如 HTML5)通過接口發(fā)送/獲取,呈現(xiàn)數(shù)據(jù)(例如 JSON 格式)。

          這樣,在后端,原來的 MVC 框架,某種意義上已經(jīng)演變?yōu)?MC 框架。因此,與 V(View)相關(guān)的一切模板技術(shù)都失去了學(xué)習(xí)的必要,其中當(dāng)然也包括 JSP。所以,后來的 Java 學(xué)習(xí)者,我的建議是:

          “_完全可以放棄對 JSP 的學(xué)習(xí)_。”

          Struts

          在 Java 后端開發(fā)中,MVC 模型還是主流。而 Struts 作為一個(gè) MVC 框架,單從技術(shù)上來說,還是很優(yōu)秀的。

          但是,現(xiàn)在 Spring 實(shí)在是太強(qiáng)勢了,越來越成為 Java 開發(fā)中的“一站式”工具包,其中的一個(gè)利器就是 Spring MVC。

          望名知意,Spring MVC 也是一個(gè) MVC 框架。而且因?yàn)樗?Spring 的親兒子,自然和 Spring 契合的非常完美。

          同時(shí),在設(shè)計(jì)之初,Spring MVC 就參照了其他 MVC 框架的優(yōu)缺點(diǎn)(包括 Struts),所以用起來非常爽。因此,在 MVC 框架領(lǐng)域,Spring MVC 大有一統(tǒng)天下的趨勢。另外,搜索公眾號(hào)互聯(lián)網(wǎng)架構(gòu)師后臺(tái)回復(fù)“面試”,獲取一份驚喜禮包。

          因此現(xiàn)在,很多公司,老的 Struts 項(xiàng)目還在維護(hù)。但新的項(xiàng)目開發(fā),更多轉(zhuǎn)向了 Spring MVC。因此,如果你是 Java 新手,正在學(xué)習(xí)中,我的建議是:

          _不要再學(xué)習(xí) Struts 了,從 Spring MVC 開始吧!_”

          Hibernate

          Hibernate 作為老牌的 OR 映射框架,功能非常強(qiáng)大,涵蓋面非常廣。但這既是它的優(yōu)點(diǎn),同時(shí)也成為它的“負(fù)擔(dān)”,是開發(fā)人員“不能承受之重”。

          Hibernate 的設(shè)計(jì)初衷,是為了最大程度的解放程序員,完全隔離數(shù)據(jù)庫,實(shí)現(xiàn)徹底的 OR 映射。程序員甚至可以不寫一行 SQL 語句,單通過配置就能實(shí)現(xiàn)對數(shù)據(jù)庫的操作。

          當(dāng)然,為了實(shí)現(xiàn)這個(gè)目標(biāo),Hibernate 也設(shè)計(jì)的非常復(fù)雜、非常精巧。就不可避免的帶來以下副作用:

          1. 學(xué)習(xí)成本高
          2. 配置復(fù)雜
          3. 調(diào)優(yōu)困難

          前兩點(diǎn)不難理解,單說“調(diào)優(yōu)困難”。

          因?yàn)?Hibernate 的設(shè)計(jì)目標(biāo)是徹底的 OR 映射,徹底的隔離 SQL 語句。但必然會(huì)帶來一定的性能損失。大部分情況下,應(yīng)用如果對性能不敏感,Hibernate 也沒問題。但應(yīng)用一旦對性能敏感,有 SQL 級(jí)別調(diào)優(yōu)的需求,Hibernate 的優(yōu)點(diǎn)反而成為缺點(diǎn)。

          雖然 Hibernate 也支持 SQL 級(jí)別的調(diào)優(yōu),但因?yàn)榭蚣茉O(shè)計(jì)的過于復(fù)雜和精巧,這就需要開發(fā)人員對 Hibernate 理解的非常透徹,這就帶來了更高的學(xué)習(xí)成本。

          而現(xiàn)在最流行的 MyBatis,作為一個(gè)“混合式”,輕量級(jí) OR 映射框架,既繼承了 Hibernate 的優(yōu)點(diǎn),同時(shí)也吸取了他的教訓(xùn)。在支持配置的同時(shí),又能接觸 SQL,從而帶來了更多靈活性(包括調(diào)試、優(yōu)化)。

          當(dāng)前,在實(shí)際開發(fā)中,Hibernate 使用的越來越少了。大家更偏愛 MyBatis 這種輕量級(jí)框架。所以,對后來學(xué)習(xí)者,我的建議是:

          “_不需要再學(xué)習(xí) Hibernate 了,學(xué) MyBatis 就夠了_。”

          Servlet(要精通)

          當(dāng)然,現(xiàn)在不會(huì)有任何公司,再用純粹的 Servlet 來時(shí)實(shí)現(xiàn)整個(gè) Web 應(yīng)用,而是轉(zhuǎn)向一些更高級(jí)的技術(shù)(例如各種 MVC 框架)。因此,會(huì)給人一種錯(cuò)覺:Servlet 已經(jīng)過時(shí),后來者就不需要再學(xué)習(xí)了。

          在這里,我可以非常負(fù)責(zé)任的說:這種觀點(diǎn)是極端錯(cuò)誤,極端不負(fù)責(zé)任的。

          Servlet 不僅要學(xué),而且要學(xué)深,學(xué)透。

          當(dāng)前,Servlet 雖然不再是一個(gè)主流 web 開發(fā)技術(shù),但依然是 Java Web 開發(fā)技術(shù)的基礎(chǔ),是 Java Web 容器的基石,是行業(yè)標(biāo)準(zhǔn)。而現(xiàn)在流行的各種 MVC 框架(包括 SpringMVC),在最底層,還是以 Servlet 為基礎(chǔ)的。

          所以,如果你想要徹底掌握某個(gè) MVC 框架,則必須徹底理解 Servlet。


          為此,我畫了一個(gè)簡單的圖(不準(zhǔn)確,會(huì)意即可):

          所以,如果你想要徹底掌握某個(gè) MVC 框架,則必須徹底理解 Servlet。另外,搜索公眾號(hào)互聯(lián)網(wǎng)架構(gòu)師后臺(tái)回復(fù)“9”,獲取一份驚喜禮包。

          而且,Servlet 作為一個(gè)基礎(chǔ)設(shè)施。精通它,不僅有助于理解各種 MVC 框架。即使 Servlet 本身,也有很多實(shí)用價(jià)值。

          如果你深刻理解了 Servlet 的生命周期,就可以在底層做很多事情。譬如在 Request 進(jìn)來的時(shí)候,進(jìn)行攔截,進(jìn)行權(quán)限的判定。也可以在 Response 發(fā)出的時(shí)候,進(jìn)行攔截,統(tǒng)一檢查、統(tǒng)一附加。

          所以,如果你正在學(xué)習(xí) Java,對 Servlet,我的建議是:

          _Servlet 不僅要學(xué),而且要學(xué)深,學(xué)透_。”

          其他

          目前在國內(nèi),Java 更多是作為 web 后端技術(shù)出現(xiàn)的。因此在實(shí)際學(xué)習(xí)中,很多技術(shù)就不符合“國情”,學(xué)習(xí)的現(xiàn)實(shí)意義不大。下面我就簡單列舉下。

          1.Applet

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

          2.Swing

          作為桌面 UI 框架。且不說本身設(shè)計(jì)的咋樣。現(xiàn)實(shí)開發(fā)中,我接觸的桌面應(yīng)用,要么用 C++(例如 MFC),要么用 C#(Winform、WPF)。所以,Swing 就沒有學(xué)習(xí)的必要了。

          3.JDBC

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

          4.XML

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

          最后

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

          最后,祝你學(xué)習(xí)順利。

          原文鏈接:https://www.zhihu.com/question/305924723/answer/557800752
          全文完,感謝你的耐心閱讀。如果你還想看到我的文章,請一定給本文“在看”、“點(diǎn)贊”,新文章推送才會(huì)第一時(shí)間出現(xiàn)在你的微信里。

          END - 

          熱門推薦:

          PS:如果覺得我的分享不錯(cuò),歡迎大家隨手點(diǎn)贊、轉(zhuǎn)發(fā)、在看

          瀏覽 36
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  变态另类成人AV一区二区 | 亚洲毛片网 | 日本97色色 | 一区二区三区四区精品 | 国产成人精品视频免费看 |