4006-998-758
3000+课程任你选择
软件架构案例分析与最佳实践
研发学院 软件架构
刘捷

前IBM中国研发中心,BEA中国研发中心,oracle中国研发中心,阿里云,多家互联网研发中心咨询顾问。曾任软件开发工程师,高级技术专家,首席架构师等。主要负责客户项目的架构设计和项目开发,架构重构,技术支持,AI2.0时代软件研发,AI赋能研发转型,基于chatGPT大模型的开发咨询。保证项目的成功实施。参加过全省、全国多个大型的计算机应用项目。擅长AI2.0时代研发,软件架构设计与评审、高质量代码体系、单元测试、设计模式、重构(Refactor)、演进式设计(Evolutionary Design)以及降低代码的复杂度(Cyclomatic Complexity)。通过重构、重写,将代码量大幅度缩减,并且提高可读性、可扩展性、可变更性,从而大幅度降低开发成本。他热爱学习、思考与分享,曾翻译过多本技术书籍,在网站上发表过各种文章,并曾多次在技术会议和社区活动上发表演讲。最近几年带队完成了数十个AI项目,内容不仅包括深度学习、机器学习、数据挖掘等具体技术要点,也包括AI的整体发展、现状、应用、商业价值、未来方向等,涵盖内容非常丰富。完成多个深度学习实践项目,广泛应用于医疗、交通、农业、气象、银行、电信等多个领域。

查看老师详情
课程内容


课程大纲


第一篇: 软件架构核心原理和设计过程

主题

培训内容

备注

第1单元:软件架构文档和架构视图-如何有效描述架构蓝图

 

内容一:软件架构的视图

1. 软件架构的视图原理

2. 软件架构视图的意义, 软件架构师的多维思考

3. 逻辑视图、开发视图、部署视图、运行视图、场景视图,数据视图 ,实现视图

4. 如何和怎样绘制软件架构视图

5. UML建模工具在架构视图的应用

6. 典型案例分析:结合多个电信,金融行业项目案例,分析真实项目软件架构视图

 

内容二: 软件架构的文档编写

1. 软件架构文档的意义

2. 软件架构模板(根据实际项目情况选择合适内容)

3. 软件架构文档的结构(避免出现不必要的重复和缺少关键信息)

4. 软件架构文档必须包含的内容(通过多个项目,分析不同系统包含系统内容不同)

5. 文档的后期管理(使文档保持更新)

6. 软件架构文档的评审

7. 典型案例分析:结合多个电信项目案例,进行分析和评审软件架构文档

8. 典型案例分析:结合多个电信项目案例,进行分析和评审软件架构文档


第2单元:软件架构设计关注点(哪些因素驱动架构设计,是架构开始设计之前必须知道的?)和架构最佳策略

内容一:软件架构设计关注点(软件架构师在架构设计之前必须考虑的要素)

1. 架构设计的关注是什么

2. 软件架构的驱动因素(改变传统以功能实现和新技术为驱动的策略)

3. 软件质量需求对架构的影响(质量属性场景定义和对应架构策略)

4. 软件功能需求对架构的影响(分析功能需求变化点和进化点)

5. 软件约束条件与架构的影响(业务,运行环境,开发团队,实现技术等约束)

6. 如何使功能性需求,非功能性需求和平台细节在架构中能保持分离,从而改善可维护性和可扩展性

7. 处理功能需求,非功能性需求,平台细节.制定架构目标

8. 典型案例分析:结合项目,因为分析驱动因素的错误,导致项目不能如期验收的失败案例

 

内容二:软件架构最佳策略

1. 重新认识系统质量属性,如何定义质量属性和相应的架构策略

2. 系统架构的可扩展性设计策略

3. 系统架构的可靠性设计策略

4. 系统架构的高性能设计策略

5. 系统架构的可维护性设计策略

6. 系统架构的易用性设计策略

7. 系统架构质量属性和架构模式的应用

8. 通过分析案例,了解基本架构策略如何应用


第3单元:软件架构设计过程

 

内容一、软件架构设计过程

1. 软件架构设计过程方法论(步骤和相应的成果)

2. 软件系统边界和外部系统接口的定义

3. 大型软件系统的划分子系统原则

4. 子系统功能模块的分解

5. 子系统间的通信接口的设计

6. 如何应对系统内部紧耦合、高内聚

7.  软件系统关键质量属性树和可行性分析

8.  软件系统部署架构(分布式/数据分布/通信/安全)

9.  软件系统部署容量评估(主机/中间件/数据库等资源容量评估)

10. 应用系统的类型和架构风格

11. 架构模式在实际项目的应用

12. 软件架构立方体图(软件架构的分层,分区和基础服务)

13. 软件架构通用机制的分析(如何处理基础设施扩展和具体有什么方法做基础设施扩展, 掌握如何分离这些基础设施用例)

14. 使用质量场景属性进行迭代架构设计

15. 软件架构各层的架构策略(针对企业应用分层,每层的架构策略)

16. 软件系统线程架构策略

17. 数据架构(数据模型/数据分布/数据存取,以及核心数据流)

