《20171006-构建之法:现代软件工程-阅读笔记》
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《20171006-构建之法:现代软件工程-阅读笔记》相关的知识,希望对你有一定的参考价值。
一、代码规范
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-构建之法:现代软件工程-阅读笔记》的主要内容,如果未能解决你的问题,请参考以下文章