mirror of
https://github.com/zhwei820/learn.lianglianglee.com.git
synced 2025-11-17 14:43:43 +08:00
fix img
This commit is contained in:
@@ -540,7 +540,7 @@ function hide_canvas() {
|
||||
<p>所有设计质量高的软件系统都有相同的特征,就是拥有<strong>清晰直观且易于理解</strong>的结构。</p>
|
||||
<p>Robert Martin 分析了这么多年诸多设计大师提出的各种系统架构风格与模式,包括 Alistair Cockburn 提出的六边形架构(Hexagonal Architecture),Jeffrey Palermo 提出的洋葱架构(Onion Architecture),James Coplien 与 Trygve Reenskaug 提出的 DCI 架构,Ivar Jacobson 提出的 BCE 设计方法。结果,他认为这些方法的共同特征都遵循了“关注点分离”架构原则,由此提出了整洁架构的思想。</p>
|
||||
<p>整洁架构提出了一个可测试的模型,无需依赖于任何基础设施就可以对它进行测试,只需通过边界对象发送和接收对应的数据结构即可。它们都遵循<strong>稳定依赖原则</strong>,不对变化或易于变化的事物形成依赖。整洁架构模型让外部易变的部分依赖于更加稳定的领域模型,从而保证了核心的领域模型不会受到外部的影响。典型的整洁架构如下图所示:</p>
|
||||
<p><img src="assets/a2ff02f0-790c-11e8-97d2-5b3665c292ea" alt="enter image description here" /></p>
|
||||
<p><img src="assets/a2ff02f0-790c-11e8-97d2-5b3665c292ea" alt="png" /></p>
|
||||
<p>整洁架构的目的在于识别整个架构不同视角以及不同抽象层次的关注点,并为这些关注点划分不同层次的边界,从而使得整个架构变得更为清晰,以减少不必要的耦合。要做到这一点,则需要合理地进行职责分配,良好的封装与抽象,并在约束的指导下为架构建立<strong>一致</strong>的风格,这是许多良好系统的设计特征。</p>
|
||||
<h3>拥抱变化</h3>
|
||||
<p>变化对软件系统带来的影响可以说是无解,然而我们不能因此而消极颓废,套用 Kent Beck 的话来说,我们必须“拥抱变化”。除了在开发过程中,我们应尽可能做到敏捷与快速迭代,以此来抵消变化带来的影响;在架构设计层面,我们还可以分析哪些架构质量属性与变化有关,这些质量属性包括:</p>
|
||||
|
||||
Reference in New Issue
Block a user