码迷,mamicode.com
首页 > 其他好文 > 详细

《代码之美》第三章读后感(二)

时间:2015-06-07 23:13:12      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:

本章提到测试的主要目的是逐步建立,不断加强并再次确认我们对于代码的信心:即代码正确并高效地实现了功能。文章认为,最漂亮的测试是那些能将我们的信心最大化的测试,这个信心就是代码的确实现了它被要求的功能,并将一直保持这一点。由于代码不同方面的属性需要不同类型的测试来验证,所以对于“漂亮”的评判准则也不是固定的。书中考查了能使测试漂亮的三种方法。

1测试因简单而漂亮

2 测试因揭示出使代码更优雅,更可维护和更易测试的方法而漂亮

3 测试因其深度和广度而漂亮

关于二分法著名的bug的Java实现

public static int buggyBinarySearch(int[] a, int target) {
    int low = 0;
    int high = a.length - 1;
    while (low <= high) 
    {
        int mid = (low + high) / 2;
        int midVal = a[mid];
        if (midVal < target)
            low = mid + 1;
        else if (midVal > target)
            high = mid - 1;
        else
            return mid;
    }
    return -1;
}

读到这感觉很惭愧,今天才知道以前写得二分法都是错的。

  如果low和high的和大于Integer.MAX_VALUE,(int mid = (low + high) / 2;计算就会发生溢出,使它成为一个负数,然后被2除时结果仍是负数。书中提到了解决的方法,int mid = low + ((high - low) / 2); 或者int mid = (low + high) >>> 1;代码确实是值得我们去精雕细琢的,关于程序代码数值的边界问题更应该时时挂在脑海,书中对冒烟测试,边界测试,随机测试,都做了一定的说明,也帮助我对测试有了进一步的了解,意识到了它重要意义,和真正漂亮代码的来之不易。

  “如果你的测试全部通过,那常常说明你的测试不够好。”对于现在的我来说这句话深表同感,因为平时写出的代码几乎不测试,只要几次成功就算结束了,而我们有时需要的是从另一个角度,用挑剔的眼光去发现问题,只有这样才能够获得更大的进步。

《代码之美》第三章读后感(二)

标签:

原文地址:http://www.cnblogs.com/tianma-0/p/4559124.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!