培训搜索引擎

高级系统架构师(谢老师)

参加对象:项目经理、系统架构师、系统分析师、高级程序员、资深开发人员。

公开课编号 GKK2737
主讲老师 谢老师
参加费用 5800元
课时安排 4天
近期开课时间 2015-07-15
举办地址 加载中...

其他开课时间
  • 开课地址: 开课时间:

公开课大纲

培训要点
    什么是设计呢?设计是一种对话,它不仅仅是与利益相关方的对话,也是自己与自己的对话。对于设计人员来讲,本身的工作背景只是一个点,如果思考方式仅仅依靠这个点,慢慢的思想就被禁锢住了,这会严重约束我们的发展。我们必须撕破这个束缚,站在更高的角度看软件,才能寻求更大的发展空间。
    软件设计是一个思维活动,需要从什么是设计?为什么要设计?怎样进行设计?三个层面系统思考与研究,才可能进一步提升软件设计能力。世界上没有神奇的设计,优秀的设计来自于对每个问题的细致分析,来自于对每一个问题和解决方案的仔细权衡,也来自于我们的经验和眼光。设计的质量是由设计人员的质量决定的,深厚的积淀能够帮助我们应对软件开发的挑战,并且指导我们应对这些挑战。
    那么优秀的设计师是怎样成长起来的?任何人的成长都离不开实践,在实践中体会,在实践中解决问题,在实践中增长才干,这就形成了深厚的积淀。但是光有积淀是不够的,还需要把实践中的问题进行梳理,通过分析发现其中的规律,把它上升到理论的高度,并用理论来指导实践。正是在这种层层的循环中,才能使我们上升到前所未有的高度。
    课程将从设计方法论开始引入思考框架,然后直接通过案例分析进入设计过程,不断地提出问题并解决问题,使学员逐步的领悟:如何进行系统思考?如何系统化考虑各种关系?如何发现问题并解决问题?在这个经验的基础上,进一步寻找规律,从过程和模式两个方面进行归纳总结,使经验上升到理性的高度,形成能够指导未来设计的设计模式与模式语言。在此基础上,课程将引导学员再一次回到实践,以一个“日超过亿万调用的互联网中间层改造工程”案例为背景,重点讨论在这个背景下遇到的问题以及面对的挑战,紧扣“并发”、“同步”、“缓存”、“表”这四个关键问题展开讨论,完成认识事物螺旋上升法则的一个完整循环。
    从这个意义上说,本课程与其说是告诉人们怎么设计,还不如说是描述了一个向更高层次蜕变的故事,这个故事中蕴含的思想,可能比仅仅告诉人们怎么去做更有意义。在本课程基础上,我们希望学员不但能掌握软件系统设计方法论,更要根据组织所处领域的不同,通过总结历史形成的经验、教训、方法、模式,通过归纳整理,形成具有本组织领域特色的系统设计方法,并最终形成对本组织有价值的智力资产。

培训内容
第一讲 软件架构设计的方法论 
    1,系统思考:软件架构设计方法学
    2,用风险消除策略驱动架构设计
         质量风险对架构设计的影响
         进度风险对架构设计的影响
         尽早发现软件的腐化 
    3,拥抱着变化而设计
         面向对象分析与设计的本质
         关注特征:共性和可变性分析
         在行为分析中发现共性和变化性
         对变化建模:发现变化的规律
    4,面向对象的设计原则
第二讲 从实践到理论:顶层设计的案例
    1,实践:从案例分析入手研究问题
         案例背景及领域分析
         确定产品设计的目标与策略
    2,建立清晰的初期概念架构
         划分大泥球:职责的层次分解
         分布式问题的设计考虑
         分离用户界面的设计考虑
    3,基础系统的细化设计
         分布式环境对于组件布局的影响
         领域对象的并发访问考虑
         日志处理的并发性考虑
第三讲 从实践到理论:领域对象设计的案例
    1,关注细节:业务拓扑组件设计
         支持软件模型的重新组织
         提高访问领域对象的性能
         支持重新配置行为考虑
    2,组件设计的问题与对策 
         实现全局拓扑管理功能
         支持业务流的后期扩展
         维护内存中的存储单元数据
         业务拓扑组件接口详细设计
第四讲 从理论到实践:设计模式与模式语言 
    1,如何把经验归纳总结成理论 
         从过程的角度进行归纳总结
         从模式的角度进行归纳总结
         把模式嵌入过程:模式语言
    2,顶层架构设计过程域
         如何解决从混沌到结构的问题 
         如何解决分布式基础设施中的问题 
         如何解决事件分离和分发中的问题 
         如何解决接口划分中的问题
    3,组件设计过程域
         如何解决组件划分中的问题
         如何解决并发方面的问题 
         如何解决同步方面的问题 
         如何解决对象之间的交互中的问题 
         如何解决适配与扩展中的问题 
    4,资源应用过程域    
         如何解决资源管理中的问题    
         如何解决数据库访问中的问题        
    5,问题与扩展:面向服务的架构设计与实施 
第六讲 理论到实践:日超过亿万调用的互联网中间层改造工程 
    1,案例背景:遇到的问题以及面对的挑战
    2,项目的初期决策以及关注点
         对IT架构和架构师的职责定义
         IT技术的四个领域及构建知识体系
         IT架构都必定拥有的三个架构组成部分
    3,并发设计
         多核处理器并发所面临的挑战
         NUMA、SMP与CMP架构的特点
         多核情况下CPU缓存所带来的问题:一致性和性能问题
         并发设计解决方案
    4,阻塞同步与自旋
         自旋锁的概念,使用条件
         偏向锁、可重入锁和读写锁
         粗粒度和细粒度同步,乐观同步、非阻塞同步
         复合逻辑的并发问题
         上下文切换的影响,以及如何降低上下文切换
         同步问题解决方案
    5,缓存设计
         缓存的常见算法:拉链法和开放地址散列,内外缓存
         缓存部署分类:单机混合部署、多机部署
         通过命中率、缓存穿透后代价等因素来评价缓存
         脏数据和时间不同步所带来的问题。
         CPU缓存设计的启示,使用多级缓存,冷热数据分离
         缓存服务的解决方案
    6,合理的表结构设计
        互联网中的反范式
        混搭数据库类型的问题和好处
        空间与时间互相交换,散列
    7,课程总结

师资
由业界知名软件架构师亲自授课:
谢老师   培训中心副校长、教授,大型电子对抗项目首席系统架构师
刘老师   国内某著名网站技术总监

 

上一篇:企业研发中的知识产权管理和专利挖掘(杨安进)
下一篇:决战项目管理(黄老师)

培训现场