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
好的,赞。
第1章代码测试完成,未发现bug。
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'], 对于每个子串字符 查表就行。
求解答
解法四 就是这个思路
发自 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.
呵呵呵