你說寫程式碼,最常用的3個設計模式是啥?

小傅哥 發表於 2022-05-18
設計模式

作者:小傅哥
部落格:https://bugstack.cn

沉澱、分享、成長,讓自己和他人都能有所收穫!😄

一、前言:望聞問切

🌺 哈嘍,大家好,我是技術UP主小傅哥!

你說寫程式碼,最常用的3個設計模式是啥?

哈哈哈,到今天為止,差不多用了3個月裡週末和假期的時間,小傅哥在B站的第一套視訊《重學Java設計模式》就全部錄製完成了。是的,全網最火🔥的那套設計模式,已經有視訊可以對照著學習了。我已經錄製完成了,那你有跟住學習打卡嗎?🤔

錄製視訊是小傅哥在去年制定的計劃,一方面是想鍛鍊下自己的面對鏡頭的表達能力,另外也希望這樣的視訊可以幫助更多的初學者更快的上手學習,提高自己的編碼能力,也能基於這樣的能力去閱讀一些框架原始碼。你可能不知道,國外很多優秀的框架原始碼 Spring、Mybatis 等,都運用了大量的設計原則和設計模式,只有有設計模式的經驗,才能讀懂這些原始碼

另外在視訊錄製中,小傅哥也學習如何出課件、寫材料、錄視訊、剪輯、配音、配動畫,順便學習使用了一些專業的軟體,包括:Neural Mix Pro、Final Cut Pro、剪映、Filmage Screen、OBS、Camo Studio 等。也是有了很大的收穫,在以後的視訊錄製中,也會逐步更加嫻熟,給大家錄製出更有技術、更有質量、更易於學習的視訊。

其實可能很多人,在沒做一件事前,都想著要把一切都準備好在行動。但其實就像你腦海裡過多少遍游泳姿勢,只要你不去海邊、不下水、不感受,永遠也看不到比基尼。所以更有效的辦法是要動起來,在行動中補充自己、完善物料、持續迭代。

加油,如果你也想做成一件事,現在就行動起來吧!

二、號脈:力不從心

鑑於《重學Java設計模式》PDF 的場景真實、內容易學、資料免費,已經被眾多號主、UP主,當做了引流工具。以至於很多很多碼農,都在自己的收藏夾中都有一本這樣的PDF。

當然如果能幫助到各位同好研發成長,還是非常好的。不過我也知道其實很多研發夥伴並沒有開啟PDF去學習,因為只要學習就需要在我的程式碼倉庫下載原始碼,否則只是看書中的插畫並不會太大的收穫。

其實很多研發夥伴也不是不學,說先是資料太多了,看任何一個資料都不深入,看一會就放棄了。倒置哪一個都沒學習明白,但對於xxx學習路線收藏起來的習慣到一點沒變。

不過也不能說大家就不愛學習,有時候只是方式不對。就像小傅哥自己在最開始也並沒有先拿著一本設計模式的書籍進行學習,因為很多的設計模式都是理論資料,一些案例也沒法用到實際的場景,自己當時對優秀原始碼的積累也補充。即使有心思寫好程式碼,也力不從心!估計不少的讀者在自己的實際開發中也會有這樣的感受。

三、診斷:王者榮耀

你知道程咬金嗎,嗯,就是那個王者榮耀裡拿著兩把西瓜刀賊猛的那個,他是三朝元老,經歷了隋朝、唐朝、武周。但就是這麼猛的一個人物,在年少學習武術的時候,也只是學會了三十六路宣花斧中的前三招,不過就這三板斧使的出神入化。

而程式設計師學習23種設計模式也一樣,沒必要在一開始就把所有設計模式都學了,即使學了,你也沒有力氣都耍出來,就被人家給撂倒了。

那咋辦,當然是找3個最常用的,最能解決自己實際問題的學呀。就這3個練熟了,後面寫出的程式碼也就乾淨了,等這3個悟透了,後面的設計模式在學起來、用起來也就沒有那麼難了。

那這3個設計模式是哪3個呢,小傅哥推薦:模板 + 策略 + 工廠,只要這三個搞定,再搭配著使用,基本就能解決一大票問題,也能讓你程式碼看上去非常有質量。

設計模式:模板 + 策略 + 工廠

  • 其實這樣的結構分層在 Spring 的原始碼中也有很多體現,它是一種解耦和職責邊界分離的設計原則,通過這樣的實現方式,讓程式碼就是文件的體現。
  • 而你實際的編碼中,如果有類似這樣的流程,也可以定義抽象的模板,提供資料支撐的繼承和對應策略的配置以及呼叫處理。當然可能你的邏輯中不需要模板的使用,也可以直接是工廠 + 策略的組合。
  • 這樣一種簡單設計模式的組合,基本是可以處理掉很多研發所遇到的業務場景的,並隨著你的場景迭代,在思考🤔這些設計模式的變種,一點點的熟練才會在充足的積累後,寫出更加完善的符合自己需要的結構。

四、抓藥:仙人指路

好了,當你已經看到這裡,我猜你將來一定會成為一個優秀的架構師。因為你走在一條小傅哥趟過的路,哈哈哈!

如果你能完完整整的,按照視訊,重點、重點,原始碼!把這兩部分結合起來,全部動手寫完,那麼你一定會積累非常多的設計模式實用技巧,也能把這些技巧運用到真實的業務場景中。

B站:小傅哥の碼場 重學Java設計模式


那學完設計模式,接下來呢?接下來就是實戰了,在哪裡實戰?一方面是像小傅哥一樣完成《手擼 Spring》、另一方面是參與到有大佬帶著你做的複雜場景的業務系統。這兩方面都能讓你學習的設計模式,得到實踐的使用。具體路線參考下圖:

程式設計師進階學習路線

https://bugstack.cn/

就是這樣一個路線,如果你能完整的堅持走下來,薪資漲幅30%~45%沒有問題,已經測試驗證。同時你可以依照這些學習內容,完善你的簡歷:小傅哥寫的一份硬核簡歷!