实验四 代码评审

摘要:
1、 目标1)理解代码审查的含义;2) 掌握相关编程规范检查工具的安装和使用;2、 CodeReview的实验内容和要求在中文中应翻译为“代码审查”或“代码评审”或“编码评审”,即通过阅读代码来检查源代码是否符合编码标准和代码质量的活动。

一、实验目的

1)了解代码审查的含义;

2)掌握相关编程规范检查工具的安装与使用;

二、实验内容及要求

Code Review中文应该译作“代码审查”或是“代码评审”或“代码复查”,是指通过阅读代码来检查源代码与编码标准的符合性以及代码质量的活动。Code Review主要用来在软件工程过程中改进代码质量,通过代码评审可以达到如下目的:

●在项目早期就能够发现代码中的BUG

●帮助初级开发人员学习高级开发人员的经验,达到知识共享

●避免开发人员犯一些很常见,很普通的错误

●保证项目组人员的良好沟通

●项目或产品的代码更容易维护

代码评审主要内容是编程规范,重构方法,架构设计,性能安全,日志,可读性,扩展性等问题。通过代码评审可查找和修复引入到开发阶段的应用程序的错误,提高软件的整体素质和开发者的技能。代码评审的作用和意义已在很多技术团队内达成共识,可是很多时候并未被有效执行,甚至被认为是一项费时费力的工作。借助一些工具可以更容易,更有效率地来进行Code Review。

1、以小组形式,针对前面“实验一”中所完成的代码,进行代码评审(走查),重点检查以下情况。你也可有查询相关材料,建立更细化的检查清单(check list)

- 程序是否能正常工作,代码是否实现预期的功能,逻辑是否正确。

- 代码是否遵循的编程规范

- 代码是否尽可能的模块化

- 所有的数据输入是否都进行了检查

- 是否有注释,并且描述了代码的意图

- 代码的可理解性和可测试性

2、按“实验二”的分组方式,两人一组,随机分配另一组的代码作为本组评审和分析的对象

一些编码规范的检查工具如下,也可自行查找工具使用。

java语言      

- 采用使用eclipse Checkstyle插件 

- CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具。它能够自动化代码规范检查过程,从而使得开发人员从这项重要但枯燥的任务中解脱出来。它可以根据设置好的编码规则来检查代码。比如符合规范的变量命名,方法体的最大行数,重复代码检查等等。

如果你使用idea ,可以使用Alibaba Java Code Guidelines插件,参考链接如下:https://github.com/alibaba/p3c/wiki/IDEA%E6%8F%92%E4%BB%B6%E4%BD%BF%E7%94%A8%E6%96%87%E6%A1%A3

C++语言

- 可使用Google代码规范工具Cpplint。

- Cpplint是一个python脚本,Google使用它作为自己的C++代码规范检查工具,VSCcode可配置Cpplint对C++代码进行规范检查。

python

- 可采用pylint

- Pylint 是一个 Python 代码分析工具,它分析 Python 代码中的错误,查找不符合代码风格标准(Pylint 默认使用的代码风格是 PEP 8,具体信息,请参阅参考资料)和有潜在问题的代码。目前在 eclipse 的 pydev 插件中也集成了 Pylint,VSCcode可安装pylint插件

    当发现了项目存在的问题后,可通过Bug跟踪系统向项目维护者反馈问题(issue),管理Issue的系统称为BTS(Bug Tracking System,Bug跟踪系统)。当今具有代表性的BTS有Redmine、Trac、BugZilla等。GitHub自身也加入了BTS的功能。在GitHub上,可以将它作为软件开发者之间的交流工具。通过github的issues功能开发者可以便捷的发现软件的BUG并报告,想向项目所有人询问或用来追踪各种想法探讨准备实施的任务。

三、实验过程

1、配置代码审查工具。要求采用屏幕截图的方式配置的过程;

1.1 确定代码审查工具

 我在GitHub中克隆了我需要审查的项目,根据克隆的项目,发现该项目使用的是python语言,所以我选择使用Pylint 。

实验四 代码评审第1张

 2、使用工具对原始代码进行评审和分析,记录结果,期间不要有任何修改;

实验四 代码评审第2张

实验四 代码评审第3张

实验四 代码评审第4张

3、对工具执行结果进行人工分析,结合检查清单和人工走查的出代码修改建议;

3.1程序可以正常运行

实验四 代码评审第5张

3.2 代码规范

代码并无问题,但在复制后出现缩进的一些问题

4、通过github issues向项目维护者提交问题(issue),注意一个issue 只报告一个问题,多个问题需放在多个issue中,以便跟踪。

实验四 代码评审第6张

实验四 代码评审第6张

四、实验总结

        在本次实验中,虽然在查找别的同学的问题,但是在此同时,我也学到了在以后的代码编写中应该需要注意的东西,也掌握了代码审查的一些内容。小组配合也很重要,在同组成员的帮助下,使我们这次代码审查非常便利。

免责声明:文章转载自《实验四 代码评审》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇0930window.location.search下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

[Git] 谷歌的代码管理

copy from : http://www.ruanyifeng.com/blog/2016/07/google-monolithic-source-repository.html https://github.com/google/styleguide 谷歌和 Facebook 都只有一个代码仓库,全公司的代码都放在这个库里。 我一直很困惑,为什么要这...

[转]前后端分离开发模式下后端质量的保证 —— 单元测试

本文转自:http://www.cnblogs.com/jesse2013/p/magic-of-unittesting.html#3451709 概述   在今天, 前后端分离已经是首选的一个开发模式。这对于后端团队来说其实是一个好消息,减轻任务并且更专注。在测试方面,就更加依懒于单元测试对于API以及后端业务逻辑的较验。当然单元测试并非在前后端分离流...

全国计算机技术与软件专业技术资格(水平)考试【软件评测师】-考试内容总结(七)软件工程知识

7.1软件生存周期 7.1.1软件工程方法学 软件工程方法学包括3个要素:即方法、工具和过程 软件工程的框架可概括为:目标、过程和原则 1.目标 生产具有正确性、可用性、开销合宜的产品 2.过程 生产满足需求并达到工程目标的软件产品所需要的步骤,主要包括:开发、运作和维护过程,他们覆盖了需求、设计、实现、确认及维护等活动。 需求活动:问题分析和需求分析 设...

值得推荐的C/C++框架和库 (真的很强大)

  值得学习的C语言开源项目 - 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。 下载链接:http...

前端和后台BUG区分方法

测试工程师不只是负责发现问题,除了发现问题这种基本功外,定位问题,提出解决方案,提出预防方案也是要掌握的技能。这里先说定位问题的要求,定位问题要向深入,前提当然是对功能、产品的流程、开发方案、开发人员非常熟悉了,以我们部门为例,定位bug至少要到下面这种程度。 首先确定是界面显示问题还是功能问题,   如果是界面问题,如贴图错误,文字错误,样式错误,则需要...

DevOps 视角的前后端分离与实战

本文作者:CODING - 廖红坤 前言 随着微前端、微服务等技术理念和架构的蓬勃发展,我们已经没必要去讨论为什么要前后端分离这种话题,前后端分离已成为互联网项目开发的标准模式。前后端在各自的领域发展越来越纵深。 DevOps 视角的前后端分离 今天我们换个视角,从 DevOps 的角度来聊聊前后端分离。 项目协同 DevOps 体系中包含了敏捷开发方法...