在软件开发中,前人对软件系统的设计和开发总结了一些理论和原则。不管用什么语言做开发,它们都对系统设计和开发提供指导意义。本系列先从这些经典理论开始,再展开开发模型、敏捷实践与代码规范。
软件开发中的原则 - SOLID
前人对软件系统的设计和开发总结的原则和模式,是面向对象设计的基石。详见 软件开发中的原则 - SOLID(已归入设计模式系列)。
事务理论 - ACID
一个事务有四个基本特性,即常说的 ACID:
- Atomicity(原子性):事务是一个不可分割的整体,事务内所有操作要么全做成功,要么全失败
- Consistency(一致性):事务执行前后,数据从一个状态到另一个状态必须是一致的(A 向 B 转账,不能出现 A 扣了钱,B 却没收到)
- Isolation(隔离性):多个并发事务之间相互隔离,不能互相干扰
- Durability(持久性):事务完成后,对数据库的更改是永久保存的,不能回滚
详见 事务理论 - ACID。
分布式理论 - CAP
CAP 理论是分布式系统、特别是分布式存储领域中被讨论得最多的理论:
- C 一致性(Consistency)
- A 可用性(Availability)
- P 分区容错性(Partition tolerance)
CAP 理论告诉我们:C、A、P 三者不能同时满足,最多只能满足其中两个。详见 分布式理论 - CAP。
分布式理论 - BASE
BASE 是 Basically Available, Soft state, Eventually consistent(基本可用、软状态、最终一致性)的首字母缩写。其中的软状态和最终一致性这两种技巧擅于对付存在分区的场合,并因此提高了可用性。详见 分布式理论 - BASE。
微服务基础 - 康威定律
微服务这个概念很早就提出了,真正火起来是在 2016 年左右,而康威定律(Conway’s Law)就是微服务的理论基础:系统架构会映射组织的沟通结构。详见 微服务基础 - 康威定律。
系列导航
理论之后,本系列继续展开: