今天同事和我讨论他遇到的一个问题。具体要求是这样的,在运行时,我们会从模块G得到一个Map,这个Map里面都是一些字符串对,你可以理解成一个字典,有字符串的key和字符串的value。简短节说,就是
Map<String, String>
非常非常复杂深奥。
好,现在我们事先知道要从这个map里读取一些数据点,比如:id, name, sex等等。
对id,我们知道读出来的是int;对name,是string;对sex,应该对应一个叫Gender的enum类型。
这就涉及一个自动类型转换的问题。我们希望不用对每个数据点做手工类型转换。
另外一个需求,一些数据点是有缺省值的。比如n ...
工作中,和同事对测试异常的最佳方法产生了分歧。
我是比较欣赏JUnit4的@Test(expected=FooException.class)的啦,觉得这样多清爽啊,多declarative啊,再不用写那么一大坨try-fail-catch了。
不过同事(以下简称S)不这么认为。他觉得try-fail-catch挺好的,价格便宜,量又足,我们一直用它。而JUnit 4和TestNG提供的这个功能容易引诱程序员犯错误。
S给提出了一个挑战:
public void testDoSomethingBad() {
initializeSomething();
try {
...
- 21:56
- 浏览 (526)
- 评论 (0)
- 分类: I disagree
- 进入论坛
哎,一到下雪我就头疼。又得推着扫雪机吭哧吭哧扫雪。就说是三月学雷锋树新风,也不能总这样啊。妈的,还是住condo舒服,啥都不用干。住大房子?奉劝诸位还是等有钱养保姆,丫鬟,家丁了再说。
我对计算机界的八卦一向都不太敏感,也对很多所谓的“名人”不感兴趣。你说那章子仪,Britney好歹还能拿脸蛋,衣服,和衣服里面的东西来娱乐大众,一帮不知道哪来的猥琐男就写了点谁都能写的程序,又不是证明了歌德拔河,也不是火箭科学,有什么好追星的?
所以对Guice拿了Jolt也是后知后觉。不过在知道Guice是打败了Spring拿到的奖的,还是颇觉得欣慰了一下。
要说Guice也不是多完美,很多功能的缺失还是对使用造成了些障碍的。所谓的“EDSL”,或者马丁嚼了嚼前人吃剩的东西再吐出来给大众继续啃的“fluent interface”,给测试,扩展和阅读稳当都造成了很大的麻烦。(我的jpar ...
最近发现《Practical Ruby Projects》用rparsec来讲解怎么在Ruby里构建lisp。于是假公济私地用公司的账户订购了一本,也算给自己捧场。
书拿到,打开一看,好么,被批评了
引用Caution: For such an excellent library, rparsec plays very fast and loose with namespaces. Its parser classes are installed directly into root namespace. As a library author, try not to do this.
...
在1.4上,我最喜欢玩的是dynamic proxy。以前的那个Sum的“奇技淫巧”就人人喊打来着。自打不用担心对1.3, 1.4的兼容问题后,我发现我越来越爱拿着annotation的锤子到处乱砸了,而且是用reflection而不是apt。
给Guice加了一个@Provide的外壳:
class MyModule extends AbstractModule {
@Provide @Singleton
public Foo foo(FooImpl impl) {
return impl;
}
@Provide @LittleStrong
...
那啥?刚才说到哪了?“如云朵般的呵护”?下面谁说的?给我拉出去好好“呵护呵护”!
人家没那么说啦!讨厌!是刚才广告里说的嘛!我说刚才我们“俺摸”系列说到哪了?
对了,说到我们可以这么用PorkMockTest:
public class LionHeadTest extends PorkMockTest {
public void testHuoHou() {
LionHead head = mock(LionHead.class);
head.bite();
replay();
cook(head);
// 忘记吧,忘记吧。忘记 ...
猪肉炖粉:“那啥,猪哥啊,这两天你身价大涨,发了吧?忙啥呢?”
一只猪:“可不是!到哪儿都被采访,这名猪也有隐私权滴!最近特想过普通猪的生活。这不,洗尽铅华,老老实实地躲圈里整Java呢”
话说这Java的一级摸客(EasyMock),老猪最近用的满多的。在Java 4里面不忍卒睹的代码在java 5里面骤然变得性感许多。不过用的多了,也发现有些不方便的地方。最不爽的就是:俺老猪不是粗心吗?有时候不小心就会忘了EasyMock.verify()或者IMocksControl#verify()。
这一忘了不打紧,有些bug就藏在那,测试也过了,但是bug也没找出来。
有很多淫说这还不容易?用 ...
印象中,Spring就象上个世纪的产品。不论使用方便性和代码设计都相当20世纪。有了Guice,Spring似乎应该逐渐退隐,被遗忘于江湖了。我最近这个项目就是在从Spring往Guice移植。大家都很高兴终于不用在这个即将失事的火车上挤着了。一个哥们在白板上用红笔大字写上:“用xml写配制半点好处也木有!”。
然后就看到了Spring JavaConfig。和这个火药贴:
http://www.jroller.com/habuma/entry/guice_vs_spring_javaconfig_a
本来都对Spring失去兴趣了,不过看这么多人为之正名,于是就去看了一下。总的来说呢,眼 ...
为了响应伟大的“抵制中英文夹杂的资本主义不良思潮”运动,本文将全部用中文书写(代码暂时例外)。
最近工作需要,发现要写代码扩展“蛛丝”来实现一个春天遗留系统的移植。基本上就是围绕着春天的“应用上下文”和蛛丝的绑匪/模块来上下其手。
在测试的的时候,习惯性地选择用“简单摹客”来测试行为。摹客春天的应用上下文和豆子工厂真是简单啊:
ListableBeanFactory beanFactory = mock(ListableBeanFactory.class);
expect(beanFactory.getBeanDefinitions()).andReturn(beanNames);
...
- 浏览: 166640 次

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
动态properties转换 ...
引用 我的方案也差不多啦,IDE 里面 rename 一下,然后也只要改一处字 ...
-- by ajoo -
动态properties转换 ...
ajoo 写道对,也不算什么大优势啦。其实测试驱动已经很多时候让类型安全变得不那 ...
-- by Elminster -
动态properties转换 ...
引用 明白了。不过这个算不上什么优势吧?无非就是 id 对应的类型变了,测试代码 ...
-- by ajoo -
动态properties转换 ...
ajoo 写道引用明白了,type erasure 的泛型总是出乎我意料地弱 & ...
-- by Elminster -
动态properties转换 ...
维护有两种不同的问题: 一是代码非常赃,非常乱,copy-paste漫天飞,字符 ...
-- by ajoo






评论排行榜