2017年3月24日 8:00 至 2017年3月26日 18:00 ,麦思博软件技术有限公司在 北京举办《范钢培训公开课:高质量软件架构设计案例分析和最佳实践(2017年3月 北京站)》。
课程介绍
课程信息
主办方介绍
范钢培训公开课:高质量软件架构设计案例分析和最佳实践(2017年3月 北京站)宣传图
随着网络与信息技术的高速发展,软件研发逐渐朝着大规模、高复杂度的大型软件系统发展。特别是随着近几年互联网的高速发展,带动着全行业的互联网转型,使得未来的软件系统还将向着持续性、深层次架构调整的方向发展。在这样的背景下,如何从全局的角度思考软件系统方方面面的问题,提前识别软件项目的技术风险点,并有针对性地制订技术方案,以及如何构建一个更加灵活、易于调整、快速变化的软件系统,成为大型软件系统至关重要的设计内容。
培训特色
:本课程注重实战,采用案例贯穿的方式,收集了大量的真实案例,针对项目过程中技术人员常犯的错误进行了汇总与研讨,并最终形成培训教程。通过大量的真实案例,详细地介绍了软件架构设计过程需要注意的要点以及难点,这些知识都是讲师十几年经验的总结。
目标收益
:本课程首先将系统地讲述高质量的软件架构该设计过程,包括如何运用领域驱动设计的思想贯穿整个架构设计,又如何使软件系统在衍变中调整架构,从而适应需求的变化;如何运用5视图的方法,全面地思考软件架构各方面的问题:从需求的角度进行可行性分析;从全局的角度进行软件分层、技术选型、模块划分等方面的设计;运用数据持久化的方式设计数据结构;运用“属性->场景->决策”的过程把握非功能设计;从部署、网络、性能的角度进行
物理架构的设计,从而有效避免架构设计时遗漏关键风险点,使架构设计过程变得有序。
培训对象
:中高级工程师、企业架构师、软件设计师、
数据库/存储技术人员、技术决策/解决方案人员等。
学员基础
:3-5年架构设计基础及项目经验
课程时长
:3天
麦思博软件技术有限公司
麦思博(msup)有限公司发源美国西雅图,2007年创办,是一家面向技术型组织的培训咨询机构,服务于技术团队的技能提升、软件工程的实际应用和产品品质的创新与超越。强调人员、技术、流程和管理的有机结合,注重角色岗位的技能提升与职业发展,以及技术团队复合管理与协作。每年超过1000家企业续单参与msup旗下公开课、工作坊、案例研究、国际游学等培训项目。
课程大纲
主题
| 内容 |
第一部分 高质量架构设计 第一单元 软件架构设计概述
| 情景剧:软件架构设计的价值 1. 一个人的软件设计过程 2. 5个人的软件设计过程 3. 10个人的软件设计过程 4. 10个人以上的软件设计过程 结论:揭示架构设计的价值与架构师的作用
架构设计5视图法: 1. 介绍架构设计5视图法 2. 运用5视图法设计软件架构的过程
|
第二单元 逻辑架构设计过程 | 案例讲解逻辑架构的设计过程 1. 逻辑架构的概念与作用 2. 需求分析与用例模型设计 由粗到细的需求分析过程 不同类型的用例描述 3. 流程分析与行动图 4. 领域模型分析 讲解领域驱动设计的思想 在需求讨论中绘制领域模型 用原文分析法进行领域分析 5. 需求确认与可行性分析 探讨需求不可行给项目带来的风险 案例讲解主动式需求分析的过程
|
第三单元 开发架构设计过程 | 案例讲解开发架构的设计过程 1. 开发架构的概念与作用 2. 讨论合理的分层架构 案例:演示一个工资系统的需求变更过程 展示三次巨大需求变更及其分析设计过程 探讨什么样的架构能真正适应需求的变更 3. 技术选型与决策 4. 软件架构设计 案例讲解软件的可扩展设计 案例讲解软件的易维护设计 5. 模块划分与分包 6. 软件开发规范的制订
|
第四单元 数据架构设计过程 | 探讨传统的数据架构设计过程 讲解基于领域的数据架构设计过程 1. 如何将领域模型转换为数据库设计 传统的4种关系转换为数据库设计 继承关系的3种数据库设计 2. 如何将领域模型转换为软件 贫血模型 vs. 充血模型
|
第五单位 运行架构设计过程 | 探讨运行架构的设计过程 1. 关注关键点与难点而不是全局 2. 属性→场景→决策的分析过程
专题讨论运行架构需要决策的内容 1. 并发访问与串行操作 2. 同步操作与异步操作 3. 进程与线程 |
第六单元 物理架构设计过程 | 探讨物理架构设计过程 1. 案例讲解一些常见物理架构设计 2. 案例讲解应用架构设计 3. 案例讲解一些技术方案的编写 |
第七单元 逐步演化的架构设计 | 恰如其分的架构设计 1. 恰如其分的架构设计过程 案例:一个邮件系统的架构演变过程 2. 风险驱动的架构设计
逐步演化的架构设计过程 1. 探讨老系统维护过程中架构设计的问题 2. 剖析以往采取的办法及失败的原因 缝缝补补不能从根本上解决 走一步退两步浅尝辄止的根源 抛弃一切从头再来的风险 3. 剖析问题的根源与解决的办法 演化式改造的过程 平台建设与重构并行 改造与维护并举
剖析架构设计中的一些常见误区
|
第二部分互联网架构设计 第八单元 大并发相关的指标 | 高并发相关的指标 1. 吞吐量 / 每秒事务数 / 事务响应时间 2. 用户数 / 用户并发数 / 最大用户并发数
高并发问题的解决思路 1. 目标→问题→方案 2. 业务梳理与优化 |
第九单元 并发问题的快速优化策略 | 传统架构的演变过程 1. All-in-One的架构设计 2. 多级集中的架构设计 3. 传统架构面临的挑战
基于风险的架构设计思想 1. 先识别未来存在的风险,再进行有针对的架构设计 2. 用最快的速度解决最急迫的问题
并发问题的快速优化策略 1. 智能DNS及其优缺点 2. CDN内容分发网络及其优缺点 3. 负载均衡与反向代理 1)Nginx技术及其解决的问题 2)动静分离的设计 3)Zookeeper及其非中心化设计 |
第十单元 数据库瓶颈及其优化策略 | 数据库瓶颈 1. 现有数据库设计及其性能瓶 2. Shared Disk vs. Shared Nothing 3. 介绍PostgreSQL与GreenPlum
数据库读写分离的设计 1. 三种不同类型的操作及其优化策略 业务操作 / 随机查询 / 统计分析 2. MySQL主从机实现读写分离 1)MySQL主从机实现读写分离的思想与局限 2)在原有系统上实现读写分离的改造过程 3. 真正实现读写分离的设计方案
数据库分库的设计思想 1. 纵向拆分的设计思想及其注意的问题 案例:国家金税三期的架构设计 案例:阿里巴巴的架构设计 2. 横向拆分的设计思想及其注意的问题 1)按地域拆分的设计及其评价 2)按用户号进行拆分的设计及其评价 案例:淘宝网的架构设计解析 3. 在原有系统上如何实现数据库分库 1)纵向拆分的系统改造过程 2)横向拆分的系统改造过程 |
第十一单元 应用缓存的设计 | 应用缓存技术 1. 应用缓存技术解决的问题 2. 单机缓存 vs. 分布式缓存 3. 分布式缓存的特点及其设计
Memcached技术 1. Memcached技术及其特点 2. 分布式哈希算法及其一致性哈希 3. Memcached的部署结构及其应用方案 案例:负载均衡的session同步及其故障转移
如何在原有系统上进行应用缓存改造 1. Spring + Memcached的设计改造过程 2. Hibernate + Memcached的设计改造过程 3. Memcached的命中率分析及其调优 4. 应用缓存的设计过程中应当注意的问题 |
第十二单元 内存数据库的设计 | 内存数据库技术 1. 内存数据库的概念 2. 解析内存数据库的运行原理 3. Oracle TimesTen的介绍 4. Gemfire及其在12306的应用
Redis内存数据库技术 1. Redis的运行原理及其特点 2. Redis的部署形式 3. Redis的应用设计 案例:spring-redis-data的设计应用 案例:京东订单系统的优化过程 4. 内存数据库的设计局限 |
第十三单元 异步化操作的设计 | 1. 异步化操作的原理 案例:12306的异步化改造过程 2. 异步化操作的设计实践 3. 分布式队列的设计 |
第十四单元 互联网不断演进的架构设计过程 | 互联网+时代的架构设计特点 1. 互联网+带来的巨大变革 2. 互联网公司不断面对的升级改造 3. 传统行业必须面对的互联网转型
好的架构源于不断的衍变 案例:58同城的架构衍变过程 1. 最初的架构设计 2. 网络接入层的改造过程 3. 数据库拆分的改造过程 4. 服务化为中心的改造过程 |
第十五单元 大并发架构设计的验证 | 1. 设计测试用例与场景 2. 录制测试脚本执行测试 3. 测试结果的评价与调优 4. 编写性能测试报告 案例:某大型互联网开票系统的架构验证过程 |
第三部分针对大数据的架构设计 第十六单元 NoSQL数据库及其设计 | NoSQL数据库的概念 1. 分布式架构与CAP理论 2. ACID vs. BASE 3. 强一致性与弱一致性 4. NoSQL数据库的特点
MongoDB数据库 1. MongoDB数据库简介 2. MongoDB数据库的概念模型 3. 插入、更新、删除、查询操作 案例:MongoDB实现企业征信报告的海量存储与快速查询 4. MongoDB数据库的优劣势分析与适用范围 |
第十七单元 Hadoop大数据处理技术 | Hadoop大数据处理技术 1. Hadoop简介 2. Hadoop生态圈 3. Hadoop架构及其与传统架构的优势
Hadoop的核心组件 1. 解析HDFS分布式文件系统的运行原理 2. 解析MapReduce分布式运算框架的运行原理 3. MapReduce的优劣势与适用范围 案例:WordCount词频计算程序的分析设计过程
Hadoop的生态圈 1. Hive技术 1)Hive技术简介 2)Hive与传统关系型数据库的比较 3)Hive的建表、载入数据、查询数据的语句 2. Spark技术 1)Spark设计原理 2)Spark编程实践 案例:Spark小步快跑的设计过程 3. Sqoop技术 1)Sqoop技术简介 2)Sqoop导入语句 3)Sqoop导出语句 4. HBase数据库 1)HBase数据库的简介 2)HBase数据库的概念模型 3)HBase的面向列式存储 4)HBase的系统架构 案例:用HBase存储与展示搜索结果 5. ElasticSearch搜索引擎 1)ElasticSearch设计原理 2)ElasticSearch+Hive的设计方案 3)ElasticSearch的RUSTful数据搜索 案例:如何实现海量数据秒级响应
Hadoop的安装部署 1. Hadoop的物理部署架构 2. Hadoop的技术选型 3. Hadoop的组件部署结构 |
第十八单元 面向主题的数据仓库设计 | 数据仓库的概念 1. 大范围数据统计的操作特点与设计思路 2. 数据仓库的架构设计
大数据环境下的数据仓库设计 1. 大数据环境下数据仓库设计面临的困境 2. 讲解海量数据的多维数据模型设计方案 案例:HBase实现大数据多维模型 案例:企业征信大数据的设计过程 3. 浅析数据挖掘与机器学习过程
传统BI系统的大数据转型 1. 传统BI系统面临的难题 2. 案例讲解演化式BI转型过程 |
讲师介绍
范钢
航天信息股份有限公司
首席架构师 航天科工集团技术专家委员会架构设计专家
参与的大型软件项目包括:
国家金税工程项目建设
航天科工集团重点项目建设(涉密)
某部委纪检监察部门疑点数据平台建设
爱信诺企业征信大数据平台建设,等等。
课程费用
课程费用
课程费用:6800元/人