阅读更多

29顶
1踩

编程语言

原创新闻 祝贺Guice拿了Jolt Award

2008-03-10 12:28 by 见习记者 ajoo 评论(34) 有11601人浏览
我对计算机界的八卦一向都不太敏感,也对很多所谓的“名人”不感兴趣。你说那章子仪,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。

29
1
评论 共 34 条 请登录后发表评论
34 楼 leric 2008-04-03 13:30
我觉得楼下这位很**
33 楼 kkndone 2008-04-02 04:42
ibm,不靠软件赚钱,所以他们做软件只是玩票性质的,不象那些纯粹靠软件吃饭的机构。不过ibm的忽悠功力确实了得,eclipse,一个失败了的项目,扔给开源社区居然被被无数不懂java的领导当成宝供起来,下面的人也就傻忽忽的跟着用了,不傻的人也有,不过除非是牛牛,一般的民工也没有违抗领导的能力。

google和ibm是一路货色。

guide冠着个google的名号,却成为我拒绝使用的第一个理由。

第二个理由就是它的这些粉丝的态度,十足玉米的架势,说话尖酸刻薄,说自己的东西好就一定要把别人的东西说的一文不值。

当然我说话也不见得不尖酸,但这是力与反作用力的关系
32 楼 former 2008-04-01 14:37
框架无所谓,保证项目里的人都会用,成本低,风险小才是前提。spring2.5也不需要很多xml吧?
性能?对于我们这种大型B2B网站,应用服务器永远都是不忙的,有时间优化下Oracle是关键。
31 楼 hax 2008-04-01 01:25
我进来看了5行,心觉这不是ajoo的风格吗?抬头一看,果然是ajoo。看来我已经是纯青的ajoo fan了!
30 楼 abcx 2008-03-18 17:54
我对计算机界的八卦一向都不太敏感,也对很多所谓的“名人”不感兴趣。
------------------------------------------------------------------

就是,居然还有一帮猥琐男崇拜这些名人。
29 楼 manmoon 2008-03-13 12:48
很好很天真。
28 楼 fangzhouxing 2008-03-12 17:31
用jboss seam替换spring,没有dao,没有接口,简洁很多。
27 楼 lgx522 2008-03-12 15:20
java就是靠这些framework(包括EJB)火起来的,也正是被这些framework拖累得上气不接下气。
说句实在的,大多数项目其实用不着framework。为了要有“技术含量”,为了所谓“大项目”,我们说服自己,说服别人上了framework,结果......
26 楼 somebody 2008-03-12 12:16
引用

拿奖了有什么用?linux应该也拿了奖吧,但是大家不还是用windows。
实用为王。


我就不用windows.
觉得linux很好用。
25 楼 duooluu 2008-03-12 01:48
炒吧,死劲地炒!造神运动是在炒作中实现的
24 楼 rain999 2008-03-11 18:02
拿奖了有什么用?linux应该也拿了奖吧,但是大家不还是用windows。
实用为王。
23 楼 Frederick 2008-03-11 16:33
觉得sunlin 说得很有意思,也很有同感。
其实很多时候我们选择一个框架,不是为了它有多优雅,有多oo,而是它更适合我们的项目,让我们的开发更容易和快捷。那就够了。
guice刚出来的时候,我也很想用它来取代spring,但是发现要自己作太多的工作,而这些工作,spring都已经为我做好了。那为什么不用他呢?
guice我也会学,但是至少到目前为止,对于我们这些“我其实就想写点程序呀”的程序员而言,spring确实比guice要好。因为它实用。毕竟大牛不多见啊。

22 楼 lsk 2008-03-11 12:51
非要把spring和Guice比一下?
  聪明的人是在合适的情况下.用合适的框架.写出合适的项目,卖个合适的价格.
管他spring还是Guice
21 楼 murainwood 2008-03-11 09:24
Spring俨然是新的"EJB"了
20 楼 tedeyang 2008-03-11 09:01
论战无聊,有时间有才力写一篇扎扎实实的Guice和Spring的对比文章我是一定捧场的。
19 楼 Aspen 2008-03-10 23:31
Guice当然要拿奖,至少人家没有说EJB的不好.
18 楼 simohayha 2008-03-10 23:26
Guice貌似有本书要出版了..
17 楼 williamy 2008-03-10 22:17
如果一個di都能拿獎,我覺得這個世界太虛假了
既然他還真拿下了個獎
我只好說太虛假了
16 楼 ajoo 2008-03-10 22:16
引用
见习记者ajoo
?哈哈,发现家爱还是挺有幽默感的。
15 楼 sp42 2008-03-10 22:07
以前我们写代码不是行数越少越好的吗?
怎么这个“光荣传统”到现在好像没什么人说了?

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • sisu-guice-2.1.7-noaop.jar

    sisu-guice-2.1.7-noaop.jar

  • mybatis-guice

    这个是项目主要是演示mybatis集成google的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-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-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; ...

  • shiro-guice

    <groupId>org.apache.shiro <artifactId>shiro-guice <version>1.3.2 </dependency>

  • Guice依赖注入(Provider)

    本教程主要详细讲解Guice依赖注入中的Procider服务注入实现,一般都是用于外部服务的注入,比如实现Redis等。 基础环境 技术 版本 Java 1.8+ Guice 4.2.3 初始化项目 初始化项目 mvn archetype:...

  • Learning Google Guice

    谷歌Guice开发英文文档,很详细,对开发很有帮助,可当成工具书使用!

  • Guice集成Properties配置

    在大多数项目中我们经常会使用到读取配置文件,用于适配自定义的属性值等,本教程我们主要通过实现对Properties的解析实现基于Guice的配置解析Module. 基础环境 技术 版本 Java 1.8+ Guice 4.2.3 初始化...

  • 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-3.0.rar

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

  • guice-jersey:Guice模块,用于使用Jersey启动基于Jetty的休息服务器

    如果您使用Guice作为依赖项注入框架,并且想将自己的类注入到您创建的JAX-RS类中(例如“资源”和“过滤器”),则需要弥合这两个DI框架之间的鸿沟。 该模块旨在通过启动基于Jetty的Jersey服务器并初始化HK2与Guice...

  • sisu-guice-3.1.3-no_aop.jar

    sisu-guice-3.1.3-no_aop.jar

  • 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;...

  • guice-servlet-3.0.jar

    guice-servlet-3.0.jar

  • Java guice3.0轻量级的依赖注入框架 组件

    Java guice3.0轻量级的依赖注入框架 组件guice 是轻量级的依赖注入框架,依赖注入是类将他们的依赖声明为参数,而不是直接创建依赖的一种设计模式。

  • 基于springboot大学生就业信息管理系统源码数据库文档.zip

    基于springboot大学生就业信息管理系统源码数据库文档.zip

Global site tag (gtag.js) - Google Analytics