美文网首页
《测试驱动开发与设计模式》 适应并改进软件设计过程

《测试驱动开发与设计模式》 适应并改进软件设计过程

作者: RonZheng2010 | 来源:发表于2020-03-01 11:31 被阅读0次

    1. 软件设计是一个小步走的过程

    软件设计是对某个系统进行建模的过程,这是一个渐进完善、从不怎么了解到深入了解的过程。这是人类不断学习进步的一个例子。人的认识总是不够,总是一小步一小步往前走,软件设计过程也是一小步一小步走。接受这一点,就容易理解,测试驱动开发为什么能适应,并有效改进这个过程。

    认识不够有两种:一是认识的广度不够,二是认识的深度不够。

    2. 认识广度不够

    广度不够就像“盲人摸象”,看到的只是局部。这部分是这样,那部分是那样,放到一起才看到全貌。

    这跟“分而治之”看着像,但其实有很多不同。

    “分而治之”是自上而下,先见到一个模模糊糊的全局,分拆后,再细化每个局部。在软件设计中这个策略是个让人难受的悖论。我们希望给所谓的全局划个边界,在局部之间再划个边界,然后再深入局部。但是,在深入局部之前,这些边界又是隐晦不明、不确定的。

    测试驱动开发走的是“盲人摸象”的路,自下而上,看清每个局部,再拼起整个全局。整个过程中都不特意去界定边界,而是看到多少,就吸收多少,就构建多少。边界只是副产品,是水到渠成的结果,而全貌,只要一直往前走,它会自然而然、逐渐丰满起来。这里不需要纠结。

    3. 认识深度不够

    深度不够就像“雾里看花”,远看是那个,近看是这个,再拿到手上,可能又变点花样,甚至再成另外一个。

    天文史上,从“地心说”到“日心说”就是这样的情况。“地心说”可以计算天体运行,但新的观测数据一出来,它就不能覆盖,只好一直打补丁,本轮加到80多个,计算特别复杂。后来“日心说”换了一个出发点,把同一个东西解释得井井有条。更精确的数据让科学家们看得更清楚,推动他们尝试更合理的设想。正是他们勇于改变固有的观念,勇于探索新的思路,才让理论更接近天体运行的实际情形。

    测试驱动开发也经常有类似情况。拿到一个新模块,看着像是某个模式,那就套上去,或者跟以前哪个模块相似,那就抄过来。结果逻辑散乱,重复代码越来越多,总感觉别扭,硌得慌。这个时候,就是该抛弃成见、重新出发、尝试其他可能的时候。测试驱动开发鼓励尝试变更,鼓励寻找简洁明了的解决办法。因为它相信本体就该是那样。

    4. 测试驱动开发鼓励开放心态

    本质上说,软件设计是一门“解释”的科学,尊重本体的逻辑是一个当然的选择,所以驱动测试开发支持设计者开放心态,从不假设自己的想法完美无缺,随时准备聆听不一样的声音,随时准备调整设计,以便符合实际。这就是术语“拥抱变化”的含义。

    参考资料

    盲人摸象
    http://www.putixin.com/continue/gushi/wy-mangren.htm
    天文学发展的三个阶段:地心说、日心说、大爆炸说
    https://baijiahao.baidu.com/s?id=1617450411088492650&wfr=spider&for=pc

    相关链接

    测试驱动开发与设计模式 - 从入门到精通
    测试驱动开发与设计模式 - C++书籍及网站
    测试驱动开发与设计模式 - 开发实例(一)DVR-POS库
    测试驱动开发与设计模式 - 开发实例(二)JSON过滤库
    测试驱动开发与设计模式 - 适应并改进软件设计过程
    测试驱动开发与设计模式 - 让“理想结构”与“快速变更”并行
    测试驱动开发与设计模式 - 提速 — 在纸上做细节设计

    相关文章

      网友评论

          本文标题:《测试驱动开发与设计模式》 适应并改进软件设计过程

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