- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
代码重构如何实现
代码重构如何实现重构的定义重构是在不改变软件可观察行为的前提下改善其内部结构。重构的节奏以微小的步伐修改程序。如果你犯下错误,很容易便可发现它。一个方法里面,不应该有很多的代码,我们可以通过分解后重组。好的代码应该清楚的表达出自己的功能,变量名称是代码清晰的关键。尽量减少临时变量,大量参数被传来传去,很容易跟丢,可读性差。提炼出逻辑代码,以便功能复用。重构(名词):对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。重构(动词):使用一系列重构首发,在不改变软件可观察行为的前提下,调整其结构。为何重构?重构改进软件设计重构是软件更容易理解重构帮助找到bug重构提高编程速度何时重构?几乎任何情况下我都反对专门拔出时间进行重构。在我看来重构本来就不是一件应该特别拨出时间做的事情,重构应该随时随地的进行。你不应该为重构而重构,你之所以重构,是因为你想做别的什么事,而重构可以帮助你把那些事做好。三次法则第一次做某件事只管去做,第二次做类似的事情会有反感,第三次再做类似的事,你就应该重构。事不过三,三则重构。添加功能时重构修补错误时重构复审代码时重构为什么重构有用?难以修改的程序难以阅读的逻辑重复的添加新行为需要修改已有代码的带复杂条件逻辑的好的程序容易阅读所有逻辑都只是在唯一地点指定新的改动不会危及现有行为尽可能简单表达条件逻辑重构是这样一个过程:它在一个目前可运行的程序上进行,在不改变程序行为的前提下使其具备上述美好性质,使我们能够继续保持高速开发,从而新增程序的价值。何时不该重构?无法稳定运行直接重写不用重构项目以及接近最后期限,不应该重构,虽然重构能够提高生产力,但是你没有足够的时间,通常标示你其实早该进行重构了。代码的坏味道Duplicated Code 重复代码Long Method 过长函数Large Class 过大的类Long Parameter List 过长参数列Divergent Change 发散式变化Shotgun Surgery 散弹式修改Feature Envy 依恋情结 (Strategy\Visitor)Data Clumps 数据泥团Primitive Obsession 基本类型偏执Switch Statements switch惊悚现身 (使用多态性替换)Parallel Inheritance Hierarchies 平行继承体系Lazy Class 冗赘类Speculative Generality 夸夸其谈未来性Temporary Field 令人迷惑的暂时字段Message Chains 过渡耦合的消息链Middle Man 中间人Inappropriate Intimacy 狎昵关系Alternative Classes with Different Interfaces 异曲同工的类Incomplete Library Class 不完美的库类Data Class 纯稚的数据类Refused Bequest 被拒绝的遗赠Comments 过多的注释当你感觉需要撰写注释时,请先尝试重构,试着让所有注释变得多余。构建测试体系确保所有测试都完全自动化,让他们检查自己的测试结果。一套测试就是一个强大的bug侦察器,能够大大缩减查找bug所需要的时间。频繁地运行测试。每次编译请把测试也考虑进去—— 每天至少执行每个测试一次。每当你收到bug报告,请先写一个单元测试来暴露这个bug。编写未完善的测试并执行,好过对完美测试的无尽等待。考虑可能出错的边界条件,把测试火力集中在那儿。当事情被认为应该会出错时,别忘了检查是否抛出了预期的异常。不要因为测试无法捕捉所有bug就不写测试,因为测试可以捕捉到大多数的bug。重构列表重构记录格式名称概要描述解决的问题描述要做的事情速写图展示重构前和重构后的示例动机做法范例重构的基本技巧—小步前进、频繁测试模式和重构之间有着一种与生俱来的关系。模式是你希望到达的目标,重构则是到达之路。重新组织函数Extract Method 提炼函数你有一段代码可以被组织在一起并独立出来。将这段代码放进一个独立函数中,并让函数名称解释该函数的用途。Inline Method 内联函数一个函数,其本体应该与其名称同样清楚易懂。在函数调用点插入函数本体,然后移除该函数。Inline Temp 内联临时变量你有一个临时变量,只被一个简单表达式赋值一次,而它妨碍了其他重构方法。将所有对该变量的引用动作,替换为对它赋值的那个表达式本身。Replace Temp with Query 已查询取代临时变量你的程序以一个临时变量(temp)保存某一个表达式的运算结果。将这个表达式提炼到一个独立函数(query查询式)中。将这个临时变量的所有被引用点替换
您可能关注的文档
最近下载
- 生物安全实验室乙型肝炎病毒实验活动风险评估报告.docx VIP
- 2025年全国中考历史真题分类汇编.docx VIP
- 托福写作172句型.doc VIP
- 三级助听器验配师理论知识考核试题及答案.pdf VIP
- Unit 7 Happy Birthday第1 Lead-in Cartoon time三年级英语上册练习(译林版三起).pdf VIP
- 昌平区电力工程施工组织设计.doc VIP
- 2025年新人教版数学二年级上册全册课件.pptx
- T∕CCMA 0075-2019 -装载机载荷谱试验方法.pdf VIP
- 针灸入门广州中医药学PPT.ppt VIP
- 学堂在线 如何写好科研论文 章节测试答案.docx VIP
文档评论(0)