高质量程序设计指南:C++/C语言
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.6 良好的编程习惯

C++/C语言灵活而又复杂,有经验的C++/C程序员往往会因为自己能够以一些古怪的、烦琐而又令人困惑的方式使用它而沾沾自喜。但这并非就是良好的编程习惯,也不能产生高质量的代码。

【建议3-1】: 应该用简单而直接的方式编写C++/C程序,这就叫做KIS(Keep It Simple)编程准则。不要毫无章法地“滥用”语言。

高质量的代码源于高质量的设计和良好的编程风格。

在设计上要追求简单和低耦合。许多遗留的程序错误解决不了,在很大程度上是因为设计本身存在不必要的复杂部分。什么是好的设计?一个好的设计应该恰如其分地反映和解决一个具体的问题,即解决方案与问题一致,没有不必要的特性。在面向对象分析和设计(OOA&D)中,耦合性用来衡量不同对象之间和不同模块之间的依赖程度。好的设计应该尽量降低对象之间和模块之间的耦合性。松耦合的程序易于理解、易于实现、易于测试和维护。

一个良好的编程习惯可以用于任何编程语言中,用它生产的代码不仅容易阅读、容易理解,而且易于调试和测试。良好的编程风格是良好的编程习惯的具体表现。书写的代码结构安排要合理,版式要清晰一致,给标识符取个“自说明”的名字,不要使用过于复杂的语句和表达式,使用清晰的注释等,这些都是建立良好的编程风格的指导原则。

有的程序员认为,越是能够正确地使用复杂语句书写代码,这个人的水平就越高,这种观念太偏激。伟大的软件不一定就是用复杂的编程技巧实现的。实际上,软件的质量乃至代码的质量与编程技巧没有必然的联系。且不说复杂语句是否真的正确,光是调试和测试这样的语句就很困难,而且维护代码的人不一定能正确地理解它们的语义。

这就好比我们骑自行车上班,本来在自行车道上走得好好的,突然蹿到了机动车道上,虽然你的车技很好,机动车道也不是不能走,但是难保不发生交通事故。

良好的编程习惯不是一天就能养成的。本书从第5章开始将在这方面给出一些通用的指导和建议。

【提示3-1】: 虽然C++/C与硬件无关,具有很高的可移植性,但是不同的语言实现及不同的硬件平台之间必然存在许多兼容性问题,它们增加了C++/C程序的移植难度。所以,并不是说用C++/C编写的程序就能保证绝对的可移植性,程序员需要进行针对编译器和机器平台的良好的可移植性设计,并把这种可移植性内建在程序代码中。