`
ajoo
  • 浏览: 449837 次
社区版块
存档分类
最新评论

祝贺Guice拿了Jolt Award

阅读更多
我对计算机界的八卦一向都不太敏感,也对很多所谓的“名人”不感兴趣。你说那章子仪,Britney好歹还能拿脸蛋,衣服,和衣服里面的东西来娱乐大众,一帮不知道哪来的猥琐男就写了点谁都能写的程序,又不是证明了歌德拔河,也不是火箭科学,有什么好追星的?

所以对Guice拿了Jolt也是后知后觉。不过在知道Guice是打败了Spring拿到的奖的,还是颇觉得欣慰了一下。

要说Guice也不是多完美,很多功能的缺失还是对使用造成了些障碍的。所谓的“EDSL”,或者马丁嚼了嚼前人吃剩的东西再吐出来给大众继续啃的“fluent interface”,给测试,扩展和阅读稳当都造成了很大的麻烦。(我的jparsec, rparsec系列也可以自称是fluent interface,比如你可以说foo.many.map {...}之类的,但是它的每一步本身都具有完整的语义,而且都统一地是一个Parser对象,而不是额外引入乱七八糟古里古怪的中间类型。)

不过,你看跟什么比吧。这Spring,号称open-source,但是奉劝你还是闭着眼睛用,千万别好奇心起,往里面看什么代码。那设计,那代码,叫一个乱,真是让人不忍心看下去。

作者也是一根筋,遇着要客户扩展功能的,必然是弄个什么MyChitterlingAware接口,然后instanceof到处用,然后跑到文挡里一丝不苟孜孜不倦地加上一章“如果实现了MyChitterlingAware接口,那么你就会自动得到我的原始的带着消化系统鲜活气息的大肠一段”;然后整个系统中谁也不知道到底有多少XYZAware的special case。

遇着不同的目标场景,必然是弄一个子类,什么"ChitterlingApplicationContext extends ClassPathApplicationContext", "SpicyChitterlingApplicationContext extends ChitterlingApplicationContext",而且如果某个MyChitterlingAware对象需要从appcontext得到东西,必然是要实现一个BeanFactoryAware,然后再判断"instanceof ChitterlingApplicationContext"。最后弄了一个非常sophisticated的类继承图,显得好专业呀;

遇着逻辑分支,比如singleton与否,必然是一个"if (isSingleton()) {...}";

就算眼馋人家用java写配制可以重构,也还是脑子不带转弯地拿xml那套写JavaConfig,代码看上去还是xmlish,一点也不pojo;

所有OO初学者能干的蠢事,似乎都一五一十一板一眼地干了一遍。

那个,你要说了,那为什么人家那么成功?“一站式”啊,不管啥玩艺儿,一股脑都给你塞进来,这个主意还是很有市场的;“vendor lock-in”啊。这么多应用,这么多框架,都依赖于ChitterlingAware,你说你能想不干就不干了?“竞争对手实在不争气”啊,那个什么ejb,吓跑了多少“我其实就想写点程序呀”的程序员?

现在好了,终于有一个decent的DI framework并且能够不被劣币给驱逐了。无疑这个成功相当程度上得力于Google这个名字,谢谢,crazybob,谢谢,Google。

分享到:
评论
8 楼 qjzhyf 2008-03-17  
Guice?原来是和spring一样的框架啊?java里面的框架的确是非常非常的多,搞得现在太迷茫了。初学者都不清楚到底学哪一个好。
7 楼 ajoo 2008-03-16  
时间,让我们给Guice一些时间吧。它才1.0,后面的路还长着呢。webwork已经集成Guice了吧?随着功能的完善,会有更多优秀的框架选择和Guice集成的。它后面还站着一些相当不错的开发者,所以我一点也不担心Guice会取代逐渐没落的Spring。人生,不能总是到处发春啊。
6 楼 tiyi 2008-03-16  
guice还找不到应用到俺项目的理由……虽然俺是Z咖
5 楼 jfxia 2008-03-16  
Warp的资料太少,用的人更少。
确实值得关注,但不推荐应用。
4 楼 skydream 2008-03-16  
ajoo 写道
skydream 写道
spring的确是太庞大了点,感觉有点失控的意思。

对于某些只需要ioc容器和aop的基本运用来说,guice应该是个好选择。

只是真要拿到商业运用中就比较麻烦了,guice的名气和普及远比不上spring,说服manager接收和编程人员学习使用,障碍不少。

个人非常喜欢guice,或许和自己的喜好符合,我比较喜欢简单/优雅的东西,所谓simple is best。


难道google的adwords不是商业应用?不是大型应用?


我所说的商业应用是指我们这些程序员/设计师,在自己的工作中开发的应用。

在公司的现实运作中,推广一个新东西是很难的,对于guice来说最大的阻碍在于spring巨大的声望和广泛的应用,对于很多刚刚开始接受spring甚至只是为spring而spring的公司来说,使用guice替代spring是一个非常不可思议的话题。

三年前,我在一番探索之后,决定用webwork替代struts,就遇到过类似的问题。当然当时webwork对于struts还是优势很明显的,尤其我抗起方便单元测试的大旗后顺利过关。

可以想像如果今天,我将一份使用guice替代spring用于新项目开发的方案提交给manager,将会遇到什么?下面的两个问题是一定的:
1. 什么是guice?
2. 为什么不是spring?

我总不能回答说因为我个人喜欢guice胜过spring吧?
3 楼 ajoo 2008-03-16  
skydream 写道
spring的确是太庞大了点,感觉有点失控的意思。

对于某些只需要ioc容器和aop的基本运用来说,guice应该是个好选择。

只是真要拿到商业运用中就比较麻烦了,guice的名气和普及远比不上spring,说服manager接收和编程人员学习使用,障碍不少。

个人非常喜欢guice,或许和自己的喜好符合,我比较喜欢简单/优雅的东西,所谓simple is best。


难道google的adwords不是商业应用?不是大型应用?
2 楼 skydream 2008-03-16  
spring的确是太庞大了点,感觉有点失控的意思。

对于某些只需要ioc容器和aop的基本运用来说,guice应该是个好选择。

只是真要拿到商业运用中就比较麻烦了,guice的名气和普及远比不上spring,说服manager接收和编程人员学习使用,障碍不少。

个人非常喜欢guice,或许和自己的喜好符合,我比较喜欢简单/优雅的东西,所谓simple is best。
1 楼 robbin 2008-03-10  
这个消息固然可喜,但我觉得更可喜的是Google Guice的“一站式”解决方案已经出现了:Warp Framework,完全基于Guice的架构,向下封装了持久化层,向上提供了Web MVC层,有了这种一站式的框架,才能普及应用。

相关推荐

    guice.jar/guice.jar

    guice.jar guice.jar guice.jar guice.jar guice.jar guice.jar guice.jar

    Google Guice: Agile Lightweight Dependency Injection Framework

    * What the future has in store, including Guice IDE, the next Guice version and the standardization of Guice's concepts through JSR 299. * How you can build real world, Guice-powered web ...

    guice入门学习资料

    guice 学习资料,快速掌握guice的编程技巧以及了解其机制。

    guice-3.0-API文档-中英对照版.zip

    赠送jar包:guice-3.0.jar; 赠送原API文档:guice-3.0-javadoc.jar; 赠送源代码:guice-3.0-sources.jar; 赠送Maven依赖信息文件:guice-3.0.pom; 包含翻译后的API文档:guice-3.0-javadoc-API文档-中文(简体)-...

    guice-multibindings-3.0-API文档-中文版.zip

    赠送jar包:guice-multibindings-3.0.jar; 赠送原API文档:guice-multibindings-3.0-javadoc.jar; 赠送源代码:guice-multibindings-3.0-sources.jar; 赠送Maven依赖信息文件:guice-multibindings-3.0.pom; ...

    google guice基础例子

    Guice是Google开发的一个轻量级,基于Java5(主要运用泛型与注释特性)的依赖注入框架(IOC)。Guice非常小而且快。Guice是类型安全的,它能够对构造函数,属性,方法(包含任意个参数的任意方法,而不仅仅是setter...

    Guice用户中文指南

    Guice用户中文指南,Guice (读作"juice")是超轻量级的,下一代的,为Java 5及后续版本设计的依赖注入容器

    Guice_1.0_Manual.pdf

    Guice开发手册, Guice中文开发手册

    guice-3.0-API文档-中文版.zip

    赠送jar包:guice-3.0.jar; 赠送原API文档:guice-3.0-javadoc.jar; 赠送源代码:guice-3.0-sources.jar; 赠送Maven依赖信息文件:guice-3.0.pom; 包含翻译后的API文档:guice-3.0-javadoc-API文档-中文(简体)版...

    guice-2.0.jar

    guice-2.0.jar guice-2.0.jar

    google guice 3.0源码

    google guice 3.0源码,官方下载,帮助你更好理解google guice实现的原理

    guice-3.0.rar

    guice-3.0,轻量级IOC容器,包含guice-3.0.jar、guice-spring-3.0.jar、guice-struts2-plugin-3.0.jar

    guice-4.0-API文档-中文版.zip

    赠送jar包:guice-4.0.jar; 赠送原API文档:guice-4.0-javadoc.jar; 赠送源代码:guice-4.0-sources.jar; 赠送Maven依赖信息文件:guice-4.0.pom; 包含翻译后的API文档:guice-4.0-javadoc-API文档-中文(简体)版...

    guice-multibindings-3.0-API文档-中英对照版.zip

    赠送jar包:guice-multibindings-3.0.jar; 赠送原API文档:guice-multibindings-3.0-javadoc.jar; 赠送源代码:guice-multibindings-3.0-sources.jar; 赠送Maven依赖信息文件:guice-multibindings-3.0.pom; ...

    guice-assistedinject-3.0-API文档-中英对照版.zip

    赠送jar包:guice-assistedinject-3.0.jar; 赠送原API文档:guice-assistedinject-3.0-javadoc.jar; 赠送源代码:guice-assistedinject-3.0-sources.jar; 赠送Maven依赖信息文件:guice-assistedinject-3.0.pom;...

    shiro,guice集成

    shiro,guice集成,官方资料,精准全面

    guice超轻量级依赖注入

    guice超轻量级依赖注入用了才知道是爽

    基于guice的简单项目

    基于guice的HelloWorld项目, 内含需要的2个jar包, 直接复制到项目里面就可以用了

    guice-1.0.jar

    guice-1.0.jar guice-1.0.jar

Global site tag (gtag.js) - Google Analytics