本人在软件工程方面略有研究,由于各种机缘巧合,现在从事工控行业。看了不少同行的源代码,包括上位机和下位机的,感觉懂软件工程的同行非常少,他们中的多数人的代码晦涩难懂,或者根本就不具备软件工程中所谓的“可读性”。网上去查找了一下“软件工程在DCS中的应用”,居然只有一篇专业论文,还是要收费的,看不到。其实没那么复杂。 举个例子:
下位机中的变量名AI1,该变量名的类型是INT,无描述
看到这个变量,你能明白它是什么意思?它用在什么场合?
我们再看一个C#语言的变量命名的例子:
string StudentName ;//学生名字
解释一下上面的例子,“string”表示类型,“StudentName”是变量名,“//”以后的内容是注释
上述代码非常清晰的描述了该变量的含义
在这里讲软件工程,恐怕专门开一个论坛区都说不清楚,大家也不愿意去看,所以下面就列举一些注意事项,希望对搞工控的朋友有帮助
开始写代码前,先了解软件的功能及用户可接受的界面风格
避免开工之后再进行大的改动,减少自己的工作量
变量命名要有实际的含义
增加代码可读性,有利于日后维护,变量名不要写成AI1 、AI2……最好是能做到光看名字,就能明白含义
尽可能的多写注释
不要怕注释多,windows的源代码注释中还包括“今天天气真好”、“黑客可以利用这个地方”这种注释,目的是有利于日后维护
能封装的就封装
能封装成功能块的就封装成功能块,这样可以增加代码的复用性,但是要注意某些PLC可能对功能块的数量有限制。而在上位机软件中,就没有这个限制了。这样做的好处就是:在调试的过程中,代码的修改量比较小,尽管看起来各个功能块之间的关系比较“复杂”。
本人在软件工程方面略有研究,由于各种机缘巧合,现在从事工控行业。看了不少同行的源代码,包括上位机和下位机的,感觉懂软件工程的同行非常少,他们中的多数人的代码晦涩难懂,或者根本就不具备软件工程中所谓的“可读性”。网上去查找了一下“软件工程在DCS中的应用”,居然只有一篇专业论文,还是要收费的,看不到。其实没那么复杂。 举个例子:
下位机中的变量名AI1,该变量名的类型是INT,无描述
看到这个变量,你能明白它是什么意思?它用在什么场合?
我们再看一个C#语言的变量命名的例子:
string StudentName ;//学生名字
解释一下上面的例子,“string”表示类型,“StudentName”是变量名,“//”以后的内容是注释
上述代码非常清晰的描述了该变量的含义
在这里讲软件工程,恐怕专门开一个论坛区都说不清楚,大家也不愿意去看,所以下面就列举一些注意事项,希望对搞工控的朋友有帮助
开始写代码前,先了解软件的功能及用户可接受的界面风格
避免开工之后再进行大的改动,减少自己的工作量
变量命名要有实际的含义
增加代码可读性,有利于日后维护,变量名不要写成AI1 、AI2……最好是能做到光看名字,就能明白含义
尽可能的多写注释
不要怕注释多,windows的源代码注释中还包括“今天天气真好”、“黑客可以利用这个地方”这种注释,目的是有利于日后维护
能封装的就封装
能封装成功能块的就封装成功能块,这样可以增加代码的复用性,但是要注意某些PLC可能对功能块的数量有限制。而在上位机软件中,就没有这个限制了。这样做的好处就是:在调试的过程中,代码的修改量比较小,尽管看起来各个功能块之间的关系比较“复杂”。
举报