架构设计:企业总体架构要如何做?小白也能快速领悟的设计思想

企业总体架构是什么,有什么用,怎么做,如何落地,这些东西听起来非常抽象,做起来也是非常抽象。软件工程从开始到结束一般会经历需求、分析、编码、测试、部署、维护6个阶段,每个阶段都会固定的输出物,例如刚开始的产品需求文档(PRD),后面的架构设计文档等。一个应用架构设计的形成不单单是技术上,是统筹性的输出,一般分为:功能清单,用例及活动图,领域图,接口设计,分层设计,业务代码,其他设计。在现状中,梳理出现状有以下几个点

企业商务模型设计

功能架构设计

用例及活动图设计

领域架构设计

接口模型设计

分层模型设计

企业商务模型设计

一个软件的成型过程中,设计上就需要对整个商务模型进行分析,这是最重要的一环,虽然说做技术出身不用去做商务模型的从0-1的过程,但是需要做到从1-2的过程,把整个商务模型转化起来并进行落地。企业里面所有应用系统的都是建立在企业商务模型之上,它是为整个应用系统提供方向性指导。在一个商务模型里面,基本涉及了主营业务,商务模式,运营模式,主营产品,竞品分析和业务流程等。很多公司在开始做应用软件之前,整体的商务模式基本上已经是清楚的,此时的设计阶段就趋向于需求调研阶段。

图1:某公司CRM基础商务模型

主营业务指的是工作是以什么业务为生;商务模式即公司如何赚钱;运营模式比较复杂,企业内部的人力资源管理,财务管理,技术管理,生产运营管理,市场营销管理五部分组成;主营产品比较好理解,即是公司所服务或者销售的主要产品,一般是公司里面的拳头产品;竞品分析,不知道哪位大佬说过,有人的地方就有江湖,有产品的地方就有竞品。客观上来说,竞品分析是从竞争对手或者市场上的相关产品中,针对特定的考察角度,分析出现状情况以及跟自己的产品进行对比,必须客观并且真实,做横向对比(图2及图3);业务流程指主营业务从产生到最后出门的整个流转过程,最终目的都是盈利。

图2:医疗信息化市场规模及其预测

图3:近10年中国人口数量及人口增长率

功能架构设计

在功能设计上要做好,一般从三个方面切进去:功能设计,角色设计,资源权限设计。

2.1、功能设计

功能设计上一般以模块为类别,由大模块开始不断下放到各个小功能最终组成功能性图表,同时展示了所有功能的从属关系(图4)。

图4:春雨医生功能架构设计

2.2、角色设计

每一个系统都会进行角色设计,指的是系统里面有多少角色,一般角色在定义的时候是根据业务需要来制定。以角色定义业务,以业务定义模型。

3W原则:3W原则是最常见的做法,WHO,WHAT,HOW这三者来区分。

WHO:用于描述主要运用于哪些角色?这些角色是干嘛的?在整个3W体系中,相对于用户体验上来说,这个是最重要的存在,系统的使用者,企业的业务使用方,领导层,决策层关心所关心的往往就是自己能通过这个角色看到什么内容,通过这些内容能判断出或者从中获取对企业有帮助的信息,例如往年规划,接下来可能会发生的事情等。

WHAT:用于描述具体做什么业务,在这一层里面更趋向于具体的业务使用人员,每一个系统的使用人员需要非常清楚自己究竟是做什么?

HOW:在上面知道做什么后,接下来系统要帮助的就是怎么做的问题。从系统的产生到系统的消亡,每一个软件都是有一定的生命周期的,这个生命周期本质上来源于业务的不断变化,映射出业务也是有一定的生命周期,在这个系统里面,要告知每一个业务使用人员,业务是如何通过这个系统怎么做?

转存失败重新上传取消

3W原则举例

2.3、资源权限设计

资源权限设计对于所有后台系统来说,是一个最重要的部分,主要是针对不同人可以访问不同的资源权限,接口权限,数据权限等,这些权限的控制上的缺少或者操作问题引发的风险,是非常巨大的,最直接的后果就是导致数据串联了从而隐私数据泄漏。

目前很多公司采用微服务进行设计开发,权限系统自然需要独立出来并实现独立的管理,整个权限设计中,从简单到复杂分为7种,RBAC0模型,RBAC1模型,RBAC2模型,RBAC3模型,用户组,组织,职位,含有组织/职位/用户组的模型。

RBAC0模型

RBAC1模型

RBAC2模型

组织

职位

含有组织/职位/用户组的模型

以上7种模型的设计主要还是集中在资源权限的设计上,也就是我们最常见的菜单级别的设计,这一块的设计对于整个系统来说是最重要也是最基础的存在,是后面我们要进行接口权限,数据权限权限的根基。接口的权限设计的颗粒度是以每个接口中作为资源的颗粒度,这个接口是与每个服务进行挂钩并由超级管理员统一分配给上面的角色或者用户,在进行数据授权的时候统一处理好并返回给用户,这一层的设计上有多种多样,如果存在网关的存在,在进行鉴权的时候一般都放在网关上并结合redis进行鉴权。数据权限比较简单,每个服务或者每个系统都有自己特定的业务权限数据范围,根据角色获取这些角色可访问的数据范围即可。

备注:接口的鉴权上,可以采用接口注册->接口分配的方式进行,接口注册可以自定义注解进行自动注册或者手动在后台的接口管理上进行手动添加,如果是自动注册的话,一般后台设计上不允许修改,避免影响接口的访问,但是提前约定好规则。

3大资源鉴权整合参考

用例及活动图设计

