写程序的一些经验

首先,最初的习惯和最初的老师很重要。一定要自己写过几万行以上程序的老师才能有好的习惯。如果没有好的老师,那么浏览一下编程风格之类的书籍或者网页(google)是很有益处的。

其次,从带学生开始,才知道原来连如何写程序也是要教的。

下面,我把几条经验写在这里,供以后的学生参考。

第零、Linux可以运行脚本,主程序实现最核心的功能即可,其他调参数、记录结果等等,都可以通过脚本实现。更方便,程序也更容易写。
第一、编一个程序,运行的时候实现所有的参数(接受参数、安排流程是主程序的主要功能),而不是给每一个参数编一个程序;
第二、把每一项子功能定义好,写成子程序。考虑的出发点是:凡是重复很多次的代码一定要用子程序(除非特别必要的时候为了可读性多写几次);凡是 可以使得流程更加容易读和理解的,用子程序,把细节藏起来;凡是其它的程序中可能用得着的模块,写成子程序。
第三、写文件的输出在Linux下可以用运行时候的重定向实现,直接打印即可,不用写文件。
第四、一定要有很详细的注释,假定两个月以后你需要来读程序,你得看得懂。假定有你的师弟师妹需要参考你的程序,他们得看得懂。

关于风格:大括号写在子程序(或者for循环,if语句)名称后面,还是下一行;对齐方式;注释详细到什么程度;通常函数几个返回值;子程序和变量如何命名(不能太短,也不能特别特别长),这些问题没有一个标准,但是要形成一个惯例,而且这个惯例最好与主流的惯例差不多。

其它的,我请编外补充一下。

《写程序的一些经验》有3个想法

  1. 1 程序是把人的想法实现出来,机器能读懂是最基本的,重要的是别人也能看懂,尤其科学研究上的编程也是团队行为,程序需要跟别人交流、分享、复用。
    2 编程只是工具手段,不是最终目的。如上面提到的,linux shell + c语言基本上能解决所有问题,如果想让编程初学者充分理解上面的0、一、三条,建议吴老师介绍下程序是怎样同它的运行环境(通常是指操作系统)交互的。
    3 编写函数的要点:上文第二条写的清楚了。建议一个函数的代码一般不要超过50行。
    4 C编程风格,请拜读:https://github.com/torvalds/linux/blob/master/Documentation/CodingStyle
    5 有句话叫做“不要重新发明轮子”,多利用开源代码,科学计算库。

发表评论

电子邮件地址不会被公开。 必填项已用*标注