重构与模式 (Joshua Kerievsky 著)】的更多相关文章

第1章 本书的写作缘由 第2章 重构 第3章 模式 第4章 代码坏味 第5章 模式导向的重构目录 第6章 创建 第7章 简化 第8章 泛化 第9章 保护 第10章 聚集操作 第11章 实用重构 参考文献 第1章 本书的写作缘由 1.1 过渡设计 1.2 模式万灵丹 1.3 设计不足 1.4 测试驱动开发和持续重构 1.5 重构与模式 1.6 演进式设计 第2章 重构 2.1 何谓重构 2.2 重构的动机 2.3 众目睽睽 2.4 可读性好的代码 2.5 保持清晰 2.6 循序渐进 2.7 设计欠…
第一章 ☛过度设计:是指代码的灵活性和复杂性超出所需. 第二章 ☛重构是一种保持行为的转换. 第三章 ☛每一个模式都是由三部分组成的规则,他表达的是某一环境,一个问题以及解决问题的方案之间的关系. ☛模式痴迷:对模式过于依赖. 第四章 ☛代码坏味道 ●代码重复(Duplicated Code) 通常可以通过形成Template Method重构. ●方法过长(Long Method) ●条件逻辑太复杂(Conditional Complexity) ●基本类型迷恋(Primitive Obses…
前言 当代码中出现多重if-else语句或者switch语句时.弊端之一:如果这样的代码出现在多处,那么一旦出现需求变更,就需要把所有地方的if-else或者switch代码进行更改,要是遗漏了某一处,那么程序就会出错.弊端之二:代码逻辑难以理解. 卫语句 卫语句的使用,并不能改变前言说的弊端:一旦需求更改,需要修改所有使用更改需求的if-else代码块.不过使用卫语句可以让自己或者代码维护人员很容易的了解代码的含义. 代替异常分支 所谓的异常分支就是普通情况之外的分支,这种情况的下的if-el…
前言 当代码中出现多重if-else语句或者switch语句时.弊端之一:如果这样的代码出现在多处,那么一旦出现需求变更,就需要把所有地方的if-else或者switch代码进行更改,要是遗漏了某一处,那么程序就会出错.弊端之二:代码逻辑难以理解. 卫语句 卫语句的使用,并不能改变前言说的弊端:一旦需求更改,需要修改所有使用更改需求的if-else代码块.不过使用卫语句可以让自己或者代码维护人员很容易的了解代码的含义. 代替异常分支 所谓的异常分支就是普通情况之外的分支,这种情况的下的if-el…
写一段程序从1打印到100,但是遇到3的倍数时打印Fizz,遇到5的倍数时打印Buzz,遇到即是3的倍数同时也是5的倍数时打印FizzBuzz.例如: 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz ... 等等,直到 100…
   李建忠老师讲的<面向对象设计模式纵横谈>,早就看过了,现在有了时间重新整理一下,以前的博客[赛迪网]没有了,现在搬到博客园,重新过一遍,也便于以后浏览. 设计模式从不同的角度分类会得到不同的结果.设计模式可以从[目的]和[范围]两个角度来看看. 模式分类 从目的来看[这个分来是广泛使用的]: -创建型(Creational)模式:负责对象的创建 -结构型(Structural)模式:处理类与对象间的组合关系 -行为型(Behavioral)模式:类与对象交互中的职责分配的问题 从范围来看…
遗留代码经常是腐臭的,每个优秀的开发者都想把它重构.而进行重构的一个理想的先决条件是,它应该包含一组单元测试用例,以避免产生回归缺陷.但是为遗留代码编写单元测试可不是件容易的事,因为它经常是一团糟.要想为遗留代码编写有效的单元测试,你大概得先把它重构一下.但要重构它,你又需要单元测试来确保你没有破坏任何功能.这种状况相当于要回答是先有鸡还是先有蛋.这篇文章通过分享一个我曾参与过的真实案例,描述了一种可以安全地重构遗留代码的方法. 问题描述 在这篇文章中,我将用一个真实案例来描述测试与重构遗留系统…
1.模式分类 1.1  从目的来看: •      – 创建型(Creational)模式:负责对象创建. •      – 结构型(Structural)模式:处理类与对象间的组合. •      – 行为型(Behavioral)模式:类与对象交互中的职责分配. 1.2 从范围来看: •     – 类模式处理类与子类的静态关系. •     – 对象模式处理对象间的动态关系. 2.动机(Motivation)目的 在软件系统中,经常有这样一些特殊的类,必须保证它们在系统中只存在一个实例,才…
2015年8月13日 PM 20:00 Neeke君从一个战场奔赴至另一个战场,回到办公室,打开电脑,登陆微信,精彩的的微社群分享马上就要开始了! 大家好,我是Neeke,中文名高驰涛,PHP开发组成员,现在云智慧担任高级架构师,负责公司产品的架构与研发工作.目前云智慧旗下有两款产品,监控宝与透视宝.前者主要做骨干网监控和IT基础设施监控,后者主要做面向业务.端到端的一体化APM解决方案. 附上分享者的个人简介:高驰涛(Neeke),云智慧高级架构师,PHP 开发组成员,同时也是 PECL/Se…
注:该随笔受启发于 <重构与模式>  第七章 第7.6小节 用Command替换条件调度程序 . 对于Command不做过多解释,这里我找了两个例子.供部分园友参阅:Command例子1 Command例子2 . 条件调度程序:我对这个名词的理解为,它是相对简单的选择结构 与 相对独立的业务逻辑的结合体. 话不是很好理解,下面举个小例子吧. 重构前的代码: /// <summary> /// 很简单的选择分支 一层 if else /// N个 相对独立 任务 /// </s…