核心课程
Porducts
当前位置:首页    核心课程    IT技术
IT技术
本模块设计采用可视化与沙盘演练相结合的培训方式,将知识体系以可视化方式呈现来完成,对学员的实际专业知识进行咨询指导,帮助团队完善产品开发管理流程,定制符合自己特点的过程、方法和规范,提升组织级产品开发管理水平;以学员更容易理解的方式完成课程,可以达到非常好的培训效果,打开学员的兴趣,为实际工作做好准备。
架构&设计   软件设计模式最佳实践

image.png  软件设计模式最佳实践课程

image.png  课程天数:2天

image.png  课程介绍

     大多数软件应用,都需要进行二次开发或者升级的过程,都要应对需求的变化,是否由于代码杂乱,可读性差,导致开发不敏捷。是否因为增加某个功能或者某个需求变化,导致代码大面积重构呢,是否遇到系统无法扩展、维护性差,可测试性也很差的情况呢。

image.png  课程收益

     • 全真案例、借助案例与设计模式知识的原理、借助最佳实践、帮助您提高设计能力,从而提高开发效率和设计质量

     • 以新视角,揭示模式的本质、思想方法,剖析出模式之道,跳出为模式而模式的陷阱

     • 提升设计能力,使开发人员由编程小工到设计专家

     • 结合测试驱动开发与重构,提高软件设计质量

     • 关注业界内设计模式,以实战训练驱动对设计模式的理解与运用

image.png  培训对象

     • 各类软件研发中心的软件设计师、数据架构师, 项目经理,技术总监,开发人员。


image.png  课程大纲

第一单元:什么是优秀设计和为什么要使用设计模式

内容一:什么是好的设计 

     • 什么是好的软件详细设计和衡量的手段;

     • 世界大师的观点(Robert C Martin , Peter Code,` James Shor);

     • 我们现实项目的情况,随时需求的变化,我们自以为豪的设计,都逐渐变烂,变成纠缠不清的代码浆糊;

     • 可扩展性(Extensibility)容易添加新的功能. 结合案例,通过那些手段如何实现该目标;

     • 灵活性(Flexibility)代码修改平稳地发生. 结合案例,通过那些手段如何实现该目标;

     • 可插入性(Pluggability)容易将一个类抽出去,同时将另一个有同样接口的类加入进来. 结合案例,通过那些手段如何实现该目标;

     • 分析真实项目,如何做的详细设计,给我们哪些启示,我们可以学习到什么;

     • 分析我们在项目之中是那些原因导致了没有实现这些目标;

案例分析:


内容二:案例

     • 某档案移交接收系统:纷繁复杂的嵌套判断;

     • 某多媒体制作软件:上传-下载模块;

     • 案例涉及,需要详细学习如下设计模式及原则;

     • 简单工厂、单例、策略模式;

     • 重点:如何组织自己的代码和模块:指令与查询分离原则;

     • 对有多年编程经验的人员,函数级的编码是小儿科?

     • 分析模式使用前和后的对比;


第二单元:设计模式与设计原则

内容一:面向对象设计原则与设计模式关系;

     • 软件设计目标,基本原则和模式关系;

     • 开闭原则;

     • 依赖倒置原则;

     • 单一职责原则;

     • 里氏替换原则;

     • 合成/聚合复用原则;

     • 接口隔离原则和Demeter法则;

     • 通过案例进行分析,模式如何使用;


内容二:案例分析—OO基本原则与设计模式 ;

     • 通过经典面向对象案例,要求学员分别使用过程式和面向对象2种思维,进行设计;

     • 进行对比2种思维的不同点和结果;

     • 学员通过案例指出OO是否真正做到了它所说的价值;

     • 这些小案例涉及项目开发中的常见的困境、疑惑,本节探讨如何通过设计原则解决;

     • 讨论设计原则与设计模式的关系,已经在没有合适模式可用的情况下如何分析、解决问题。


第三单元:如何才能正确使用模式

内容一:设计模式精髓封装变化

     • 设计模式精髓—如何应对变化;

     • 封装变化的原则—变化不能散落多处和变化不能交织;

     • 共性和可变性分析原理;

     • 分析矩阵工具应用;

     • 共性和可变性分析与设计模式思想;


内容二:模式案例–咖啡机系统

     • 介绍项目需求情况,进行设计;

     • 学习设计模式(Strategy / Abstrct Factory/ Template Method);


内容三:模式案例–某数据展示系统

     • 项目子系统背景和需求;

     • 系统的设计思考过程;

     • 展示如何用模式,进行设计;

     • 学习设计模式(Strategy /Command/Template Method/ NULL Objecct /Adapter/表驱动法/Singleton );


内容四:模式案例–某数据分析系统

     • 项目子系统背景和需求;

     • 系统的设计思考过程;

     • 展示如何用模式,进行设计;

     • 学习设计模式(Observer / Visitor/ Composite /Command/ Strategy /Adapter/Singleton );


第四单元:重构到模式

内容一:重构到模式----错了再改,事不过三 ;

     • 设计坏味道概述;

     • 重构思想;

     • 重构到设计模式;

     • 常见设计模式的重构演化的过程;


内容二:案例-某数据分析系统的设计

     • 介绍项目需求情况,进行设计;

     • 通过重构逐步实现设计模式;

     • Framework 设计思想—好莱坞原则;

     • 学习设计模式;

     • Factory模式;

     • Strategy模式;

     • Decorator模式;

     • Observer模式;

     • 架构模式-分层、管道过滤器模式;

     • 架构模式的重构及演变,每步的依据及效果对比;

     • 从结构上考虑、从效率上考虑;


五单元:用模式去思考—对设计模式本质的思索及探讨

内容一:模式案例- 数据文件处理系统

     • 项目背景介绍和前期规划;

     • 从最初的需求进行分析,到系统的设计,最后到编码实现该案例,全程进行面向对象的分析,建模,设计和最终的开发实现;

     • 学习IOC思想在框架设计中的重要作用;

     • 在案例中自然使用模式,而非生搬硬套! (Façade, Strategy、Template Method 、Mediator, Simple Factory Command,模式);

     • 案例采用逐步推演的方法,针对需求的不断变化进行设计的演变。设计灵活的系统框架;

     • 通过案例学习怎样才能合适应用模式;


内容二:设计模式的本质探讨

     • 指出什么是优秀设计和丑陋设计;

     • 总结自己的模式-神似而非型似;

     • 探讨相似模式的本质;

     • “间接类”模式的推演及演化;

     • “流程类”模式的推演及演化;

     • 避免模式的误用,讨论模式的陷阱:在看似典型的场景,但不宜使用模式的场合。


  课程目录
1、高级系统架构设计实战
2、重构和领域驱动开发
3、软件设计模式最佳实践
4、重构-改善遗留软件质量和设计
5、单元测试实战训练营
6、卓越程序员—编写稳定可靠的优质代码
7、互联网分布式架构设计
8、使用Spring Cloud与Kubernetes构建微服务架构
9、微服务架构与容器化技术赋能企业应用
10、互联网大型高可用高并发架构设计与实践
11、基于Istio的微服务Service Mesh实战
站内搜索
联系电话
010-52883521
24小时全国咨询热线,言语交流更有效
公众平台
QQ客服

点击图标,马上与客服沟通  >>
返回顶部