Paradigms_of_Programming.md

在程式設計中,不同的思維方式會影響我們如何撰寫程式。兩種常見的程式設計範式是:命令式(Imperative)與宣告式(Declarative)。這兩種方式的主要差異在於「描述過程」還是「描述目標」。


一、命令式程式設計(Imperative Programming)

命令式程式設計注重 「如何做」,開發者需明確描述解決問題的每一步驟。

特點:

  • 使用變數與控制流程(如 if、for、while)

  • 明確陳述狀態變更

  • 程式流程與邏輯清晰可控

範例(取得 1~5 的平方數):

squares = []
for i in range(1, 6):
    squares.append(i ** 2)

這裡你一步步告訴電腦怎麼做。


二、宣告式程式設計(Declarative Programming)

宣告式程式設計注重 「要什麼」,只需描述預期結果,底層細節交由系統決定。

特點:

  • 強調「描述邏輯」而非「描述流程」

  • 避免顯式狀態變更與副作用

  • 更接近人類語言與數學思維

範例(取得 1~5 的平方數):

squares = [i ** 2 for i in range(1, 6)]

你只說明想要哪些數字的平方,不管怎麼取。


三、常見宣告式工具範例

技術領域
宣告式範例
描述

SQL 查詢

SELECT * FROM users WHERE age > 18

說明資料「條件」,而非如何查詢

HTML/CSS

<h1>Hello</h1> / color: red;

描述內容與樣式,而非畫圖細節

React JSX

<TodoList todos={items} />

描述 UI 結構與狀態


四、比較與應用情境

比較面向
命令式
宣告式

控制程度

高,能指定每一步

低,重點在結果表達

可讀性

適中,流程複雜時難以維護

高,語意清楚

常見語言

C、Java、Python(預設)

SQL、HTML、CSS、Haskell

Python 支援

透過 for, while, if 編寫

支援 list comprehension、lambda、Pandas 等工具


五、混合使用與實務建議

  • Python 提供混合支援:你可以在命令式語言中寫出宣告式風格的程式。

  • 對於資料操作與 UI 建構,建議優先使用宣告式風格提高可讀性與維護性。

  • 對於需要複雜流程控制、資源管理等場景仍適合命令式設計。


總結來說,命令式適合描述明確步驟,宣告式適合表達「意圖」與「規則」。實務中兩者互補並存,根據問題性質與可維護性需求選擇合適的範式,是高效開發的重要策略。

Last updated