T31训练营-架构设计

Day1:

一.需求分析

理解和挖掘用户诉求、背后逻辑,转换成可行性的分析结果,从非结构到结构,确定系统的职责、模块

二.KISS原则:keep it simple and smile

三.DRY原则:Don't repeat yourself

     一切重复的代码都可以抽象

    重复代码的危害性:不一致性,代码冗余,易出bug

四.七大设计原则

共同点:提升软件的可扩展性,可维护性

实践点:类图设计 接口设计 组合设计

  • 单一职责原则

最简单的,却是最难的,高内聚、低耦合的延申

属性和行为向着模块预先定义的功能内聚

  • 里氏替换原则

父类出现的地方,子类一定能够出现,这是里氏替换,而子类出现的地方,用父类去替代,一般都有问题

如 鱼能游,鲨鱼能游,可以。

反之 鲨鱼有牙齿,推导不出 鱼有牙齿

车能开,跑车能开,可以。

反之 跑车的推背感很强,推到不出 车的推背感很强

  • 接口隔离原则

接口的粒度尽可能地小

同一接口的方法强内聚于同一特征

  • 组合复用原则

继承是一种绑定关系,相当于父子关系

组合是一种松散的合作关系,相当于谈恋爱

组合产生的对象,方法暴漏的少

继承产生的的对象,继承路线上的方法全部暴漏出来

增加用户的选择成本,容易误用

  • 依赖倒置原则

细节依赖抽象,底层依赖于高层

宪法不可能依赖于地方法律

网络服务只依赖于协议,而不是具体硬件

  • 迪米特原则

互相了解的信息,尽可能的少

你使用一个接口,你只关注:输入和输出,不需要关注具体代码实现

  • 开闭原则

对扩展开发,对修改关闭

扩展能力主要是对需求继续变化的适应能力

五.架构

架构是一种能力,而不是一个职位

架构=组成+决策

组成= 模块结构+模块关系

决策=约束+设计原则+演化方向

架构的目的:

确定系统边界,在技术层面上做与不做

确定系统里各模块之间的依赖关系与模块的宏观输入与输出

架构图:

1.搞清要画的架构图的类型

2.确认架构图中的关键要素(产品、技术、服务)

3.梳理关键要素之间的关联:包含、支撑、同级并列

4.输出关联关系清晰的架构图

布局 颜色 逻辑

类的六大关系:

泛化关系:继承关系

实现关系:实现接口

聚合关系:业务上整体与部分可以分开,是关联关系的特例

组合关系:业务上整体与部分不可以分开,同样是关联关系的特例

依赖关系:只要在类中用到l对方,就存在依赖关系

关联关系:体现的是业务逻辑的关系,是依赖关系的特例,具有导航性&多重性

 

架构分类:

        业务架构

        应用架构

        数据架构

        技术架构

时序图:关注正常流程,不关注逆流程,不关注异常流程,不关注分支判断

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值