用例图是非常常见的图,在UML的所有图中,它应该算是最需要并且最快需要确定的图,每一个用例图跟产品功能上存在对应关系

用例图是指由参与者(Actor)、用例(Use Case),边界以及它们之间的关系构成的用于描述系统功能的视图。用例图(User Case)是外部用户(被称为参与者)所能观察到的系统功能的模型图。用例图是系统的蓝图。用例图呈现了一些参与者,一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。

用例图举例

用例活动图是从用例图拓展而来,每一个用例活动图展开后即可变成用例活动图,从两个角度来分析对用例活动图的内容

产品经理:产品经理从用例活动图,获取到的是整体或者个体的业务逻辑。

研发人员:研发人员从用例活动图,获取到的是整体或者个体的程序上的业务逻辑。

业务用例工作流程说明了业务为向所服务的业务主角提供其所需的价值而必须完成的工作。业务用例由一系列活动组成,它们共同为业务主角生成某些工件。工作流程通常包括一个基本工作流程和一个或多个备选工作流程。工作流程的结构使用活动图来进行说明。

工作流程活动图用于研究实现业务目标时所要执行的各项任务或活动的顺序安排。活动既可以是手动执行的任务,也可以是自动执行的任务。它可完成一个工作单元。

活动图是状态图的一种特殊形式。其中所有或多数状态都是活动状态,而且所有或多数转移都在源状态中的活动完成时立即触发。

用例活动图举例

领域架构设计

在以往的设计中,领域架构设计往往并没有出现,从用例开始后整体就开始进入到系统的接口设计,但是微服务的出现导致领域驱动设计开始流行。

领域架构设计中我们今天不深究,今天这部分只说说领域图的设计。领域图是从用例活动图演变而来,相对于用例图,它是整个用例的细化展示。领域图是应用程序中的业务逻辑模型,它的每一个对应的方框可大可小,或是子系统、或是服务、或是类库、或是单个类,实现微服务的本质性可伸缩性、可拓展性。

领域模型在整个面向对象的设计中是最简单,也是最困难的一部分,对于一个领域模型来说,在面向对象的设计中有个重要的思想就是把事情交给最合适的类去做,这需要不断是联络各个类之间的关系,从语言层面来讲,它具备 5 方面的特性:

1、存在父类,专门用来存储所有子类的公共属性,并且这个类并不是一个值对象。

2、存在实例的字段

3、存在实例的属性

4、存在自己的领域逻辑,具像化来理解就是存在公共的与私有的方法

5、存在自己的领域服务,这个领域服务是静态方法static,并且这个方法可以单独放出来放到特定的服务类中。

领域模型图举例

接口模型设计

接口模型设计在现在的前后端分离的系统中是最重要的,直接关系到应用的便捷性。

应用的多样化需要我们在对接口进行设计的时候多考虑接口的边界问题,可以参考:《springboot2.2.X手册:构建多元化的API接口,我们这样子设计》。

每一个接口都有生命周期,如何去管理可以参考:《微服务手册:API接口9个生命节点,构建全生命周期管理》。

那回归接口本质,接口其实是一种契约精神,一种约定俗成的规则,一种应用与外部世界的连接者,一种应用与其他应用的交互者,是让整个业务能成功流转起来的源头,但是接口并不关心里面的具体实现,这些是服务层的事,但是接口有个通用性的原则,那就是一定遵循请求与输出Request/Response。

接口文档举例

分层模型设计

在第五点的接口设计中,接口并不关心服务层的具体实现,但是分层模型设计中关心的就是逻辑的具体实现。现在最常用的分层设计中,最常见的还是三层架构的设计,虽然领域横行,但是学习成本是个非常需要考虑的问题,整体在进行分层中坚持的思想是:分层越简单明了,理解起来就越简单,代码越容易统一编写,相对于整个工程来说,这样子的结构是最有利于业务的快速迭代,并让这个系统更加稳定可靠。在做整体的分层设计的时候,尽可能保持不要为了炫技而做设计,要考虑更多同学的学习力的问题。目前小编除了在接口层做领域的区分外,其他的还是坚持原来的三层设计,这样子新来的同学可以很快上手,“面向领导”编程更有优势了。

其他项

除了上面说的,还有数据库设计,物理架构设计,非功能性设计等。数据库设计一般有E-R图与表设计,数据设计规范等;物理设计有部署图,高可用或者集群部署图,域名等;非功能性设计一般主要把安全放在第一位,其余是性能、高可用、弹性伸缩、拓展性等。最后整合成一份完成的架构设计文档。

--END--

作者:@溪云阁

原创作品,抄袭必究

如需要源码,转发,关注后私信我

部分图片或代码来源网络,如侵权请联系删除,谢谢!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,287评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,346评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,277评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,132评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,147评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,106评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,019评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,862评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,301评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,521评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,682评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,405评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,996评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,651评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,803评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,674评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,563评论 2 352

推荐阅读更多精彩内容

  • 本专题所写所感所得,来自转转首席架构师和字节架构团队,此致,敬礼。。 一、引言 是指的是能力欠缺的人在自己欠考虑的...
    爱情小傻蛋阅读 2,404评论 0 3
  • 企业商务模型: 企业商务模型的内容主要包括主营业务、商务模式、商务主体、竞品分析、组织架构、商务运作模型和业务流程...
    se7en5阅读 812评论 0 3
  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 7,520评论 16 22
  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    迷月闪星情阅读 10,562评论 0 11
  • 可爱进取,孤独成精。努力飞翔,天堂翱翔。战争美好,孤独进取。胆大飞翔,成就辉煌。努力进取,遥望,和谐家园。可爱游走...
    赵原野阅读 2,726评论 1 1