发信人: sunsolzn (*+*), 信区: Programming
标 题: 月薪10000元程序员的代码
发信站: 水木社区 (Wed Oct 10 20:08:59 2012), 站内

摘自人民邮电出版社图灵公司陈冰副总编亲自策划并归人“图灵原创”丛书的《C程序设计伴侣》


1.4.B 编码规范——如何写出简洁优美的代码

下面是来自两位C语言程序员的实现相同功能的两段代码:

l 月薪1000元的程序员的代码:

#include
int main()
{
FILE *Wenjian; char Str[100];
Wenjian = fopen(\"test.txt\",\"w\");
do {
gets(Str);
if(Str[0] == \'!\')
break; fputs(Str,Wenjian); }while(1);
fclose(Wenjian);
return 0;
}

l 月薪10000元的程序员的代码:

#include
int main()
{
// 文件指针和保存输入的字符串
FILE *fp = NULL;
char str[100] = \"\";
// 以可写方式打开文件
if(NULL==(fp = fopen(\"test.txt\",\"w\")))
{
printf(\"cannot open the file.\
\");
return 1;
}
// 提示用户输入
printf(\"please input a string:\
\");
do
{
// 判断输入是否结束
gets(str);
if(\'!\' == str[0])
break;
// 写入文件
fputs(str,fp);
}while(1);
// 关闭文件
if(NULL!=fp)
fclose(fp);
fp = NULL;
return 0;
}

其实,不用我多说,两位程序员的工资,已经很明显地说明了这两段代码孰优孰劣。那位月薪1000元的程序员的代码,有着大多数初学者编写代码时的坏习惯:变量名大小写混用、中英文混用(这大约是中国程序员的一大特点);同一行代码定义多个不相关变量;定义变量而不进行必要的初始化;对文件打开等可能出错的操作不进行防错处理;缺少必要的程序提示;“==”比较中变量在前常量在后;程序中只有代码没有注释;各种语句没有经过较规范的排版、代码版式错乱无章、无规则的代码缩进等等。

第一段代码集中地反映了初学者在开始学习编写程序的时候,因为没有接触良好的编码规范而形成的混乱的编码习惯,使得自己写出来的代码“惨不忍睹”,没有任何的可读性和可维护性。虽然编译器并不在意你编写的代码是否美观,但是,我们应该记住,除了编译器之外,我们的代码也是写给别人看的。如果不想让别人在维护你的代码时骂娘的话,如果不想让你的工资始终停留在1000元上下的话,就要好好学习一下编码规范,向月薪10000元的程序员看齐。
--
你可以去一下乌干达的密林,和山地大猩猩玩玩互相相扑,
在那猛烈的巴掌拍击下,你的脑子也许能清醒点。
你这愚民样也真是顽固不化啊,你不如下次在大雨天里披上家里所有重金属,
爬上梯子去喊口号得了,让雷劈一劈之后说不定脑子能清醒点。   


※ 来源:·水木社区 http://newsmth.net·[FROM: 218.28.139.*]