高校学生应了解的几点编程规范

2022-09-11

高校的理工科专业都安排有计算机程序设计课程, 喜好编程的同学也非常多, 而且众多爱好者中并非都是计算机专业的学生。许多做毕业设计的同学, 主要包括大学高年级学生和研究生, 常常需要编写源程序。关于源程序, 同学们经常遇到如下问题:

(1) 自己写的程序, 过一段时间后, 自己都看不懂了, 需要连猜带回忆才能明白或部分明白。

(2) 有些项目, 需要参考前人的程序, 或者接着前人的程序继续编码。然而, 师兄师姐写的程序的传承性较差, 不容易看懂。有时勉强看懂了, 可是只做了小小的改动就引起了程序的很多异常, 并很难查出原因;有时几乎看不懂, 干脆自己重新编写, 浪费了很多时间和资源。

(3) 已经毕业走上工作岗位了, 却还时不时地接到师弟师妹的长途电话, 询问有关自己在毕业设计阶段编写的程序的问题。

为什么会出现以上这些情况呢?主要原因是, 编程时不讲究编程规范, 程序的可维护性较差。高校课堂上程序设计的讲述内容几乎都是具体的编程知识和语法规则, 有关编程规范的内容要么很少, 要么根本没有。不少同学对某一种或某几种编程语言掌握得比较深, 能够编写出功能强大的程序, 然而, 对于编程规范知之甚少。编程规范就像社会公德, 如果大家都不遵守, 受害的将是包括自己在内的每个人。以下通过举例, 谈谈高校学生应该了解的几条编程规范。

1 变量与函数命名

变量名字如果起得好, 可大大增强程序的可读性。例如, 理论上计算某自然指标随着深度变化的值, 以Fortran语言为例, 用如下循环就很容易让人 (包括别人和以后的自己) 看懂:

循环变量是depth, 一下子就能看出它的含义, 如果用i、j、k (教科书上, 它们常被用作循环变量) 或者aa、bb作为循环变量就不能让人“望文生义”。函数名也是一样的。例如, 计算n的阶乘, 以C语言为例, 函数名用factorial (n) 的话, 可读性比用func (n) 要强得多。

2 排版

用C语言实现一个简单的逻辑判断:如果i等于1, 则a等于2, 否则a等于3。排版方式可以是如下三种: (见表1)

以上三种方式, 语法都对, 但很明显, 缺点是没有缩进, 可读性不强。可扩展性和可维护性也不好, 假设, 经过一段时间, 程序要改为:i不等于1时, a等于3并且b等于6, 如果用这三种方式, 容易出错。以方式3为例, 程序很容易被改为:

这行代码编译不会有问题, 然而逻辑上是不对的, 用眼睛很难发现这样的逻辑错误。如果用下表中的排版方式, 那么代码的可读性较好, 逻辑清晰, 见方式4-1: (见表2) 。

方式4-1的可维护性也很好。假设, i不等于1时, 增加赋值语句b=6, 那么直接在花括弧里面添加即可, 在维护时不容易出错, 见表2中的方式4-2。

3 注释

增强代码可读性和可维护性的最好的方法之一是多写注释。例如, 定义变量的同时, 加上对该变量简要说明;定义函数时, 要有对其功能、输入参数、输出参数、返回值等的描述, 而不是一个“光秃秃”函数定义:

修改代码的同时, 相应的注释也要改。否则, 代码与注释之间可能会出现歧义, 并有可能随着程序的继续维护, 分歧越来越大, 若总是这样的话, 程序就越来越难维护了。

4 其它

(1) 同一个课题组的人的编程风格应该统一。如果每个人都按照自己的风格进行编程, 甚至有的人没有固定风格, 那么处在同一课题组的每个人都不容易读懂别人的代码, 就会出现上一届的同学离开学校, 下一届的同学很难或者无法维护程序的问题。

(2) 养成写文档的习惯。高校里不乏编程狂热者, 很少有人愿意静下心来, 认真地将自己的程序用设计文档描述一下。其实, 如果程序的注释写得非常完美充分的话, 将源程序中纯代码去掉、注释留下来, 几乎就是一篇详细设计文档。但是对于某个程序的综合描述, 整个软件架构的理解, 应该有配套的文档。程序也是产品, 文档就是产品说明书。

(3) 养成相互检视的习惯。编程者总是不能看清自己编写的代码的不足, 却经常能发现别人代码的缺陷。两个 (或几个) 人组成一个小组, 相互走读对方的源程序, 取长补短, 可以很大程度上提高代码的质量。

(4) 修改别人的代码的修养。假设同学A暂时不在, 因发现问题, 同学B需要修改A写的一段代码, B并未完全了解这段代码的意图, B直接删除了这段代码, 重新写了一段新代码, A回来后, 发现这段代码的功能和思路已经发生了偏差。B的正确做法应该是, 在没有完全了解某段代码的意图时, 可以将其注释掉再重写, 而不是删除掉, 老代码总是会有参考价值的, 等A回来后, 一定要问清楚这段代码当初的意图。

(5) 模块化思想。有的同学为完成一个项目, 编写了长长的、只有一个主函数的源程序, 并且里面有多处重复的地方。这样会导致维护起来比较麻烦。应该将任务分解, 将公共的、重复的东西拿出来, 写成子程序 (子函数) , 然后调用它。这样, 既减少了不必要的重复劳动, 又使以后的维护工作变得容易。

5 结语

以上提到的只是编程规范知识的一点点皮毛, 编程规范的内容远远不止这些。各种编程语言的规范不完全一致, 但这几条最基本的规范在各种语言中是通用的。这几点内容的讲授只需要很少的学时 (也可以在讲解具体语法的例子时, 将编程规范的思想内容融入进去) , 如果让学生们了解并掌握一些编程规范知识话, 同学们写出来的代码的质量将大为改观。

摘要:高校中爱好程序设计的学生很多, 然而, 讲究编程规范或者说懂得并使用编程规范的人相对较少。通过举例, 对变量与函数命名、排版、注释等最基本最通用的几条规范进行了介绍, 能够帮助高校学生尤其是正在做毕业设计的同学养成良好的编程习惯, 对于将走入社会从事软件方面工作的同学而言会更加受益。

关键词:编程规范,程序可读性,可维护性

本文来自 99学术网(www.99xueshu.com),转载请保留网址和出处

上一篇:磷矿全层开采与综合利用研究下一篇:论企业财务风险成因及其对策