代码整洁之道卓越软件代码质量体系最佳实践_第1页
代码整洁之道卓越软件代码质量体系最佳实践_第2页
代码整洁之道卓越软件代码质量体系最佳实践_第3页
代码整洁之道卓越软件代码质量体系最佳实践_第4页
代码整洁之道卓越软件代码质量体系最佳实践_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、代码整洁之道-卓越软件代码质量体系最佳实践课程简介:管理者最担心听到开发人员这样抱怨:“不能再增加功能了!我们得停下来重写代码。代码库一团糟就像纸糊的老虎,根本应付不了持续增加的用户。我们维护不下去了!”这一幕在很多公司上演过,现在依然在不断重演。一旦公司陷入这种困境,以前版本的开发者往往沦为替罪羊。新的开发者一般就会骂前人怎么写这么烂的代码。他们准备推倒重来,准备重写系统。在重写代码的过程中,用户无法看到产品的任何改进。你可能认为重写代码至多也就几个月,但是实际花费的时间无一例外要多得多。你只能坐在一旁,眼睁睁看着用户投奔竞争对手,而这个时候,竞争对手恰恰在不断地改进产品。因此我们认为软件质

2、量,不但依赖于架构及项目管理,而且与代码质量紧密相关。这一点,无论是敏捷开发流派还是传统开发流派,都不得不承认。干净整洁的代码,既在质量上较为可靠,也为后期维护、升级,架构演进奠定了良好基础。在最近几年的业界,大家都把精力花费在了软件需求,架构,过程和管理等,反而代码构建这个与软件开发骨肉相连的环节反而被忽视了.我们认为”代码是债务而不是资产”。最开始,团队会编写代码,做出产品,并用它来赚钱,但是,之后团队应该尽可能地寻找减少代码的方法和使代码尽量整洁,从而降低成本。软件界有一个真理,你拥有的代码越多,添加新内容所要付出的成本就越高。更坏的情况是,你所添加的所有内容都会堆在代码的顶端,接下来要

3、添加内容的时候会成本会更高。如果你的代码结构越好,你做了越多的单元测试,你使用的数据库模式越好、越小、耦合越松,那么添加新代码所需要付出的成本就越少。因此OOP大师CraigLarman:“最好维护的代码就是没有代码,好的程序员的代码产量是负的,因为他通过减少代码来增加功能”对比现实中,很多人以为,LOC(lineofcode)越多的feature越大,写LOC越多的程序员越牛。这其实是极其错误的观念因此我们必须有全面的管理制度让我们保持代码少而整洁。所以软件大师MichaelFeathers认为未来属于知道如何有策略地删除代码的公司”。持有代码的成本要比我们想象的大。意识到这一点的公司更具有

4、竞争优势。为了切实帮助软件企业降低企业项目开发成本,大面积提高软件工程师编程能力和代码质量管理能力,我们特别推出了实战训练营.分享多家大型研发中心代码管理经验给大家。该课程适应于各个阶段的开发群体初级工程师能够透过大师的眼睛来看待编程,了解编程的价值观和原则;具有丰富经验的设计师和架构师可以通过模式进行反思,探究成功实践背后的意义把价值观,原则和开发实践结合;管理者通过学习业界著名研发中心的管理经验和失败的教训,来制定自己公司的代码管理策略。培训讲师:刘捷曾任中国专业服务部高级技术顾问年加入中国区专业服务部,任高级技术顾问,主要负责客户项目的架构设计和项目开发,技术支持。保证项目的成功实施,运

5、行,维护。参加过全省、全国多个大型的计算机应用项目,设计的领域包括电信,银行、税务,社保等等。技术能力:DB,UNIX,J2EE,SOA,WebLogicServer,WebLogicIntegration,WebLogicPortal相关的架构设计。Dayl第1单元代码就是债务第2单元编程价值观Day2第3单元高质量函数第一篇:编程是一种态度编程价值观内容一:代码是债务-代码的认识代码就是债务-代码是债务,越少越好-你拥有的代码越多,添加新内容所要付出的成本就越高-通过案例分析让代码库尽可能小的方法:尽可能创建通用的工具。删除不用的代码或者特性。确保项目模块化,并分割成相互没有关联的子项目。

6、熟悉你经常使用的代码库。对代码库的规模时刻保持警惕,保持它是小而敏捷的。通过国际研发中心电信计费系统演示代码是债务的思想,10多年国外研发团队设计与研发第一版本,目前几百人在维护通过项目演示通过重构如何减少了一半的代码,维护的人员的减少项目的失败可能归咎于各种各样的原因。一些项目因糟糕的需求而失败,另一些则由于钱和时间超支了,还有少数单纯是因为糟糕的管理所致。如果我们探究其根本原因,是否会发现所有项目失败的罪魁祸首是糟糕的代码呢?Bob大叔坚信糟糕的代码所带来的成本之大足够让一个项目失败。内容一:编程价值观编程的方法学编程价值观-沟通,简单,灵活优秀代码的评价标准,什么是高质量编码?特征是什么

