很久没有更新过博客了,其实不管多忙,有时候写写博客未尝不是一种提升。下面是我最近看的一本书的部分内容。

1.不要忽视警告,尽量没有警告。

2.使用自动构建系统

3.使用版本控制系统

4.在代码审查上投入

5.一个实体应该只有一个紧凑的职责

6.正确,简单和清晰的代码。

7.编程中应知道何时和如何考虑可伸缩性

8.不要进行不成熟的优化。

9.不要进行不成熟的劣化。

10.尽量减少全局和共享数据。

11.隐藏信息。

12.懂得何时和如何进行并发性编程。

13.确保资源为对象所拥有,使用显式的RALL和智能指针。

14.宁要编译时和连接时错误,也不要运行错误。

15.积极使用const.

16.避免使用宏。

17.避免使用魔数。

18.尽可能局部地声明变量。

19.总是初始化变量。

20.避免函数过长,避免嵌套过程。

21.避免跨编译单元的初始化依赖。

22.尽量减少定义性依赖,避免循环依赖。

23.头文件应该自给自足。

24.总是编写内部#include保护符,绝不要编写外部#include保护符。

25.正确地选择通过值,指针或者引用传递参数。

26.保持重载操作符的自然语义。

27.优先使用算术操作符和赋值操作符的标准形式。

28.优先使用++和--的标准形式,有限调用前缀形式。

29.考虑重载以避免隐含类型转换。

30.便面重载&&,||或,(逗号)。

31.不要编写依赖于函数参数求值顺序的代码。

32.弄清所要编写的是哪种类。

33.用小类代替巨类。

34.用组合代替继承。

35.避免从并非要设计成基类的类中继承。

36.优先提供抽象接口。

37.公用继承即可替换性。继承,不是为了重用。而是为了被重用。

38.实施安全的改写。

39.考虑将虚拟函数声明为非公用的,将公用函数声明为非虚拟的。

40.要避免提供隐式转换。

41.将数据成员设为私有的,无行为的聚集(C语言形式的struct).

42.不要公开内部数据。

43.明确地使用pimpl。(使私有成员真正不可见)。

44.优先编写非成员非友元函数。

45.总是一起提供NEW和Delete。

46.如果提供类专门的NEW,应该提供所有标准形式(普通,就地和不抛出)。

47.以同样的顺序定义和初始化成员变量。

48.在构造函数中初始化代替赋值。

49.避免在构造函数和析构函数中调用虚拟函数。

50.将基类析构函数设为公用且虚拟的,或者保护且非虚拟的。

转载于:https://blog.51cto.com/leileiaijishu/1538360

c++编程规范101条规则相关推荐

  1. ▼▲Delphi面向对象编程的20条规则

    ▼▲Delphi面向对象编程的20条规则(转载) 楼主ZyxIp(绝望中...)2003-09-02 14:28:07 在 Delphi / VCL组件开发及应用 提问 作者简介       Marc ...

  2. Delphi面向对象编程的20条规则

    前言 大多数Delphi程序员都像使用Visual Basic 那样使用他们手头上开发工具,而丝毫没有意识到Delphi的强大功能,更谈不上使用这些功能了.(写到这里,编辑惶恐的举起了手,怎么可能呢? ...

  3. c语言程序的基本规范是什么,C语言编程规范——3 命名规则

    3 命名规则 3.1 命名的基本原则 标识符的命名要清晰.明了,有明确含义,同时使用完整的单词或大家基本可以理解的缩写,避免使人产生误解--尽量采用采用英文单词或全部中文全拼表示 3.2变量名的命名规 ...

  4. C++ 编程规范101读书笔记(2)设计风格

    这部分主要涉及设计的风格的事宜:基本观点还是那句话,高内聚,低耦合,扩展性强,简单 第5条 一个实体应该只用一个紧凑的职责 一次只解决一个问题.一个实体只负责一件事. 一个实体职责过多,导致实体多重性 ...

  5. 编程规范及程序员的自我修养

    本文重点解决如下问题:什么样的代码是好的代码,什么样的程序员是优秀的程序员? 先看图 4 3(a)中的代码,你能明白这段代码要做什么事情吗?再看图 4 3(b)中的代码,你可以知道这段代码在做什么吗? ...

  6. 让你最快速地改善代码质量的 20 条编程规范

    根据学习部分极客时间 <设计模式之美>专栏 (王争 前Google工程师)和<阿里 java 规范>整理总结. 分别介绍编码规范的三个部分:命名与注释(Naming and C ...

  7. 101条伟大的计算机编程名言

    "人们总是害怕改变.电被发明出来的时候他们害怕电,是不是?他们害怕煤,害怕蒸汽机车.无知无所不在,并导致恐惧.但随着时间推移,人们终究会接受最新的科技." 正如比尔盖茨曾经警告过一 ...

  8. 101条伟大的计算机编程名言 [ROYcms!NT]

    为什么80%的码农都做不了架构师?>>>    作者: 杜耀辉 发表于 2009-11-09 11:33 原文链接 阅读: 45 评论: 0 boxi译 "人们总是害怕改变 ...

  9. C语言初学者编程规范—命名规则

    原文地址:C语言初学者编程规范-命名规则 C是一门朴素的语言,你使用的命名也应该这样.与Modula-2和Pascal程序员不同,C程序员不使用诸如"ThisVariableIsATempo ...

最新文章

  1. 黑马程序员java笔记之二-----多线程
  2. 如何将struct System.Byte byte []转换为C#中的System.IO.Stream对象?
  3. Python 画樱花(动态画+飘落效果+暗色效)
  4. 笨办法学python47详解_练习 47 - 自动化测试 - 笨办法学Python3
  5. c语言 rand_C语言随机数
  6. Vimdiff---VIM的比较和合并工具
  7. Flink的累加器(Accumulator)应用
  8. C++面试题:list和vector有什么区别?
  9. java框架注入是创建对象吗_spring之IOC容器创建对象
  10. JVM:Java指令源码opcode
  11. 网易云音乐React Native体系建设与发展
  12. Avamar 10007报错解决
  13. robotframework中文乱码---robotframework日志输出时出现中文以unicode编码方式
  14. 家用计算机长期不关机的后果,长时间不关机对电脑有什么影响
  15. Basler相机环境配置
  16. keil STM32中sct 分散加载文件学习
  17. TP5.0之微信开发
  18. Prometheus_additional传统配置
  19. 二自由度车辆动力学微分方程详细推导过程
  20. 判断一个整数为奇数还是偶数

热门文章

  1. android stdio 日志追踪,通过检测您的应用生成跟踪日志
  2. c语言发展过程,C语言发展史
  3. Spring中父子容器的实现实例
  4. Spring Boot学习笔记:Spring Boot的Web功能
  5. 计算机英语讲课笔记(2020-6-13)
  6. 【BZOJ3622】已经没有什么好害怕的了,两次DP
  7. 【faebdc的模拟赛】T1错位
  8. ws2812b程序51单片机_51单片机串口通信程序详解
  9. 手把手教学:Nginx的安装
  10. 怎么删除已经安装的mysql_怎么样删除已经安装的mysql | wdlinux致力于Linux服务器架构,性能优化.免费CDN加速系统,免费智能DNS解析,负载均衡,集群分流...