zoukankan      html  css  js  c++  java
  • 《构建之法》第四章

    第四章 两人合作


     

    4.1代码规范

        (1)代码风格规范。主要是文字上的规定,看似表面文章,实际上非常重要。

        (2)代码设计规范。牵涉到程序设计、模块之间的关系、设计模式等方方面面的通用原则。

    4.2代码风格规范

         (1)缩进4个空格

         (2)限定100字符行宽

         (3)在复杂的条件表达式中,用括号表示逻辑优先级

         (4)每个“{”和“}”都独占一行

         (5)不把多个变量定义在一行

         (6)命名

         (7)下划线用来分割变量名字中的作用域标注和变量的语义

         (8)用大小写区分由多个单词组成的变量名

         (9)注释

    4.3代码设计规范

    1、函数:只做一件事,并且要做好。

    2、goto:函数最好有单一的出口,为了达到这一目的,可以使用goto。

    3、错误处理:(1)参数处理(2)断言

    4、类:

       (1)使用类来封装面向对象的概念和多态。

       (2)避免传递类型实体的值,用该用指针传递。换句话说,对于简单的数据类型,没有必要用类来实现。

       (3)对于有显式的构造和析构函数的类,你要建立全面的实体,因为你不知道他们在何时创建和消除。

       (4)仅在必要时,才使用“类”。

    5、class vs.struct:如果只是数据的封装,用struct即可。

    6、按照这样的次序来说明类中的成员:public、protected、private。

    7、数据成员:

        (1)数据类型的成员用m_name说明。

        (2)不要使用公共的数据成员,要用inline访问函数,这样可兼顾封装和效率。

    8、虚函数:

        (1)使用虚函数来实现多态。

        (2)仅在很有必要时,才使用虚函数。

        (3)如果一个类型要实现多态,在基类中的析构函数应该是虚函数。

    9、构造函数

        (1)不要在构造函数中做复杂的操作,简单初始化所有数据成员即可。

        (2)构造函数不应该返回错误。

    10、析构函数    

        (1)把所有的清理工作都放在析构函数中。

        (2)析构函数也不应该出错。

     11、new和delete

        (1)自己的new和delete可以包装系统提供的new和delete

        (2)检查new的返回值。new不一定都成功

        (3)释放指针时不用检查NULL

    12、运算符

         (1)在理想状态下,我们定义的类不需要自定义操作符

         (2)运算符不需要做标准语义之外的任何动作

         (3)运算符的实现必须非常有效率,如果有复杂的操作,应定义一个单独的函数

    13、异常

         (1)不要用异常作为逻辑控制来处理程序的主要流程

         (2)了解异常及处理异常的花销

         (3)当使用异常时,要注意在什么地方清理数据

         (4)异常不能跨过DLL或进程的边界来传递信息,所以异常不是万能的

    14、类型继承

         (1)仅在必要时,才使用类型继承

         (2)用const标注只读的参数

         (3)用const标注不改变数据的函数

    4.4代码复审

    1、目的:

        (1)找出代码错误

        (2)发现逻辑错误,程序可以编译通过,但是代码的逻辑是错的

        (3)发现算法错误

        (4)发现潜在的错误和回归性错误——当前的修改导致以前修复的缺陷又重新出现

        (5)发现可能需要改进的地方

        (6)教育开发人员,传授经验

    2、核查表:

        (1)概要

        (2)设计规范

        (3)代码规范

        (4)具体代码

        (5)效能

        (6)可读性

        (7)可测性

  • 相关阅读:
    gitlab-ci runner注册失败问题
    第一个shell脚本
    Float、Double实例化对象后,通过equals和==验证何时返回true,何时返回false
    TestNG 基本注解@BeforeMethod、@AfterMethod 和@BeforeClass、@AfterClass 的区别以及实际问题的解决
    Windows虚拟机环境搭建 Selenium3+Java+Maven+TestNG+Jenkins+Allure 步骤及问题总结
    Linux-Kafka 0.10.2.0版本单机安装
    使用mysql驱动包8.0版本逆向工程时踩的坑
    使用WebStorm编辑Vue项目时报错,Expected indentation of 0 spaces but found 2
    Java并发编程阅读笔记(一)
    (二)创建用户并添加用户
  • 原文地址:https://www.cnblogs.com/yvonne07/p/6819692.html
Copyright © 2011-2022 走看看