如何從 0 開始學一門新技術框架

 作爲技術人,你們最擔憂的一點,就是本身學習的節奏跟不上新技術發展的步伐,心裏非常焦慮。不少小夥伴都會感慨,平時工做這麼忙,成家了爲人父母了,回家也無法像單身那樣有時間學習了,另一方面,發現各類新技術滿天飛,應接不暇。那麼問題來了,咱們技術人,應該如何學習一門新技術框架呢?今天我就按照我過去學習Netty的思路來和你們作一個分享,但願對你們有所幫助。
微信

1. 先搞明白這個框架具體是什麼網絡

例如, Netty 是什麼?框架

咱們即刻Google 一下,獲得如下答案:異步

  Netty 是一個基於 JAVA NIO 類庫的異步通訊框架。找出關鍵詞「 NIO」 和 「異步」,這就是Netty最重要的特性,另外它處於網絡層。提煉出的這些關鍵詞的做用就是用來肯定本身是否已清楚全部基礎知識點。框架處於哪一層決定了性能

下一步瞭解該框架的應用場景。學習

若是發現本身還不懂什麼是IO與NIO, 那麼就直接看下圖
設計

2. 明確該框架能作什麼
調試

知道這些框架都是提供了什麼樣的底層服務,咱們能夠利用這個框架作什麼事情。rest

對於Netty,能夠開發異步、非阻塞的 TCP/ UDP 網絡應用程序;開發異步 HTTP 服務端和客戶端應用程序;Netty提供了對多種編解碼框架的集成、Java 序列化、壓縮編解碼、XML 解碼、字符串編解碼等。看到這裏,咱們能夠初步感受到,Netty能夠幫咱們拆分應用進行服務化,做爲基礎通訊組件被咱們的 RPC 框架使用,以提升開發和維護效率。cdn

3. 瞭解該框架的應用場景

在應用層面上知道如何使用,經過前人的經驗,明確這個框架是如何融入進去的,避免走彎路。

比方說,對於Netty, 明顯的一個應用場景就是dubbo,服務提供者和服務消費者之間,服務提供者、服務消費者和性能統計節點之間就是使用 Netty 進行異步/同步通訊。

4. 清楚框架被髮明的緣由

準確的說,框架不是一門新的技術,而是幫咱們將底層的操做和通用的操做流程經過類庫的方式封裝起來,提供相應的API和方法,幫助咱們解決快速的解決應用層面上問題。因此咱們在學習一門新框架的時候,必需要明白這些被封裝起來的東西是什麼。

比方說,咱們都知道JDK提供了NIO的類庫,那爲何咱們還要用Netty呢?

回答這個問題前,咱們須要看一看 JDK NIO 客戶端的通訊時序圖

看過這張圖,你們能馬上明白,若是本身寫,要實現一套NIO程序要寫多少代碼了吧。這就無形增長了使用NIO的成本,加上調試,抓包查問題等環節, 要從頭搞一套異步的NIO程序並不省心。

反過來,Netty的基礎開發和應用很是簡單,開發一個 Echo 服務端只須要 20,30行代碼,開發對應的 Echo 客戶端只須要 20-30代碼。

5. 實戰使用該框架,並反覆總結

光了解上面這4點是遠遠不夠的,學技術不能紙上談兵,在實戰中使用後,對框架會有更多準確的把握,根據本身掌握的狀況,查漏補缺,而後像作迭代項目同樣,不斷的深刻下去,最終就能站得更高的位置來審視框架的全局。

總結

關於學習框架的方法論,能夠總結到我下面這張圖:


互聯網時代,須要咱們快速開發,跟上業務的發展節奏和需求,那最好的捷徑就是站在別人的肩膀上,用前人智慧的結晶來幫助咱們本身,善於學習新的類庫和框架,搞清楚框架中一些設計的原理和細節,搞清前因後果,學會「術」進而應用到平常的工做中去。另一方面,咱們應用團隊也要不斷反饋和「激勵」咱們的中間件和框架開發同窗,共同推動技術體系的發展和建設。

掃描二維碼或手動搜索微信公衆號: ForestNotes

歡迎轉載,帶上如下二維碼便可

相關文章
相關標籤/搜索