18. 用例视图(抽取典型,有分险和客户最关心用例进行分析,结合架构进行设计)

19. 实现视图(架构,设计和开发,实现原则和指南)

20. 完成架构文档,对架构文档进行评估

21. 典型案例分析


第4单元:软件架构应用

内容一、架构设计的评估和验证

1. 软件架构的验证(软件架构风险验证)

2. 软件架构的验证方法和指标(基于问题检查表和质量属性树)

3. 软件架构的验证注意事项

4. 软件架构的评估方式

5. 软件详细设计和实现时期,架构师的职责和架构的监控

6. 典型案例分析:结合项目实例,分析如何进行验证架构和架构设计的后期重构技巧

 

内容二、架构设计重构和复用(架构复用)

1. 软件架构重构概述

2. 软件架构常见的坏症状

3. 软件架构的重构手段

4. 软件架构的复用

5. 结合某著名公司全球架构师团队架构实例,分析架构重构和架构复用技巧


第二篇: 软件架构分层架构和每层核心策略

第5单元:软件架构核心策略

内容一:领域模型层架构

1. 领域模型架构策略

2. 领域模型建模(关联,属性)

3. 多个系统数据模型不一致和领域模型的同步

4. 公共数据模型(CDM)

5. 领域模型分析模式(模型的选择会影响最终产生系统的灵活性和可重用性)

6. 根据电信计费系统和网络资源管理案例分析领域模型的架构

 

内容二:业务逻辑层

1. 业务逻辑架构模式(事务脚本/领域模型/服务层模式)  

2. 业务流程架构策略

3. 基于容器的业务逻辑架构

4. 状态管理架构策略(有状态和无状态服务,以及对可扩展性的影响)

5. 业务逻辑的分布式架构策略(远程或本地/同步或异步)

6. 并发和同步架构模式

7. 基于中间件的业务逻辑架构

8. 典型案例分析:结合某银行交易系统分析业务逻辑架构

 

内容三:数据存取(持久性)层架构

1. 数据存取架构策略(对象和关系数据库的映射)

2. 缓存技术在存取层的应用/缓存数据和数据库数据一致性

3. 分布式数据存取策略(读写分离/分布数据/异构数据存取)

4. 数据同步和一致性策略

5. 数据访问层的性能考虑

6. 事务管理(本地事务和分布式事务,以及事务补偿)

7. 数据锁管理(悲观锁和乐观锁)

8. 典型案例分析:结合零售行业项目分析数据访问层的架构设计

 

内容四:数据架构

1. 数据架构概述

2. 数据建模原则和优化策略

3. 数据复制和同步策略

4. 数据一致性和分布式事务 

5. 大数据量数据库可扩展性(水平和垂直扩展,读写分离)以及单表记录过大拆分策略

6. 数据库集群规划

7. 分布式数据存取策略(跨多个库, 可能数据库异构类型)

8. 数据备份与恢复

9. 数据库性能规划

10. 数据安全策略

11. 与遗留系统的数据库兼容性考虑

12. 结合电信,金融,零售项目实例分析,系统数据架构设计策略

 

内容五:系统基础服务组件架构

1. 系统基础服务组件架构策略

2. 系统通用服务层与业务逻辑分离

3. 系统必备13种基础服务架构(异常处理/事务管理/缓存/工作流/校验/通信/安全/日志/定时触发/状态/消息通信/系统监控/配置管理)

4. 业务通用服务架构实现策略

5. 结合多个项目实例分析,架构师如何萃取基础服务组件和怎样设计实现


第三篇:大型高可用高并发分布式系统架构设计与实践

第6单元    大型分布式架构设计最佳实践

内容一:大型分布式架构核心概念

1. 无状态化设计;

2. 冗余设计;

3. 负载均衡设计;

4. 分级管理设计;

5. 纯异步调用(状态机等方式)设计;

6. 调用合理超时设计;

7. 服务降级设计;

8. 幂等设计;

9. 我们的实践案例;

 

内容二:大型分布式系统服务降级设计与实践

1. 服务限流降级概念;

2. 服务限流降级使用业务场景;

3. 服务限流降级设计环节;

4. 服务限流降级之原则篇、架构篇、框架篇、业务篇;

5. 移动时代服务限流降级如何打造;

6. 我们的实践案例;

 

内容三:大型分布式系统缓存设计与实践

1. 互联网使用缓存类型有哪些?各自作用是什么?

2. 分布式缓存冗余如何设计?

3. 高可用架构缓存一致性如何保证?

4. 高可用架构缓存高性能如何保证?

5. 我们的实践案例;

6. 缓存系统在大型网站架构中发挥的作用

7. 单机缓存系统自研与选型

8. Memcached与Redis的异同及应用场景

9. 深入剖析Redis技术

10. Redis主要数据结构剖析

11. Redis性能优化及配置优化

12. Redis复制机制与持久化机制

13. Redis缺陷与陷阱

14. 分布式缓存技术剖析

15. 扩展Redis集群,如何实现集群弹性伸缩,无缝扩容

16. Redis   Cluster官方集群扩展方案及缺陷

