代码整洁之道3天版课件

上传人:des****85 文档编号:254150228 上传时间:2022-02-14 格式:DOC 页数:9 大小:97KB
返回 下载 相关 举报
代码整洁之道3天版课件_第1页
第1页 / 共9页
代码整洁之道3天版课件_第2页
第2页 / 共9页
代码整洁之道3天版课件_第3页
第3页 / 共9页
代码整洁之道3天版课件_第4页
第4页 / 共9页
代码整洁之道3天版课件_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《代码整洁之道3天版课件》由会员分享,可在线阅读,更多相关《代码整洁之道3天版课件(9页珍藏版)》请在金锄头文库上搜索。

1、精选优质文档-倾情为你奉上CleanCode代码整洁之道一、为什么需要该课程软件质量,不但依赖于架构,设计以及项目管理,而且与代码质量紧密相关.这一点,无论你使用什么开发技术,都不得不承认. 代码是程序员沟通最直接的手段,代码是技术交流的手段,代码是需求交流的途径。重视代码,回归本源,曾经我们远离代码,谈架构设计,谈UML,谈开发流程。如今我们落地,找回软件的本源,彻彻底底看清代码、深入思考代码。那些一流的研发中心非常重视代码,Facebook就有经典的Code wins arguments(代码赢得争论)。在Facebook 做 code review时间大约占50%,管理者对代码质量负有一

2、定责任 。甚至代码质量高于一切:Facebook Code review是重点KPI考核的对象,实行连坐制,如果因为代码质量问题,那么产生的KPI责任包括领导30、程序员50、审核人员20。但是我们的管理者经常听到开发人员这样抱怨:“不能再增加功能了!我们得停下来重写代码。软件代码一团糟,就像纸糊的老虎,根本应付不了持续增加的用户需求。我们实在维护不下去了!最好推倒重写吧”这一幕在很多公司上演过,现在依然在不断重演。一旦公司陷入这种困境,以前版本的开发者往往沦为替罪羊。新的开发者一般就会骂前人怎么写这么烂的代码。他们准备推倒重来,准备重写系统。在重写代码的过程中,用户无法看到产品的任何改进。你

3、可能认为重写代码至多也就几个月,但是实际花费的时间无一例外要多得多。你只能坐在一旁,眼睁睁看着用户投奔竞争对手,而这个时候,竞争对手恰恰在不断地改进产品。我们研发中心有一个理念”代码是债务而不是资产”。最开始,团队会编写代码,做出产品,并用它来赚钱,但是,之后团队应该尽可能地寻找减少代码的方法和使代码尽量整洁,从而降低成本。软件界有一个真理,你拥有的代码越多,维护代码所要付出的成本就越高。如果你的代码结构越好,你做了越多的单元测试,你的代码质量越好、越小、耦合越松,那么添加新代码所需要付出的成本就越少。因此大师 Craig Larman说: “最好维护的代码就是没有代码,好的程序员的代码产量是

4、负的,因为他通过减少代码来增加功能”。对比现实中,很多人以为,LOC(line of code)越多的feature越大,写LOC越多的程序员越牛。这其实是极其错误的观念.因此我们必须有全面的管理制度让我们保持代码少而整洁。所以Michael Feathers认为未来属于知道如何有策略地删除代码的公司”。持有代码的成本要比我们想象的大。意识到这一点的公司更具有竞争优势。为了切实帮助软件企业降低企业项目开发成本,大面积提高软件工程师编程能力和代码质量管理能力,我们特别推出实战训练营. 分享多家大型研发中心代码管理经验给大家. 该课程适应于各个阶段的技术人员.初级工程师能够透过大师的眼睛来看待编程

5、,了解编程的价值观和原则;具有丰富经验的设计师和架构师可以通过实现模式进行反思,探究成功实践背后的意义.把价值观,原则和开发实践结合;管理者通过学习业界著名研发中心的管理经验和失败的教训,来制定自己公司的代码管理策略.质量管理相关人员学习如何定制代码质量指标,通过哪些工具进行监控,怎样管理代码质量。二、谁已经选择了我们的咨询和培训? 我们已经为几十家企业提供了多次培训和咨询服务,以下企业已经选择了我们的内训课程 互联网研发企业,比如百度研发中心4次 ,阿里巴巴6次, 腾讯 ,畅唐科技, 猎豹移动(原金山移动) 电信研发企业,比如思科研发中心5次,阿尔卡特-朗讯研发中心,华为研发中心,摩托罗拉研

