天天看點

程式設計範式總結

指令式程式設計 Imperative programming

用指令的方式,一步一步告訴計算機先做什麼再做什麼。模拟電腦運作過程,通過執行指令改變程式的狀态。

從開發人員的角度來說,就是一個"輸入-》函數1-》狀态1-》函數2-》狀态2-》輸出"的過程

難點在于函數的書寫和中間狀态的儲存。

聲明式程式設計

告訴計算機應該做什麼,更關注結果,不關心計算機怎麼做。

領域特定語言(Domain Specific Language,DSL),比如SQL,CSS,正規表達式等,開發人員聲明需要的結果是什麼,由特定語言的内部實作去調用計算機相關指令,得到輸出。

函數式程式設計(Functional Program,FP)等。

從開發人員的角度來說,就是一個 "輸入-》計算機處理-》輸出"的高層次的抽象過程。

如“select * from tb”,我們隻關心我們要的結果,而不用去關系具體實作。

面向對象程式設計

是種具有對象概念的程式程式設計典範,同時也是一種程式開發的抽象方針。它可能包含資料、屬性、代碼與方法。對象則指的是類的執行個體。它将對象作為程式的基本單元,将程式和資料封裝其中,以提高軟體的重用性、靈活性和擴充性。

函數式程式設計

函數式程式設計是一種程式設計範式,它将計算機運算看作是數學中函數的計算,并且避免了狀态以及變量的概念。數學上函數的概念相較于程式設計中函數的概念更為嚴格。函數沒有side effect,no state,函數是一等公民(Higher Order Function)。

使用者隻需要關心輸入輸出。難點在于monad函數的抽象和書寫

網絡上志同道合,我們一起學習網絡安全,一起進步,QQ群:694839022