
代码质量
尘世间一名迷途小码农
热衷于用技术思维去解决问题,厌恶低效,热衷自动化和智能化,释放人的创造性。
InfoQ博客:www.infoq.cn/u/justyman
展开
-
【DevOps】我们忽视了Daily Build(每日构建)吗?
一、什么是Daily Build?每日构建,简而言之就是每天把当前最新的代码集合拉取下来,然后进行编译构建并进行自动化的冒烟测试,然后通过某种形式把构建结果进行系统性展示给相关干系人。这是持续集成的其中一项最佳实践,最早出现在微软,我个人认为这是放之四海而皆准的一个原则,只是不同公司的实际操作会有异同。它的目的不是在于减少构建失败的次数,而是要尽早发现问题,降低解决问题的成本。二、为什么要做Daily Build?1、可以让同事从日常工作中养成质量意识。为什么会这样说呢?实际上我翻阅过.原创 2020-08-15 18:30:57 · 3191 阅读 · 0 评论 -
【DevOps】Jenkins持续集成流水线(中)
目录前言一、集成静态代码扫描工具(FindBugs)二、集成自动化单元测试(Jacoco)1、前置条件三、集成代码质量管理平台(SonarQube)前言承接上一篇:Jenkins持续集成流水线(上)当我们的持续构建流水线的基本骨架构建完毕后,接下来我们要集成单元测试覆盖率(Jacoco)、静态代码扫描工具、及代码质量管理平台(SonarQube),通过一键构建并生...原创 2020-08-01 23:22:02 · 963 阅读 · 3 评论 -
【DevOps】YAPI接口管理平台使用基础入门(一)
一、前言上篇:API接口管理平台YAPI的搭建之前已经写了一下YAPI平台的大致搭建步骤,这篇写一下大致的用户配置等功能(实际上YAPI安装完后也有个教程,它那个绝对全面),但是我看了一圈,觉得有点别扭。如果从一个团队引进来YAPI后如何在配置的角度看的话,我感觉它的脉络有点绕,因为它是基于功能点去展开的(个人看法而已)。因此,为了让自己快速了解如何帮一个团队进行配置,我这里尝试...原创 2020-05-03 15:22:58 · 1826 阅读 · 0 评论 -
【DevOps】API接口管理平台YAPI的搭建
一、YAPI简介二、YAPI安装要安装YAPI,需要一些前置条件,即需要安装git、nodejs(7.6+)、mongodb(2.6+)。好,接下来我们一步步进行安装。1、nodejs的安装:# 获取资源[root@centos7a justyman]# curl -sL https://rpm.nodesource.com/setup_8.x | bash...原创 2020-05-01 22:58:49 · 1780 阅读 · 0 评论 -
论如何优雅的消灭If-else
前言看到项目代码中有N多“If..else”,对于一个代码洁癖患者来说是非常不舒服的,同时我觉得写出优雅的代码是可以提升程序猿的工作满意度。这次我就把我之前做法及网上的一些做法做一个汇总,以备后续参考。丑陋的代码Animal animal = new Animal();if ("monkey".equals(animalType)){ animal.setFeet(2...原创 2020-04-09 22:55:02 · 1183 阅读 · 0 评论 -
读书笔记:Google软件测试之道【三】
目录1、测试规模分类2、测试规模的优缺点3、测试认证1、测试规模分类在Google里面,测试分为以下三种:小型测试小型测试是为了验证一个代码单元的功能,一般与运行环境隔离,它是不需要依赖于外部,一般集中于函数级别的测试,即我们平时所说的单元测试。中型测试中型测试主要是验证两个或以上模块或应用间的交互,它一般通过mock对其他外部环境进行隔离,即我们平时所说的“集...原创 2019-12-22 13:01:56 · 317 阅读 · 0 评论 -
读书笔记:Google软件测试之道【二】
目录1、“乌托邦式”软件开发过程2、SET的工作1、“乌托邦式”软件开发过程在理想的情况下,TDD模式先行,即在代码编写前开发人员会构思好整个代码逻辑并编写成伪代码(当然伪代码中包含了数据取值边界,循环嵌套,异常处理等情况),然后根据伪代码编写单元测试脚本,最后根据单元测试脚本编写业务代码并运行之。最后,如果运行通过则大功告成,一切美妙而顺畅,我称之为“乌托邦式”软件开发。在这...原创 2019-07-27 17:10:49 · 303 阅读 · 0 评论 -
读书笔记:Google软件测试之道【一】
目录前言1、Google软件测试介绍2、角色3、分工4、组织架构5、版本前言 在职业生涯的头6年,我对所谓的测试策略、测试组织架构了解甚少,也不知道谁对谁错。我知道的事情只有一个:我是一名程序员,我的日常工作除了做需求分析和代码开发以外,我还需要做单元测试(数据准备、案例编写和测试报告撰写)、SIT测试(数据准备、案例编写和报告撰写)及UAT测试支持(数...原创 2019-07-06 22:16:36 · 642 阅读 · 0 评论 -
【DevOps】Jenkins集成FindBugs
1、前言 当整体CI流水线搭建完毕后,接着需要针对持续构建的环节进行细化,如在构建前需要触发PMD扫描进行Java源代码中的潜在问题检查,如在编译后需要触发FindBugs扫描进行编译文件(.class)进行扫描。 另外,Warnings Next Generation Plugin是一款jenkins的插件,它内置了很多的静态代码检测工具,有了这个我们可以很方便的...原创 2019-05-18 22:50:14 · 1939 阅读 · 0 评论 -
【DevOps】GitLab的权限管理及Merge Request
目录1、前言2、角色权限3、强制代码审查一、设置受保护分支二、创建及批核Merge Request三、历史查询1、前言团队目前在日常开发工作中都是在线下进行代码审查,但是这样的模式根本无法做到过程留痕。因此,需要使用GitLab的Merge Request或者Gerrit这样的工具进行过程管理。这里详述一下如何通过Merge Request进行线上的代码审查。2...原创 2019-06-09 12:40:30 · 28631 阅读 · 0 评论 -
Maven项目与Jacoco覆盖率插件的集成
【初稿】前言步骤1、Maven集成Jacoco和Junit插件。步骤一:在 pom.xml中引入Jacoco与Junit依赖。<dependencies> <dependency> <groupId>org.jacoco</groupId> <artifactId>jac...原创 2019-04-09 17:35:32 · 6226 阅读 · 0 评论 -
SonarQube 指标定义
目录前言复杂度(Complexity)覆盖率(Coverage)重复(Duplication)问题(Issues)可维护性(Maintainability )可靠性(Reliability)前言 由于团队开始使用Sonar并且要确定对应的度量指标,因此为了方便查阅,特把Sonar官方文档中的指标翻译成中文。由于本人水平有限,翻译仅供参考。复杂度(...原创 2019-03-23 21:11:51 · 19489 阅读 · 8 评论 -
基于SonarQube的增量代码扫描
# 本方法源自赜爷指导目录前言画基线设置并运行前言 很多团队刚开始推行使用SonarQube进行代码质量管理的时候总会遇到一个揪心的问题:因为很多旧项目之前压根就没用这套工具,团队一上来兴致勃勃的就拿着这个工具跑指标,新鲜感很强,毕竟人是好奇的动物。然鹅,几分钟后的结果却是意料之外:几乎接近于0的测试覆盖率,几千上万个bad taste、bug和漏洞等等不一而足...原创 2019-03-17 09:42:34 · 12605 阅读 · 20 评论 -
代码质量管理平台SonarQube安装、配置及集成Jacoco方案
目录1、SonarQube简介1.1 介绍1.2 使用范围1.3 工作原理1.4 扩展性2、SonarQube安装、配置2.1 前置条件2.2 配置工作3、Sonar Scanner安装、配置3.1 配置工作3.2 运行4、Jacoco、maven与SonarQube的集成4.1 前置条件4.2 配置工作4.3 运行5、结束语1、...原创 2019-02-26 00:02:54 · 5988 阅读 · 2 评论