代码评审(Code Review)规范

一、目的

Code Review是一种用来确认方案设计和代码实现的质量保证机制,通过这个机制我们
可以对代码、测试过程和注释进行检查。
Code Review主要用来在软件工程过程中改进代码质量,通过Code Review可以达到
如下目的:

1) 在项目早期就能够发现代码中的bug,将bug扼杀在摇篮中。
2) 帮助初级开发人员学习高级开发人员的经验,达到知识共享。
3) 避免开发人员犯一些很常见,很普通的错误。
4) 保证项目组人员的良好沟通。
5) 项目或产品的代码更容易维护。
6) 提升代码质量,提高团队开发效率。

二、评审条件

1、大型项目,增加/修改超过10个文件或超过500行代码的,需组织CodeReview会议,邀请相关同事及高阶同事参与代码Review
2、小型项目,小需求修改(少于10个文件变更或少于500行代码的),至少需要1~2位同事帮忙进行代码Review并提出点评建议
3、重点逻辑,建议找相关同事共同Review一下

代码评审的先决条件:代码已通过Alibaba Java Coding Guidelines(idea 插件)进行代码检查。

三、评审范围

代码的一致性、编码风格、代码的安全问题、脱敏问题、代码冗余、是否正确设计以符
合设计要求(性能、功能)与设计文档相同等。

完整性检查(功能点、业务日志、异常日志等)
一致性检查(代码逻辑是否符合设计文档,代码风格是否统一等)
正确性检查(编码规范,注释准确,变量定义和使用等)
可修改性检查(如字典值123,使用专门的常量类等)
可预测性检查(死循环、无穷递归、数组越界、空指针等)
可理解性检查(命名规则、注释是否清晰、gitlab修订记录描述清晰等)
代码逻辑检查(如实现过于复杂、代码可读性、扩展性等)
PS:优先级从上到下

命名规范遵循:

命名规范遵循:《项目命名规范》

接口规范遵循:《RestfulL API规范》

日志规范遵循:《异常日志》

数据库开发规范遵循:《MYSQL数据库涉及规范》

前端规范遵循: 《WEB端编码规范》

image.png

五、评审人员

必须有该项目组下相关研发人员,至少2名参与;另外需邀请架构部1位同事协同评审。
多人参与可以形成意见的挑战,讨论,趋于大同标准化老员工参与,可以帮助发现隐藏的需要注意的事项。

六、评审时间

Code Review由项目负责人发起,一个项目过程中至少2-3次,主要集中在项目中后期,如果项目规模较大,功能较多,时间比较宽裕,也可适当增加。

PS:代码评审不需要太正式,时间不宜太长,建议控制在30分钟以内。

注意:代码评审必须在在项目提测时间前后一两天完成,万不可等到测试之后再来评审。

七、评审工具

研发协作平台; IDEA等开发工具

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/106206.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微服务(多级缓存)

目录 多级缓存 1.什么是多级缓存 2.JVM进程缓存 2.2.初识Caffeine 2.3.实现JVM进程缓存 2.3.1.需求 2.3.2.实现 3.Lua语法入门 3.1.初识Lua 3.1.HelloWorld 3.2.变量和循环 3.2.1.Lua的数据类型 3.2.2.声明变量 3.2.3.循环 3.3.条件控制、函数 3.3.1.函数 3.3.…

章节 2:轻松入手JSX -《React.js手把手教程:从初学者到实战高手》- 第一部分:React.js基础

《React.js手把手教程:从初学者到实战高手》 第一部分:React.js基础 章节 2:轻松入手JSX 在上一章节中,我们初步认识了React.js。现在,我们将更深入地探索React.js中的JSX(JavaScript XML)语法…

JVM 之字节码(.class)文件

本文中的内容参考B站尚硅谷宋红康JVM全套教程 你将获得: 1、掌握字节码文件的结构 2、掌握Java源代码如何在JVM中执行 3、掌握一些虚拟机指令 4、回答一些面试题 课程介绍 通过几个面试题初始字节码文件为什么学习class字节码文件什么是class字节码文件分析c…

设计模式-适配器模式

目录 1 概念介绍 1.1 基本介绍 1.2 工作原理 2 详细介绍 2.1 类适配器 2.2 对象适配器 2.3 接口适配器 3 注意事项和细节 1 概念介绍 1.1 基本介绍 适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性&#xf…

线程池也就那么一回事嘛!

线程池详讲 一、线程池的概述二、线程池三、自定义线程池四、线程池工作流程图五、线程池应用场景 一、线程池的概述 线程池其实就是一种多线程处理形式,处理过程中可以将任务添加到队列中,然后在创建线程后自动启动这些任务。这里的线程就是我们前面学过…

