《构建之法》阅读笔记三

第四章 两人合作 

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;

原文地址:https://www.cnblogs.com/limu/p/6395051.html