7、?软件代码的可读性代码的可扩展性糟糕代码的特征劣质代码的代价大师评价整洁代码的标准通过某项目代码是演示糟糕的代码,以及经过重构之后的代码,进行对此.第二篇:编程是一种技艺编程实践篇内容一:高质量函数/过程为什么需要函数函数复杂度度量函数圈复杂度以及度量函数抽象层次-单一抽象层次原则SLAP(SingleLevelofAbstrctionPrinciple)函数实现模式之组合函数(ComposedMethod)万恶之源函数过长函数第一原则:是要短小,函数第二原则:是还要短小,函数第三原则:是必须短小函数重构之道抽取方法(ExtractMethod)和抽取对象函数函数命名怎样取好的函数名通过大量项

8、目代码分析,函数的遇到的各种问题,如何编程高质量函数内容二:函数代码重复重复的危害强加的重复/无意的重复/无耐心的重复/开发者之间的重复不要重复自己DRYDontRepeatYourselfPrincipleMakeItEasytoReuse(让复用变得容易)魔法数(Magicnumber)重复性代码(DuplicatedCode)接口不同的相似类(AlternativeClasseswithDifferentInterfaces)系统分离关注点系统架构的基础通用服务组件通过某项目代码是介绍重复编码问题演示研发过程之中的常见重复问题,以及如何解决内容三:函数参数函数参数过长最理想的参数数量是零

9、,其次是一,再次是二,有足够的理由才能使用三个以上参数.函数参数重构之道-引入参数对象(introduceparameterobject函数参数的顺序.不要把程序参数当做工作变量/临时变量函数参数模式-collectingparameter函数返回值通过大量项目代码是函数参数问题演示函参数的重构内容四:变量变量定义常见的错误变量的数据类型变量的初始化原则变量的作用域变量的持续性变量的绑定时间数据类型和控制结构之间的关系变量的命名全局变量通过大量项目代码演示变量相关问题演示变量的注意事项内容一:条件表达式IF/ELSE语句应该如何编写Switch/Case语句应该如何编写复杂条件表示式的危害过分

10、深层的缩进,或者“嵌套”,已经困扰了计算机界达25年之久,并且至今仍然是产生混乱代码的罪魁祸首之一复杂表达式重构之道引入解释变量/分解条件/抽取方法计算条件表驱动法-多级嵌套IF语句的必然之道表驱动法使用总则某保险项目表驱动法应用案例分析通过大量项目代码演示条件表达式编码问题复杂表达式的注意事项,如何解决内容二:利用多态解决复杂表达式面向对象多态技术的新认识减少使用if语句,重构到多态以State/Strategy取代类型代码引入NullObject以Command替换条件调度程序转移聚集操作到Visitor第4单元转移装饰功能到Decorator复杂表达式与循通过大量项目代码演示多态可以解决

11、的编程问题环语句内容三:防止变异防止变异-如何设计函数,对象,子系.使其内部的变化或不稳定性对其他元素元素产生不良影响接口,多态,数据封装、间接性和标准都是源于PV开闭原则数据驱动(Data-DrivenDesign)编程元数据或反射驱动(Meta-dataorReflective)编程复杂业务逻辑-解释器驱动编程案例通过电信项目介绍如何设计应对变化通过大量项目代码演示多态可以解决的编程问题内容四:循环控制选择循环的种类循环控制循环的创建-有内向外循环与数组递归Goto语句控制结构与复杂度案例通过电信项目介绍如何设计应对变化通过大量项目代码演示多态可以解决的编程问题内容一:类基础-数据抽象类型

12、(AbstractDataTypes)类的基础:抽象数据类需要用到ADT的场景使用ADT的益处基本类型依赖坏味道数据泥团坏味道案例通过电信项目介绍数据的抽象通过大量项目代码演示数据抽象类型解决的问题内容二:数据封装数据封装数据的访问第5单元类的封装高质量类设计与通过大量项目代码演示数据封装编码内容三:面向对象设计与编程核心职责分配单一职责原则RDD-职责驱动的面向对象设计方法内容四:面向对象的编程上帝类/过大的类-违反单一职责依恋情结-一个方法视乎过于强调处理其他类的数据,而不是处理自己的数据发散式改变散弹式修改消息链中间人不当的紧密性案例通过电信项目介绍OOPDay3第三篇:编程是一种习惯管

13、理实践篇内容一:代码重构重构必然性实际重构遇到的4大问题如何发现重构点如何去重构(重构方式)如何知道重构何止截止如何保证重构的正确性介绍常见的重构技术第6单元重构到模式的目录代码改善内容二:代码测试代码测试代码测试的技巧集锦代码测试的典型错误改善测试过程内容三:代码调试代码调试寻找代码缺陷调试的心里因素调试工具内容四:修改遗留项目代码的艺术必须修改遗留的代码起因遗留代码修改危险事项如何对依赖代码做测试依赖代码的感知与分离依赖代码修改的接缝技术修改依赖代码的工具降低风险的措施接依赖技术内容一:代码质量度量代码质量的度量业界其他度量标准通过分析多个实际项目,分别度量相关是否标准内容二:代码静态分析工具代码静态分析工具概述以J

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论