美文网首页PHP经验分享
重构方法论之HOW

重构方法论之HOW

作者: 半亩房顶 | 来源:发表于2019-09-20 14:26 被阅读0次

重构

重构是个我们必然会遇上的问题,这个项目中准备收集整理一些例子,并辅以示例,以期更好的学习重构

WHY

系统开发就如同一个焦油坑,当所有的问题,沟通、困难、资源制约交织在一起的时候,团队的行动就会越来越慢,最终沉没于焦油坑。提高协作效率是每一个团队都需要面对并解决的问题 --《人月神话》

  • 提高代码可读性
  • 提高代码质量
  • 提高代码灵活性
  • 等等
    回归本质,是要降低成本,提高效率

WHEN

代码的坏味道

  • 过长函数 (Long Method)
  • 过大的类 (Large Class)
  • 过长参数列表 (Long Parameter List)
  • 无用函数参数(Unused Function Parameter)
  • 不可读或者可读性差的变量名和函数名 (unread variable or function name)
  • 异曲同工类(Alternative Classes with Different Interfaces)
  • 令人迷惑的临时字段(Temporary Field)
  • 过多注释 (Too Many Comments)
  • 等等
  • 三次法则
    第一次做某件事时只管去做
    第二次做类似的事会产生反感,但无论如何还是可以去做
    第三次再做类似的事,你就应该重构了

  • 添加功能时
    当你发现添加功能不够顺畅,找不到合适的切入点时,说明程序可拓展性不再满足需求

  • 修补错误
    当你发现修改错误时束手束脚,不能很快的定位问题并简洁明了的修改问题,说明程序不够清晰,较为混乱

  • 复查代码时
    当你发现程序表意不够清晰,无法快速理解代码的功能,说明其不够清晰,可读性较差

HOW

SOLID面向对象设计

  • Single Responsibility Principle (SRP) (单一职责)
  • Open/Closed Principle (OCP) (开闭原则)
  • Liskov Substitution Principle (LSP) (里氏替换)
  • Interface Segregation Principle (ISP) (接口隔离)
  • Dependency Inversion Principle (DIP) (依赖反转)
  • Rename Method
  • Extract Method/Class/Subclass/Superclass/Interface
  • Move Field/Method
  • Remove Control Flag/Middle Man/Parameter/Setting Method
  • Pull Up Field/Method
  • Push Down Field/Method
  • Replace Magic Number With Symbolic Constant
  • Replace Conditional With Polymorphism
  • Replace Constructor With Factory Method
    详情见GitHub/howToRefactor

以上

欢迎大家关注我的公众号


半亩房顶

相关文章

  • 重构方法论之HOW

    重构 重构是个我们必然会遇上的问题,这个项目中准备收集整理一些例子,并辅以示例,以期更好的学习重构 WHY 系统开...

  • 项目重构-理论

    项目重构 1.重构-方法论 1.全部推翻,从头开始 2.以迭代的方式重构 2.什么时候应该重构 维护时投入/产出比...

  • 程序员应该读的几本重要的书

    《哲学史方法论十四讲》 《重构》 《精益创业》 《领域驱动设计》 《稀缺》 《浪潮之巅》 《中国文学史》 《全球通...

  • 27 - 重构之Why、What、When、How

    关于重构 重构代码对一个工程师能力的要求,要比单纯写代码高得多。重构需要你能洞察出代码存在的坏味道或者设计上的不足...

  • 读书丨我的读书方法论

    借黄金圈思维,从4个方面分享我的读书方法论, Why– 为什么读 How– 怎么读 What–读什么 How– 如...

  • 欧美方法论的中国本土化

    去西方取经,在东方重构 这两年“敏捷”方法论在中国逐渐成为共识,同样大行其道的方法论还有“设计思维(Design ...

  • 不出国你不知道的那点事

    场景之打招呼 A: Hello, how are you?/How do you do? B: Good, How...

  • [第三篇]重构-重新组织数据

    事先说明,文章首发于自己个人站点,戳「重构-重新组织数据」之解。 继续「重构-改善既有代码设计」之旅,重构前两章的...

  • Hoo ……How How Da Lu Kuai…… 惺惺然的风和沙削摧了浅绿之温情……

  • 读书笔记

    《系统之美》 《重构》 《Redis 实战》 《Effective Java》 《Spring Boot实战》 《...

网友评论

    本文标题:重构方法论之HOW

    本文链接:https://www.haomeiwen.com/subject/nobssctx.html