庫、工具包、框架、設計模式、架構、編程范式
清晰正確的概念,有助于我們認識世界,甚至可以當做工具用來改造世界。
對于庫、工具包、框架、設計模式、架構、編程范式這些概念的正確理解,同樣有助我們認識虛擬的軟件工程的世界。
對這些概念的相關知識的掌握,同樣可以用來建設和改造軟件。
下面是我對庫、工具包、框架、設計模式、架構、編程范式這些概念的理解。
庫和工具包:
庫和工具包側重于代碼重用。
從微觀上解決具體問題,相當于士兵的武器裝備。
比如javascript的jQuery庫。
框架:
框架側重于設計重用。
從宏觀上控制軟件整體的結構和流程,規(guī)范程序員的編碼。
比如Java的Spring框架。
設計模式:
設計模式側重于思想重用,針對某些經常出現(xiàn)的問題而提出的行之有效的設計解決方案。
設計模式有幾十種,比如單例模式,工程模式、適配器模式等等。
架構:
架構一般指一個軟件系統(tǒng)的最高層次的整體結構和規(guī)劃。
架構涉及具體的軟件產品,不同類型的軟件產品,因為業(yè)務的不同,架構也不一樣, 比如微信的技術架構和微博的技術架構就不一樣。
一般一個架構可能包含多個框架,而一個框架可能包含多個設計模式。
編程范式:
編程范式是計算機編程中的基本風格和典范,是代碼中所蘊含的世界觀和方法論,
每種范式都引導人們使用其特有的傾向和思路去分析和解決問題。
比如命令式編程,函數(shù)式編程,面向對象編程等等。