0 Comments

编码规范--如何写出简洁优美的代码

发布于:2012-12-20  |   作者:广州网站建设  |   已聚集:人围观
 编码规范--如何写出简洁优美的代码

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

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


  1. #include <stdio.h> 
  2.  
  3. int main()  
  4. {  
  5.     FILE *Wenjian; char Str[100];      
  6.        
  7.     Wenjian = fopen("test.txt","w");  
  8.     do {  
  9.     gets(Str);  
  10.     if(Str[0] == '!')  
  11.             break; fputc(Str,Wenjian);  }while(1);  
  12.        
  13.     fclose(Wenjian);  
  14.  
  15.     return 0;  
  16. }   

 

月薪10000元的程序员的代码:
广州网站建设
  1. #include <stdio.h> 
  2.  
  3. int main()  
  4. {  
  5.     // 文件指针和保存输入的字符串  
  6.     FILE *fp = NULL;  
  7.     char str[100] = "";  
  8.        
  9.        
  10.     // 以可写方式打开文件  
  11.     if(NULL==(fp = fopen("test.txt","w")))  
  12.     {   
  13.         printf("cannot open the file.\n");  
  14.         exit(0);  
  15.     }  
  16.  
  17.     // 提示用户输入  
  18.     printf("please input a string:\n");  
  19.     do  
  20.     {  
  21.         // 判断输入是否结束  
  22.         gets(str);  
  23.         if('!'==str[0])  
  24.             break;  
  25.         // 写入文件  
  26.         fputc(str,fp);  
  27.     }while(1);  
  28.        
  29.     // 关闭文件  
  30.     fclose(fp);  
  31. }  

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

       第一段代码集中地反映了初学者在开始学习编写程序的时候,因为没有接触良好的编码规范而形成的混乱的编码习惯,使得自己写出来的代码"惨不忍睹",没有任何的可读性和可维护性。虽然编译器并不在意你编写的代码是否美观,但是,我们应该记住,除了编译器之外,我们的代码也是写给别人看的。如果不想让别人在维护你的代码时骂娘的话,如果不想让你的工资始终停留在1000元上下的话,就要好好学习一下编码规范,向月薪10000元的程序员看齐。

    对比于第一段月薪1000元的程序员的代码,第二段程序阅读起来就流畅自然多了,几乎不用动任何脑筋就可以理解整个程序,自然其可维护性也就大大提高了。实现相同功能的两段代码,只是因为编码风格的不同,写代码的人所受到的待遇就有着天壤之别。也许,第二位程序员每个月拿到的10000元中,有1000元是付给他所实现的功能的,而有9000元是付给了他所遵循的良好的编码规范。

       所谓编码规范,是在项目进行过程中所制定的关于编码格式、注释风格的书写规范,它可以极大地提高代码的可读性,增加代码的可维护性。除了这些看得见的好处之外,良好的编码规范还可以预防一些常见的编程错误(例如名字冲突、嵌套错误等)。

        世界上正在应用的编码规范有很多,有各大公司根据自己的情况制定的编码规范,也有针对各种编程语言而制定的编码规范。但是,这个世界上并没有一种所谓"最好的"编码规范,即使是现在所流行的各种编码规范也都各有其优缺点。所以,没有普遍适用的标准。如果我们所在的项目团队已经有了一份编码规范了,那么就可以按照上面说的做。如果硬要推翻重来,那么可能会带来更多的争吵而不是把问题解决。从商业角度来看,只有两件事是重要的:一是代码可读性好,二是团队中的每个成员都使用相同的风格。

          因此,我们不要妄图去制定一种"最好的"编码规范,只能结合自己的项目实际,同时参照现在流行的编码规范,采纳其优点,摒弃其缺点,制定出一种"最适合"的编码规范,并且在项目实践中认真严格地执行,这就是"最好的"编码规范。

飞机