首页 > 代码库 > 《构建之法》阅读笔记三
《构建之法》阅读笔记三
第四章 两人合作
4.3. 处理c++中的类:
1、类:使用类来封装面向对象的概念和多态,对于简单的数据类型没必要用类来实现,对于有显式的构造和析构函数的类不要建立全局的实体,仅在必要时,才使用“类”;
2、如果只是数据的封装,用struct即可;
3、按照这样的次序来说明类中的成员:public、protected、private;
4、数据成员:数据类型成员用m_name说明,不能使用公共的数据成员,要用inline访问函数,这样可兼顾封装和效率;
5、虚函数:使用虚函数来实现多态,仅在必要时使用多态,如果一个类型要实现多态基类中的析构函数应该是虚函数;
6、构造函数:在构造函数中只需简单初始化所有的数据成员,构造函数不应该返回错误;
7、析构函数:把所有的清理工作都放在析构函数中,析构函数不应该出错;
8、new和delete:实现自己的new/delete,这样可以方便的加上自己的跟踪和管理机制,检查new的返回值,释放指针时不用检查NULL;
9、运算符:一般情况下,自己定义的类不需要自定义操作符,运算符不要做标准语义之外的动作,运算符实现必须非常有效率,如果有复杂的操作应定义一个单独的函数,当不知道怎么办时,用成员函数而不是运算符;
10异常:不能用异常作为逻辑控制来处理程序的主要流程,需要了解异常及处理异常的花销,当使用异常时要注意在什么地方清理数据,异常不能跨过DLL或进程的边界来传递信息;
11、类型继承:仅在必要时,才可用类型继承,用const标注只读的参数,用const标注不改变数据的函数
4.4代码复审
1.代码复审即看代码是否在“代码规范”的框架内正确地解决了问题。
2.形式有:自我复审、同伴复审、团队复审。
3.目的是: 1、找出代码错误
2、发现逻辑错误
3、发现算法错误
4、发现潜在的错误和回归性错误
5、发现可能需要改进的地方
6、教育(互相教育)开发人员,传授经验,让更多的成员熟悉项目各部分的代码,同时熟悉和应用领域相关的实际知识。
4.步骤: 1、首先代码需要成功地编译
2、程序员必须测试过代码
3、程序员必须提供新的代码,以及文件差异分析工具。
4、复审者可以选择面对面的复审、独立复审或其他方式。
5、面对面复审中,开发者控制流程,讲述修改的前因后果。
6、复审者必须注意提供反馈意见。
7、开发者必须让所有的问题都得到满意的解释或解答,或者在TFS(TFS是Team Fundation Server的简称,是微软VSTS的一部分,它是Microsoft应用程序生命周期管理(ALM)工具的核心协作平台,简单的说它是管理和开发软件项目的整个生命周期的平台工具。)中创建新的工作项以确保这些问题会得到处理。
8、对于复审的结果,双方必须达成一致的意见。复审后:需要将复审过程中的记录整理出来;
4.5结对编程:
1.复审过程有:设计复审、代码复审、测试计划复审和文档复审。
2.结对编程的方法:1、驾驶员:写设计文档,进行编码和单元测试等XP开发流程。
2、领航员:帮驾驶员解决技术问题,审阅其代码等。
3、驾驶员和导航员要轮换工作,并且应该适当休息。
4、主动参与
5、只有在水平上的差距,没有级别上的差距
6、要有良好的编程环境。
4.6.结对编程的阶段:1、萌芽阶段 2、磨合阶段 3、规范阶段 4、创造阶段 5、解体阶段
第5章 团队和流程
5.2团队模式有:主治医师模式、明星模式、社区模式、业余剧团模式、秘密团队、特工团队、交响乐团模式、爵士乐模式、功能团队模式、官僚模式;
5.3开发流程有:写了再改模式、瀑布模型、瀑布模型的变形、Rational Unified Process统一流程、老板驱动的流程、渐进交付的流程、MVP和MBP;
《构建之法》阅读笔记三