一种架构实践:自上而下的分解与自下而上的抽象

这种方法是内网中的一篇文章,我觉得很有实践意义,就利用自己的理解重新梳理一下。

当我们拿到一个需求,从小需求到项目再到新系统的搭建,应该都是有一套方法论可以指导落地。如果按照DDD的方式来落地架构的话,一般系统可以分成三层,从内到外分别是领域模型层、领域服务层、应用服务层,可以对外接口还会有一层,例如微服务接口,web接口等。那么我们需要做的就是将需求转换成上面的层级结构。

需求分解

需求分解的目的是得到用例(User Case),在互联网企业中技术得到的往往是一个PRD,是对一个需求的流程描述,属于一个比较粗粒度的描叙,只是一个主干流程,没有细化到一个个用例,也么有对于异常情况进行描叙。

边界划分

边界划分是按照一定规则与约束将User Case涉及的功能划分到不同的域,可以是不同的系统,也可以是同一个系统中的不同的域中。

一个没有任何规则约束的随意设计会产生一些无法理解的整体含义且很难维护的系统。

边界划分可以利用单一职责作规则为主要的约束,但是职责并不是一个太好量化的东西,在之前如何编写类中思考了一些方法。另外《UML和应用模式》中的GRASP也可以用来辅助划分,引用内网一篇文章的图片


用例拆解

当已经划分好边界,那就可以对每个用例进行分解,分解成每个小的步骤,然后对每个步骤进行聚类分组,形成如下的层级结构:Commond -> Phase -> Step。

模型的沉淀

用例拆解将每个用户拆解成了一个数据执行的pipeline,但是系统中的模型业务语义表达能力不强,因此需要不断的梳理出系统中重复的地方,然后进行能力的下沉,找到这些逻辑真正的归属。


总结

利用上面几步基本可以完成需求到架构的落地,尤其是用例的拆解与模型的沉底,实践起来比较容易。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 6.1 需求分析建模的要点与误区 6.1.1 需求分析到底做什么 需求分析的任务不是分析系统如何实现用户的需要,而...
    Seymoure阅读 9,142评论 0 11
  • 一、 软件测试基本概念 1 bug的概念 bug类型:defect、fault、problem、error… pr...
    三口一个瓜阅读 9,338评论 0 12
  • 转眼又是半年,半年以前两天不说话就难过到不知道怎么办,眼泪一颗一颗的往下掉。现在转眼就是七天,从两句话到现在,接不...
    含光君is_watchingU阅读 1,612评论 0 0
  • 总算是完成了,看来只要下定决心加上仔细地思考研究总是可以办到的嘛,小伙子,还是蛮开心的,虽然这么晚,我第一次体会到...
    cqmudhw阅读 1,603评论 0 0
  • 看到日更活动蛮久了,但是一直没有参加,会觉得自己怕是坚持不下来。但是,忽然之间就想尝试了。 算是简书的一个新伙伴,...
    南方的暖阳阅读 803评论 0 1

友情链接更多精彩内容