6、发中心 1次,大唐电信研发 1次,广州从兴电子,亿阳通信 1次, 爱立信研发中心8次,鼎桥通信技术5次, 艾默生深圳研发中心 4次, 南京中兴通信 广电行业:广州诚毅科技研发中心, 企业软件研发企业,比如Adobe中国研发中心,北京久其研发中心,博古中国研发中心,金蝶深圳研发中心, EMC中国研发中心(北京和上海), 嵌入式软件企业,比如阿尔卑斯中国研发中心,德国M&M Software,西门子研发中心, Sony研发中心,金立智能研究院,南车研发中心,德塞西威,霍尼韦尔研发中心, 东芝中国研发中心, 汇川科技, 外包类企业,联盟计算机服务(天津)有限公司ACS 3次。 金融行业:恒生电子,华

7、腾,中国人民银行研发中心,工商行研发中心,平安科技研发中心,建行研发中心,深圳登记结算研发中心,花旗银行中国研发中心我们已经为几十期公开课,已经有100多家企业已经选择了我们的公开课程腾讯(深圳)有限公司, EMC中国研发中心,华为终端有限公司、 斯伦贝谢技术,通用电气医疗系统(中国)有限公司,华为技术有限公司,广州从兴电子开发有限公司、福建星网锐捷股份有限公司,广州菲特网络科技有限公司,盛立金融(杭州)软件公司 ,索尼中国研发中心, 爱德万,上海金慧软件有限公司,珠海世纪鼎利通信科技股份,兰吉尔仪表系统有限公司,珠海飞企软件有限公司,广东佳和通信技术有限公司,珠海一多监测科技有限公司,远光软

8、件股份有限公司三、你可以参加吗? 各类软件企业和研发中心的程序员、软件设计师、架构师, 项目经理,质量部门员工。 如果你不重视代码质量, 请不要参加. 本课程面向重视代码质量的管理者.l 如果你不认为写好代码是一件重要,困难并且有趣的事情,请你不要参加. 本课程面向追求卓越的程序员,我们认为编程是一种态度. 如果你已经多年不写代码,最好不要参加,本课程面向一线还在编程的程序员/设计师/架构师 四、你的角色和收获课程根据著名编程大师的理论: 编程是一种态度,编程是一种技艺,编程是一种习惯。面向以下不同的人群,有不同收获。角色收获技术负责人/技术总监l 了解业内先进的代码审查的形式、技术、技巧和流

9、程的成功经验,优化现有开发中心代码审核方法;l 掌握业内成熟的自动化审核审查工具及方法,提升开发人员在代码结构分析、代码质量度量、代码覆盖率分析等方面的能力,并有效运用到项目研发工作中。项目经理/项目管理人员/架构师/l 学习其他研发机构的代码管理思想l 代码管理手段l 代码管理相关流程和相关工具l 代码监控测试部门/质量管理部门l 代码审查l 代码检查列表l 代码管理手段l 代码管理制度的建立资深开发人员l 掌握代码编码规范、代码评审要点等知识,引导开发人员养成正确的代码编写习惯;l 编程技艺和相关编程实践l 重构手段一般开发人员l 编程技艺和相关编程实践l 重构手段l 代码坏味道五、课程内

10、容安排(该内容为3天版本,实际课程根据课前沟通进行定制)第一篇: 编程是一种态度-价值观主题培训内容备注第1单元 代码就是债务内容一:代码是债务1. 代码的认识-代码就是债务2. 代码是债务,越少越好3. 你拥有的代码越多,添加新内容所要付出的成本就越高4. 通过案例分析让代码库尽可能小的方法:5. 通过国际研发中心电信计费系统演示代码是债务的思想,10多年国外研发团队设计与研发第一版本,目前几百人在维护通过项目演示通过重构如何减少了一半的代码,维护的人员的减少项目的失败可能归咎于各种各样的原因。一些项目因糟糕的需求而失败,另一些则由于钱和时间超支了,还有少数单纯是因为糟糕的管理所致。如果我们

