各有关单位:
中国科学院计算技术研究所是国家专门的计算技术研究机构,同时也是中国信息化建设的重要支撑单位,中科院计算所培训中心是致力于高端IT类人才培养及企业内训的专业培训机构。中心凭借科学院的强大师资力量,在总结多年大型软件开发和组织经验的基础上,自主研发出一整套课程体系,其目的是希望能够切实帮助中国软件企业培养高级软件技术人才,提升整体研发能力,迄今为止已先后为国家培养了数万名计算机专业人员,并先后为数千家大型国内外企业进行过专门的定制培训服务。
软件重构是指在不改变软件功能和外部可见性的情况下,为了改善软件的结构,提高清晰性、可扩展性和可重用性而对软件进行的改造。简而言之,重构就是改进已经写好的软件的设计。在敏捷开发方法学中,重构常常是软件开发循环的一部分,开发者通过增加新的测试和功能,或者重构代码来改善内部的一致性和清晰性。重构也是代码维护中的一部分,既不修正错误,又不增加新的功能性,而是用于提高代码的可读性或者改变代码的结构和设计,使其在将来更容易被维护。特别是,在现有的程序的结构下,给一个程序增加一个新的行为会非常困难,因此开发人员可能先重构这部分代码,使加入新的行为变得容易。具体事宜通知如下:
- 培训对象
注重实效的各类软件研发中心的负责人、设计师、架构师、项目经理、技术总监、质量部门经理、开发工程师等。
代码重构 |
设计重构 |
软件腐烂监控 |
重构管理 |
|
开发工程师 |
精通 |
了解 |
了解 |
了解 |
设计师 |
精通 |
精通 |
了解 |
了解 |
架构师 |
精通 |
精通 |
精通 |
精通 |
数据库工程师 |
了解 |
了解 |
/ |
/ |
质量管理 |
/ |
/ |
精通 |
精通 |
管理者 |
/ |
/ |
监控 |
了解 |
三、培训特色
本课程注重实战,采用案例贯穿方式完成实践,针对项目过程中技术人员常遇到的误区进行汇总、研讨,以程序员的编程思维为前提,通过大量的真实案例,详细地介绍了重构需要注意的要点以及难点,这些全部都是讲师十几年经验的沉淀及总结。
本课程内容理论性与实践性都较强,采取讲课、讨论、实践三者结合的方式,1/3时间讲解核心思想,1/3时间动手重构实践,1/3点评分析总结,形成一整套解决问题的方法。
四、培训要点
软件重构面临的背景都是相似的,程序员们为了快速完成需求和上线而写出了最基本的代码。然后在功能的不断扩充过程中,以打补丁的方式对代码进行扩充,中间还会面临着开发人员的变更和离职。逐渐地,代码就会变得越来越臃肿,渐渐地变得难以维护。
糟糕的软件代码会带来开发效率的降低,在糟糕架构下加入新功能,会大大影响新功能的代码质量,开发和调试时间都会成倍增加;其次是故障率的提升,在质量低下的代码中,总是容易隐藏着很多不易发现的坑,这些都会成为故障的隐患;同时,架构也会使得需求的完成大打折扣,使得设计好的目标,因为架构限制或者性能等原因,只能完成80%甚至更低。
随着不同产品的推出,不同客户、不同版本的发布,需要维护的遗留代码越来越多,重构也就在所难免。不仅如此,所有的软件系统,经过一段时间的维护,都会逐渐变成遗留系统,并且都遭遇了缓慢而不可抗拒的腐化。因此,软件开发人员不得不面对既有系统的混乱代码。
本课程首先深入剖析软件质量下降的根源,提出重构是软件变更中保持高质量的必然,讲解如何运用“两顶帽子”的方式应对变更,拒绝腐化。站在实战的角度讲解高质量软件设计的“小步快跑”过程。接着,用真实案例讲解已经代码腐化的遗留系统是如何通过“软件重构七步曲”,由简入深、循序渐进地重构一个大系统。最后,以重构的角度进行实战,讲解软件如何在不断变更的过程中,运用设计模式来降低耦合,保持软件设计质量不退化。
查看更多
五、培训内容
|
授课内容 |
第一部分 为什么软件需要及时重构 |
|
第一单元 剖析软件质量不断下降的根源 |
质量不断下降的表现:
以往采取的措施:
带来的问题
分析与反思
案例分析:一个遗留系统的演化过程
软件质量下降的根源:
软件是因需求变更而质量下降吗? 案例分析:推演软件变更的设计过程 应对软件变更的最佳方式:两顶帽子
案例:演示两顶帽子的设计过程
|
第二单元 高质量的软件设计过程 |
以往软件设计的过程:
小步快跑模式的开发过程:
案例:演示小步快跑的开发过程 小步快跑解决的问题:
案例:数据推送程序的设计过程
|
第二部分 如何进行软件重构 |
|
第三单元 何为重构 |
软件重构的概念
案例:一个Hello World重构过程
案例:Hello World的自动化测试过程
案例分析:重构一个大型遗留系统
超级大函数及其危害 案例:演示大函数产生的过程 案例:演示抽取方法操作步骤 实践抽取方法会遇到的问题和解决方案
超级大对象及其危害 案例:演示超级大对象的产生过程 案例:演示抽取类的操作步骤 讲解单一职责设计原则 案例:演示“分久必合,合久必分”的重构过程
讲解顺序编程及其危害 “不要重复代码”原则 案例:提高代码复用的6个方法 案例:演示新增代码时的代码复用过程 用静态检查工具检查重复代码
过度设计 vs. 恰如其分的设计 讲解“开放-封闭”的设计原则 案例:讲解可扩展设计的4个方法 案例:讲解新增代码的可扩展设计过程
案例:讲解接口、实现与工厂模式 案例:讲解外部接口解耦与适配器模式 案例:讲解继承泛滥问题与桥接模式 案例:讲解方法解耦与策略模式 案例:讲解过程解耦与命令模式 案例:讲解透明扩展与组合模式、装饰者模式
反思软件架构需要怎样的分层结构 遗留系统如何拥抱需求变化 遗留系统如何应对技术变革
领域驱动设计的概念 讲解领域模型分析方法 讲解原文分析法与领域驱动设计 讨论:如何制定重构项目计划 练习:重构一个小程序并编写测试脚本 |
第四单元 关于重构的讨论 |
什么时候重构
测试的困境
重构的评价
|
第三部分 运用设计模式实战软件重构 |
|
第五单元 适配器模式 |
适配器模式的应用
案例:Hibernate适配器的设计
案例:第三方支付接口的设计 案例:财务数据接口的设计
|
第六单元 策略模式 |
策略模式的应用
练习:财务凭证生成功能的设计与实现
|
第七单元 工厂模式 |
探讨软件设计中遇到的难题
简单工厂模式
案例:剖析Spring的beanFactory
案例:数据导出功能的工厂实现
工厂方法模式
案例:SAX框架的工厂类设计
抽象工厂模式
抽象工厂模式的实现 案例:标签库的设计改进过程
|
第八单元 单例模式和原型模式 |
单例模式的应用
原型模式的应用
原型模式的设计实现 案例:函数调用的无副作用问题 案例:JavsScript中的原型模式
|
第九单元 模板方法模式 |
模板方法模式的作用与技巧 案例:一个工厂模板的设计与实现 深入理解不要重复自己原则
|
第十单元 装饰者模式及桥接模式 |
装饰者模式的应用 案例:多数据源的设计实现
案例:商城收银系统的设计变更过程
重新理解里氏替换原则
练习:商场收银系统的2种设计与实现
桥接模式的应用 案例:员工管理与工资发放的设计
案例:查询支持类的设计
深入体会单一职责原则
|
查看更多
六、培训时间、地点
时间:2021年6月29日-7月1日
线下:北京
线上:直播平台(全国)
七、证书
培训结束,颁发中科院计算所培训中心“软件设计师”结业证书。
八、费用
线下培训费:5900元/人(含教材、证书、午餐、学习用具等)。住宿协助安排,费用自理。
线上培训费:4700元/人(含电子教材、证书等)。
查看更多
找会议,上活动家(https://www.huodongjia.com/)!活动家是亚洲的会议活动、培训认证、商务游学考察,查询、报名、票务营销平台,致力于为用户提供有价值、有意义的商务会议活动,以及为主办方提供会议免费发布、活动推广营销,视频直播,在线选座等服务,是你参会、办会的好助手。