曙海教育集团
全国报名免费热线:4008699035 微信:shuhaipeixun
或15921673576(微信同号) QQ:1299983702
首页 课程表 在线聊 报名 讲师 品牌 QQ聊 活动 就业
 

软件设计模式(整洁代码与重构)高级课程

 
   班级规模及环境--热线:4008699035 手机:15921673576( 微信同号)
       每期人数限3到5人。
   上课时间和地点
上课地点:【上海】:同济大学(沪西)/新城金郡商务楼(11号线白银路站) 【深圳分部】:电影大厦(地铁一号线大剧院站)/深圳大学成教院 【北京分部】:北京中山学院/福鑫大楼 【南京分部】:金港大厦(和燕路) 【武汉分部】:佳源大厦(高新二路) 【成都分部】:领馆区1号(中和大道) 【沈阳分部】:沈阳理工大学/六宅臻品 【郑州分部】:郑州大学/锦华大厦 【石家庄分部】:河北科技大学/瑞景大厦 【广州分部】:广粮大厦 【西安分部】:协同大厦
最近开课时间(周末班/连续班/晚班):2020年3月16日
   实验设备
     ☆资深工程师授课
        
        ☆注重质量 ☆边讲边练

        ☆合格学员免费推荐工作
        ★实验设备请点击这儿查看★
   质量保障

        1、培训过程中,如有部分内容理解不透或消化不好,可免费在以后培训班中重听;
        2、培训结束后,授课老师留给学员联系方式,保障培训效果,免费提供课后技术支持。
        3、培训合格学员可享受免费推荐就业机会。

课程大纲
体现简单之美的设计方案
可重用的对象与组件
支持良好的可扩展性
充分的测试覆盖率
可读性高的代码;
案例分析
代码阅读:通过运用组合方法模式思想对代码进行重构,进而演化为  Template Method模式去除重复代码
代码阅读:分析面向对象设计方法所不能解决的重复问题,从而引入函数式思想去除重复
邮件服务器:分析邮件服务器代码暴露的问题,在可重用性、代码可维护性、可扩展性等诸多方面着手,剖析代码坏味道。
面向对象的设计要素
合理封装的要点
迪米特法则
继承与委派的区别
关注点分离原则
多态与抽象
案例分析
报表系统之参数处理:了解封装的本质,明确职责的分配以及智能对象的意义,理解  “信息专家”模
式。
事务处理的设计:通过分析职责的承担者,从而辨别职责的分配,并以组合桥接的方式进行抽象的分离。
电子商务系统之订单处理:对行为的封装,职责的委派而非继承的方式,进而重构到  Command模式。
面向对象设计核心的SOLID原则
单一职责原则(SRP):该原则是合理封装对象,分配职责的重要原则;
开放封闭原则(OCP):该原则体现了扩展式开发的核心思想;
Liskov替换原则(LSP):可以将该原则视为是对是否正确运用继承的检验标准;


