《构建之法》读书笔记02

软件开发流程包括团队的流程和个人开发流程。个人在团队中有独立的流程,而把每个人的工作有序的组织起来,就是团队的流程。

所以,每个人的工作质量直接影响最终软件的质量。PSP中衡量软件开发的工作量和质量有以下4个因素,1、项目/任务有多大?(一般用代码行数来表示,也可用功能点来表示);2、花了多少时间?(可以用小时、天、月、年来表示;一组人所花费的时间可以用(人数*时间)来表示);3、质量如何?(交付的代码有多少缺陷?);4、是否按时交付?

对于一个软件工程师的成长:

   (1)Steve McConnell版本:首先需要具备一定的知识和能力,一个工程师对这些知识的掌握分为四个阶段:1、入门;2、熟练;3、带头人;4、大师。其次,工程师有职业成长级别。

  (2)大公司版本:初级软件开发工程师、中级软件开发工程师、高级软件开发工程师、首席软件开发工程师等。

第4章:两人合作(前3节)

代码规范分为两个部分:

  (1)代码风格规范。主要是文字上的规定,看似表面文章,实际上非常重要。其原则是:简明、易读、无二义性。缩进为4个空格;行宽限制为100个字符;在复杂的条件表达式中,用括号清楚的表示逻辑优先级;断行以及空白的{}行;分行:即不把多条语句放在一行中;命名:要让人看到;注释:注释用来解释程序做什么,为什么这样做,以及要特别注意的地方。      

  (2)代码设计规范。牵涉到程序设计、模块之间的关系、设计模式等方方面面的通用原则。程序设计语言的大多数功能,都在函数中实现,所以对函数来说,最重要的原则是:只做一件事,并且要做好;goto:函数最好有唯一的出口,可以使用goto来实现这一目的;对错误的处理:

    1、参数处理:在Debug版本中,所有参数都要验证其正确性,在正式版本中,对从外部传递过来的参数要验证其正确性;

    2、断言:是验证错误的一种方式;

     处理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标注不改变数据的函数

 

原文地址:https://www.cnblogs.com/XiaoPiHaiEr/p/6362064.html