美文网首页
增量式开发

增量式开发

作者: 单调不减 | 来源:发表于2020-02-16 11:29 被阅读0次

以下摘录自《Think Python》。

随着你写的函数越来越大,你在调试上花的时候可能会越来越多。为了应对越来越复杂的程序,你可能会想尝试一种叫作增量式开发(incremental development )的方法。

增量式开发的目标,是通过每次只增加和测试少量代码,来避免长时间的调试

举个例子,假设你想计算两个给定坐标点(x_1,y_1)(x_2,y_2)之间的距离。根据勾股定理,二者的距离是:

distance=\sqrt{(x_1-x_2)^2+(y_1-y_2)^2}

第一步要考虑的是在 Python 中,距离函数看起来会是什么样。换句话说,输入(形参)和输出(返回值)是什么?

本例中,输入是可以用 4 个数表示的两个点。返回值是距离, 用浮点数表示。

现在你就可以写出此函数的轮廓了:

def distance(x1, y1, x2, y2):
    return 0.0

显然,此版本不能计算距离;它总是返回 0 。但是在语法上它是正确的,并且能运行,这意味着你可以在使它变得更复杂之前测试它

用样例实参调用它来进行测试。

>>> distance(1, 2, 4, 6)
0.0

此时我们已经确认这个函数在语法上是正确的,我们可以开始往函数体中增加代码。 下一步合理的操作,应该是求x_1−x_2y_1−y_2这两个差值。 下一个版本在临时变量中存储这些值并打印出来。

def distance(x1, y1, x2, y2):
    dx = x2 - x1
    dy = y2 - y1
    print('dx is', dx)
    print('dy is', dy)
    return 0.0

如果这个函数正常运行,它应该显示 dx is 3 以及 dy is 4 。 这样的话我们就知道函数获得了正确的实参并且正确执行了第一步计算。 如果不是,也只要检查几行代码。

下一步我们计算 dx 和 dy 的平方和。

def distance(x1, y1, x2, y2):
    dx = x2 - x1
    dy = y2 - y1
    dsquared = dx**2 + dy**2
    print('dsquared is: ', dsquared)
    return 0.0

再一次运行程序并检查结果(应是25)。最后,你可以使用 math.sqrt 计算并返回结果。

def distance(x1, y1, x2, y2):
    dx = x2 - x1
    dy = y2 - y1
    dsquared = dx**2 + dy**2
    result = math.sqrt(dsquared)
    return result

如果其正确运行的话,你就成功了。

当你刚开始的时候,最好每次只加入一两行代码。 随着经验见长,你会发现自己可以编写、调试更大的代码块了。 无论哪种方式,增量式开发都能节省你大量的调试时间。

这种开发方式的关键是:

  • 从一个能运行的程序开始,并且每次只增加少量改动。无论你何时遇到错误,都能够清楚定位错误的源头。
  • 用临时变量存储中间值,这样你就能显示并检查它们。
  • 一旦程序正确运行,你要删除一些脚手架代码,或者将多条语句组成复合表达式,但是前提是不会影响程序的可读性。

相关文章

  • 增量式开发

    以下摘录自《Think Python》。 随着你写的函数越来越大,你在调试上花的时候可能会越来越多。为了应对越来越...

  • 软件开发模式

    迭代式开发 迭代式开发也被称作迭代增量式开发或迭代进化式开发,是一种与传统的瀑布式开发相反的软件开发过程,它弥补了...

  • 敏捷开发

    敏捷开发 敏捷开发以用户需求为核心,采用迭代、循序渐进的方法进行软件开发。 迭代-增量式开发(反复与渐进式开发) ...

  • Android NDK开发之旅18--NDK--Apk增量更新

    前言 有关APK更新的技术比较多,例如:增量更新,插件式开发,热修复,RN静默安装。下面简单介绍一下: 增量更新:...

  • Android NDK开发之旅17--NDK--Apk增量更新

    Android NDK开发之旅 目录 前言 有关APK更新的技术比较多,例如:增量更新、插件式开发、热修复、RN、...

  • Daily Scrum

    是什么? #######- Daily :每天#######-Scrum:Scrum是迭代式增量软件开发过程,通常...

  • 增量式编码器的相位对齐方法

    增量式编码器的相位对齐方法 增量式编码器的输出信号为方波信号,又能够分为带换相信号的增量式编码器和一般的增量式编码...

  • Daily Scrum每日站会介绍

    什么是Daily Scrum Scrum是迭代式增量软件开发过程,通常用于敏捷软件开发。对于Daily Scrum...

  • CODING 敏捷项目管理全新改版上线

    CODING 敏捷项目管理全新版本现已上线,新版本深度结合敏捷开发理念,完美支持 Scrum 迭代式增量开发过程,...

  • 产品需求文档:如何撰写一份适合敏捷迭代的PRD文档?

    前言:软件开发方式大概有这么几种,分别是瀑布模式、迭代增量式、螺旋模式、敏捷开发,敏捷开发相比其他模式,它的优点是...

网友评论

      本文标题:增量式开发

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