技术架构设计培训
1 架构设计文档视图
1.1 软件架构的定义
1.2 架构师能力模型与能力培养
1.3 基于SEI 9种架构评估的方法论
1.4 源代码目录结构与设计文档的关系
1.5 架构视图、架构文档与架构刘生
1.6 动手实践:基于UML模型的文档视图
1.7 动手实践:使用UML工具对现有系统进行反向工程
2 架构决策与选型
2.1 透视技术平台、框架与类库的内涵
2.2 评估技术平台、框架与类库的方法
2.3 产品与产品线架构决策的差异性
2.4 以往架构决策经验的复用
2.5 基于骨架代码的架构决策
2.6 基于Delphi法的架构决策
2.7 基于SEI的9种架构评估方法论
2.8 案例研究:丰田的DFSS-Design For Six Sigma
2.9 动手实践:移动应用的架构方案决策实践,评选佳实践成果
3 细化架构与切割
3.1 技术切割范式:针对所有业务功能进行技术切割方法论
3.2 技术元素的分层组织
3.3 技术元素的分包组织
3.4 技术元素的相似性与重叠性分析
3.5 技术元素的变化性设计
3.6 技术元素的性能、可靠、稳定与安全设计
3.7 技术元素并行开发与开发管理组织
3.8 技术元素难度复杂度与开发者能力关系
3.9 动手实践:面向对象与面向方面的技术切割实践,评选佳实践成果
4 接口设计与解耦
4.1 接口设计的基本原则
4.2 接口的变化性与稳定性
4.3 定义技术元素间相互调用的接口
4.4 定义系统外部访问集成的接口
4.5 定义框架管理的接口
4.6 注入变化观察技术元素的波及面-耦合性分析
4.7 技术元素职责单一性与松耦合
4.8 案例分析:google的MapReduce的接口设计
4.9 动手实践:类库接口设计实践,评选佳实践成果
5 数据库结构设计与大数据
5.1 数据库设计的基本原则:适度使用范式原则
5.2 实现数据库结构的弹性设计8种方案
5.3 大数据设计:权衡SQL与NoSQL
5.4 数据切割:分库、分区与分布
5.5 数据存储文件系统的弹性设计:MySQL与淘宝TFS
5.6 数据性能设计方案:对比MemCached、OceanBase与Spark
5.7 数据中的知识与决策
5.8 动手实践:分组实现数据库弹性设计,评选佳实践成果
6 公共组件设计
6.1 公共组件结构切割
6.2 公共组件接口设计
6.3 公共组件的弹性设计
6.4 公共组件与功能组件的动态耦合设计
6.5 动手实践:Cache组件设计
6.6 动手实践:现有系统反向工程的公共组件合理性分析
7 框架平台设计
7.1 UI框架设计
7.2 功能逻辑组件集成管理框架设计
7.3 数据访问框架设计
7.4 数据存储框架设计
7.5 案例分析:HaDoop框架剖析
7.6 动手实践:现有系统反向工程的自定义框架的合理性分析
8 部署运行维护设计
8.1 规划系统开发的配置库结构
8.2 规划系统的编译方案
8.3 规划系统源代码的版本方案
8.4 规划系统物理文件的安装方案
8.5 规划系统中各个技术元素部署方案
8.6 系统集成构建方案
8.7 注入敏捷思想-持续集成构建
8.8 案例分析:微软的每日构建
8.9 标注软件结构中的“运维点”
8.10 制定“运维点”的运行维护策略
8.11 软件结构中内置免疫系统
8.12 动手实践:产品源代码结构、编译计划、版本计划与部署方案,评选佳实践成果
9 基于TFS软件设计管理
9.1 基于TFS的设计模型的版本管理
9.2 基于TFS的设计模型的评审管理
9.3 基于TFS的设计模型的变更管理