`
shi5jin
  • 浏览: 37191 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

您可以推荐一种编写代码的标准吗?

阅读更多

   C++ 代码编写标准的要点是:根据使用 C++ 的具体的环境和具体目的制定一套规则。因此,没有哪一种代码编写标准是符合所有需要和所有用户的。对于一个特定的应用程序(或者公司、应用领域,等等)来 说,一种好的代码编写标准当然比没有标准要好得多。话说回来,我看到过很多例子表明一种差劲的代码编写标准比没有标准还要更糟糕。

    选择规则时,请切记细心,而且你必须对该应用领域有过硬的知识。一些最差劲的代码编写标准(“为了保护罪犯”,我不会提及这些 名字)的作者既没有过硬的 C++ 知识,而且对其应用领域也相对无知(他们是“专家”,而非开发人员),更误以为约束总是多比少好。针对前面这种误解的一个反例是:某些特性的存在会导致程 序员不得不使用甚至更糟糕的特性。怎么都好,请牢记,安全性、生产率等是设计和开发过程的所有部分的总和——而非各种语言特性的总和,更不是所有语言的总 和。

    基于以上原因,我的推荐有三:

  • 看 Sutter 和 Alexandrescu 合著的《C++ 代码编写标准(C++ Coding Standards)》。Addison-Wesley 出版,ISBN 0-321-11358-。这本书里有很多好的规则,但请把这些规则看作一套元规则(meta-rules)。更明确地说,就是把这本书当作一本关于“一 套优秀的代码编写规则应该是怎么样的”的指南。如果你正在写代码编写标准,不看这本书将是一大损失。
  • JSF 航空器 C++ 代码编写标准。 我认为这是一套关于编写对安全性和性能要求苛刻的代码的优秀规则。如果你从事嵌入式系统编程,那你应该考虑看一下这份标准。告诫:我参与了这些规则的制 定,所以你可以认为我带有偏心。话说回来,请将你对这份标准的建设性意见发给我。这些意见可能会推动这份标准的改进——所有优秀的标准都会定期地被重新审 视,并且根据经验和工作环境的变化而更新。如果你不是在构建苛刻的实时系统或者对安全性要求苛刻的系统,那你会觉得这些规则过于严格——毕竟这些规则并非 为你而设(至少并非所有这些规则都是为你而设的)。
  • 不要使用 C 语言代码编写标准(即使已将其修改为 C++ 版),也不要使用 10 年前的 C++ 代码编写标准(即使在那时来说是很优秀的标准)。C++ 并非(仅仅)是 C,而标准 C++ 也并非(仅仅)是标准前的 C++。
原文地址:http://www.research.att.com/~bs/bs_faq2.html#coding-standard
分享到:
评论

相关推荐

    学会C语言之后还有必要学习C++吗?具体运用C++编写的代码解析.docx

    学会C语言之后还有必要学习C++吗?具体运用C++编写的代码解析 C++是一种高级编程语言,它是在C语言...使用STL可以让程序员更加高效地编写代码,同时也可以提高代码的可读性和可维护性。 C++的应用范围非常广泛。在游戏

    Delphi 6 程序员代码编写标准指南

    本文档的目的在于阐述一种方法,通过该方法,开发小组可以在他们所编写的代码中保持一贯的风格。这样做的目的是使在开发小组中的每一个程序员都可以明白其他程序员的代码。这有助于提高代码编写的可读性和使用的一贯...

    PYTHON学习教程,如何深入了解Python,提高编写代码的能力.pdf

    阅读经典的Python书籍是提高编写Python代码能力的另一种好方法。一些经典的Python书籍包括《Python编程入门》、《Python编程实战》和《流畅的Python》等。这些书籍将深入讲解Python的各个方面,包括高级特性和最佳...

    C 语言编程常见问题解答.chm

    9.5 通过指针或带下标的数组名都可以访问数组中的元素,哪一种方式更好呢? 9.6 可以把另外一个地址赋给一个数组名吗? 9.7 array_name和&array;_name有什么不同? 9.8 为什么用const说明的常量不能用来定义...

    C++常见问答

    您真的认为 C 和 C++ 可以合并为同一种语言吗? 您如何看待 C/C++ ? 为何编译 C++ 版的“Hello World”程序生成的代码比 C 版的多十倍? 为何您把 C++ 设计得和 C(基本)兼容? C++ 的历史: C++ 归您所有吗? ...

    CheckStyle代码标准检查工具

    在本系列 八月份 的那期文章中,我得出了这样的结论:将检验工具集成到构建过程(例如,使用 Ant 或 Maven)中,能够建立起一种寻找潜在缺陷的方法。尽管这种方法使一致性成为可能并超越了 IDE,但它也有一点反作用...

    C语言编程要点

    9.5. 通过指针或带下标的数组名都可以访问数组中的元素,哪一种方式更好呢? 141 9.6. 可以把另外一个地址赋给一个数组名吗? 143 9.7. array_name和&array_name有什么不同? 144 9.8. 为什么用const说明的常量不能用来...

    基于FPGA的CAN通信,FPGA驱动SJA1000T芯片代码,实现标准帧与扩展帧的通信驱动,

    使用FPGA技术实现了CAN通信,通过编写驱动代码来控制SJA1000T芯片,实现了标准帧和扩展帧之间的通信。该驱动代码已经在实际硬件上进行了调试,运行良好 涉及的 FPGA技术:FPGA(Field-Programmable Gate Array)是...

    Delphi7代码规范

    在Delphi 7开发者指南中包含本文档的目的在于阐述一种方法,通过该方法,开发小组可以在他们所编写的代码中保持一贯的风格。这样做的目的是使在开发小组中的每一个程序员都可以明白其他程序员的代码。这有助于提高...

    cpy:Cpy 为您提供了一种用 C 语法编写 Python 代码的方法!

    Cpy 为您提供了一种用 C 语法编写 Python 代码的方法!你好,世界! // file: hello.cpyprintf ( "Hello World!\n" ) ;$ cpy helloHello World !$从标准输入读取 // file: stdin.cpyprint "input 'q' to quit:" ;...

    编写高质量代码-Web前端开发修炼之道.azw3

    1.2 Web标准——结构、样式和行为的分离 1.3 前端的现状 1.4 打造高品质的前端代码,提高代码的可维护性——精简、重用、有序 第2章 团队合作 2.1 揭秘前端开发工程师 2.2 欲精一行,必先通十行 2.3 增加代码...

    python编程语言-春节烟花代码.docx

    2. 动态类型:Python是一种动态类型语言,不需要事先声明变量的类型。这意味着你可以直接开始编写代码,而无需担心类型定义和转换的复杂性。 3. 丰富的标准库:Python拥有一个庞大而丰富的标准库,其中包含了各种...

    python编程语言-情人节代码.docx

    2. 动态类型:Python是一种动态类型语言,不需要事先声明变量的类型。这意味着你可以直接开始编写代码,而无需担心类型定义和转换的复杂性。 3. 丰富的标准库:Python拥有一个庞大而丰富的标准库,其中包含了各种...

    你必须知道的495个C语言问题

    到底指针是一种数组,还是数组是一种指针? 6.11 我看到一些“搞笑”的代码,包含5["abcdef"]这样的“表达式”。这为什么是合法的C语言表达式呢? 数组的指针 6.12 既然数组引用会退化为指针,如果array是数组...

    《你必须知道的495个C语言问题》

    2.22 有没有一种自动方法来跟踪联合的哪个域在使用? 30 枚举 31 2.23 枚举和一组预处理的#define有什么不同? 31 2.24 枚举可移植吗? 31 2.25 有什么显示枚举值符号的容易方法吗? 31 位域 31 2.26 ...

    VS2010中编写x64汇编的具体方法.docx

    编写涉及系统特性的一些底层程序,特别是ShellCode,不可避免地要采用直接编写汇编代码的方式。 在目标平台为x86模式时,可以直接使用内联汇编,这个很多人都比较熟悉了,也非常地方便。 但是当目标平台为x64时,...

    Delphi程序员代码风格指南

    本文描述了一种编写Delphi应用程序的代码规范,该规范尽可能地接近Borland的Delphi代码风格,但并不意味着与Borland公司的代码风格完全一致。本文的目的仅在于使自己保持一贯代码风格,增强代码可读性,提高程序可...

    一种C#的非MD5方式加密解密代码

    尝试编写非MD5加密时和解密时可以参考此代码,另外本段代码详细展示了编码解码的流程和思路!

Global site tag (gtag.js) - Google Analytics