搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
思考机器4
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
python实现随机森林_随机森林 python
2
人工智能之Python基础(一)控制语句|循环|常用数据类型
3
Spring Cloud Alibaba 最新版本(基于Spring Boot 3.1.0)整合完整使用及与各中间件集成_springcloudalibaba集成spring security
4
【Linux】Linux基本指令
5
图解LeetCode——24. 两两交换链表中的节点
6
Python爬虫学习之requests库
7
好无聊啊~ 来试试用Python采集下载漫画【附原码哟~】
8
cc2530 Zstack NV操作类似EEPROM 掉电不丢失(flash)_cc2530 eeprom
9
系统开发常用需求收集_系统开发怎么去找需求
10
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。_encrypt=false
当前位置:
article
> 正文
怎么做code review
作者:思考机器4 | 2024-02-02 20:38:44
赞
踩
code review
我们现在的code review的方式是在提测前甚至在提测后,开始review,这样有几个弊端:
一次性进行很大批量的code review,是review不出来什么东西的,只能看看最表面
在提测之前或者提测之后进行code review,如果是比较大的问题,或者review出来的问题比较多,相关开发修改的时间是有限的
因此,更加推荐使用pr(mr)级别的code review。
先介绍一下code review的好处
团队知识共享:
通过代码审查,高手可以直接指出新手代码中的问题,新手可以马上从高手的反馈中学习到好的实践,得到更快的成长
新人成长了,可以帮老人多分担一些任务
代码审查中花了时间,就可以减少后续一些帮新人做的业务擦屁股的时间
良好的沟通、发现问题的能力、帮助其他人成长都是技术上更上一层楼必不可少的能力,通过代码审查可以有效提升这些能力
提升代码质量
提升代码的可读性、可维护性
一些特定条件下的隐患或者安全漏洞,可能测试都无法测试出来,代码审查却可以发现
高手也需要代码被审查:(1)别人通过阅读高手的代码,可以学习到很多好的编码实践(2)高手的代码肯定也有一些问题的,就像考试中,学习好的学生也要在写完试卷后,自己检查一遍
编码规范
我发现很多人有时候,明知写的代码不符合编码规范,但是因为没有人审查他们的代码,写代码是“明知故犯”(写一段行数很长的方法、故意用变量而不用常量)
有了代码审查机制,写代码的人就会心里有杆秤,会尽量把代码写规范,因为知道有人要review自己的代码
降低维护成本
我们开发的代码,如果写的不好,开发用了2天,可能在后续的迭代和查找线上问题的时候,要多花5天去维护
现在都有什么code review的方式?
现在code review的方式有哪几种:
• 面对面:reviewer和author一起面对面查看代码,代码有问题,reviewer直接指出,author后面修改,这种方式要两个人一起review,消耗掉了所有reviewer和author的时间,优点是面对面沟通更直接
• 设置栅栏:就是author在自己的开发分支开发,在合并到测试分支的时候在gitlab提交一个mr请求,code reviewer进行code review,如果有问题提出来问题,问题修改掉后再合并到测试分支,设置栅栏有一个优点是,让提交代码者心里有了敬畏,知道代码是要被review的,并且要review通过才能合并到测试分支的,让review者平时写代码的时候不敢再轻易写出烂代码。
• 不设栅栏:author先提交代码到测试分支,在后续reviewer再进行code review,这个方案的缺点是:开发者可以随意往测试分支提交代码,code reviewer后续找时间review,这种方式可能导致提交到测试分支的代码是有问题的,后续提出了代码问题,author修不修改都看author自己。
怎么样做code review?
总和比较后,我比较倾向于使用“开发阶段设栅栏,提测后不设栅栏”的方式进行code review
每个人都有自己的开发分支,设置测试分支的push权限
在gitlab上,可以设置指定的分支只有master等级的开发者才能推送到指定分支
merge request并选定提交人
代码审核人发表代码审查的意见,全部修改后,将问题置为resolved,当所有问题都被解决后,审核人点击merge按钮即可
所有人在gitlab上把代码merge request到测试分支,1-2天一次,在pull request后相关人员code review代码,如果code review通过则merge到测试分支,如果review不通过,则在gitlab上面标记出来问题,问题分为两个等级:error:必须要修改的,warn:建议修改的,
code review是互相学习进步的方式,不要带有贬低损的词汇口吻
开发在排期的时候就要把相关code review的人员想好,并在排期的时候将code review的时间排进去,以每两天一次code review,一次1小时为标准
以上流程在开发过程中是没有问题的,如果在提测后,还要code review后才能merge到测试分支,反应就有些慢了,会影响测试的进度了,此时可以,在测试环境修改测试分支的权限,devloper可以提交推送到测试分支,还是2天code review一次,但是先测试环境发布,后code review。
根据个人习惯,还可以通过idea插件安装代码审查gitlab代码审查的功能我们现在的code review的方式是在提测前甚至在提测后,开始review,这样有几个弊端:
一次性进行很大批量的code review,是review不出来什么东西的,只能看看最表面
在提测之前或者提测之后进行code review,如果是比较大的问题,或者review出来的问题比较多,相关开发修改的时间是有限的
因此,更加推荐使用pr(mr)级别的code review。
先介绍一下code review的好处
团队知识共享:
通过代码审查,高手可以直接指出新手代码中的问题,新手可以马上从高手的反馈中学习到好的实践,得到更快的成长
新人成长了,可以帮老人多分担一些任务
代码审查中花了时间,就可以减少后续一些帮新人做的业务擦屁股的时间
良好的沟通、发现问题的能力、帮助其他人成长都是技术上更上一层楼必不可少的能力,通过代码审查可以有效提升这些能力
提升代码质量
提升代码的可读性、可维护性
一些特定条件下的隐患或者安全漏洞,可能测试都无法测试出来,代码审查却可以发现
高手也需要代码被审查:(1)别人通过阅读高手的代码,可以学习到很多好的编码实践(2)高手的代码肯定也有一些问题的,就像考试中,学习好的学生也要在写完试卷后,自己检查一遍
编码规范
我发现很多人有时候,明知写的代码不符合编码规范,但是因为没有人审查他们的代码,写代码是“明知故犯”(写一段行数很长的方法、故意用变量而不用常量)
有了代码审查机制,写代码的人就会心里有杆秤,会尽量把代码写规范,因为知道有人要review自己的代码
降低维护成本
我们开发的代码,如果写的不好,开发用了2天,可能在后续的迭代和查找线上问题的时候,要多花5天去维护
现在都有什么code review的方式?
现在code review的方式有哪几种:
• 面对面:reviewer和author一起面对面查看代码,代码有问题,reviewer直接指出,author后面修改,这种方式要两个人一起review,消耗掉了所有reviewer和author的时间,优点是面对面沟通更直接
• 设置栅栏:就是author在自己的开发分支开发,在合并到测试分支的时候在gitlab提交一个mr请求,code reviewer进行code review,如果有问题提出来问题,问题修改掉后再合并到测试分支,设置栅栏有一个优点是,让提交代码者心里有了敬畏,知道代码是要被review的,并且要review通过才能合并到测试分支的,让review者平时写代码的时候不敢再轻易写出烂代码。
• 不设栅栏:author先提交代码到测试分支,在后续reviewer再进行code review,这个方案的缺点是:开发者可以随意往测试分支提交代码,code reviewer后续找时间review,这种方式可能导致提交到测试分支的代码是有问题的,后续提出了代码问题,author修不修改都看author自己。
怎么样做code review?
总和比较后,我比较倾向于使用“开发阶段设栅栏,提测后不设栅栏”的方式进行code review
每个人都有自己的开发分支,设置测试分支的push权限
在gitlab上,可以设置指定的分支只有master等级的开发者才能推送到指定分支
merge request并选定提交人
代码审核人发表代码审查的意见,全部修改后,将问题置为resolved,当所有问题都被解决后,审核人点击merge按钮即可
所有人在gitlab上把代码merge request到测试分支,1-2天一次,在pull request后相关人员code review代码,如果code review通过则merge到测试分支,如果review不通过,则在gitlab上面标记出来问题,问题分为两个等级:error:必须要修改的,warn:建议修改的,
code review是互相学习进步的方式,不要带有贬低损的词汇口吻
开发在排期的时候就要把相关code review的人员想好,并在排期的时候将code review的时间排进去,以每两天一次code review,一次1小时为标准
以上流程在开发过程中是没有问题的,如果在提测后,还要code review后才能merge到测试分支,反应就有些慢了,会影响测试的进度了,此时可以,在测试环境修改测试分支的权限,devloper可以提交推送到测试分支,还是2天code review一次,但是先测试环境发布,后code review。
根据个人习惯,还可以通过idea插件安装代码审查gitlab代码审查的功能
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/article/detail/56267
推荐阅读
article
一分钟解决:
vscode
卡在“设置SSH主机:VS Code-正在本地下载 VS Code
服务器
”...
解决:从CMD或者你的终端连接
服务器
,进入
vscode
-server目录下,删除一些文件夹就行,然后使用
vscode
重新...
赞
踩
article
低代码
(Low-Code)是什么?_java+
低代码
是什么意思...
低代码
(Low-Code)是一种软件
开发
方法,它通过图形化界面和少量的编码来创建软件应用程序。
低代码
开发
旨在降低编程的门...
赞
踩
article
Visual Studio Code 插件安装_
vscode
安装插件...
最后,进行导入操作,如上图所示,在需要安装插件的电脑上,打开VSCode点击导入配置文件,选择刚刚导出的文件即可,然后会...
赞
踩
article
Ubuntu
启动错误:The
virtual
machine
‘win7‘
has
termina...
Ubuntu
启动错误:The
virtual
machine
'win7'
has
terminated
unexpe...
赞
踩
article
2023
Visual
Studio
Code
插件
推荐:18 个提高开发效率的常用
插件
_visua...
为了方便其他设备和平台的小伙伴观看往期文章,链接奉上:公众号搜索阿里开发者社区InfoQCSDN腾讯开发者社区思否51C...
赞
踩
article
docker
启动报错The
virtual
machine
'DEVM' has terminate...
win10安装
docker
,启动报错The
virtual
machine
'DEVM' has
terminated
...
赞
踩
article
通义
灵码 - 免费的
阿里
云
VS
code
Jetbrains AI
编码
辅助工具
...
是
阿里
云
出品的一款基于
通义
大模型的智能
编码
辅助工具
,提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码注释生...
赞
踩
article
Unity
游戏崩溃日志查询笔记 安卓平台 关于
tombstone
_00_
si
gnal
11
(
si
g...
关于安卓的崩溃日志如何查询的笔记_
si
gnal
11
(
si
gsegv),
code
-6 (
si
_
tkill
)
si
gn...
赞
踩
article
Spring
WebSocket
404 解决方案_unexpected
response
code
...
Spring
WebSocket
404 解决方案_unexpected
response
code
404unexpe...
赞
踩
article
Learn
the
basics
of
Python
3-
Code
Challenges
:Loops...
【代码】
Learn
the
basics
of
Python
3-
Code
Challenges
:Lists (Adva...
赞
踩
article
Learn
the
basics
of
Python
3-
Code
Challenges
:
Loops
...
Learn
the
basics
of
Python
3-
Code
Challenges
:
Loops
(Advanced)...
赞
踩
article
C语言
如何
封装
CPP
代码
的接口_
hex
code
cpp
封装
...
C++不是兼容
C语言
的吗?是的,如果你只是自己开发程序,只用一种语言的话,就没有必要进行
封装
。如果你开发的是一个C++的...
赞
踩
article
windows
中
,
页面
编码
集一览 (
chcp
code
)...
■前言 之前想查寻 EUC-JP的
页面
编码
是多少, 结果查询起来很费解,20932 所以,自己整理一下,方便将来查询...
赞
踩
article
s
t
able
diffu
s
ion
error code:128
s
t
dou
t
:HEAD解决方案_co...
使用 ‘–’ 来分隔版本和路径,例如:‘gi
t
[…] – […]’_couldn'
t
de
t
ermine
s
t
able
...
赞
踩
article
前端
代码
code
review
_前端
代码
review
...
1.常规检查: 1)
代码
是否正常运行 2)控制台是否有明显扽报错 3)
代码
有没有达到预期需求效果 4)
代码
书写是否符合规...
赞
踩
article
基于WSL2 的
Docker
Desk
to
p 启动时 Failed
to
set
version
...
在Windows 10 的 2004 版本 中, 启用 使用
Docker
Desk
to
p 时 发现 根本无法启动, 偶尔...
赞
踩
article
error
:
Unable to find vcvarsall.bat_美赛报名
error
code
...
IDLE显示行数:快捷键 Alt+G在“…python安装路径…Libdistutils目录下有个msvc9compil...
赞
踩
article
automatic1111
安装
novelAi
报错note: This
error
originate...
从git上拉取
automatic1111
再导入运行
novelAi
必须的文件后,运行webui-user.bat遇到如下问...
赞
踩
article
解决pip安装
py
game提示
py
thon
setup
.
py
egg_
info
did not ru...
该.tar.gz包是属于源文件直接压缩后打包在一起且还没有编译的内容,无法直接使用;如果没有对应完整的编译环境,那么将无...
赞
踩
article
pip
安装order一直报错
subprocess
-
exit
ed-
with
-
error
和metadat...
pip
安装order一直报错
subprocess
-
exit
ed-
with
-
error
和
metadata
-generati...
赞
踩
相关标签
vscode
服务器
ide
低代码
low-code
开发
软件需求
编辑器
ubuntu
linux
运维
前端
后端
程序人生
docker
人工智能
python
c++
开发语言
阿里云
java
unity
android
游戏