为什么会抱着这本厚厚的代码大全呢————很久很久以前 有个前辈稍微提了下 还有各种风骚的文章推荐榜都出现过~囧 对于这本900多页的砖块,怀着一个duangduangduang的心情,不解释从0页看起。 译序!对没错就是译序 有个标题叫做<这本书适合谁看 该怎么看> 然后是各种优先推荐章数,什么初级程序员,什么高级程序员,什么项目经理,什么低年级学生,什么高年级学生,什么制订编码标准的人,什么自学编程的人,什么喜欢参与网上争论的人(好无‘良知’) 其实看到自学编程的人时,我眼睛就亮了。so 跑到第7章看哪个高质量的子程序~ 讲这章时,它首先展示了一个例子,一个一出生就意味着‘反面的’例子,然后是duangduangduang10多点意见 C++的例子。。。 和我以前大学ACM编程时,写的代码不相上下,恍惚间我还记得当时满头苦思用个什么变量名好 最后还是蹦出ss,ii,st这种叼炸天‘生物 ’
void HandleStuff( CORP_DATA & inputRec, int crntQtr, EMP_DATA empRec, double & estimRevenue, double ytdRevenue, int screenX, int screenY, COLOR_TYPE & newColor, COLOR_TYPE & prevColor, StatusType & status, int expenseType )
{
int i;
for ( i = 0; i < 100; i++ ) {
inputRec.revenue[i] = 0;
inputRec.expense[i] = corpExpensel[ crntQtr ][ i ];
}
UpdateCorpDatabase( empRec ) {
estimRevenue = ytdRevenue * 4.0 / (double) crntQtr;
newColor = prevColor;
status = SUCCESS;
if ( expenseType == 1 ) {
for ( i = 0; i < 12; i++ )
profit[i] = revenue[i] - expense.type1[i];
}
else if ( expenseType == 2 ) {
profit[i] = revenue[i] - expense.type2[i];
}
else if ( expenseType == 2 ) {
profit[i] = revenue[i] - expense.type3[i];
}
第一眼看到这个代码我也觉得是乱乱的,但是不知道它身上的毛病到底有哪些 自己说不出几个来(原因可能是以前没有接触这类‘较神奇的’东东,以前看到某处说:高手写代码不需要注释,都给人清晰的感觉。 以前对这句话,我是不相信的。一是我当时在实习公司做二次开发,自己没少写注释,完全不写注释,就很清晰 有点不敢相信。二是我觉得我做的项目并不是很大,如果是个很大的项目,感觉要是不写注释,根本不可能清晰-囧)现在看来有点“坐井观天”了,平常没看到“精致的代码” 书中对上面代码的评论有: - 这个子程序的名字很差劲,HandleStuff没有告诉你这个子程序时做什么的 - 这个子程序的布局很乱,代码物理组织形式几乎没有给出任何关于其逻辑组织的提示,布局的使用过于随意且风格过多 - 这个子程序读取了全局变量corpExpense - 这个子程序没有一个单一的目的,它初始化了一些变量,向数据库写入变量,又做了一些计算——从这些事看不出来任何联系。子程序应该有单一而明确的目的。 - 这个子程序没有注意防范错误数据。例如除数可能为0 - 这个子程序用了若干个神秘数值 - 这个子程序未使用其中一些参数:screenX和screenY ... 总之是被“洗脑”的感觉,顺便留下这篇扯淡的文章