Code Review学习笔记

    

    一:Code Review的必要性

    代码审查,可以帮助他人发现不足,也可以促进自己培养良好的编程习惯。

    自我代码审查,可以在编码完成之后,对自己的代码进行整理,发现“味道不好”的代码,作进一步的调整、重构,这个过程也是沉淀自己、积累经验、提升的过程。

   

    由于我所在的公司是“业务推动型”的,所以没有进行CR。

    平时,我都是尽量在调试过程中顺手对自己的代码审查一下,或者一天任务完成后进行审查,所以我的审查技巧只是针对个人。

    二:自我Code Review怎么做

  • 代码格式审查:这是最基本的,审查代码缩进、注解位置、是否符合编码规范等。

  • 可读性审查:命名审查(类名、函数名、变量名要尽量表明用途,变量名以“类型_用意”格式,如:day_start)、功能审查(对函数进行审查,把能够提取出去的部分进行重构)、注释审查(注释要准确)

  • 健壮性审查:以怀疑的眼光检查代码,对可能出现的异常情况进行排查、fix。例如:对象调用类的语句最容易出现空指针调用、类型转换语句可能会报错等等。

  • 重构:代码是否有可以重构的地方,并且进行重构  

    三:Python编码规范

    1:注释的格式

    文档字符串:类、函数的必要注解

    类的docstring格式为:第一行概述,第二行空行,第三行开始是类的详细描述,之后以空行分割,Attributes部分描述类的属性们。

"""Summary of class here.

    Longer class information....
    Longer class information....

    Attributes:
        likes_spam: A boolean indicating if we like SPAM or not.
        eggs: An integer count of the eggs we have laid.
    """

   

函数的docstring格式为:第一行是函数的主要功能,以句号, 问号或惊叹号结尾。

                第二行是一个空行。

                第三行是类、函数的详细描述。

                第四行是空行。

                第五行开始,分别是:Args、returns、raises,三部分以空行分割。

"""概述.

    详细描述.

    Args:
        参数1: 类型、作用.
        参数2: 类型、作用.
        ......

    Returns:
        类型、作用.

    Raises:
        Error1: 什么错误、引发条件。
    """

    代码注释:在行中的注释,需要与代码隔开两个空格。

    2:字符串的写法

    占位符的使用:

     x = '%s, %s!' % (imperative, expletive)
     x = '{}, {}!'.format(imperative, expletive)
     x = 'name: %s; score: %d' % (name, n)
     x = 'name: {}; score: {}'.format(name, n)

    连接字符串:不要用+,而用列表,把要连接的字符串append进列表,作用join即可连接。

    四:工具使用:isort+yapf+pylint+unittest

    1:首先,用isort整理import语句

isort **/*.py  #整理一个文件夹内所有py文件
isort *.py  #整理当前文件夹内所有py文件

    2:然后,使用yapf整理代码格式

yapf -i -r 文件夹名  #整理并替换文件夹内所有py文件
yapf -i *.py  #整理当前文件夹内所有py文件

    3:最后,使用pylint逐个审查py文件,逐项修正

pylint 文件名.py

    根据打印信息,逐项去修正代码。

    message 的格式如下: 
    MESSAGE_TYPE: LINE_NUM:[OBJECT:] MESSAGE 

    MESSAGE_TYPE 有如下几种: 
    (C) 惯例。违反了编码风格标准 
    (R) 重构。写得非常糟糕的代码。 
    (W) 警告。某些 Python 特定的问题。 
    (E) 错误。很可能是代码中的错误。 
    (F) 致命错误。阻止 Pylint 进一步运行的错误。

     4:最后的最后,使用各种用例对代码进行测试,测试过程中逐个检查函数,发现冗余代码并运用重构手法进行重构。

原文地址:https://www.cnblogs.com/ygj0930/p/7765401.html