这个题目对搜索引擎应该是比较友好的,虽然土了些。 PowerMock是个好东西,在某种程度上拯救了架构设计,使得我们不用过分考虑如何用复杂的架构设计来达到可以单元测试的目的。 Java里面如何使用PowerMock就不用多说了,随便google一下满屏幕都是,如果是同事还可以跟我要codekata的材料。但是这事儿换成Scala,情况就完全不同了。 首先要解决的问题是Scala用什么测...
Java调用Scala的一个真实案例
Scala调用Java,完全没有问题;但是反过来总有那么一点不爽,或者必须要修改。这里是项目中一个真实的案例,拿出来分享一下。 类型转换 1 2 3 4 5 object AsnLoader { ... def batchLoadFile(file...
单元测试拯救了架构设计?
经常听到这样一种说法:单元测试迫使你不得不进行仔细的架构设计。 这说法没错,如果没有好的架构设计,代码几乎是不能做单元测试的:到处都在new,静态方法随手调用,等等等等,如此这般。 但通常这样做的结果是引入了不必要的过度设计。本来new一个对象就用了,现在要做依赖注入,无论是用spring之类的基于xml的配置注入,还是guice那样的annotation注入,总之一但有了这些,代码几乎...
JRuby和Java的互操作
我试图让新的BL框架支持所有流行的JVM语言。Scala很简单,天衣无缝,但是Ruby和Python就比较周折了。不谈Python,先看看Ruby,确切地说是JRuby。 jrubyc可以把一个Ruby的class编译成Java的,看看下面的例子: Bar.java 1 2 3 4 5 ...
Java的范型方法
Java的范型一直让我头疼,也一直没仔细研究,总之感觉不好用。这两天折腾了一下,把范型方法整明白了。 一个简单的例子: 1 2 3 4 private static <T> T test(T a) { Person<T> p...
maven-assembly-plugin处理依赖的时候感觉不大对头
按照maven推荐的方式组装binary: 建一个子module packaging类型为pom 依赖需要被组装的子module true 但是在写assemble文件的时候,有个诡异的地方:似乎moduleSet的dependencySet并不是选择的某个module所依赖的。 比如有三个module: com.honnix.demo:...
对于cheater-node的总结——underscore篇
javascript确确实实是一个functional的语言,但问题是它本身并没有提供什么方便使用的库。不过还好我们有社区,有无数英雄们默默无闻地做贡献(眼泪花花儿的)。 介绍一下underscore。点过去看看就知道了,亲切得很。 安装很简单,直接npm就行了。不知道npm是什么的,或者google,或者参考这里。 虽然那里有无数的例子,但这里还是给一个吧: ...
对于cheater-node的总结——继承篇
javascript的对象模型诡异得很,我等半脑残几乎无法领会其精要,仅继承这件简单的事情就有无数种实现方法。不过既然用nodejs,就尽量按照它的标准来走。 Cheater这个类需要触发以及监听事件,所以需要继承EventEmitter这个类。 1 2 3 4 5 6 7 8 v...
对于cheater-node的总结——异步篇
之前也说了,开始玩儿nodejs,然后拿cheater下手。做得差不多了,总结一下。会有几篇单独的文章,省得看起来乱。 nodejs的基本思想就是异步,这对传统编程模型是彻底的颠覆。刚开始很不习惯,死得很惨,程序怎么都不按我想的跑。一个简单的例子就是http的request,调用不会等待response而是立即返回,然后通过回调函数处理response。 对于这种异步的模型,通常有两...
npm安装东西时候的困惑
不知道npm是什么的同学,自己google,提示一下,跟node相关。 npm安装分为两种,local和global,有什么区别这里说得已经很详细了:http://blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation/,我也就不再废话了。 只是有些东西还要解释一下。 刚装好npm的时候,我惊异地发现它所有的安装目...