上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 13 下一页
摘要: 一个系统可以简单地被认为有三个部分构成:UI,业务逻辑和数据库。对于简单的系统,这就足够了,但是对于大部分的系统部件比这多的多。 Hunt the wumpus 让我们把这些抽象的概念具体化。假设这个游戏是1972年经典的《Hunt the Wumpus》(猎杀 Wumpus)冒险游戏。这是一款基于 阅读全文
posted @ 2026-03-21 14:54 cyusouyiku 阅读(4) 评论(0) 推荐(0)
摘要: 部分边界:完整的架构边界代价高昂,它需要双向多态的边界接口、输入与输出数据结构,以及将两侧隔离为可独立编译和部署组件所需的依赖管理,这不仅实现成本高,维护成本也很大。在许多情况下,优秀的架构师会认为这种成本过高,但仍希望为未来可能需要的边界预留空间。这种前瞻性设计在敏捷社区中常被批评为违反 YAGN 阅读全文
posted @ 2026-03-20 15:56 cyusouyiku 阅读(10) 评论(0) 推荐(0)
摘要: 在第22章中我们介绍了呈现器(Presenter)的概念,呈现器是“简陋对象模式”(Humble Object Pattern)的一种实现形式,该模式有助于我们识别并保护架构边界,事实上上一章所讲的整洁架构中就大量运用了简陋对象模式的实现。简陋对象模式是一种设计模式,最初被提出是为了帮助单元测试人员 阅读全文
posted @ 2026-03-20 15:42 cyusouyiku 阅读(5) 评论(0) 推荐(0)
摘要: 近几十年出现了六边形架构(端口适配器)、DCI、BCE 等多种系统架构思想,虽细节有差异,但核心目标一致——关注点分离,均通过分层实现,至少包含业务规则层与用户/系统接口层,最终形成的系统具备共同特征:不依赖框架、可独立测试、UI 可替换、数据库可切换、与外部机构无关。 整洁架构以同心圆呈现层级,越 阅读全文
posted @ 2026-03-20 15:40 cyusouyiku 阅读(11) 评论(0) 推荐(0)
摘要: 想象下你现在在看一个建筑的蓝图,这个文件是设计师准备的,提供这个建筑的计划。这些计划告诉你什么? 如果你眼前的图纸是独栋住宅,你一眼就会看到正门、通向客厅的门厅,可能还有餐厅。不远处通常会有厨房,紧挨着餐厅;厨房旁或许还有小就餐区,再旁边多半是家庭活动室。看到这份图纸,你绝不会怀疑:这就是家。这份建 阅读全文
posted @ 2026-03-20 15:35 cyusouyiku 阅读(4) 评论(0) 推荐(0)
摘要: 若我们打算将应用拆分成业务规则与插件两部分,就必须先准确理解:业务规则究竟是什么? 事实证明,业务逻辑可分成好几种类型。严格来讲,业务规则是那些能为企业创造收益或者节省成本的规则或流程。更严苛地说,这类规则创造 / 节省收益的属性,与是否通过计算机实现无关 —— 即便纯靠人工执行,它们依然能产生同样 阅读全文
posted @ 2026-03-20 15:11 cyusouyiku 阅读(2) 评论(0) 推荐(0)
摘要: 本章核心观点是:软件系统本质是一系列处理策略的集合,架构的工作就是按 “变更原因与频率” 拆分和重组这些策略,通过控制源码依赖方向,让低层细节不影响高层核心,实现稳定、易维护的结构。 系统的输入转输出逻辑可以拆分为多条细粒度策略,比如业务计算、报表格式、数据校验等。优秀的架构会把因相同原因、同时变更 阅读全文
posted @ 2026-03-20 14:53 cyusouyiku 阅读(6) 评论(0) 推荐(0)
摘要: 系统的架构由一组软件组件,以及分隔这些组件的边界共同定义。这些边界有多种不同的形式。在本章中,我们将介绍其中最常见的几种。 Boundary Crossing 在运行时,一次边界跨越无非就是边界一侧的函数调用另一侧的函数,并传递一些数据,而打造合适的边界穿越关键在于管理源代码依赖。 为什么是源代码? 阅读全文
posted @ 2026-03-20 14:48 cyusouyiku 阅读(4) 评论(0) 推荐(0)
摘要: 软件架构本质上是一门划分界限的艺术,我将这些界限称为边界。 这些边界将软件元素彼此分开,并限制一侧的元素知晓另一侧的内容。其中有些边界在项目初期-甚至在编写任何代码之前-就已划定;另一些则要晚的多才会确定。 早期划定边界的目的,是尽可能推迟决策,并防止这些决策污染核心业务逻辑。 要记住架构师的目标是 阅读全文
posted @ 2026-03-20 14:14 cyusouyiku 阅读(7) 评论(0) 推荐(0)
摘要: 在我们先前的讲述中,一个好的架构必须支持: 1.系统的用例与运行方式 2.系统维护 3.系统开发 4.系统部署 使用案例: 第一点 ——用例—— 意味着系统架构必须支撑系统的核心设计意图。如果这是一个购物车应用,那么架构就必须支持购物车相关的用例。事实上,这是架构师首先要考虑的问题,也是架构设计的第 阅读全文
posted @ 2026-03-20 13:50 cyusouyiku 阅读(5) 评论(0) 推荐(0)
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 13 下一页