回覆列表
  • 1 # Java進階架構師

    我想每個it行業人應該都是這樣學習新知識的吧?這樣子的學習辦法才是高效簡單的。

    一.接觸到一個新框架的時候,首先要清楚下這個框架是幹什麼的,比如dubbo,我發現有的人搞了一大堆資料,但是還是不能夠一句話總結dubbo究竟是幹什麼得——其實就是個Jar包,一個分散式框架,,一個遠端服務呼叫的分散式框架。這就是它主要是解決的問題。

    二.但是有的同學其實是架空學習,就是說其實他並沒有遠端服務呼叫的分散式需求,然後他來學dubbo,他其實不明白什麼是分散式和遠端服務呼叫,為什麼要分散式,為什麼要遠端呼叫。我簡單畫個對比圖說明(圖1看到圖2。畫板畫的,勿噴)。

    你想一下,以前什麼的都在一個伺服器上,呼叫方法直接就自然而然呼叫了,沒啥問題。現在因為需求增多拆分了這麼多個,部署在不同的伺服器上,那是不是相對以前都在一個伺服器上,現在分散式後,web層呼叫service層的服務變成了遠端呼叫?那怎樣像以前那樣都在一個伺服器上自然而然呼叫方法呢?dubbo來解決。這就是下面dubbo的好處。

    1.透明化的遠端方法呼叫,就像呼叫本地方法一樣呼叫遠端方法,只需簡單配置,沒有任何API侵入。

    2.軟負載均衡及容錯機制,可在內網替代F5等硬體負載均衡器,降低成本,減少單點。

    3. 服務自動註冊與發現,不再需要寫死服務提供方地址,註冊中心基於介面名查詢服務提供者的IP地址,並且能夠平滑新增或刪除服務提供者。Dubbo採用全Spring配置方式,透明化接入應用,對應用沒有任何API侵入,只需用Spring載入Dubbo的配置即可,Dubbo基於Spring的Schema擴充套件進行載入。

    四.瞭解了這個框架大體思路後,然後再去看一些經典問題的解決方案。走走demo。

    當然,在學習,體驗新框架的時候,我們肯定會碰到很多攔路虎,不過沒有關係,由於之前積累的經驗,這些都不是什麼問題。我們可以先不理解原理,而是先上手使用。原理這種東西,你用的久了,再回過頭來看,發現其實也就是這麼回事。

    五.對比框架

    對比是非常重要的,透過對比學習,我們可以收穫很多。之前我們用過的某一個框架,和現在這個框架有什麼區別。對現在這個新的框架是否有一些借鑑,之前的思路是什麼,之前碰到的哪些問題,當時怎麼去解決這些問題的,當在學習新的框架中,如果我們碰到了問題,我們可以透過這個思路去通關,當然隨著新的框架的學習越來越多,後面也會越來越順利,解決問題的能力也會很強。

  • 2 # 我是5毛

    我覺得框架千千萬,學習某個框架一定是為了解決特定問題。

    起初不要泛泛的學,專注於問題點,去網上找資料,demo執行起來,先解決掉問題。

    問題解決了,再接著研究有沒有更好的實現方式,這個框架還能其他什麼問題,優勢是什麼,劣勢是什麼。設計思路是什麼,一點一點深入研究。帶著問題去學習,去研究。

  • 3 # 此生唯一

    首先你得明白框架這個詞,打個比方,你去趕集買東西,日用品買一些能拿,蔬菜,衣服再買了一大堆,單憑兩隻手肯定是拿不了的,所以你需要一個框,裝下你所有的東西,滿足你的需求!

    JAVA框架也是一樣的,都是我們在開發經歷了陣痛之後總結出來的,實現某種特定功能的架構。比如說spring用來管理物件,用來解耦,mybatis用的代替jdbc等等這些!

    那麼我們怎麼學好一個JAVA框架呢?

    1,先明白自己急需解決的是什麼?學習框架之前你一定得有這個需求,不然學了白學,而且不經實踐,免不了學過就忘!

    比如我們就是需要一個sql監控工具,那麼我們可以選擇druid,提供頁面化的監控,能分析sql的執行次數,耗時等指標,幫助提升體統的併發能力!

    或者我們覺得jdbc太難寫,我們需要封裝好工具,那麼mybatis,hibernate都可以是我們的選擇!

    2,想明白這個框架能做什麼事?要明白這個框架設計的初衷,為什麼能解決需要解決的問題!比如nginx為什麼能處理大量的連線,底層使用的模型為什麼用epoll,怎麼實現的負載均衡?

    3,怎麼使用這個框架?框架都是為了使用的,是簡單配置還是需要實現介面,怎麼擴充套件?比如springboot,我們引入jar包,少許配置就能使用,能實現快速開發與部署,能輕鬆整合服務註冊與發現,安全驗證等,那麼怎麼加入別的元件?怎麼加入日誌?怎麼接入測試框架?

    4,深入底層:會用還不行,應該知道它怎麼執行的,比如spring如何控制反轉,怎麼管理物件(無外乎都是用配置,解析,物件註冊,儲存在hashMap等基本的資料結構中,在使用的get出來即可)!抓住一條主線,深入分析整個系統架構!

    5,如何最佳化框架?框架是別人寫的程式碼,是程式碼就有最佳化的空間,根據自己的需求開發屬於自己的框架,比如快取就有memcache,redis,ehcache等等,各有優缺點!

    寫在最後,框架其實就是一些功能封裝,我曾經在面試的時候,被面試官問了一句話:你學了那麼多框架,有哪個是所有功能都需要的?確實,可能定製自己的框架才是最好的選擇吧!

  • 中秋節和大豐收的關聯?
  • 一個男人喝醉了對著他的老婆說了很多情話,可是最後喊的卻是別的女人的名字,為什麼?