提示5-2:分层组织构建块视图!
提示5-2:分层组织构建块视图! #building-block #hierarchy #source-code #essential 从上下文视图(arc42第3节)开始,将源代码的结构解释为白盒和黑框的层次结构。 上下文将整个系统显示为黑框,构建块视图 level 1 将其细化为白盒。 下图示意性地显示了这个层次结构: 第 level 1 是整个系统的白盒描述,以及所有包含构建块的黑盒描述。 2级放大到 level 1 的一些构建模块。因此,它包含 level ...
提示5-20:在构建块视图中清楚地指示第三方元素!
提示5-20:在构建块视图中清楚地指示第三方元素! #building-block 如果您在设计或指定架构构建块时应用编程语言的 __模块化结构__,您将获得源代码到架构的最佳映射。 例如,对于Java系统的开发,架构构建块(即 level 1 黑盒)应对应于Java软件包。 何时偏离这条规则 在历史上成长的系统中,如果代码(似乎)杂乱无章,偏离这条规则可能是有用的……如果您使用各种编程语言来实现其他有凝聚力的构建块(即您在Java中实现构建块的部分,在JavaScript中 ...
提示5-21:尽量简洁地描述或定义内部接口!
提示5-21:尽量简洁地描述或定义内部接口! #building-block #interface #lean 尽量简洁地描述或指定内部接口:如果需要,您可以在源代码中找到任意接口详细信息。 特别注意图形界面描述(如UML)。 看看下面的图表,其中Blurp为消费者FooBar提供了方法/服务blurp。 1FooBar => blurp() => Blurp 您可以为这个简单的图形模型添加更多详细信息,下面给出了一些选项(尽量简洁地)。 您不会 ...
提示5-22:记录或指定带有单元测试的接口!
提示5-22:记录或指定带有单元测试的接口! #building-block #interface #testing 实施单元测试已成为许多开发人员的(相当)标准。我们想为此类测试提出一个额外的目的:接口规范或文档。 进行详细的测试(并且高度敏捷!)文档,或者仅作为实际测试(用于验证应用程序行为)。 单元测试包含以下信息: 必须(以编程方式)创建才能使用特定界面的先决条件 显示可以在什么星座或上下文中使用界面 在接口的实现被使用后,可以期待什么样的后果(通过asser ...
提示5-23:用运行时场景(runtime-scenario)记录或指定接口!
提示5-23:用运行时场景(runtime-scenario)记录或指定接口! #building-block #interface #scenario #runtime-scenario 一些接口需要在参与的构建模块(握手、业务或技术协议)之间进行多次交互。 您可以通过运行时场景描述或指定此类交互,arc42-section 7。 您应该从参与构建块的文档中引用此类场景。 ...
提示5-24:使用构建块 level-1 获取**其他**信息
提示5-24:使用构建块 level-1 获取其他信息! #building-block 您可以通过附加信息修改构建块 level-1 的高抽象级别,例如: 特定构建块中使用的编程语言 版本控制信息(即使用哪个vc系统) 组织信息(团队设置、完成或规划状态) 您可以使用颜色、阴影、分组或其他图形方式,或通过刻板印象来表示此类问题。 如果您这样做,请在图例或文本解释中解释此类信息。 请参阅以下示例: 添加信息前请三思你可以将此提示扩展到构建块视图的更多层次。但要牢记经济&# ...
提示5-25:如果有用,请同时完善几个构建块!
提示5-25:如果有用,请同时完善几个构建块! #building-block #hierarchy 您可以在一个相互的白盒中同时细化几个黑框。如果这些构建块密集地交互、合作或提供类似的接口,这可能会很有用。 您可以在下图中找到一个示例:在此图的左侧,您找到一个白盒( level-1 ),其中包含两个黑框Foo和Bar。 Both of these are refined in a single whitebox on the right side of the diagr ...
提示5-26:明确下层构建块的起源!
提示5-26:明确下层构建块的起源! #building-block #hierarchy 如果您同时相互细化几个构建块(如提示5-25(相互细化)中建议的那样),您应该明确记录细化构建块的起源(又名祖先或根)。 对于精炼的白盒中的每个元素,它应该是显式的(这意味着,它来自哪里)。 您在下面找到两个例子: 通过命名惯例创建文档来源 通过图形方式提供文档来源在下一张图表中,精炼构建块的起源由精炼构建块周围的命名矩形显示(用于说明,以粉红色显示…) ...
提示5-27:只需细化几个构建块
提示5-27:只需细化几个构建块! #building-block #hierarchy 构建块视图中的白盒图形成一个树状结构,上下文图作为此层次结构的根。 这棵树应该是部分的,你应该只细化一些构建块。 下图显示了这样一个部分树:整个系统在 level 1 上被细化成构建块A、B和C。 然后只有A在2级中得到完善和详细化。 ...
提示5-28:解释概念而不是构建块
提示5-28:解释概念而不是构建块 #building-block #concept 在构建模块的上下文中,这个提示可能听起来很奇怪-但有时解释基本或交叉概念(其他术语是原则、风格、刻板印象或模式)而不是所有构建块是容易或有帮助的。 例如,如果您构建一个基于微服务的系统或构建的系统作为管道和过滤器架构,对基本原则的解释可能比详细讨论单个构建块更有用。 但是:你应该有一个 level 1 构建块视图 请记住提示5-3( level 1 是你的朋友) 相关提示 您应该说明哪些 ...