重构
SuperYang_
山高人为峰
展开
-
《重构-改善既有代码的设计》
《重构-改善既有代码的设计》经典语录:https://blog.csdn.net/SuperYang_/article/details/110730872《重构-改善既有代码的设计》代码中的坏味道:https://blog.csdn.net/SuperYang_/article/details/110733569《重构-改善既有代码的设计》重构手法(第一组重构):https://blog.csdn.net/SuperYang_/article/details/110907465《重构-改善既有代原创 2021-01-01 20:58:31 · 221 阅读 · 0 评论 -
《重构-改善既有代码的设计》重构手法(处理继承关系)
文章内容和思路来自《重构-改善既有代码的设计》1> 函数上移:某个函数在各个子类中的函数体都相同 2> 字段上移:如果子类中使用特别字段的方式很相似,就可以尝试将它们提取到超类中去 3> 函数构造本体上移:各个子类中的函数有共同行为则需要尝试函数上移到超类,构造函数附加了特殊的规则,对一些做法与函数的调用次序有所限制;要对付他们,需要采用略微不同的做法 4> 函数下移:如果超类中的某个函数只与一个(或少数几个)...原创 2020-12-12 01:03:17 · 694 阅读 · 0 评论 -
《重构-改善既有代码的设计》重构手法(重构API)
文章内容和思路来自《重构-改善既有代码的设计》1> 将查询函数和修改函数分离:如果某个函数只是提供一个值,没有任何看得到的副作用,那么这是一个很有价值的东西。我可以任意调用这个函数,也可以把调用动作搬到调用函数的其他地方;这种函数的测试也更容易;简而言之,需要操心的事情少多了;任何有返回值的函数都不应该有副作用 2> 函数参数化:如果我发现两个函数逻辑非常相似,只有一些字面量值不同,可以将其合并成一个函数,以参数的形式传入不同的值,从而消除重复 3&...原创 2020-12-12 00:25:41 · 508 阅读 · 0 评论 -
《重构-改善既有代码的设计》重构手法(简化条件逻辑)
文章内容和思路来自《重构-改善既有代码的设计》1> 分解条件表达式:对于条件逻辑,将每个分支条件分解成新函数还可以带来更多好处:可以突出条件逻辑,更清晰地表达每个分支的作用,并且突出每个分支的原因 2> 合并条件表达式:检查条件各不相同,最终行为却一致 3> 以卫语句取代嵌套条件表达式:给某一条分支以特别的重;如果使用if-then-else结构,你对if分支和else分支的重视是等同的;这样的代码结构传递给阅读者的消息就是:各个分支有同样的重要...原创 2020-12-11 23:28:01 · 296 阅读 · 0 评论 -
《重构-改善既有代码的设计》重构手法(重新组织数据)
文章内容和思路来自《重构-改善既有代码的设计》1> 拆分变量:变量有不同的用途,其中某些用途会很自然地导致临时变量被多次赋值,eg:循环变量、结果收集变量 2> 字段改名:命名很重要,对于程序中广泛使用的记录结构,其中字段的命名格外重要。数据结构对于帮助阅读者理解特别重要 3> 以查询取代派生变量:可变数据是软件中最大的错误源头之一。对数据的修改常常导致代码的各个部分以丑陋的形式互相耦合:在一处修改数据,却在另一处造成难以发现的破坏。很多时候,...原创 2020-12-11 20:44:08 · 276 阅读 · 1 评论 -
《重构-改善既有代码的设计》重构手法(搬移特性)
文章内容和思路来自《重构-改善既有代码的设计》1> 搬移函数:搬移函数最直接的一个动因就是频繁引用其他上下文的元素,而对自身上下文中的元素却关心甚少。此时,让它去与那些更亲密的元素相会,通常会取得更好的封装效果,因为系统别处就可以减少对当前模块的依赖 2> 搬移字段:如果更新一个字段需要同时在多个结构中做出修改,那也是一个征兆,表明该字段需要被搬移到一个集中的地方,这样每次只需修改一个地方 3> 搬移语句到函数:要维护代码库的健康发展,需要遵守几...原创 2020-12-11 19:07:30 · 837 阅读 · 2 评论 -
《重构-改善既有代码的设计》重构手法(封装)
文章内容和思路来自《重构-改善既有代码的设计》1> 封装记录:记录型结构是多数变成语言提供的一种常见特性。它能直观的组织起来关联的数据,让我可以将数据作为有意义的单元传递,而不仅是一堆数据的拼凑。但简单的记录型结构也有其缺陷,最恼人的一点是它强迫我们区分“记录中存储的数据”和“通过计算得到的数据” 2> 对集合封装的一个常犯的错误:只对集合变量的访问进行了封装,但依然让取值函数返回集合本身。这使得集合的成员变量可以被直接修改而封装它的类全然不知 3&...原创 2020-12-10 22:12:01 · 318 阅读 · 0 评论 -
《重构-改善既有代码的设计》重构手法(第一组重构)
文章内容和思路来自《重构-改善既有代码的设计》1> 提炼函数:浏览一段代码,理解其作用,然后将其提炼到一个独立的函数中,并以这段代码的用途为这个函数命名 2> 内联函数:有时候会遇到某些函数,其内部实现和函数名称同样清晰易读;也可能是你重构了函数的内部实现,使其清晰易读;若果真如此,就应当去掉该函数直接使用其中的代码 3> 提炼变量:表达式有可能非常复杂而难以理解。这种情况下,局部变量可以帮助我们将表达式分解为比较容易管理的形式 ...原创 2020-12-08 23:18:35 · 383 阅读 · 0 评论 -
《重构-改善既有代码的设计》代码中的坏味道
文章内容和思路来自《重构-改善既有代码的设计》1. 神秘命名:代码整洁最重要的一环就是好的名字,所以我们需要深思熟虑如何给函数、模块、变量和类命名;如果你想不到一个好的名字,说明背后很可能隐藏着更深的设计问题2. 重复代码:如果你在一个以上的地点看到相同的代码结构,那么可以肯定:设法将它们合而为一,程序会变得更好3. 过长函数:早在编程的洪荒年代,程序员们就已经认识到:函数越长,越难理解;据我们的经验,活的最长、最好的程序,其中的函数都比较短4. 过长参数列表:过长的参数列表本身也经常.原创 2020-12-06 14:10:15 · 319 阅读 · 2 评论 -
《重构-改善既有代码的设计》经典语录
文章所有内容引自《重构-改善既有代码的设计》1. 如果你要给程序添加一个特性,但发现代码因缺乏良好的结构而不易于进行更改,那就先重构那个程序,使其比较容易添加该特性,然后再添加该特性2. 重构前,先检查自己是否有一套可靠的测试集。这些测试必须有自我检验能力3. 重构就是以微小的步伐修改程序。如果你犯下错误,很容易便可发现它4. 傻瓜都能写出计算机可以理解的代码,唯有能写出人类容易理解的代码,才是优秀的程序员5. 编程时,一定要遵循营地法则:保证你离开时的代码库一定比来时更健康6.原创 2020-12-06 09:34:13 · 375 阅读 · 3 评论