zoukankan      html  css  js  c++  java
  • 第九周读书笔记——《修改代码的艺术》

    本周我读的书是美国作者Michael C.Feathers所著的《修改代码的艺术》。这本书提到了一个概念:遗留代码。所谓遗留代码,指的是从他人那得来的代码。随着时间流逝,之前的代码纵使再完美无缺,也不可避免的产生腐化,失去原有的便利而显得腐朽发臭或者说没有编写测试的代码,或者说是遗留代码有许多预防措施,但是它的产生不可避免。如何解决它是整本书的核心。整本书分为三部分,第一部分是介绍性的引入章节,第二部分是主要内容讲的是修改代码的技术,第三部分讲的是在修改遗留代码时非常有用的解依赖技术。

    修改代码的主要起因:

    l  添加新特性

    l  修正bug

    l  改善设计

    l  优化资源使用

    在需要修改代码时,往往会伴随着相当大的风险,为了减少风险,问要考虑三个问题:

    1)       我们要进行哪些修改?

    2)       我们如何得知已经正确地完成了修改?

    3)       我们如何得知没有破坏任何(既有的)东西?

    遗留代码修改算法包括以下几步: 

    (1) 确定改动点;(前提:理解代码)

    (2) 找出测试点;(前提:理清代码间的联系)

    (3) 解依赖;(解依赖是为类编写单元测试的前提 )

    (4) 编写测试; (编写符合代码当前行为的特征测试 )

    (5) 修改、重构。 (在存在测试覆盖的前提下,修正bug 、改善设计等 )

    作者在这里提到了解依赖着个我未听说过的名词,作者的解释是

    依赖性是进行测试的障碍,表现在两个方面:

    l  难以在测试用具中实例化目标对象

    l  难以在测试用具中(调用)运行方法

    解依赖对我们的测试以及修改代码都是十分关键的,整个第三部分都是在讲述这方面的知识。

  • 相关阅读:
    如何给LG gram写一个Linux下的驱动?
    题解 CF492C Vanya and Exams
    题解 CF546B Soldier and Badges
    题解 P1283 【平板涂色】
    题解 P1717 【钓鱼】
    题解 UVA663 Sorting Slides(烦人的幻灯片)
    题解 P2835 【刻录光盘】
    题解 P5367 【【模板】康托展开】
    题解 P2949 【[USACO09OPEN]工作调度Work Scheduling】
    题解 P2272 【[ZJOI2007]最大半连通子图】
  • 原文地址:https://www.cnblogs.com/ZucksLiu/p/9120169.html
Copyright © 2011-2022 走看看