主頁 > 軟體設計 > 我這有本秘籍:如何短時間學好微服務

我這有本秘籍:如何短時間學好微服務

2021-09-08 07:17:41 軟體設計

我之前寫過幾篇關于微服務的文章,讀者們看完反饋不錯,

微服務的架構模式(上)

微服務的架構模式(中)

微服務的架構模式(下)

恕我直言,微服務挺好,但不適合你

同時,也有讀者說:

看完文章是懂了,但是自己學的時候,還是有點懵,不知道怎么下手

授人以魚不如授人以漁,

魚能解決一時之饑,卻不能解決長久之饑,讀者們需要知識,同時更需要學習知識的方法,

所以,這篇文章就說說,正文開始,

程式員的某些技術也會過時,就像冰箱里的食物,長期不拿出來吃掉,就會過期和腐敗,所以,程式員這個行業,需要不斷的學習,

我現在已經從程式員轉成技術管理了,管理 100 多人團隊每天一堆事……還是寫代碼、研究技術的日子比較純粹,沒有那么多浪費時間的無聊會議,沒有那么多技術無關的事,

雖然如此,但是技術也不能丟,每當出現非常流行的新技術,或者團隊技術堆疊準備升級,我都必須去學習這些新技術,爭取在短時間內,能把控住技術堆疊升級帶來的風險,

正是在這種形勢下,我也從中琢磨出了一些快速學習的套路和技巧,我分享出來,希望拋磚引玉,能對后來者有一些幫助和啟發,

第一步:技術堆疊需要先分類

當想要學習任何新技術的時候,我經常做的第一件事就是

對要學習的技術領域去做一個分類

比如,幾年前,公司的系統要改造成微服務架構,那我就必須去學習微服務的這套技術堆疊,但是,一學我才發現,微服務的技術堆疊怎么這么多……

這時候,就要對微服務的技術堆疊進行分類,目的也很簡單,就是為了對學習作出一個規劃,根據技術堆疊的分類,作出一個有著明顯輕重緩急的學習計劃,

就微服務而言,我將其劃分為如下幾類:

  • 微服務的設計
  • 微服務的原理
  • 微服務的架構
  • 微服務的開發框架和代碼規范
  • 微服務的安全
  • 微服務的運維

分完類之后,再結合當時的情況,我的計劃是這樣的,

1.

首先,由于我是從零開始,需要設計到落地一條龍,所以,我決定優先摸熟微服務的設計

這里我會找書看,通過看書弄清楚概念和知道怎么劃分業務,為什么是看書不是看網上文章,原因后面會說,

2.

然后,再根據落地的需要,去學習微服務的架構最佳實踐以及微服務的開發框架和代碼規范,學好這些內容,等以后把微服務落地的時候都用得上,

學的時候,先不需要去深入語法細節,我只需要明白框架的核心思想和代碼規范,把控技術落地不會脫離大方向,技術的細節可以等后面真正寫代碼的時候,再和同事們一起去鉆研,

3.

在微服務落地后,就需要微服務的運維了,而微服務的運維,其實可以淺嘗輒止的學習,重點是要知道微服務的運維組件和運維常規作業流程,

公司有專門運維團隊的,剩下的作業交給運維同事就好了,

4.

在微服務運維后,我感覺只靠學習市面上的微服務套路肯定還不太夠,如果要讓微服務能更好的適合我們自己的業務,還需要根據底層微服務的原理,去搞透微服務最佳實踐為何這樣做的原因,

很顯然,這塊的學習難度非常大,需要不少知識儲備,

但是,再難學也值得學,因為極有可能我們需要結合自己公司的業務,對微服務作出個性化的定制,

建議:找幾個兄弟一起組隊學習原理這塊,

5.

微服務的安全,主要是網關的安全措施,大部分公司都有安全團隊,這部分交給他們負責就好了,

所以,再經過分門別類之后,我們就很清晰了,

微服務的學習順序就是:

微服務設計 > 微服務架構 > 微服務開發框架和代碼規范 > 微服務原理 > 微服務運維 > 微服務安全

學習內容的詳盡程度則是:

  • 微服務設計、微服務原理需要多讀幾本書,尤其是原理,要深入學習 + 和牛人廣泛討論;
  • 其他部分的學習,優先級沒那么高,

第二步:選擇合適的書

當我們根據技術堆疊分類定出學習計劃后,接下來就要選擇合適的書籍學習了,

這里需要強調一下,以我的經驗,對一門全新的技術學習,不建議完全通過看網上的文章,

因為網上的文章有好也有壞,壞的是真坑人,而且作為初學者,你沒有什么經驗,不知道文章是否有錯誤,

我舉個例子,網上的鏈路跟蹤,尤其講 SkyWalking 的相關文章,很多都是錯的,如果對鏈路跟蹤不熟悉,就很難分辨出錯誤,到時候不慎把錯誤的觀念用到了系統里,再改正就非常費勁了,

所以,入門階段還是老老實實的找一些權威書籍看吧,

但是,權威書籍也有問題,因為書的受眾不一樣,如果一些書讀的不合適,比如,選的書籍講的都是過時的技術,又或者有的書籍講的非常晦澀,理解起來非常費勁,那這些書就不合適我們去讀,讀了要么浪費時間,要么錯用過時的技術,

