- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
重构—从思想做起 作为一个程序员,任谁都有看不上眼的代码:代码来自你邻桌的那菜鸟或者是三个月前的自己。面临此境有人选择得过且过,然而根据程序员特质,更多的人盼望着手整顿,挽起袖子,剑及履及,其勇虽佳,其虑未缜。 孔子说:“暴虎凭河,死而无悔者,吾不与也。”现在有了严谨的重构规则和严密的后果构手法,孔子也不会说“吾不与也了”,稳定中求发展也有了保障。 什么是重构? 重构的三次法则 1、添加功能时一并重构 2、修补错误时一并重构 3、复审代码时一并重构 过长参数列 太长参数列的函数难以理解,太多参数会造成前后不一致,不易使用。 发散式变化 当某个class因为不同原因在不同方向上发生变化时,发散式变化就产生了。 霰弹式修改 如果遇到某种变化时,你需要在许多不同的class间作一些小修改,你所面临的就是霰弹式修改。 发散式变化和霰弹式修改正好是相反的,一个是一个class受多种变化的影响;另一个是一个变化影响多个class。这两种情况你都要整理代码,取得外部变化和待改类呈现一对一的理想关系。 依恋情结 函数对某个class的兴趣高过它自己所在class,这种孺慕之情的焦点便是数据。典型的例子就是某个函数为了计算某值几乎调用了另一个class的半打函数。 The End 数据泥团 数据项就像小孩子,喜欢成群结队呆在一起,你常常会在很多地方看到相同的数据项,两个class内相同的值域,许多函数签名中相同的参数,这些绑在一起出现的数据应该放进属于它们自己的对象中。 基本型别偏执 大多数编程环境都有两种数据:结构类型允许你将数据组织为有意义的形式;基本类型就是构成结构类型的积木块。结构总是会带来额外开销,它们有点像数据库中的表格,或是那些得不偿失(只为做一两件事而创建,却付出太大的额外开销)的东西。 Switch惊悚现身 面向对象的一个显著特点就是少用switch (或case)语句,本质上说switch语句的问题在于重复。 平行继承关系 当你为某个class增加一个子类的时候,也必须为另一个class增加一个子类,如果你发现某个继承体系的class名前缀和另一个继承体系的class名前缀完全相同,便是闻到了这仲坏味道。 冗赘类 你所创建的每个类都得有人去理解它、维护它,如果一个class所得不值其身价,那就让它庄严赴义吧。 夸夸其谈未来性 就是用一些特殊手段处理一些非必要的事情,这么做的结果往往会使系统难以理解和维护,如果所有的情都会被用到,那么就值得这么做,如果用不到就不值得。 ?2008 深圳卓润科技有限公司 重构—从思想做起 Presentation title:28pt Arial Regular, blackRecommended maximum length: 2 lines Group name:17pt Arial Regular, whiteMaximum length: 1 line Template release: Oct 02 (modified by djboulia@) Modification History: 03/05/2003 djboulia Changed default color scheme to use black text/lines instead of white 01/15/2003 djboulia Removed empty macro to avoid warnings when opening documents based on master Indications in green = Live content Indications in white = Edit in master Indications in blue = Locked elements Indications in black = Optional elements ?2008 深圳卓润科技有限公司 郑蒙家 2008-09-02 《重构》-refactoring,改善既有代码的设计 重构,就是在不破坏可察功能的前提下,借由搬移、提炼、打散、凝聚……来改善事物的本质。 “非常的建设需要非常的破坏”,很多人都认同这一观点。但对现役的应用软件、构筑过半的项目、运转中的系统却容不得推倒重来。
您可能关注的文档
- 第2章CPU17893(免费阅读).ppt
- 第2章C数据揭秘(免费阅读).ppt
- 第2章CPU之1(免费阅读).ppt
- 重力坝整体稳定分析.ppt
- 第2章CPU18141(免费阅读).ppt
- 第2章C语言标识符数据类型运算符及表达式.ppt
- 第2章C语言的基本概念(论文资料).ppt
- 第2章CPU17892(免费阅读).ppt
- 第2章C网络编程常用特性(免费阅读).ppt
- 第2章CPU17781(免费阅读).ppt
- 10《那一年,面包飘香》教案.docx
- 13 花钟 教学设计-2023-2024学年三年级下册语文统编版.docx
- 2024-2025学年中职学校心理健康教育与霸凌预防的设计.docx
- 2024-2025学年中职生反思与行动的反霸凌教学设计.docx
- 2023-2024学年人教版小学数学一年级上册5.docx
- 4.1.1 线段、射线、直线 教学设计 2024-2025学年北师大版七年级数学上册.docx
- 川教版(2024)三年级上册 2.2在线导航选路线 教案.docx
- Unit 8 Dolls (教学设计)-2024-2025学年译林版(三起)英语四年级上册.docx
- 高一上学期体育与健康人教版 “贪吃蛇”耐久跑 教案.docx
- 第1课时 亿以内数的认识(教学设计)-2024-2025学年四年级上册数学人教版.docx
文档评论(0)