解决系统边界问题的原则、规则,关于系统边界的原则、规则,你们觉得可以有哪些呢?
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)。
如果你的系统架构不支持,你无法建立一个高效的组织架构。如果你的组织架构不支持,你也无法建立一个高效的系统架构。
一张关系图
个人思考
系统本质上是一个组织结构下为了实现某种业务的产物,如果想要聊系统边界和原则,那么一定要基于当前的组织结构来如何更加简单、高效的解决业务问题原则来考虑。
以下三个场景主要是基于当前的组织结构已经明确的情况下,经常会遇到的三个场景:
需求的价值,需求的真实目的是为了解决什么问题? 比如一场活动营销带来多少GMV的提升,一个新的功能产品能够带来多少的用户留存。从需求解决什么问题来划定属于营销域,还是属于交易域、订单域。
一个需求的完整实现,往往需要一系列链路上的产品功能和非功能产品叠加。我们需要识别功能需求范围,来更好的划分为前端系统、后端系统、界面UI等。
随着现有互联网业务的发展,业务的变化多种多样,每个老系统都具有一定复杂度,因而大部分进行了重构微服务拆分,即使没有做应用物理隔离,也会做逻辑隔离,因而需要识别到某个场景下。
比如工时、人力、改造成本、可扩展性、未来规划战略等条件进行权衡。
产品系统有什么?用户是谁?
目前哪些是我们产品系统涵盖的能力范围之内
目前的业务成熟案例,更倾向于把哪些内容做深、做好
对于不属于自己产品能力范围内的,我们系统后续的迭代规划,如果不在未来规划,也可能不适合我们
对应一个好的应用,一定会去衡量正交性,是否该系统目前是高内聚、低耦合的,对于可扩展的与系统本身不变的呈正交。
该系统实现以后一定是符合SOLID设计原则
在系统设计的时候要考虑到业务实现的内聚性和耦合性
聪明的读者你在聊系统边界与规则的时候,是否遇到过困难,如果遇到了,可以尝试下笔者的方案哦!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。