您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 大型软件系统重构实战与案例分析--12月13-15日上海
新概念、新技术、新思维、新视角大型软件系统重构实战与案例分析软件重构面临的背景都是相似的,程序员们为了快速完成需求和上线而写出了最基本的代码,而在功能的不断扩充过程中,以打补丁的方式对代码进行扩充,中间还会面临着开发人员的变更和离职。逐渐的,代码就会越来越臃肿,渐渐的变得难以维护。糟糕的软件代码结构会有什么样的影响?首先是开发效率的降低,在糟糕架构下加进新功能,会受之前代码的影响,可能存在意想不到的改动点和问题点,开发和调试时间都会大大增加;其次是故障率的提升,在质量低下的代码中,总是容易藏着很多不易发现的坑,这些都会成为故障的隐患;同时,架构也会使得需求的完成大打折扣,使得设计好的目标,因为架构限制或者性能等原因,只能完成80%甚至更低。大多数软件开发方面的培训都是关于新系统的设计和开发,讲师教你如何从无到有创建出一个新的应用来。然而在真实的项目,许多产品如今往往依然运行在基于复杂架构设计和传统技术实现的遗留系统上,并依赖着它们,如何摸索出有效方法应对这些遗留系统,已经成为我们最需解决的问题之一。随着不同产品的推出、不同客户,不同版本的发布,需要维护的遗留代码越来越多,重构也就在所难免.迄今为止所有的软件系统都会变成遗留系统,并且都遭遇了缓慢,不可抗拒的腐化,因此软件开发人员不得不面对既有系统的混乱代码.而本课程正是告诉你如何重构既有的遗留系统,如何重构代码,重构设计,重构架构你们是否已经存在如下现象,如果有,请参加我们课程,我们给你最佳实践:a)遗留系统的文档已经部分丢失和残缺,甚至没有b)研发团队对系统的认识非常有限.包括对需求,架构,设计和代码c)每当修改系统Bug时,莫名其妙的新bug就会屡次出现d)增加新功能十分困难,即使简单新特性都需要很久时间才能完成e)研发人员非常辛苦加班,并且没有成就感,没有工程师愿意维护老代码,甚至为了逃离维护工作,采取离职你需要该课程吗?课程背景新概念、新技术、新思维、新视角)如果仔细分析当前系统代码,就会发现代码关系是否混乱且难以维护g)即使意思到重构的重要性,谁应该负责重构,如何开始,哪些需要重构h)如何保证安全重构,如何保证重构的正确性,也许重构后,系统运行不起来i)大型项目如何实践重构,我们系统都已经很多版本,很多客户各类软件研发中心的软件设计师、架构师,项目经理,技术总监,质量部门经理。对于重构技术怀有疑问和困惑,需要梳理解答的团队和个人,效果最佳。本课程注重实战,采用案例贯穿方式完成实践,收集了大量的真实案例,针对项目过程中技术人员常犯的错误进行了汇总,研讨,并最终形成培训教程。本次培训从程序员的编程思维开始讲解,通过大量的真实案例,涵盖了代码重构,设计重构,架构重构3个层次,详细地介绍了重构需要注意的要点以及难点,这些知识都是讲师十几年编程经验的总结。学员学习本课程应具备下列基础知识:了解Java/C#或者C++任一面向对象语言,具有面向对象基本概念,熟悉基本设计模式适合对象培训对象课程思想课程特色新概念、新技术、新思维、新视角)重构是程序员一生都要面对的事情,不仅包括最初的开发阶段,更包括首次发布之后.培养程序员重构的意识b)软件的质量要么改进,要么腐化.软件重构的首要法则就是通过重构代码提升程序的内在质量.c)重构成功之关键在于程序员学会关注那些标志代码需要重构的众多的”代码坏味道”d)重构成功的另一的要素就是应当掌握大量特定重构方法.e)重构成功的最后要点在于安全的重构策略.f)重构包括代码重构,设计(模块)重构,架构重构,不同目标采取不同的重构思路15年以上软件从业经历,历任程序员、设计师、软件架构师、项目经理等职位.曾任某著名外企中国研发中心高级工程师、技术专家。主要项目经验:参与或支持多家大型电信企业系统软件如中国电信97系统,中国移动BOSS系统(营业受理系统主架构师),负责某大型国有银行信贷核心系统,国家电网多个省门户系统,中国邮政,国家税务,社保等关键项目,负责系统架构设计及详细设计和相关软件技术支持。近年来专注于软件架构方法论和软件设计原则/模式,帮助客户进行需求分析、建模以及架构设计,为多家大型企业改造其核心业务系统,支持公司的业务迅速扩展,帮助客户设计并实施多个业务流程平台。之前,在国外某大型IT公司任3年核心程序员,从事核心软件系统底层开发实现。课程时间:3天课程安排专家介绍新概念、新技术、新思维、新视角课程内容:授课内容第一部分重构核心思想第一单元重构核心思想内容一:软件业者的反思:软件代码的为什么会变烂1.软件可维护性(为什么必须重视软件的可维护性)2.代码质量概述3.破窗效应4.技术债务5.对代码的重新认识---代码就是设计6.案例演示1-通过演示国内某电信项目,随着客户需求的变化,导致软件结构混乱,大家反思,为什么?你认为代码变烂的原因?内容二:重构思想与误区1.重构概述2.何时重构3.重构的误区4.重构是持续进行的,不要先编写烂代码,再抽出重构5.如何发现哪些地方需要重构6.如何保证重构的正确7.如何测试重构8.通过一个小案例演示重构的基本思想(什么时间重构,如何发现重构点,如何保证重构的正确性,最后如何验收)内容三:案例—通过实际项目演示重构1.介绍项目需求情况,进行设计2.阅读代码指出代码坏症状3.通过重构逐步改善代码质量4.通过该案例演示重构的过程,我们遇到的难处,如何解决?第二部分重构最佳实践---实践者的思考第二单元重构实践内容一:重构关键—发现代码的坏味道1.代码坏味道概述2.代码坏味道的分类3.识别代码坏味道,是重构的最重要一步4.所谓重构,无非就是嗅到坏味道,然后,一小步一小步的改了它。问题是,很多人对坏味道的容忍度让他们嗅不到坏味道,5.案例分析—通过真实项目的代码,分析代码坏味道内容二:重构手段和IDE重构工具新概念、新技术、新思维、新视角通过案例演示如何通过重构工具完成重构第三部分重构案例-某项目重构实践第三单元重构巨型大函数该案例主要演示如何重构实际项目代码之中的巨大方法内容一:重构案例—该案例重点巨型函数1.函数的重构2.巨型函数的种类a)项目列表式巨型方法b)锯齿状巨型方法3.利用自动重构对付巨型方法4.利用手工重构对付巨型方法5.引入感知变量6.函数依赖收集7.分解助手方法和方法对象8.通过案例介绍函数的重构最佳实践内容二:重构案例—该案例重点分解函数和函数参数重构1.分解函数2.助手方法提取3.函数参数的重构4.函数参数的相关坏味道5.流程函数和功能函数的调用关系6.通过案例介绍如何代码之中的分解函数和函数之间参数的重构内容三:重构案例—该案例重点复杂条件表达式重构1.复杂条件表达式重构2.IF/Else深层嵌套语句的重构3.Switch语句的重构4.重构表驱动5.通过案例介绍如何代码之中的复杂条件表达式的重构内容四:重构案例—该案例重点学习代码重复1.代码重复分类以及重构手段2.强加的重复(imposedduplication):开发者觉得他们无可选择-环境似乎要求重复3.无耐心的重复(impatientduplication):开发者偷懒,他们重复,因为那样似乎更容易.4.无意的重复(inadvertentduplication):开发者没有意识到他们在重复信息5.开发者之间的重复(interdeveloperduplication):同一团队(或不同团队)的几个人重复了同样的信息.新概念、新技术、新思维、新视角通过案例介绍代码的重复,以及如何重构第四部分重构案例-某项目重构实践第四单元类重构该案例演示大类的重构实践内容一:重构案例—该案例重点巨大类的重构1.重构大类1.对象的职责2.单一职责原则与类的重构3.职责的识别a)方法分组b)观察隐藏方法c)寻找可以更改的原因d)寻找内部关系e)寻找主要职责f)接口分离—接口隔离原则4.提取类和接口5.通过案例介绍如何重构巨大的类第五部分重构案例-某项目重构实践第五单元重构模式通过多个案例分析如果打通重构与模式任督二脉内容一:重构到模式1.软件设计的基本原则2.设计模式概述3.设计模式的本质论4.设计模式如何适应变化和封装5.重构到模式的思路内容二:案例---重点介绍重构基本类型依赖和对应模式1.通过案例学习以下重构到模式手段2.以State取代状态改变条件语句3.以Strategy取代条件逻辑4.以Composite取代隐含树5.以Interpreter取代隐式语言6.转移装饰功能到Decorator7.用Builder封装Composite8.重点学习案例的重构到模式的过程内容三:案例---重点介绍重构代码重复和对应模式1.通过案例学习以下重构到模式手段2.构造TemplateMethod3.以Composite取代一/多之分4.引入NullObject5.用Adapter统一接口6.用FatoryMethod引入多态创建7.重点学习案例的重构到模式的过程新概念、新技术、新思维、新视角内容四:案例---重点介绍重构代码过长/过大的类/方法和对应模式1.转移聚集操作到Vistor2.以Strategy取代条件逻辑3.以Command取代条件调度程序4.转移聚集操作到CollectingParameter5.重点学习案例的重构到模式的过程内容五:案例---重点介绍条件逻辑过度复杂和对应模式1.以Strategy取代条件逻辑2.以State取代状态改变条件语句3.转移装饰功能到Decorator4.引入NullObject5.以Command替换条件调度程序6.转移聚集操作到Visitor重点学习案例的重构到模式的过程第六部分重构案例-某项目设计重构实践第六单元设计和模块重构通过多个案例介绍设计重构,以及组件解耦,重构内容一:设计重构1.重构与设计的思想---根据代码坏味道改善设计2.软件需求不可预测性----设计师不可能进行预测式设计3.软件设计的重构4.「重构」和设计彼此互补5.「事先设计」(BigUpFrontDesign)6.演进式设计(evolutionarydesign)7.GrowinganArchitecture演化架构8.分析某项目,如何设计重构,给我们哪些启示,我们可以学习到什么内容二:组件/包/模块重构1.优良的系统设计意味着我们把系统分割成了一个个可单独部署的组件,单独部署意味着如果更改了一个组件,我们也不需要重新部署其他组件。2.组件和包坏味道3.模块之间解耦4.组件的内聚性实践5.组件的依赖性实践6.企业应用系统组件设计最佳实践7.分析某项目,演示重构,给我们哪些启示,我们可以学习到什么第七部分重构管理与安全重构第七单元重构管理内容一:安全重构1.重构的恐惧心里2.重构勇气3.安全重构和祈祷式重构新概念、新技术、新思维、新视角如何进行安全重构,消除恐惧心里。如何使重构持续化,使开发者必须重构4.安全重构保证a)依赖编辑器b)签名保持c)单一目标d)依赖编译器e)个人的能力f)代码审查g)单元测试h)验收测试i)人工测试5.通过案例如何保证重构的正确性内容二:重构管理1.代码管理2.冰山理论3.如何争取业务人员和管理者的支持4.持续重构与代码分析工具5.持续集成与重构6.重构日常习惯6.通过案例分析如何保持持续重构,以及如何向领导和业务人员说服重构2013年12月13-15日地点:上海培训结束,对理论、实践双项考核成绩合格者,颁发中国信息产业培训网的培训证书。培训费:5000元/人(含教材、培训费、培训期
本文标题:大型软件系统重构实战与案例分析--12月13-15日上海
链接地址:https://www.777doc.com/doc-2547896 .html