这篇代码规范及工具使用,全网火了

我是「猿码天地」,一个热爱技术、热爱编程的IT猿。技术是开源的,知识是共享的!

写作是对自己学习的总结和记录,如果您对 Java、分布式、微服务、中间件、Spring Boot、Spring Cloud等技术感兴趣,可以关注我的动态,我们一起学习,一起成长!

用知识改变命运,让家人过上更好的生活,互联网人一家亲!

代码不规范,同事两行泪!

现代软件行业的高速发展对开发者的综合素质要求越来越高, 因为不仅是编程知识点,其它维度的知识点也会影响到软件的最终交付质量。比如: 数据库的表结构和索引设计缺陷可能带来软件上的架构缺陷或性能风险; 工程结构混乱导致后续维护艰难;没有鉴权的漏洞代码易被黑客攻击等等。代码规范,是为确保软件代码能被系统正确运行,软件编写者或其他参与者能正确理解、维护软件代码,换句话说,就是增强代码的易用性、可读性、可维护性、安全性等要求。

废话不多说,直接上干货!

一、代码编写规范

业界公认的代码规范手册(国内)当属阿里巴巴旗下出版的《阿里巴巴java开发手册》,经过几个版本的迭代,最新手册为《“码出高效” 阿里巴巴java开发手册1.4.0版本》,更新时间为2018年5月20号。手册以 Java 开发者为中心视角,划分为编程规约、异常日志、 单元测试、 安全规约、 MySQL 数据库、 工程结构、 设计规约七个维度,再根据内容特征,细分成若干二级子目录。根据约束力强弱及故障敏感性,规约依次分为强制、推荐、参考三大类。 对于规约条目的延伸信息中,“说明” 对规约做了适当扩展和解释; “正例” 提倡什么样的编码和实现方式; “反例”说明需要提防的雷区, 以及真实的错误案例。

阿里巴巴java开发手册目录:(可在文末获取最新手册文档)

另外也可以学习《唯品会Java开发手册》,该手册是基于《阿里巴巴java开发手册》改编。该开发手册主要从格式规约、注释规约、方法设计、类设计、控制语句、基本类型、集合处理、并发处理、异常处理、日志规约、其他设计等几个维度进行说明与规范。

唯品会Java开发手册目录:(可在文末获取最新手册文档)

二、统一代码格式

多人协作开发时时常会出现你爱 Tab 他爱空格,你缩进 2 个字符,别人缩进 4 个字符的问题,还有换行符乱码、文章末尾空行、注释不规范、编码不规范等。同时,不同编辑器对缩进处理方法迥异,如何解决?接着往下看。

这里使用Idea工具为例(eclipse配置方法一样)

1、打开Idea设置Settings -》选择Editor-》Code Style,选择import,导入xml文件。

(您可在文末获取导入配置文件,包含

vjtools-code-conventions-eclipse.xml和

vjtools-code-conventions-idea.xml两个配置文件,分别对应eclipse和idea工具的配置,可自行选择)

2、导入后,自动命名vjtools,点击OK。

3、导入成功,保存。

4、编写代码后,手工格式化代码。

通过上述4个步骤即可配置完成,在每次编写完代码后,右击项目,点击 reformat code,即可完成代码格式化的目的。

三、代码检查

1 p3c

2017年10月,阿里推出了《阿里巴巴Java开发手册(终极版)》,并在持续更新中。该开发手册以Java开发者为中心视角,从编程规约、异常日志、单元测试、安全规约、工程结构、MySQL数据库六个维度,分别给出了相应的开发要求。相应地,阿里在10月份的杭州云栖大会上正式发布了Java代码检测IDE插件(支持与Eclipse、MyEclipse等工具的集成)

2 FindBugs

官网地址:

http://findbugs.sourceforge.net/

FindBugs 是由马里兰大学提供的一款开源 Java 静态代码分析工具。FindBugs 通过检查类文件或 JAR 文件,将字节码与一组缺陷模式进行对比从而发现代码缺陷,完成静态代码分析。FindBugs 既提供可视化 UI 界面,同时也可以作为 Eclipse/MyEclipse 插件使用。Findbugs规则比较简单实用,不注重样式与格式,属于轻量级的工具。

3 Checkstyle

官网地址:

http://checkstyle.sourceforge.net/

Checkstyle 是 SourceForge 的开源项目,通过检查对代码编码格式,命名约定,Javadoc,类设计等方面进行代码规范和风格的检查,从而有效约束开发人员更好地遵循代码编写规范。Checkstyle 提供了支持大多数常见 IDE 的插件,例如Eclipse。Checkstyle 对代码进行编码风格检查,并将检查结果显示在 Problems 视图中,开发人员可通过在 Problems 视图中查看错误或警告详细信息。

4 PMD

官网地址:https://pmd.github.io/

PMD 是由 DARPA 在 SourceForge 上发布的开源 Java 代码静态分析工具。通过其内置的编码规则对 Java 代码进行静态检查,主要包括对潜在的 bug,未使用的代码,重复的代码,循环体创建新对象等问题的检验。PMD 提供了和多种 Java IDE 的集成,例如 Eclipse,IDEA,NetBean 等。

5 Sonar

Sonar代码质量管理网址:https://www.ibm.com/developerworks/cn/java/j-lo-sonar/

Sonar是一个代码质量管理开放平台,能对不同规模和种类的工程进行代码质量管理,可以集成不同类型的工具一起工作。Sonar主要用于代码质量管理。该工具目前在业界的使用范围很广,从csdn在2016年所做的调查问卷来看,Sonar的使用占比41%。有关Sonar的使用可阅读:使用Sonar进行代码质量管理。

