我不喜欢的几种编程实践
我不喜欢的几种编程实践
1、文件和函数名使用中文
虽然有些C++编译器支持中文函数名和文件名,但是输入中文毕竟没有英文方便,而且很容易就引入了中文的符号。
2、过分的使用拼音或英文缩写
虽然我不推荐使用中文,但是更加不能使用拼音和不通用的英文缩写,这样让审阅代码的人不能快速的理解你的代码。最好变量能描述它本身,当然也不能太长。
3、使用printf输出结果
printf输出结果对比判断正误,当然也是可以的,但是我们应该养成使用断言(Assert)的习惯。这将给我们带来巨大的便利,我们无需人工判断就可以知道是否有错误了。
4、在main函数里面使用所有的功能
课堂上通常我们使用C语言就是为了实现一个小小的功能,但是很多人都会直接在main函数里面实现整个功能。为什么不能使用子函数将那个功能分解开来呢?比如简单选择排序,为什么就不能将里面的选择最小的一个元素取出来的过程编写为一个子函数呢?
5、只知道使用VC++自动化编译
VC++做的确实很好,帮助我们省下了很多事情,但是毕竟GUI能做的事情有限。我们需要轻量级的开发环境和自动化的编译测试,所以应该使用make手动的编写makefile。
6、单文件
也许课程上的代码确实很少,但是我们应该养成多文件的习惯,将一些独立的功能分离出来,将头文件和实现分离出来。这样既有利于快速的自动化编译,还有利于你管理。时间长了就变成了一个库。
我提倡下面几种方式来编程实践
- 为文件名,函数名,常量名和变量名选择合适的英文名称,也可以使用大家认可的英文缩写。总的原则就是别人知道你这个文件是干什么的,这个函数的功能,这个变量的作用。
- 使用断言(assert)或其它测试框架(如:gtest)来自动化测试程序。
- 将不同功能的代码放在不同的文件里面,为用户提供头文件。
- 使用makefile等自动化构建工具来自动化构建你的代码。