在程式設計中,不同的思維方式會影響我們如何撰寫程式。兩種常見的程式設計範式是:命令式(Imperative)與宣告式(Declarative)。這兩種方式的主要差異在於「描述過程」還是「描述目標」。
命令式程式設計注重 「如何做」,開發者需明確描述解決問題的每一步驟。
- 使用變數與控制流程(如 if、for、while)
- 明確陳述狀態變更
- 程式流程與邏輯清晰可控
squares = []
for i in range(1, 6):
squares.append(i ** 2)這裡你一步步告訴電腦怎麼做。
宣告式程式設計注重 「要什麼」,只需描述預期結果,底層細節交由系統決定。
- 強調「描述邏輯」而非「描述流程」
- 避免顯式狀態變更與副作用
- 更接近人類語言與數學思維
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 建構,建議優先使用宣告式風格提高可讀性與維護性。
- 對於需要複雜流程控制、資源管理等場景仍適合命令式設計。
總結來說,命令式適合描述明確步驟,宣告式適合表達「意圖」與「規則」。實務中兩者互補並存,根據問題性質與可維護性需求選擇合適的範式,是高效開發的重要策略。