前端要不要學習設計模式
始終認為每個行業都有自己的特點,各自的專業性,一個開發工程師如果不知道電腦是哪些基本硬體組成,那么我們大概率都會認為這個人非常不專業,那么前端要不要學設計模式呢?設計模式跟前端有多大關系呢?
前端工程師首先是一個工程師,既然是一個軟體工程師,那么類似設計模式、資料結構、網路相關等基礎知識點都是必須的,而不是要不要學的問題,一個工程師應該具備這個領域特有的知識體系,而不是零散的知識點,

工程師核心是什么
互聯網的這些年,技術革命就沒消停過,就比如前端來說,框架、庫,從原生 JavaScript 開始寫,然后寫 jQuery、寫 zepto、寫 Angular,寫寫寫,一直寫到現在的 Vue/React 等,各個技術概念、框架、庫都迭代的非常快,難道工程師的核心僅僅是會使用某某框架、庫嗎?難道會使用java 的程式員一定比不會用java的程式厲害嗎?
能夠決定一個工程師的本質的,不是這些瞬息萬變的技術點,而是那些不變的東西,
不變的東西,說的就是這種駕馭技術的能力,
- 編碼能力
- 設計思維
- 計算機基礎
- 技術廣度、深度
- 解決問題的能力
- 溝通能力
- 檔案能力
編碼能力具體來說,它分為以下三個層次:
- 能用健壯的代碼去解決具體的問題;
- 能用抽象的思維去應對復雜的系統;
- 能用工程化的思想去規劃更大規模的業務,
這三種能力在成長程序中是層層遞進的關系,其中后兩種能力可以說是對架構師的要求,事實上,能做到第一點并且把它做到扎實、做到嫻熟的人,已經堪稱同輩楷模,
用健壯的代碼去解決具體的問題的能力,這個能力在軟體工程領域所對標的知識體系,恰恰就是設計模式,所以,要成為一個靠譜的開發,先掌握設計模式,
設計模式到底是什么
維基百科中對設計模式的定義是這樣的:在軟體工程中,設計模式(Design Pattern)是對軟體設計中普遍存在(反復出現)的各種問題,所提出的解決方案,
我的理解是設計模式并不是一個虛無的東西,而是經過各種軟體開發人員在特定的場景下提煉出來怎么樣寫代碼的一種思路、一種解決方案,按照他們的思路可以讓代碼更加容易維護、擴展,也就是通常說的健壯的代碼,
設計模式基本原則
設計原則是設計模式的指導理論,它可以幫助我們規避不良的軟體設計,SOLID 指代的五個基本原則分別是:
- 單一功能原則(Single Responsibility Principle)
- 開放封閉原則(Opened Closed Principle)
- 里式替換原則(Liskov Substitution Principle)
- 介面隔離原則(Interface Segregation Principle)
- 依賴反轉原則(Dependency Inversion Principle)
在 JavaScript 設計模式中,主要用到的設計模式基本都圍繞“單一功能”和“開放封閉”這兩個原則來展開,
設計模式核心思想
在實際開發中,不發生變化的代碼可以說是不存在的,我們能做的只有將這個變化造成的影響最小化 —— 將變與不變分離,確保變化的部分靈活、不變的部分穩定,這個程序,就叫“封裝變化”
,這樣的代碼,就是通常說的“健壯”的代碼,它可以經得起變化的考驗,
而設計模式出現的意義,就是幫我們寫出這樣的代碼,設計模式的核心思想,就是“封裝變化”,將變與不變分離,確保變化的部分靈活、不變的部分穩定,代碼有良好的可維護性、可擴展性;
簡單的說就是觀察你整個邏輯里面的變與不變,然后將變與不變分離,達到使變化的部分靈活、不變的地方穩定的,
常見的23種設計模式分類

無論是創建型、結構型還是行為型,這些具體的設計模式都是在用自己的方式去封裝不同型別的變化,
創建型模式:封裝了創建物件程序中的變化,比如下節的工廠模式,它做的事情就是將創建物件的程序抽離;
結構型模式:封裝的是物件之間組合方式、以及通信的變化,目的在于靈活地表達物件間的配合與依賴關系;
行為型模式:則將是物件千變萬化的行為進行抽離,確保我們能夠更安全、更方便地對行為進行更改,
參考:
《 JavaScript 設計模式》
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/545613.html
標籤:其他
上一篇:【JavaScript】- map、forEach、filter之間的區別!
下一篇:微信小程式搜索優化指南(SEO)
