Tail call optimization in Scala

Recursion provides us an easy way to solve some problems, and makes the code simpler and easier to follow. But one problem of it is the memory cost caused by the recursive call stack, which could be critical for memory sensitive applications like mobile ones. [Read More]

MapReduce tuning

MapReduce is not a low latency computing model, minutes at least will go before we got the result. But this does not mean there's no way for us to make it faster. Combined with the nature of Hadoop, here are some solutions from different pespective. [Read More]

基于Sqoop和Hadoop的数据质量分析报告

一个系统的数据质量不高通常是软件本身做的不够好,数据从源头就出现了问题。为了能够持续归总interface数据质量报告,来完善系统流程,我们就需要定量定性的分析源头数据。但是在大数据量的情况下,如何实现高效有效的数据分析呢? [Read More]

Java深度克隆

在实际开发中经常遇到属性克隆的问题,比如在表现层提交的Request DTO,可能需要在控制层被映射成多个Java Bean,再传递到逻辑层来进行相应的业务处理,那么如何才能简单而又快速的完成属性克隆呢? [Read More]

用MapReduce来进行用户行为分析

在系统设计的时候,为了提高可用性,经常需要对用户行为进行分析,来持续完善系统。一个典型的场景就是分析用户的查询条件,根据操作习惯和规律来精简用户输入,让查询变得更简单更高效。那么对于这种场景,我们应该如何实现? [Read More]

基于Aviator的注解驱动验证框架

程序开发过程中,在同一系统中层层之间数据传递或者是异构系统之间同步异步通信的时候,我们经常需要对Java Bean进行属性验证,来决定是否继续后续process,或者直接抛出error message。EasyValidation是基于Aviator DIY的申明式验证框架,能解决传统解决方案存在的弊端与不足。 [Read More]