业界主流Redis集群方案剖析

 

内容四:大型分布式系统性能优化

1. 系统性能优化的模式都有哪些;

2. 系统性能优化常用的步骤是什么;

3. 系统性能优化的环节都能哪些;

4. 我们的实践案例;

 

内容五:分布式系统数据库架构设计与实践

1. 数据库架构设计基本概念;

2. 高可用性设计与实践;

3. 高并发设计与实践;

4. 读性能设计与实践;

5. 一致性设计与实践;

6. 扩展性设计与实践;

7. 我们的实践案例;

 

内容六:分布式系统数据库架构设计与实践

1. 数据库架构设计基本概念;

2. 高可用性设计与实践;


第7单元    高可用性与分布事务

内容一:本地与分布式事务

1. 本地事务-JDBC实现

2. XA和两阶段事务协议

3. J2EE分布式事务

4. Spring框架与分布式事务

5. CAP原则和BASE原则

6. 微服务事务一致性实现策略

7. TCC与分布式微服务架构事务

8. 分布式微服务架构最佳实践

 

内容二:高可用性与分布式事务

1. 分布式事务处理

2. Seata的基础概念

3. Seata的事务概念

4. 将应用接入Seata

5. 用TA模式实现分布式事务

6. 用TCC模式实现分布式事务

7. 用XA模式实现分布式事务

8. 用Saga模式实现分布式事务

 

内容三:分布式数据库—分库与分表

1. 数据分布式

2. 什么是分布式数据库

3. 分库分表和读写分离

4. 什么是ShardingSphere

5. 将应用接入ShardingSphere

6. 用路由引擎实现分库分表的原理

7. 读写分离

8. 使用SQL引擎实现分库分别

9. 分布式数据一致性

10. 分库的join操作

11. 利用冗余,方便分库查询


第8单元    高可用性与系统监控

内容一:高可用性分布式跟踪系

1. 基于调用链的服务治理系统的设计与实现

2. 调用链跟踪的原理

3. 分布式系统的远程调用过程

4. Google   Dapper实现

5. 大众点评CAT案例分析

6. CAT实现原理

7. CAT部署策略

8. CAT最佳实践


第9单元    高性能架构概述

内容一:高性能架构概述

1. 高性能概述

2. 软件性能指标

3. 软件性能指标-吞吐量

4. 软件性能指标-并发数

5. 软件性能指标-平均响应时间

6. 性能指标之间的关系

7. 并发数对吞吐量的影响

8. 并发数对平均响应时间的影响

9. 平均响应时间对并发数的影响

10. 高性能架构总结

 

内容二:服务并行设计

1. 并行与并发

2. 集群系统

3. 无状态的节点集群

4. 单一服务节点集群

5. 信息共享的节点集群

6. 信息一致的节点集群

7. 分布式系统

8. 微服务系统


第四篇: AI辅助软件架构设计

第10单元: AI辅助软件架构设计

第一部分: AI大模型辅助架构师提高研发效能

1. 大模型AI技术重塑软件架构

2. 大模型AI技术对传统软件架构的挑战

3. 大模型AI技术为软件架构带来的机遇和创新

4. AI大模型在软件开发架构设计中的作用

5. AI大模型辅助软件架构文档和视图

6. AI大模型辅助设计高效的软件架构

7. AI大模型辅助设计分布式微服务架构

8. AI大模型辅助领域驱动架构

9. AI大模型辅助设计高性能,高可用,可扩展架构

10. AI大模型辅助设计灵活性架构

11. AI大模型辅助设架构监控与治理

12. AI大模型辅助设架构重构与演化

13. AI大模型辅助架构评估和改进设计方案

14. AI大模型在软件架构的应用案例分析


第五篇: 案例分析-分布式系统

第11单元   高可用架构设计最佳实践与案例分析

内容一:高可用案例--通用计数服务

1. 计数的常见用途

2. 如何存储计数数据

3. 海量计数服务设计

4. Redis数据类型

5. 计数累计与读取的示例

6. 优化内存的调研

7. 优化内存:定制化Redis

8. 冷热数据分离

9. 应对过热数据

10. 计数服务架构图

11. 计数服务的适用范围   

 

内容二:高可用案例--排行榜服务

1. 排行榜的应用场景

2. 排行榜技术的特点

3. 使用Redis实现排行榜

4. 使用Redis ZSET

5. 幂等更新

6. 同积分排名处理

7. 服务设计

8. 关于大Key的问题

9. 粗估排行榜的实现

10. 粗估排名的实现   

 

内容三:高可用案例--评论服务

1. 评论功能

2. 评论列表模式

3. 评论服务设计的初步想法

4. 单级模式服务设计

5. 数据表的初步设计

6. 读/写接口与索引

7. 数据库的最终设计

8. 高并发问题

9. 盖楼模式服务设计

10. 数据库方案:递归查询

11. 数据库方案:保存完整楼层

12. 图数据库方案

13. 二级模式服务设计

14. 评论审核与状态

15. 按照热度排序

16. 高并发处理

17. 架构总览   



返回上一级