构建之法(第四章 两人合作)
第四章主要讲了代码规范,极限编程,结对编程,两人合作的不同阶段,影响他人的技巧。通过这一章的学习,更好的了解,如何好效率,友好的与他人合作。
1.代码规范
现代社会情况下,软件都是两个人在相互合作中完成的,合作的最小单位是两个人。我们的代码既是给电脑看的,也是给其他人看的。我们的代码需要让跟我们一起合作的其他人也能很容易看的请请楚楚。
“代码规范”可以分为两个部分:
- 代码风格规范。主要是文字上的规定,,看似表面文章,实际非常重要。
- 代码设计规范。牵扯到程序设计,模块之间的关系,设计模式等方方面面的通用原则。
2.代码风格规范
代码风格原则:简明,易懂,无二义性。
代码风格规范包括:缩进,行宽,括号,断行与空白的{}行,分行,命名,下划线,大小写(Pascal和Camel),注释。
3.代码设计规范
1.函数:只做一件事,并且要做好
2.goto:函数最好有单一的出口,为了达到这个目的,可以使用goto
3.错误处理:1.参数处理 2.断言
4.如何处理C++中的类:
类:避免传递类型实体的值,应该用指针传递。
公共/保护/私有:按照这样的次序来说明类中的成员:public、protected、private。
数据成员:数据类型的成员用m_name说明。不要使用公共数据成员,要用inline访问啊还念书,这样可以兼顾封装和效率。
虚函数:仅在很有必要的时候,才使用虚函数。如果一个类型要实现多态,在基类中的析构函数应该是虚函数。
析构函数:把所有的清理工作都放在析构函数中。如果有些资源在析构函数之前就释放了,记住要重置这些成员为0或NULL。
new和delete:如果可能,实现自己的new/delete,这样可以方便地加上自己的跟踪和管理机制。自己 的new/delete可以包装系统提供的new/delete。
运算符:当拿不定主意的时候,不要用运算符,用成员函数。
异常:使用异常时,需要注意在什么地方清理数据。异常不能跨过DLL或进程的边界来传递信息,所以异常不是万能的。
类型继承:用const标注只读的参数(参数指向的数据是只读的,而不是参数本身)。用const标注不改变数据的函数。
4. 代码复审
形式:自我复审、同伴复审、团队复审
审核内容:概要部分,设计规范部分,代码规范部分,具体代码部分,效能,可读性,可测试性
5. .两人合作的不同阶段和技巧
萌芽阶段 → 磨合阶段 → 规范阶段 → 创造阶段 → 解体阶段
如何正确给予反馈:
—最外层:行为和后果
—中间层:习惯和动机
—最内层:本质和固有属性