怎么選擇合適的書?

比如,我想學微服務設計,我發現微服務設計和領域驅動設計又是緊密關聯的,領域驅動設計又有很多的書,有講理論的,有講實戰的,甚至還有混雜著其他技術堆疊的,

我當時需要的是理論 + 實戰的書,并且最好有在已有專案移植到微服務的相關案例的書,

接下來就是去網上看書評了,一般來說,現在豆瓣、當當、京東的書評和書籍簡介都比較不錯了,

不過,我更偏好英文書一些,所以,當時根據亞馬遜的評價找到了一本《Implementing Domain-Driven Design》,這本書后來翻譯成中文了,叫《實作領域驅動設計》—— 我粗看過,我認為翻譯的不好,

事后證明,這本書確實解決了我的問題,讓我摸清楚了域、子域、邊界背景關系之類的關鍵概念,

第三步:讀書需要技巧

選完了書,就要去讀書,但是,任何一本 IT 書籍,可都是不薄的,

像我前面舉例的《Implementing Domain-Driven Design》,這本書就是六百多頁的厚度,如果一天讀 20 頁,需要 30 多天,這個時間就太慢了,所以,就需要技巧:

先速讀后精讀

一般來說,對于六百多頁的書,尤其是講解的概念穿插實戰的,應該開始的時候,快速閱讀,我大概一天是 100 - 200 頁左右,時間控制在 4 個小時,連續不斷的閱讀,

這種閱讀,看上去很難,其實是建立在快速的跳讀和略讀上的,讀取的時候,只找關鍵詞,尤其是名詞,

找到關鍵詞后,一般就要提取知識點,三五個關鍵詞,就能提取出一個關鍵知識點來,遇到不會的,也可以當做關鍵詞提取出來,

關鍵詞往往和小章節的標題能對應上,根據關鍵詞,找到章節中的解釋,看明白了,就能跳過別的章節內容,

速讀,弄懂即可,不需要把所有的內容都讀完,

這樣,一本六百多頁的書,大概一周就讀完了,

讀完后,別著急,然后就需要根據你提取的關鍵詞和知識點去做精讀了,

這時候,由于書籍的關鍵點已經提取出來了,你只需要精心學習提取的知識即可,

一般而言,知識點提取后,需要精讀的內容往往只有原來整體內容的幾分之一,

我精讀這本書大概花了一周左右,

在精讀期間,如果有一些發現理解不足的,還需要去查一些別的資料來補充理解,或者動手實踐,或者和別人一起交流,除了講解自己的看法和理解,也需要能汲取別人的看法和理解,

精讀的最佳結果是,你能用自己的話把原來的概念和別人講清楚,

這樣,總的算下來,讀這本六百多頁的書需要花十天、半個月的時間,

說起來,其實大家可以問問身邊認識大廠的高手,你會發現,他們大多數人讀書,都是我這樣類似的讀法,確實非常有用,

第四步:落地實踐

書讀完了,肯定有很多不足的地方,這時候,就需要通過技術實踐去加深理解、彌補不足,

實踐分為兩種:

1. 書中的實驗

大部分技術書籍,大部分都有些對應的課后習題或者實驗,

因為這些實驗都是附屬在某些具體講解、某些概念的章節后,針對性非常強,所以,如果能不看書,根據自己的理解,去順利把實踐做出來,那就證明,確實學習到位了,可以把學到的東西用到實戰中了,

2. 實際中的場景

當書中的實驗都做完了,就可以考慮真實的專案場景了,

可以先根據作業需求,打造出一個包含了所學新技術全堆疊的 Demo 出來,

比如,微服務,就可以搭建一套,有網關、有配置中心、有鏈路跟蹤的 Demo,

Demo 搭建之后,還可以采取一些測驗用例對這個 Demo 進行測驗,不管是業務測驗還是性能壓測,都要進行,

當 Demo 的指標達到要求后,就可以考慮抽取出一個不重要的專案進行新技術堆疊的嘗試了,

總結

如上所說,這就是我日常學習技術的幾板斧:

  • 我是先通過對要學習的技術分類,去減少學習負擔,

  • 再去根據技術分類,提取出要解決的一些問題,

  • 然后,根據問題去預測出想要讀的書的內容范圍,又根據這些范圍,去各種賣書、評書網站去選書,

  • 選書完,采用一些讀書技巧,去快速學習,

  • 學習完后,必須實踐,加深理解,如此,完成一整套新技術學習,

原創不易,看完覺得有幫助,來個三連支持,


你好,我是四猿外,

一家上市公司的技術總監,管理的技術團隊一百余人,

我從一名非計算機專業的畢業生,轉行到程式員,一路打拼,一路成長,

我會把自己的成長故事寫成文章,把枯燥的技術文章寫成故事,

歡迎關注我的公眾號,關注后可以領取高并發、演算法學習資料,

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/298284.html

標籤:其他

上一篇:《微服務架構設計模式》讀書筆記 | 第7章 在微服務架構中實作查詢

下一篇:《微服務架構設計模式》讀書筆記 | 第7章 在微服務架構中實作查詢

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more