5月 09

Code Health:Understanding Code In Review

Google的测试博客上,有一系列关于code review的文章,具体参见https://testing.googleblog.com/2017/04/code-health-googles-internal-code.html
By Max Kanat-Alexander
在code review时,经常会遇到代码作者比自己聪明的多的情况,从而造成看不懂他们的代码。
但实际上,如果代码理解起来很困难,也有可能是因为代码本身就太复杂了。如果你对某种编程语言比较熟悉的话,review优雅的代码应该和用母语读书一样简单。
继续阅读

3月 26

批量下载豆瓣fm中收藏的音乐

本人是豆瓣fm的忠实用户,听的音乐多了,收藏的也比较多了,虽然豆瓣fm的app中可以离线下载收藏的音乐,但是还是希望能把音乐下载下来放在别的地方播放,比如放在U盘里在车里听。
过程很简单,在chrome、或者firefox中分析豆瓣账号的登录过程,然后再获取到收藏的音乐列表,然后获取到资源地址,就可以下载了。过程分析完了,用代码实现出来就完了。主要的点有如下几个:
继续阅读

3月 23

Java int溢出问题

最近在测试代码时,发现一个bug,到测试的最后阶段才发现,比较容易忽略。记录下来,以自省。
简单说一下代码要实现的功能,一个函数,入参是一个整型数字lastTime,代表持续时间(单位是分钟);函数功能是要计算以当前时间为起点,lastTime分钟之后的时间点,封装成一定的数据结构返回出来。
继续阅读

3月 07

Http Mock服务

在项目开发和项目测试时,都会遇到不同项目、模块相互调用的情况,调用方式也有很多,通过http/https、TCP连接、RPC等;这样系统之间相互依赖,会影响开发速度,所以基本上都是采用mock的方式进行开发、测试,即先写一个符合预期的假接口,进行调用。
在github上看到一个挺不错的http mock server,这里简单介绍一下。
继续阅读

2月 26

jodd之Printf

在C语言中,我们可以使用sprintf函数来控制数字的显示。jodd在java中也实现了这个函数(还拓展了一些),其实在原生的jdk中,也有类似的实现,但是jodd的实现方法也值得学习一下。
Printf可以把一个数字格式化成我们期望的格式,就像C语言那样。如下面一些示例:
继续阅读

2月 24

jodd中的缓存

Jodd是一个开源的、轻量级的适用于web开发的工具集合。包大小只有1M,使用超级简单。其实jodd的文档写的不全,只介绍了一部分的功能,有些工具类没有介绍。在翻看jodd源码时,看到jodd封装了Cache,使用起来非常简单。在这里简单介绍下。

jodd的Cache类在jodd-corejar包中,实现的缓存有先进先出(FIFO)、最近最少使用(LFU)、最近最久未使用(LRU)、基于时间的缓存。
继续阅读

1月 05

protobuf概述

什么是protobuf

protobuf全称protocol buffers, 它是google为了序列化结构体而开发的一种跨语言、跨平台、可拓展的一种协议,类似于xml,但更小、更快、更简单。使用protobuf,只要定义了结构体,就可以使用生成的代码,去生成、解析结构体。 继续阅读

12月 17

Jodd之HTTP

Jodd提供一个很轻量级、原生的的http客户端,使用起来很简单、方便。它能很方便的发送和接收http消息。

Http Get方法

HttpRequest httpRequest = HttpRequest.get("http://jodd.org");
HttpResponse response = httpRequest.send();

System.out.println(response);

继续阅读

12月 09

jodd之JDateTime

JDateTime是一个非常简洁、友好、精确的处理日期和时间的工具。它使用定义明确、并且久经考验的天文算法来进行时间操作。觉得JDK提供的Calendar很难用的人,会觉得JDateTime使用起来很方便。

Julian day(儒略日)

儒略日(Julian day)是指由公元前4713年1月1日,协调世界时中午12时开始所经过的天数,多为天文学家采用,用以作为天文学的单一历法,把不同历法的年表统一起来。如果计算相隔若干年的两个日期之间间隔的天数,利用儒略日就比较方便。官方文档上有更详细的描述,http://jodd.org/doc/jdatetime.html
继续阅读

11月 18

计算两字符串的相似度

计算两字符串的相似程度

Levenshtein 距离,又称编辑距离,指的是两个字符串之间,由一个转换成另一个所需的最少编辑操作次数。
许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。
编辑距离的算法是首先由俄国科学家Levenshtein提出的,故又叫Levenshtein Distance。

相似度代码如下,一般来说相似度大于0.7就算比较高了 继续阅读