拥塞控制(TCP限制窗口大小的机制)

拥塞控制机制可以使滑动窗口在保证可靠性的前提下,提高传输效率 关于滑动窗口的属性以及部分机制推荐看TCP中窗口和滑动窗口的含义以及流量控制 拥塞控制出现的原因 看了上面推荐的博客我们已经知道了,由于接收方接收数据的能力有限,所以要通…

暑期习题练习 C语言

编程能力小提升! 前言一、转义字符二、重命名与宏定义三、三目运算符四、计算日期到天数转换五、计算字符串长度六、宏定义应用七、const常量八、C语言基础九、const常量(二)十、符号运算十一、记负均正十二、SWITCH,CASE十三、错…

Nexus 如何配置匿名用户访问一个仓库

现在有这样一个需求,我们需要匿名用户访问 Nexus 的一个公共仓库。 设置 Roles 在满足这个需求之前,我们需要设置一个 Roles。 Role 的名字是可以随填写的。 这里关键的问题在你需要访问的仓库的 View 的权限需要设置 Read 和 Browse 这 2 个权限。 如…

JDK1.8 安装教程(linux)

一、 检查当前系统是否已安装JDK 通过命令java –version 如果有出现如下图提示表示有安装,则无需再安装 二、 安装JDK 通过JDK官网https://www.oracle.com/上下载需要的JDK 版本,下载完成后上传到linux 系统上指定的文件夹下。(可以用宝…

Springboot配置高级

临时属性设置 带属性数启动SpringBoot java –jar springboot.jar –-server.port80携带多个属性启动SpringBoot,属性间使用空格分隔 属性加载优先顺序 参看https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-fea…

Linux驱动开发(Day5)

思维导图: 不同设备号文件绑定:

Wireshark流量分析

目录 1.基本介绍 2.基本使用 1)数据包筛选: 2)筛选ip: 3)数据包还原 4)数据提取 3.wireshark实例 1.基本介绍 在CTF比赛中,对于流量包的分析取证是一种十分重要的题型。通常这类题目都是会提供一个包含…

移动,电信,联通流量卡该怎么选?

是电信便宜,移动稳定,还是联通性价比高? ​ 今天,小编从三大流量卡的优缺点方面来讲,教你如何选择流量卡了。 一、移动流量卡 优点:信号好,可以说走到什么地方都有信号。 缺点:资…

【面试题】JDK(工具包)、JRE(运行环境和基础库)、JVM(java虚拟机)之间的关系?

【面试题】JDK、JRE、JVM之间的关系? JDK(Java Development Kit):Java开发工具包,提供给Java程序员使用,包含了JRE,同时还包含了编译器javac与自带的调试工具Jconsole、jstack等。 JRE(Java Runtime Environment):Java运行时环境&…

Jvm之JIT优化详细解释

文章目录 一、JIT 产生的背景二、HotSpot虚拟机内置JIT编译器1. Client Compiler2. Server Compiler3. 查看本地编译器模式 三、常见热点探测技术1. 基于计数器的热点探测2. 基于采样的热点探测2.1 方法调用计数器2.2 回边计数器 四、常见JIT优化手段1. 公共子表达式消除2. 方法…

【android12-linux-5.1】【ST芯片】驱动与HAL移植后数据方向异常

ST的传感器驱动与HAL一直成功后,能拿到数据了,但是设备是横屏,系统默认是竖屏。就会出现屏幕自动转动时方向是错的的情况,设备横立展示的是竖屏,设备竖立展示的是横屏。 这个是PCB上设计的传感器贴片方向和横屏不一致…

windows10系统安装docker desktop超常见问题

问题报错: An unexpected error was encountered while executing a WSLcommand. Common causes include access rights issues, which occurafter waking the computer or not being connected to your domain/active directory. Please try shutting WSL down (w…

深度学习基础知识-pytorch数据基本操作

1.深度学习基础知识 1.1 数据操作 1.1.1 数据结构 机器学习和神经网络的主要数据结构,例如 0维:叫标量,代表一个类别,如1.0 1维:代表一个特征向量。如 [1.0,2,7,3.4] 2维:就是矩…

SAP 之如何定义功能范围Function Area

目录 目录 前言 一、注意点 二、使用步骤 1. Step by step 2. 其它功能 总结 前言 在SAP中,FA功能范围是一个组织单元,一般根据活动对产生的运营费用进行分类。例如生产、管理、销售、研发等,可以分配给成本中心Cctr、GL总账科目、Ord…