• 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:最后的最后,使用各种用例对代码进行测试,测试过程中逐个检查函数,发现冗余代码并运用重构手法进行重构。

  • 相关阅读:
    网络流入门
    Sereja and Swaps(贪心+暴力枚举区间)
    multiset
    欧拉路
    整除分块
    蓝魔法师
    选点
    F. Tree with Maximum Cost(换根)
    “db2执行sql语句,注释没了”的解决办法
    Mybatis中的自带Mapper方法
  • 原文地址:https://www.cnblogs.com/ygj0930/p/7765401.html
Copyright © 2020-2023  润新知