业务建模:系统边界与规则

2022-05-28 15:34:47 浏览数 (2)

一、读前思考问题

解决系统边界问题的原则、规则,关于系统边界的原则、规则,你们觉得可以有哪些呢?

二、康威原则

Organization which design systems […] are constrained to produce designs which are copies of the communication structures of these organizations.

设计系统的组织其产生的设计等价于组织间的沟通结构

Conway’s law reversed: You won’t be able to successfully establish an efficient organization structure that is not supported by your system design(architecture)。

如果你的系统架构不支持,你无法建立一个高效的组织架构。如果你的组织架构不支持,你也无法建立一个高效的系统架构。

一张关系图

个人思考

系统本质上是一个组织结构下为了实现某种业务的产物,如果想要聊系统边界和原则,那么一定要基于当前的组织结构来如何更加简单、高效的解决业务问题原则来考虑。

三、场景介绍

以下三个场景主要是基于当前的组织结构已经明确的情况下,经常会遇到的三个场景:

3.1、基于需求聊系统边界场景

3.1.1、 设计目的-解决了什么问题-明确问题域

需求的价值,需求的真实目的是为了解决什么问题? 比如一场活动营销带来多少GMV的提升,一个新的功能产品能够带来多少的用户留存。从需求解决什么问题来划定属于营销域,还是属于交易域、订单域。

3.1.2、识别功能需求和非功能需求范围

一个需求的完整实现,往往需要一系列链路上的产品功能和非功能产品叠加。我们需要识别功能需求范围,来更好的划分为前端系统、后端系统、界面UI等。

3.1.3、质量属性场景

随着现有互联网业务的发展,业务的变化多种多样,每个老系统都具有一定复杂度,因而大部分进行了重构微服务拆分,即使没有做应用物理隔离,也会做逻辑隔离,因而需要识别到某个场景下。

3.1.4、约束条件

比如工时、人力、改造成本、可扩展性、未来规划战略等条件进行权衡。

3.2、基于产品聊系统边界场景

3.2.1、产品的定位

产品系统有什么?用户是谁?

3.2.2、产品的能力范围

目前哪些是我们产品系统涵盖的能力范围之内

3.2.3、产品的成熟案例

目前的业务成熟案例,更倾向于把哪些内容做深、做好

3.2.4、产品的扩展能力和规划

对于不属于自己产品能力范围内的,我们系统后续的迭代规划,如果不在未来规划,也可能不适合我们

3.3、基于系统聊系统边界场景

3.3.1、符合正交性

对应一个好的应用,一定会去衡量正交性,是否该系统目前是高内聚、低耦合的,对于可扩展的与系统本身不变的呈正交。

3.3.2、符合SOLID原则

该系统实现以后一定是符合SOLID设计原则

3.3.3、符合高内聚、低耦合

在系统设计的时候要考虑到业务实现的内聚性和耦合性

四、个人总结

聪明的读者你在聊系统边界与规则的时候,是否遇到过困难,如果遇到了,可以尝试下笔者的方案哦!

0 人点赞