Springboot单元测试Junit深度实践

前言

单元测试的好处估计大家也都知道了,但是大家可以发现在国内IT公司中真正推行单测的很少很少,一些大厂大部分也只是在核心产品推广单测来保障质量,今天这篇文章就是介绍下单测的方法论和如何在Springboot中解决类之间的依赖来实施junit单元测试。

先来他轮下大家不做单元测试的原因:

  1. 产品经理天天催进度,哪有时间写UT。
  2. UT是测试自己的代码,自测?那要QA何用?
  3. 自测能测出bug?都是基于自身思维,就像考试做完第一遍,第二遍检查一样,基本检查不出什么东西。
  4. UT维护成本太高,投入产出比太低
  5. 不会写UT

只有真正尝到UT的好处的甜头才会意识到UT的价值。

其实这篇文章[……]

继续阅读

给Confluence页面或博文中代码添加高亮

写技术类文章中常常会写一些代码,比如示例代码,Linux命令等,给代码添加高亮显示,可以美化文章,便于代码阅读。下面介绍,如何给代码添加高亮。

打开选择宏页面

点击下图中”+” → 其它宏,或按下Ctrl+Shift+A,显示选择宏页面,在搜索框输入“code”,点击“代码块”

打开“插入‘代码块’”宏

在“插入‘代码块’”宏页面,选择代码语言,比如Java,还有一些其它选择,点击“插入”按钮。然后插入代码,即可。如下图。

插入代码

Java代码显示示例

[……]

继续阅读

VMware NAT模式网络连接修改固定IP和上网设置

VMware使用NAT模式网络连接,默认IP是DHCP方式获取。

如果修改成固定IP后,就不能访问外网了。可以进行下面设置解决这个问题。

首先,查NAT模式网关如下图,网关是:192.168.233.2,添加到虚拟机的网络配置中

IP设置加入网关

在/etc/resolv.conf中加入下面内容

重启网络后,就可以访问外网了

[……]

继续阅读

远程办公之左思右想

1、沟通

远程办公影响工作效率很大一方面是沟通成本提高了。
视频音频会议:要尽量短(比如一般不超过30分钟),会议之前确认主题和发言内容,做足功课了,开会时能更好的有的放矢,高效的达成一致观点,提高效率。
沟通交流:表达观点要简洁明了。

2、任务

任务分解要尽量详细,便于开展时沟通和跟踪。
有时候分配到自己的一项任务,需要一段时间完成。这时候就需要自己把这个任务拆分到每天要完成的事项,而且遇到问题影响进度时要及时反馈,阶段性成果要及时给干系人演示、汇报等,保证自己的工作是在正确的方向上进行。

3、自律

远程办公需要好的自律性。
家里一般是舒适的环境,和工作环境有很大的区别[……]

继续阅读

Apache Beam的KafkaIO与Flink实战实例详解

Apache Beam简介

Apache Beam是大数据的编程模型,定义了数据处理的编程范式和接口,它并不涉及具体的执行引擎的实现,但是,基于Beam开发的数据处理程序可以执行在任意的分布式计算引擎上,目前Dataflow、SparkFlinkApex提供了对批处理和流处理的支持,GearPump提供了流处理的支持,Storm的支持也在开发中。

综上所述,Apache Beam的目标是:

提供统一批处理和流处理的编程范式
能运行在任何可执行的引擎之上

为无限、乱序、互联网级别的数据集处理提供简单灵活、功能丰富以及表达能力十分强大的SDK。

在本文章中,将详细介[……]

继续阅读

Centos7下gitlab的安装步骤详解

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。

1. 安装Gitlab

1.1. 新建tsinghua.repo

vim /etc/yum.repos.d/tsinghua.repo

输入以下内容

[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1

1.2. 缓存相关包

yum make[......]

继续阅读

Redis集群安装文档

安装java环境

rpm -ivh jdk-8u112-linux-x64.rpm

配置环境变量

JAVA_HOME=/usr/java/jdk1.8.0_112
JRE_HOME=/usr/java/jdk1.8.0_112/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME

安装redis

下载redis并解压

cd /data/cluster/redis/
mkdir download
cd download/
wget http://download.redis.io[……]

继续阅读

使用Markdown快速书写技术文档

背景介绍

在设计和开发公司某项目的过程中,通过与同事交谈,了解到目前使用Word作为主要的技术文档制作工具,有以下使用难点

  1. 排版困难,比如:标题、有序列表的调整,都很繁琐,效率低
  2. 格式方面,比如:给代码加语法高亮,Word支持很差。如果截图贴到文档里,易用性、可编辑性都比较差

针对上面的痛点,现在更流行使用MarkDown来书写文档。再配合一些编辑器(比如:Typora),可以很好的解决上面的问题。

Markdown简介

Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。

Markdown具有一[……]

继续阅读

对研发团队里技术分享的一些思考

本文来自: https://www.iteye.com/blog/aoyouzi-2342659

分享目的

做任何事情,要明确目的,才能清晰、顺利实施。目的包括这件事能帮大家带来什么、能给公司带来什么、预期结果是什么、成长又是什么等等。我从公司、团队、个人三个维度,总结了以下五点目的。我会对每一个同事讲述这五点目的,确保大家目标一致:

  1. 学习新知识,完善自我体系
  2. 提升沟通能力、表达能力、自信
  3. 有效提升工程师在专业领域的经验
  4. 解决工程师最常见问题——技术瓶颈
  5. 项目技术推进,如框架、性能、工具等

需要让所有参与人明确分享目的,特别是新人,不要只关注自己付出的代价 , 以及计算别人分[……]

继续阅读

ExecutorService的正确关闭方法

转自:https://blog.csdn.net/xueyepiaoling/article/details/61200270

虽然使用ExecutorService可以让线程处理变的很简单,可是有没有人觉得在结束线程运行时候只调用shutdown方法就可以了?实际上,只调用shutdown方法的是不够的。我们用学校的老师和学生的关系来说明这个问题。

shutdown只是起到通知的作用

我们来假设如下场景:
学校里在课上老师出了一些问题安排全班同学进行解答并对学生说“开问题解答完毕后请举手示意!”
如果有学生解答完毕后会举手对老师说“老师我做完了!”,如果大家都解题完毕后上[……]

继续阅读