- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C++ 编程规范
北大青鸟Aptech学术部
2002年8月
应用范围
本编程规范适用于利用Visual C++ ,Borland C++进行软件程序开发的人员。
设计模块和函数
创建具有很强内聚力的模块
函数的重要性往往比模块的重要性更容易理解,函数是指执行一个功能的一段代码。模块常被错误的视为是一个仅仅用于存放函数的容器。有些开发人员甚至把这种思路作了进一步的发挥,将他们的所有函数放入单个模块之中。
之所以不能正确的认识模块的功能,原因之一是模块的实现实际上并不影响程序的执行。当一个工程被编译时,如果所有函数都放在单个模块中或者放在几十个模块中,这没有任何关系。虽然模块的数量对代码的执行并无太大的影响,但是当创建便于调试和维护的代码时,模块的数量有时会带来很大的影响。
模块应该用来将相关的函数组织在一起。
当模块包含一组紧密关联的函数时,该模块可以说具有强大的内聚力。当模块包含许多互不相关的函数时,该模块便具有较弱的内聚力。应该努力创建内聚力比较强的模块。
大多数工程都包含许多并不十分适合与其他函数组合在一起的函数。在这种情况下,可以为这些不合群的函数创建一个综合性收容模块。
创建模块时,应知道“模块化”这个术语的含义是什么。模块的基本目的是创建相当独立的程序单元。从根本上来讲,模块可以添加给另一个工程,并且可以通过直接调用它的公用函数来使用它。
创建松散连接和高度专用的函数
使所有函数都执行专门的任务
每个函数都应执行一项特定的任务,它应出色的完成这项任务。应避免创建执行许多不同任务的函数。
创建专用函数有许多好处。首先调试将变得更加容易。
尽量使函数成为自成一体的独立函数
当一个函数依赖于其他函数的函数时,称为与其他函数紧密连接的函数。紧密连接的函数会使调试和修改变得比较困难,因为它牵涉到更多的因素。松散连接的函数优于紧密连接的函数,但你不可能使每个函数都成为独立的函数。
若要使函数具备较强的独立性,方法之一是尽量减少全局变量和模块级变量。
创建函数时,设法将每个函数视为一个黑箱,其他函数不应要求了解该函数的内部工作情况,该函数也不应要求了解它外面的工程情况。这就是为什么你的函数应依靠参数而不应依靠全局变量的原因。
创建专用函数时,请考虑下列指导原则:
将复杂函数放入专用函数。如果应用程序使用复杂的数学公式,请考虑将每个公式放入它自己的函数中。这样使用这些公式的其他函数就不包含用于该公式的实际代码。这样也可以更容易发现与公式相关的问题。
将数据输入/输出(I/O)放入专用函数。
将专用函数中可能要修改的代码隔离。如果你知道某个进程经常变更,请将这个多变的代码放入专用函数,以便以后可以更容易的进行修改,并减少无意中给其他进程带来问题的可能性。
将业务规则封装在专用函数中。业务规则常属于要修改的代码类别,应与应用程序的其余部分隔开。其他函数不应知道业务规则,只有要调用的函数才使用这些规则。
设计模块和函数时,要达到下列目的:
创建更加容易调试和维护的函数
创建具有强大内聚力的模块
创建高度专用的函数
创建松散连接的函数
尽量使函数具有独立性
提高函数的扇入性
降低函数的扇出性
编程原则
为函数和模块赋予表义性强的名字
为了使代码更加容易理解,最容易的方法之一是为你的函数赋予表义性强的名字。函数名DoIt、GetIt的可读性很难与CalculateSalesTax、 RetrieveUserID相比。
由缩写函数名组成的代码很难理解和维护,没有理由再这样做了。
给函数正确的命名,可使程序工程的调试和维护工作大大的改观。请认真对待函数命名的工作,不要为了减少键入操作量而降低函数的可理解度。
实际应用举例:
给函数命名时应大小写字母混合使用。如果句子全使用大写字母,那么阅读起来就非常困难,而大小写字母混合使用的句子,阅读起来就很容易。
定义函数名时不要使用缩写。如果你认为应用程序中的某些工程应使用缩写,那么请将这些情况加上注释,并确保每个人在所有时间内都使用这些缩写。决不要在某些函数中对某些单词进行缩写,而在别的函数中却不使用缩写。
为每个函数赋予单个退出点
创建函数程时,始终都应显式地定义它的作用域。
如果你真的想创建一个公用函数,请向代码阅读者说明这一点。
通过为每个函数赋予一个明确定义的作用域,可以减少代码阅读者需要投入的工作量。应确保你为函数赋予最有意义的作用域。如果一个函数只被同一模块中的另一个函数调用,那么请将它创建成专用函数。如果该函数是从多个模块中的多个函数中调用,请将该说明为公用函数。
用参数在函数之间传递数据
应尽量避免使用模块级变量。一般来说,变量的作用域越小越好。为了减少模块级变量和全局变量,方法之一是将数据作为参数在不同函数之间传递,而不是让函数共享模块级变量或全局变量。
为每
您可能关注的文档
最近下载
- 2024年浙江省高一新学考调研考试生物模拟试卷二(含答案详解).pdf VIP
- 服装概论总结.doc VIP
- 高中生态学课程:校园花坛花卉生态教育课程效果评价教学研究课题报告.docx
- 管理学论文5000字.docx VIP
- 新修订特种作业(高处安装、维护、拆除作业)考试题库(核心题版).pdf VIP
- 《服装设计基础》知识考试复习题库资料(含答案).pdf VIP
- 2025年医学高级职称-精神病学(医学高级)考试近5年真题荟萃附答案.docx
- 2025年医学高级职称-精神病学(医学高级)考试近5年真题荟萃附答案.docx
- 2024最新传唤证模板.doc VIP
- 2025年医学高级职称-精神病学(医学高级)考试近5年真题集锦(频考类试题)带答案.docx
文档评论(0)