11、探究其根本原因,是否会发现所有项目失败的罪魁祸首是糟糕的代码呢? Bob大叔坚信糟糕的代码所带来的成本之大足够让一个项目失败。内容二 软件界要以新视角看待代码1. 传统的软件工程对代码的错误认识2. 代码的两面性,代码的静态结构和运行时行为3. 客户和管理者往往仅仅关注代码的运行时的行为4. 温伯格认为的主管必须关注代码5. 软件设计与代码的关系真正好的设计是在编码阶段一步一步而形成的,通过案例分析,设计如何根据代码进行演化6. 编程真的是简单的劳动吗?7. 通过多家项目案例进行分析,传统思想对代码的种种误解,我们提出了从3种新的角度来观察代码,a) 从管理者的角度,我们仅仅观察代码的运行时行

12、为,导致代码的静态结构混乱的根源。这就是代码的冰山原理,大量垃圾代码隐藏在冰山之下。b) 设计师的角度认为只要有好的设计,软件质量就可以保证。其实我们认为代码是真正唯一可以精确描述的设计文档。c) 程序员的视角,编程真的很难,通过某一个项目案例分析,20多人一周的工作量就为几行代码问题第2单元编程价值观内容一:编程价值观 1. 编程的方法学2. 什么是好的代码,我们却认为“Good code is not bad code !”3. 编程价值观-沟通,简单,灵活4. 价值观决定行为5. 优秀代码的评价标准, 什么是高质量编码? 特征是什么?6. 软件代码的可读性7. 代码的可扩展性8. 糟糕代

13、码的特征9. 劣质代码的代价10. 大师评价整洁代码的标准11. 通过大量项目案例分析,什么是好的代码,对好代码新的认识第二篇: 编程是一种技艺-实践篇第3单元 高质量函数(该内容较多,根据实际情况调整)内容一:高质量函数/过程1. 为什么需要函数2. 函数复杂度度量3. 函数圈复杂度以及度量4. 函数抽象层次-单一抽象层次原则SLAP(Single Level of Abstrction Principle)5. 函数实现模式之组合函数(Composed Method)6. 万恶之源函数过长7. 函数的单一职责8. 函数第一原则:是要短小,函数第二原则:是还要短小,函数第三原则:是必须短小9

14、. 函数重构之道抽取方法(Extract Method)和抽取对象函数10. 函数命名怎样取好的函数名11. 通过大量项目代码分析,函数的遇到的各种问题,如何编程高质量函数内容二:函数易理解与沟通1. 函数主体流2. 函数的异常处理3. 函数主题流程简化方法1-助手方法4. 助手方法的应用场景5. 助手方法的效果6. 函数主题流程简化方法2-函数对象(MethodObject)7. 通过真实项目代码进行分析,如果提高代码的可读性内容三:函数灵活/易可扩展-函数接缝1. 历史遗留代码维护问题2. 某电信研发中心的维护问题开发维护的效率问题。3. 增加一个功能特性的成本并不单单是为这些功能编码所花

15、费时间的成本,还应该包括特性扩展的障碍成本。4. 代码的可维护成本分析通过大量案例分析a) 确定需要修改哪些部分有多难b) 必要的改动有多少c) 实现改动对系统其他部分的影响有多大5. 如何实现代码的易扩展函数接缝6. 接缝(seam),指程序中的一些特殊的点,在这些点上你无需做任何修改就可以达到改动程序行为的目的7. 通过案例分析,如何实现函数的灵活/易扩展。内容四:函数参数1. 函数参数过长2. 最理想的参数数量是零,其次是一,再次是二,有足够的理由才能使用三个以上参数.3. 函数参数重构之道-引入参数对象(introduce parameter object4. 函数参数的顺序.5. 不要把程序参数当做工作变量/临时变量6. 函数参数模式-collecting parameter7. 函数返回值8. 通过大量项目代码是函数参数问题9. 演示函参数的重构内容五:变量1. “一旦了解在程序设计中如何使用变量,他就掌握了程序设计的精华。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号