概述
这是 Daniel Terhorst-North 提倡的 SOLID 原则的替代设计原则。
SOLID 原则定义了原则(规则和指南),而 CUPID 定义了软件应具有的属性和特征。 SOLID 原则依赖于 OOP 和编程语言,但 CUPID 基本上是 OOP 和编程语言独立的。
Thoughtworks 已经宣布技术雷达第 26 卷还介绍了
没有日文介绍的文章,我就简单总结一下。
CUPID 是以下的首字母缩写词: CUPID 告诉我们应该使软件具有这些属性和特征。
- 可组合:易于与其他组件组合
- Unix 哲学:做好一件事
- 可预测:能够预测您将要做什么
- 惯用语:感觉自然的事物
- 基于域:使用域语言和域结构
可组合的
- “表面积”小
- 意图揭示名称和目的
- 最小依赖
Unix哲学
创建做好一件事的软件(组件),通过组合来达到目的。
这与 SOLID 原则中的 SRP(Single Responsibility Principal)不同。
SRP 说一个组件应该为了一个单一的原因而改变,而 Unix 哲学则专注于代码的作用。
可预见
- 做你期望的事。没有惊喜。 (表现如预期,没有意外)
- 确定性(Deterministic)
- 可观察
补充
Observable 指的是诸如适当的日志记录和监控实现之类的东西。
惯用语
- 使用语言习语
- 使用标准功能、库、框架和工具
- 能够自然地工作
- 使用当地成语
- 遵循内部或事实上的编码风格或设计
- 项目、依赖项、平台、组织拥抱
基于域
- 使用域语言
- 使用域结构
- 源代码的结构应根据领域进行结构化。在顶层,它应该是付款、贷款、入职,而不是模型、视图、控制器
- 使用域边界
- 使部署单元成为域边界。
参考
原创声明:本文系作者授权爱码网发表,未经许可,不得转载;
原文地址:https://www.likecs.com/show-308626108.html