julycoding/The-Art-Of-Programming-By-July-2nd

July:谁来一章一章的测试所有代码?

julycoding opened this issue · 19 comments

编程艺术系列 + 博客内其它部分经典文章的目录已经重新调整更新完毕,见:https://github.com/julycoding/The-Art-Of-Programming-By-July/blob/master/ebook/zh/Readme.md ,整个目录分为11章。

衡量文章质量有几个指标:是否通俗易懂,篇幅是否精简,程序代码是否有bug、代码风格是否良好,命名是否规范,代码逻辑 & 可读性是否良好,代码是否优化等等。

而其中,程序代码中若存在bug,则是令人厌恶的,故烦请大家一一认领这10章,一人一章,或一人1/2章,打开编译器一一测试每一章的代码,找出bug,指正错误。

认领格式为:
“我认领第某某章,预计某月某日排除此章的bug”。

不要求你发现所有bug,尽你所能揪出你能揪出的bug即可,一章给一周到一个月的时间进行测试,如果发现bug,可以pull request,或在本issue 下指出,我来update 原文,thanks。

这。。就交给大神了,表示代码理解起来都困难,更不必说找BUG了。。

------------------ 原始邮件 ------------------
发件人: "July";notifications@github.com;
发送时间: 2014年3月12日(星期三) 下午4:02
收件人: "julycoding/The-Art-Of-Programming-By-July"The-Art-Of-Programming-By-July@noreply.github.com;

主题: [The-Art-Of-Programming-By-July] 谁来一章一章的测试所有代码? (#210)

很欣喜,8天前,尚有9篇文章未同步,到如今只剩最后两篇待同步,感谢大家的努力。

与此同时,整个编程艺术系列 + 博客内其它部分经典文章的目录已经重新调整更新完毕,见:https://github.com/julycoding/The-Art-Of-Programming-By-July/blob/master/ebook/zh/Readme.md,整个目录分为10章。

衡量文章质量有几个指标:篇幅是否精简,程序代码是否有bug、代码风格是否良好,命名是否规范,代码逻辑 & 可读性是否良好,代码是否优化,层层递进。

而其中,程序代码中若存在bug,则是令人厌恶的,故烦请大家一一认领这10章,一人一章,或一人1/2章,打开编译器一一测试每一章的代码,找出bug,指正错误,thanks。

认领格式为:
“我认领第莫某章,预计某月某日排除此章的bug”。


Reply to this email directly or view it on GitHub.

@Xuanwo 能否找出bug 主要是看是否细心,写一些测试用例反复把程序跑几遍,确保无误即可。

我正好是ACM校队的=。=,看看有没有我能胜任的吧。。

------------------ 原始邮件 ------------------
发件人: "July";notifications@github.com;
发送时间: 2014年3月12日(星期三) 下午4:28
收件人: "julycoding/The-Art-Of-Programming-By-July"The-Art-Of-Programming-By-July@noreply.github.com;
抄送: "漩涡"vars.cn@gmail.com;
主题: Re: [The-Art-Of-Programming-By-July] July:谁来一章一章的测试所有代码? (#210)

@Xuanwo 能否找出bug 主要是看是否细心,写一些测试用例反复把程序跑几遍,确保无误即可。


Reply to this email directly or view it on GitHub.

@Xuanwo 共十章,可以认领一章,1周 - 1个月之间完成一章的测试,即可。

@sg90
可以先只测试文章中C 和 C++ 的代码。

@sg90
好的,赞。

sg90 commented

第1章代码测试完成,未发现bug。

sg90 commented

2.1解法四的代码示例bug较多,重新编写如下:
int q_select( int a[], int k, int left, int right )
{
int i, j;
int pivot;

if( left + CUTOFF < right )
{
    pivot = a[left];

    i=left; j=right;
    while(i < j)
    {
        while( i < j && a[j] >= pivot ) j--;
        a[i] = a[j];
        while( i < j && a[i] <= pivot ) i++;
        a[j] = a[i];
    }
    a[i] = pivot;
    if( k < i + 1 )
        return q_select( a, k, left, i-1 );
    else if( k > i + 1 )
        return q_select( a, k, i + 1, right );
    else
        return a[i];
}
else {
    insert_sort(a, left, right );
}

}

@sg90
把代码转换成C 代码吧 :-)

目前目录已经进行了很大调整,不知看到了更新没
此外,暂时只排出C 代码的bug,其它语言的代码放在下一步排除。

在第一章的最后一节中,寻找最长回文子串中,例程会返回比实际最长多两位的结果
for (j = 0; (i-j >= 0) && (i+j < n); ++j) // if the lengthof the palindrome is odd
if (s[i-j] != s[i+j])
break;
if (j_2+1 > max)
max = j * 2 + 1;
for (j = 0; (i-j >= 0) && (i+j+1 < n); ++j) // for theeven case
if (s[i-j] != s[i+j+1])
break;
if (j_2+2 > max)
max = j * 2 + 2;

break的时候,j已经加一了,所以要修改下max的赋值表达式。

怎么认领

@huatangzhi
目前先排除第一部分第1-7章的bug,目录见:https://github.com/julycoding/The-Art-Of-Programming-By-July/blob/master/ebook/zh/Readme.md

故认领格式为:
“我认领第某某章,预计某月某日排除此章的bug”。

我认领第2章,预计5月24日排除此章的bug”

现在还有认领计划吗

@hduffddybz
刚看到,一直都可以测试github上的代码的哈。

新书即将在今年2015年9月底上市。
感谢大家的共同努力。

@julycoding 你好,看了1.2 字符串包含 简单的一个题,给了四种解法。。
为什么不 直接开26个字符统计表 int['A'...'Z'], 对于每个子串字符 查表就行。
求解答

sg90 commented

解法四 就是这个思路

发自 Windows 邮件

发件人: zhaosoap
发送时间: ‎2015‎年‎9‎月‎2‎日, ‎星期三 ‎11‎:‎16
收件人: julycoding/The-Art-Of-Programming-By-July
抄送: sg90

@julycoding 你好,看了1.2 字符串包含 简单的一个题,给了四种解法。。
为什么不 直接开26个字符统计表 int['A'...'Z'], 对于每个字串字符 查表就行。
求解答


Reply to this email directly or view it on GitHub.

呵呵呵