详述编写规范易懂C++代码介绍

开发 后端
在C++代码中做了大量的判断和假设,造成代码结构的破坏和执行效率的损失,最后,调用者依旧不能确保自己的调用是正确的。

本节介绍Visual C++ 6.0工具的开发环境和开发流程,本部分教程主要介绍了良好的C++代码,Visual C++ 6.0就是微软公司推出的C++开发工具,是使用最广的开发工具,下面就进行学习。

1 规范易懂的代码

现阶段软件开发,都要依靠团队的合作。程序员不再是个人英雄主义的代名词,程序员一方面要依赖大量其他程序员完成的代码,一方面又提供大量代码给其他人使用,代码实际上具备了两个要素:首先是可靠的提供某种功能,其次是清楚地表达作者的思想。任何交流都必须有一定的规范才能进行,体现在代码中就是规范易懂。另外,规范易懂的代码才是可重复使用的,规范的代码具有更长的寿命,具有更好的可维护性,也更方便后期的扩展。

好代码的几个特征

怎么样的代码才算规范易懂,体现在细节上会有无数的争论,实际上无论风格和习惯如何,好的代码具有几个共同的特征:

1. 良好的命名:好的变量名和函数名,让阅读代码的人马上就知道该变量或者函数的作用,很容易就能理解程序的大概结构和功能。程序员有必要理解匈牙利命名法。
2. 一致性:一致性带来更好的程序,一致的代码缩进风格能够显示出代码的结构,采用何种缩进风格并不重要,实际上,特定的代码风格远没有一致的使用它们重要。
3. 注释:注释是帮助程序读者的一种手段,程序作者也是未来的程序读者之一。***的注释是简洁地点明程序的突出特征,或是提供一种概观,帮助别人理解程序;但如果注释只是说明代码已经讲明的事情,或者与代码矛盾,或者以精心编排的形式迷惑干扰读者,那就是帮了倒忙。

养成好习惯

前面已经提过,特定的C++代码风格远没有一致的使用他们重要,所以,把过多的精力放到A or B的选择上是浪费时间,你要做的是坚持。如何书写规范易懂的代码,如何养成良好的习惯,下面是一些提示。

1. 按照匈牙利命名法给变量和函数命名。
2. 遵循国际流行的代码风格。
3. 写代码的同时就遵循你的命名规范和书写风格,千万不能事后补救。
4. 利用工具(Parasoft C++ Test)检查你的代码,评估一下自己形成良好的习惯没有。
5. 坚持不懈直到养成习惯。

编写安全可靠的代码

在大型应用软件系统中,各个代码片段共同构成完整的系统,代码间的交互非常频繁,程序崩溃往往并不在错误发生的时候就发生,而是延迟了一段时间,经过数个函数之间的中转后才发生,此时定位和查找错误非常费时费力,如何才能及时反映程序中的错误,如何在代码中避免一些幼稚的语义错误呢?一个函数往往会被其他程序员拿来使用,但是他怎么能够正确的使用其他人编写的函数呢?这部分内容能够(部分)帮助解决这些问题。

契约编程
契约编程(Design by Contract)的思想在C++圣经级的著作,C++代码之父Bjarne Stroustrup的《C++程序设计语言》中略微提到过,OO领域的圣经级著作《面向对象软件构造》以大篇幅阐释了契约编程,现在越来越多的软件开发人员认识到契约编程的重要性,并逐步地在实际工作中采用契约编程。

对契约编程简单的解释是:对实现的代码块(函数、类)通过规定调用条件(约束)和输出结果,在功能的实现者和调用者之间定义契约。
具体到我们的工作,开发人员应该对完成的每个函数和类,定义契约。契约编程看似平淡无奇,对程序开发没有什么具体的帮助,实际上,契约编程在开发阶段就能够***程度的保证软件的可靠性和安全性。

在实际工作中,每当你需要使用其他程序员提供的模块,你并不知道如何调用,也不知道你传入的参数是否合法,有时候对于功能模块的处理结果也不敢相信。这些本来应该很明显的信息因为模块提供者没有显式的提供。

造成了调用者只能忐忑不安的摸着石头过河,浪费了大量时间,而且为了让自己的代码更安全可靠,在代码中做了大量的判断和假设,造成代码结构的破坏和执行效率的损失,***,调用者依旧不能确保自己的调用是正确的。

而契约编程通过严格规定函数(或类)的行为,在功能提供者和调用者之间明确了相互的权利和义务,避免了上述情况的发生,保证了C++代码质量和软件质量。

责任编辑:chenqingxiang 来源: 天极
相关推荐

2010-01-26 13:14:48

2010-01-12 14:16:31

Visual C++语

2010-01-08 17:06:52

C++代码

2010-01-14 14:40:21

C++代码

2010-01-11 16:59:50

C++源代码

2010-08-31 13:32:12

CSS

2024-04-23 08:01:20

面向对象C 语言代码

2010-01-15 18:46:08

C++程序代码

2010-01-12 11:03:04

C++库

2010-03-26 16:17:24

Python嵌入

2010-01-12 18:16:12

C++语言

2009-08-13 13:38:30

C#命名规范

2010-01-11 15:47:37

C++编译

2010-01-15 15:52:18

CC++

2010-01-15 10:41:06

CC++

2010-01-11 11:27:25

C++语言

2010-01-12 15:03:33

C++代码

2009-06-23 16:50:24

2010-01-26 10:27:43

C++语言

2009-08-19 09:57:01

C++ RAII
点赞
收藏

51CTO技术栈公众号