zoukankan      html  css  js  c++  java
  • 重构:改善既有代码的设计有感

      看重构:改善既有代码的设计,表达一些想法。

     何谓重构?重构是对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低修改成本。重构是用微小的步伐修改程序,在这个过程中也能够很容易的发现程序中的错误。重构的时机可以是添加功能时,也可以是修补错误时,还可以是复审代码时。重构的目标是让代码容易阅读、所有逻辑都在唯一地点指定、新的改动不会危及现有行为、尽可能简单的表达逻辑。好多时候我们考察一个程序员,都是看他懂多少东西,知道多少概念,做过什么项目,但其实一个程序员最关键的素质是要写出好的代码。好的代码不是一天炼成,往往都要经过大量重构迭代之后才能成型,这本书就是讲怎么去重构代码的。

    重构第一章给出一些说法,是一些开发需要遵守的规范,更改变量名是绝对值得的行为,好的代码应该清楚表达出自己的功能,变量名是代码清晰的关键。任何一个傻瓜都能写出计算机可以理解的代码。唯有写出人类容易理解的代码,才是优秀的程序员 。
    绝大多数情况下,函数应该放在它所使用的数据的所属对象内。
    重构的前提是需要有测试工具和测试用例,每次重构一小部分代码就进行测试,保证在不改变代码行为的前提下重构。
    不要对另一个对象的属性用switch,如果要用switch,也应该在自己的属性上用,这样可以解耦,别的对象的修改也影响不到你。
    影片可能会根据不同的类型有不同的收费规则,所以影片可以根据类型有不同的子类,但是有个问题,影片如果换了类型,但是class是不能换的,所以可以考虑影片没有子类,但是影片包含一个Price的类,这个类可以根据不同类型有不同子类。Movie有一个Price类的引用,不同的类型对应不同的Price子类,调用Price类的方法来计算收费。
    关于添加新功能和重构。首先尝试添加新功能,然后意识到如果把程序结构改一下,添加新功能会方便很多,于是你换顶帽子,做一会重构。然后把帽子换回来,继续添加新功能,如此循环往复。

    他关于重构的说法很有意思,在我写了一些代码之后,我觉的这些说法很有共鸣。会在开发时注意到这样的问题。

  • 相关阅读:
    poj 1321
    Cocos2D-html5 公布游戏js编译为jsc
    Android定位开发之百度定位、高德定位、腾讯定位,三足鼎立一起为我所用!
    python 设计模式之 单例模式
    css画电脑键盘
    【C/C++学院】(23)Mysql数据库编程--C语言编程实现mysqlclient
    用DOM4J包实现对xml文件按属性分离。
    MVC4中AJAX Html页面打开调用后台方法实现动态载入数据库中的数据
    贝勒爷教你怎样在Mac上安装Microsoft Office
    6.Swift教程翻译系列——Swift集合类型
  • 原文地址:https://www.cnblogs.com/buyaoya-pingdao/p/14752724.html
Copyright © 2011-2022 走看看