码迷,mamicode.com
首页 > 其他好文 > 详细

《20171006-构建之法:现代软件工程-阅读笔记》

时间:2017-10-06 14:42:22      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:数据   cte   处理   处理异常   只读   实用   错误处理   析构函数   不能   

一、代码规范

 1、代码风格规范 

  (1)缩进

  (2)行宽

  (3)括号

  (4)断行与空白的{ }行

  (5)分行

  (6)命名

  (7)下划线

  (8)大小写

  (9)注释

 2、代码设计规范

  (1)函数

  (2)goto

  (3)错误处理

  (4)如何处理C++中的类

    1.类

      实用类来封装面向对象的概念和多态。

      避免使用类型实体的值,应该用指针传递。

      对于有显式的构造和析构函数的类,不要建立全局的实体.因为你不知道它们在何时创建和消除。

      仅在必要时.才使用“类”。

    2.class vs.struct

      如果只是数据的封装,struct用即可。

    3.公共/保护/私有成员

      按照这样的次序来说明类中的成员:public、protected、private。

    4.数据成员

      数据类型的成员用m_name说明。

      不要使用公共的数据成员,要用inline访问函数,这样可兼顾封装和效率。

    5.虚函数

      使用虚函数来实现多态。

      仅在很有必要时,才使用虚函数。

       如果一个类型要实现多态,在基类中的析构函数应该是虚函数。 

    6. 构造函数

      不要在构造函数中做复杂的操作,简单初始化所有数据成员即可。

      构造函数不应该返回错误(事实上也无法返回)。把可能出错的操作放到HrInit()或FInite()中。

    7.析构函数

      把所有的清理工作都放在析构函数中。如果有些资源在析构函数之前被释放了,记住要重置这些成员为0或NULL。  

      析构函数也不应该出错。

    8.new 和 delete

      如果可能,实现自己的new/delete ,这样可以方便地加上自己的跟踪和管理机制。自己的new/delete可以包装系统提供的new/delete。  

      检查new的返回值。new不一定都成功。

      释放指针时不用检查NULL。

    9.运算符

      在理想状态下,我们定义的类不需要自定义操作符。确有必要时,才会自定义操作符。

      运算符不要做标准语义之外的任何动作。例如,“==”的判断不能改变被比较实体的状态。

      运算符的实现必须非常有效率,如果有复杂的操作,应定义一个单独的函数。

      当你拿不定主意的时候,用成员函数,不要用运算符。

     10.异常

      异常是在“异乎寻常”的情况下出现的,它的设置和处理都要花费“异乎寻常”的开销, 所以不要用异常作为逻辑控制来处理程序的主要流程。

      了解异常及处理异常的花销,在C语言中,这是不可忽视的开销。

      当使用异常时,要注意在什么地方清理数据。

      异常不能跨过DLL或进程的边界来传递信息,所以异常不是万能的。

     11.类型继承

      仅在必要时,才使用类型继承。   

      用const标注只读的参数(参数指向的数据是只读的,而不是参数本身 )

      用const标注不改变数据的函数。

《20171006-构建之法:现代软件工程-阅读笔记》

标签:数据   cte   处理   处理异常   只读   实用   错误处理   析构函数   不能   

原文地址:http://www.cnblogs.com/zhouxin1/p/7631501.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!