接口隔离原则(ISP):对于接⼝的粒度进行规划,以便于设计出更好的接口;
依赖倒置原则(DCP):对于依赖和解耦的分析,利用抽象保证设计的可扩展性;
议题二:整洁代码与重构
编写整洁的代码
糟糕的代码与混乱的代价,整洁代码的艺术;
如何对变量、方法和类进行命名;
如何设计方法,遵循 DRY与CQS原则;
如何进行错误处理和异常处理;
如何组织类和包;
案例分析
给出真实项目中真实的代码片段,对这些代码进行分析,并利用整洁代码的原则进行改善。这些代码涉及到的问题包括:循环嵌套太多,方法命名不合理,缺乏足够的封装,性能问题;
通过重构改善既有代码
破窗理论与重构的原则,包括重构与设计的关系,重构的时机和开展重构的原因介绍代码的坏味道:详细介绍各种代码的坏味道,包括重复的代码、过长函数、过大类、依恋情结、平行继承体系、发散式变化、霰弹式修改等 22种坏味道。
介绍常见的重构手法,例如提取参数、提取方法、提取类、搬移方法、提取参数对象,以委托取代继承等,并利用实际的案例展现如何对丑陋的代码进行重构。
案例分析
对媒体管理系统的坏味道识别,利用重构改善代码,并逐步引入  Strategy模式与Visitor模式,进行改善设计。
议题三:合理的职责分配是良好设计的基础
职责驱动设计
职责的层次:包括职责层次的识别、职责层次与软件架构层次之间的关系、职责与概念、规约与实现
对象的角色:角色、职责与协作是三位一体的关系,角色是发起职责的对象,职责则应该是对象之间的协作
模块级的职责分配:如何根据职责对模块进行分解,了解高内聚、松耦合原则。
案例分析
对邮件服务器进行分析,通过分辨职责层次,来改善设计。并提出需求变更,从而引进对观察者模式、策略模式、简单工厂模式、调停者模式与职责链模式的对比与分析;
处理HTTP请求与应答,体现信息持有者角色;
JMS对Queue的创建体现构造者角色;
税务报告的生成体现服务提供者角色;
服务定位器体现协调者角色;
内容验证器体现控制者角色;
EISaaS的模块划分;
基于AKKA的REST框架Spray;
国际报税系统的架构演进,提出模块重用的方式;
职责分配遵循的原则与模式
分析单一职责原则:分析该原则的核心思想,关注对象的变化点
专家模式:专家模式的核心思想是信息的持有者是操作该信息的专家
自治对象:分析了自治对象的特征,分别包括:最小完备,稳定空间,自我履行与独立进化
案例分析
设备状态的迁移:利用 “自治对象”思想逐步引入State模式,并结合实际需求分析标准 State模式的问题,从而对该模式进行改进
议题四:应对需求的变化,设计可扩展的软件
如何应对需求的变化
抽象的关键在于寻找多个对象(或行为)具有的共同特征,并对特性进行泛化
函数式非凡的抽象能力
识别变化点,对变化进行封装
解耦具体依赖:介绍常见的解除具体依赖的方法,包括表驱动法、配置与反射、IoC容器、惯例优于配置
案例分析 *项目管理模型的抽象,通过对多种项⺫管理过程进行分析,对各种模型概念进行分类,并抽象出模型的共同特征,从而简化模型;  *电子商务系统的票据业务规则,引用  Specification模式;   *CIMS系统的机器加载策略,引⼊ Strategy模式; *短信服务,引用Facade模式与Adpater模式;    *人力资源系统考勤模块,介绍 Gateway模式; * URL Web请求,讲解如何解耦具体依赖;
扩展式设计
扩展式设计的过程
案例分析
消息队列规范的设计:通过分析 JMS、MSMQ的设计,理解抽象的含义,例如理解面向接⼝设计、接⼝隔离原则、按意图设计、 Facade模式;


保单问卷调查:讲解如何从坏设计逐步重构到 Visitor模式;
议题五:设计模式的本质
设计模式的境界
初学者:拔剑四顾心茫然,不知道该如何运用设计模式
熟练者:过尤不及,为模式⽽模式,常常导致设计过度
精通者:无招胜有招,掌握了设计模式的本质,能够恰如其分地运用设计模式
设计的常见问题
理论与设计无法有效结合
过度运用设计模式
急于编码,没有有效的设计
设计模式的本质
合理的职责分配是基础
封装并抽象变化是核心
合理运用面向对象设计思想
合理运用面向对象设计原则
案例分析:JUnit框架
通过全面剖析JUnit测试框架,了解大师的设计艺术,展现  JUnit是如何保证框架的简单、可扩展、可重用。内容包括: * JUnit的组件结构  * JUnit的Test Case设计  *如何支持Test  Result显⽰的扩展 *  JUnit中如何通过复杂的设计来简化用户的使用




 

android开发板
linux_android开发板
fpga图像处理
端海培训实验设备
fpga培训班
 
本课程部分实验室实景
端海实验室
实验室
端海培训优势
 
  备案号:备案号:沪ICP备08026168号-1 .(2024年07月24日)....................
友情链接:Cadence培训 ICEPAK培训 EMC培训 电磁兼容培训 sas容培训 罗克韦尔PLC培训 欧姆龙PLC培训 PLC培训 三菱PLC培训 西门子PLC培训 dcs培训 横河dcs培训 艾默生培训 robot CAD培训 eplan培训 dcs培训 电路板设计培训 浙大dcs培训 PCB设计培训 adams培训 fluent培训系列课程 培训机构课程短期培训系列课程培训机构 长期课程列表实践课程高级课程学校培训机构周末班培训 南京 NS3培训 OpenGL培训 FPGA培训 PCIE培训 MTK培训 Cortex训 Arduino培训 单片机培训 EMC培训 信号完整性培训 电源设计培训 电机控制培训 LabVIEW培训 OPENCV培训 集成电路培训 UVM验证培训 VxWorks培训 CST培训 PLC培训 Python培训 ANSYS培训 VB语言培训 HFSS培训 SAS培训 Ansys培训 短期培训系列课程培训机构 长期课程列表实践课程高级课程学校培训机构周末班 端海 教育 企业 学院 培训课程 系列班 长期课程列表实践课程高级课程学校培训机构周末班 短期培训系列课程培训机构 端海教育企业学院培训课程 系列班