C语言代码质量与架构调整(六)

1、架构设计的目的是什么?

架构设计的目的主要是为了解决复杂度带来的问题

2、那么复杂度的来源于哪里?

1)高性能

2)高可用:本质上是通过冗余来实现高可用

3)高可扩展性:为了应对将来需求变化的一种能力,需要预测变化。如何应对变化(提炼出变化层和稳定层,提炼出一个抽象层和实现层,类似装饰者模式)

4)低成本:只有创新才能达成低成本的目标

5)安全

6)规模:复杂度是量变引起质变,功能越来越多,导致系统的复杂度指数级上升。

3、架构设计原则

1)合适原则

2)简单原则

3)演化原则

HART,以人为本(设计的本质事社交),推迟决策(推迟不确定的决策),善于借鉴(所有设计都是在已有设计基础上的重新设计和调整创新),化虚为实(让想法具体化、有形化,以便于沟通交流)。

4、架构设计流程

1)有的放矢---识别复杂度,看看上述复杂度的来源是什么质量属性?如功能耦合严重,根据业务、技术、团队进行排序

4.2、按图索骥---设计备选方案,3~5个

4.2.1、按照类图、序列图、组件图、部署图、用例图、状态图、活动图来画出相关的设计方案,进行对比灵活运用

---参考P68,《架构师的自我修炼》

3)深思熟虑---评选和选择备选方案,安装上述质量属性指标和设计原则选择

4)精雕细琢---详细方案设计

5、可扩展模式

5.1、按照不同思路拆分系统

1)面向流程拆分,将整个业务拆分不同阶段,分层架构,如TCP/IP模型,如展示层、业务层、数据层、存储层

2)面向服务拆分,将系统提供的服务拆分,SOA(面向服务的架构)、微服务,例如注册、登录、信息管理、安全设置等

3)面向功能拆分,每个服务的进一步细分,微内核架构

5.2、分层架构

1)层层传递,层与层之间边界清晰

5.3、微服务

1)微服务数量不易划分过多

2)3个人负责一个服务,符合下面人员的匹配划分

3)拆分方法,基于业务逻辑拆分,基于可扩展拆分(稳定服务、变动服务),基于可靠性拆分(将可靠性要求高的服务)。基于性能拆分

5.4、微内核(插件化架构)

1)分为核心系统和插件模块

6、框架模式

4.1、分层模式

4.2、适配器模式

适配器模式是一种结构型设计模式。适配器模式的思想是:把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。

用电器来打个比喻:有一个电器的插头是三脚的,而现有的插座是两孔的,要使插头插上插座,我们需要一个插头转换器,这个转换器即是适配器。JAVA设计模式——适配器模式_LW_Fung的博客-CSDN博客_适配器模式

适配器模式涉及3个角色:

源(Adaptee):需要被适配的对象或类型,相当于插头。
适配器(Adapter):连接目标和源的中间对象,相当于插头转换器。
目标(Target):期待得到的目标,相当于插座。
适配器模式包括3种形式:类适配器模式、对象适配器模式、接口适配器模式(或又称作缺省适配器模式)。
4.3、管道过滤器模式

4.4、面向服务架构模式

4.5、发布订阅模式(GUI的OSD刷新)

4.6、共享数据模式

4.7、多层模式

4.8、能力中心模式

4.9、简单工厂模式

缺点师新增产品需要修改工厂,工厂类的职责相对过重,不易于扩展复杂的产品结构,违背开闭原则。

7、识别业务发展的趋势是什么?

业务的复杂度来源是什么?不同阶段不一样,业务扩展,稳定性还是易用性

产品类业务是技术推动业务发展

集中力量解决核心任务

8、开源库选择原则

1)聚焦是否满足业务

2)聚焦是否成熟

3)聚焦运维能力

9、参考书籍

《从零开始学架构》

《架构师的自我修炼》

《架构师修炼之道》

你可能感兴趣的:(Linux下代码优化,架构,系统架构)