为与代码编写规范相对应,使用阿里巴巴的P3C进行代码检查。

安装方法:以idea开发工具为例

Step1:点击File-》Settings-》Plugins,搜索Alibaba,找到如下插件,并点击install

Step2:重启Idea后,我们会看到右键新增2项功能,分别是编码规约扫描和关闭实时检测功能。点击“编码规约扫描”后,然后根据扫描结果进行代码优化。

如下为具体提示哪些代码需要优化以及存在的风险。

四、代码覆盖率

如果我们想了解项目的代码统计情况(代码行数,方法/类数量等),我们可以使用工具如Emma、Jacoco等。以Idea为例,Idea最新版本是集成了Emma、JaCoCo。

我们启动或debug时制定扫描的包路径,结束后可分析得出统计情况。

五、代码审查

在实际日常工作中,代码评审经常使用以下方式:1、交叉评审/代码走查:团队成员互相检查代码。2、会审:以项目为单位,召开专门的代码评审会议。但代码评审过程需要跟踪和记录,这时我们需要一个工具来灵活、快速定位评审代码及纪要。

常用代码审查工具

Crucible:Atlassian 内部代码审查工具;

Gerrit:Google 开源的 git 代码审查工具;

GitHub:程序员应该很熟悉了,”Pull Request” 在代码审查这里很好用;

LGTM:可用于 GitHub 和 Bitbucket 的 PR 代码安全漏洞和代码质量审查辅助工具;

Phabricator:Facebook 开源的 git/mercurial/svn 代码审查工具;

PullRequest:GitHub pull requests 代码审查辅助工具;

Pull Reminders:GitHub 上有 PR 需要你审核,该插件自动通过 Slack 提醒你;

Reviewable:基于 GitHub pull requests 的代码审查辅助工具;

Sider:GitHub 自动代码审查辅助工具;

Upsource:

JetBrain 内部部署的

git/mercurial/perforce/svn 代码审查工具。

代码评审内容

主要有编码规范问题、代码结构问题、工具、框架使用不当、实现问题、测试问题等。

编码规范问题:命名不规范、magic number、 System.out……

代码结构问题:重复代码、巨大的方法和类、分层不当、紧耦合

工具、框架使用不当:Spring、Hibernate、AJAX

实现问题:错误验证、异常处理、事务划分、线程、性能、安全、实现过于复杂、代码可读性不佳、扩展性不好

测试问题:测试覆盖度不够、可测试性不好

本文推荐使用Upsource (JetBrains 开发的一个代码审查、团队协作和项目分析工具)。其中Ideal集成Upsource使用步骤如下:

1、安装Upsource

点击File-》Settings-》plugins 搜“upsource integration”,并安装。

2、配置Upsource

在Connection,输入server url:服务器IP (Upsource服务器需要单独配置,具体可查阅相关文档进行配置,配置服务器不是本文关注的重点哦)

测试连接会弹出输入用户验证,如下图,我们输入用户名/密码登陆(用户名和密码是配置Upsource服务器时由系统管理员分配的,第一次会要求修改密码,按实际要求操作即可)

以上步骤操作完后,等待ldea 验证完成,选择Accept 同意。当出现测试连接成功提示!保存OK后,选择项目右键和Idea右下角会出现如下图标。

3、创建Upsource 仓库

登陆配置好的Upsource服务器,进入创建页面,分别填写需关联的项目名称、版本控制工具、代码仓库地址、登录仓库方式等信息。

点击测试连接

点击Create Project完成创建。

创建成功后,Upsource会自动拉取远程仓库代码。

回到IDEA开发工具,点击右下角的Rescan更新项目。

4、代码评审评注

选中需要评审的某行或某几行代码,鼠标右击,录入评审、点击ok提交。

提交完成后我们可以在IDEA和Upsource服务器看到项目的评注。

上述步骤完成后,各项目开发人员可根据具体评注进行修改,以达到代码审查的目的。代码评审工具只是辅助我们记录代码里潜在的风险,具体实施还需要开发人员进行代码优化和完善,使系统更好的服务于用户。

写在最后,多写代码,多思考,多喝热水,多锻炼!

好的代码是在一定代码量的基础上积累起来的,写的时候要多加思考,不能不知道自己在干什么。程序员长时间坐在椅子上,对脊椎伤害很大,脖子僵硬,建议多喝热水,多活动。写代码一小时就要停下来休息一下,走一走,动一动,多锻炼身体,身体是革命的本钱。

如何获取最新《阿里巴巴java开发手册》、《唯品会Java开发手册》、统一代码格式配置文件

vjtools-code-conventions-eclipse.xml和

vjtools-code-conventions-idea.xml资料?

资料获取方式:

关注+转发后,私信关键词 【资料】即可免费获取到!

重要的事情说三遍,关注+转发、转发、转发后再发私信,即可拿到!

关注【猿码天地】,做一个潮流的技术人!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
Slide
产品集

工坊

农业自动化

建站BOX

RNOS

小夕灯具

版权归属所有权©2024杭州软柠科技有限公司/主办上海枫汇网络科技有限公司。保留所有权利。

切换语言:/ EN

服务协议 | Cookie政策 | 服务条款 | 法律声明 | 浙ICP备2024117703号-2 | 浙公网安备33010802013612号 | 本站:沪ICP备2022008782号-7

你有新的私信

请务必要查看您的私信哟~~