Day 25: 边界:画线、剖析、预留 (待改进中... )

「软件架构就是画线的艺术,我称这些线为边界 (Boundaries)

「架构师的目标是尽量减少建置和维护系统的所需人力资源。耗尽人力资源代表什麽呢? 耦合 - 特别是耦合导致过早做了不成熟的决定 (与业务需求无关的决定,包括关於框架、资料库、Web服务器、工具程序库...等的决定)」

取自: Clean Architecture (p.135 & p.136)

CH17: 边界:画线

「要绘制边界,首先要将系统划分为以元件(Component)组合起来的系统。其中一些元件是核心业务规则,接着,你在这些元件中安排程序码,使它们之间的箭头指向一个方向 - 指向核心业务」

取自: Clean Architecture (p.146)

[补充]: DDD

两个悲惨的故事

  • 某 P 公司...
  • 某 W 公司...

成功的架构

  • 作者和儿子建置的开源专案 FitNesse...

在重要和不重要的事物之间画线

  • GUI, 业务规则, 资料库

资料库与业务规则

I/O 是无关紧要的


Plugin 架构


CH18: 边界:剖析

「边界有许多不同的形式」

「系统中的边界往往混合了『本地经常通讯的边界』和『更关注於延迟的边界』」

取自: Clean Architecture (p.147 & p.152)


CH24: 边界:预留 (原文: Partial Boundary)

「全面性的架构边界是昂贵的。但如果以後需要的话,可能还是要为这样的边界保留一个位置」

「在这种情况下,它们或许会实作一个部分边界 (Partial Boundary)。决定哪里要出现架构边界,及是否完全或部分实作这个边界,是架构师的职责」

取自: Clean Architecture (p.181 & p.182 & p.184)

跳过最後一步

Strategy Pattern

Facade Pattern


Reference


<<:  [DAY25] Boxenn 小结

>>:  看焰火罗~ Vaadin 内嵌 iFrame 不跑版自动缩放 - day25

D-23 方法 method ? property

资料结构之後呢 在昨天大头跟小光介绍了资料结构的内容,但是有些东西大头没有跟小光特别解释,例如介面物...

Day 27 : Python - 什麽是列表推导式?又该如何将它和if、if-else一起做使用?

如标题,这篇想和大家聊聊「列表推导式」是什麽东西 我们先看看范例再说明,这样大家会比较好理解 Ex ...

30天学会 Python: Day 19-考试常用的输入格式

多行输入 如果输入的行数非常多,可以用回圈达成 data=[] for i in range(5):...

Day 15 实作调色盘App(3/3)

今天我们把这个App完成~ 首先,先到我们的Main.storyboard 点击右上角 + ->...

为了转生而点技能-JavaScript,day19(configurable、writable、enumerable、value

同个物件内的单一属性编辑:configurable、writable、enumerable、valu...