Skip to content

Commit

Permalink
feat: upload blog
Browse files Browse the repository at this point in the history
  • Loading branch information
LZS911 committed Nov 21, 2024
1 parent a86f578 commit 61b171b
Showing 1 changed file with 58 additions and 0 deletions.
58 changes: 58 additions & 0 deletions _posts/《架构整洁之道》读书笔记 - 编程范式篇.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
---
title: 《架构整洁之道》读书笔记 - 编程范式篇
date: "2024-11-11"
image:
headerImage: false
tag:
-
star: true
category: blog
author: Ai.Haibara
excerpt:
theme: fancy
---

## 概述

最近阅读了 Robert C. Martin 的《架构整洁之道》中关于编程范式的章节。这部分主要介绍了三种主要的编程范式:结构化编程、面向对象编程和函数式编程。每种范式都通过某种方式对程序控制权或数据进行了限制。

### 结构化编程

由 Dijkstra 在 1968 年提出
核心思想:限制直接转移控制权
引入了模块化和测试的概念
去除了无限制的 GOTO 语句,引入了 if/then/else 和 do/while/until 等结构
主要贡献:让程序可以被分解为可证明的单元

### 面向对象编程

核心特性:封装、继承和多态
最重要的是多态,它为插件架构提供了基础
通过多态实现了依赖反转
允许控制源代码依赖关系的方向
帮助解决跨模块和跨架构的依赖管理问题

### 函数式编程

基于 λ 演算
核心思想:不可变性
所有变量都是不可变的
没有赋值语句
通过管理状态的可变性来控制程序的复杂度

### 个人思考

这三种范式各自解决了不同的问题:

- 结构化编程解决了直接转移控制权的问题
- 面向对象编程解决了间接转移控制权的问题
- 函数式编程解决了变量赋值的问题

在实际开发中,这些范式常常是混合使用的。理解它们的本质和限制,有助于我们在架构设计时做出更好的决策。

### 实践启示

在设计架构时,要充分利用多态来管理依赖关系
尽可能使用不可变数据,减少状态管理的复杂度
合理划分模块,保证每个组件都是可测试的
在适当的场景选择合适的范式

0 comments on commit 61b171b

Please sign in to comment.