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

祝贺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

    Guice用户中文指南

    ### Guice用户中文指南 #### 一、简介 Guice是一个专门为Java 5及后续版本设计的超轻量级依赖注入框架。它旨在简化应用程序组件之间的依赖管理,并提供了一个更为简洁、灵活的方式来处理对象间的耦合关系。Guice的...

    guice-3.0.rar

    Guice-3.0是Guice的一个版本,包含了核心库guice-3.0.jar,以及与Spring和Struts2集成的扩展库guice-spring-3.0.jar和guice-struts2-plugin-3.0.jar。 1. **Guice核心概念**: - **依赖注入**:Guice的核心机制,...

    Guice 中文文档 例子

    **Guice 概述** Guice 是 Google 推出的一款轻量级的依赖注入框架,专为 Java 5 及其后续版本设计。依赖注入(Dependency Injection,简称 DI)是一种设计模式,它允许开发者在不直接创建对象的情况下,将依赖关系...

    基于guice的简单项目

    **基于Guice的简单项目** 在Java开发中,依赖注入(Dependency Injection,简称DI)是一种设计模式,它有助于降低代码间的耦合度,提高代码的可测试性和可维护性。Guice是Google提供的一款轻量级的DI框架,它简化了...

    google guice 3.0源码

    Google Guice,全称为GoogleInject,是一个轻量级的依赖注入框架,由Google开发并开源。Guice的目标是简化Java应用程序的构造和管理,通过自动装配对象依赖关系,让开发者可以专注于业务逻辑而不是对象的创建和组装...

    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文档-中文(简体)版...

    Google Guice: Agile Lightweight Dependency Injection Framework

    ### Google Guice: 敏捷轻量级依赖注入框架详解 #### 一、引言与背景 在现代软件开发中,依赖注入(Dependency Injection, DI)已成为构建灵活、可维护和可测试应用程序的重要手段之一。Google Guice作为一款100%...

    shiro,guice集成

    ### Apache Shiro 与 Guice 集成详解 #### 概述 在现代软件开发过程中,集成不同的框架和技术是常见的需求。Apache Shiro 是一个强大的、易用的 Java 安全框架,提供了认证、授权、加密和会话管理功能。而 Google ...

    guice超轻量级依赖注入

    Guice,全称为Google Guice,是一款由Google开发的轻量级依赖注入(Dependency Injection,简称DI)框架,主要用于简化Java应用的初始化和组件管理。依赖注入是一种设计模式,它可以帮助开发者解耦代码,提高软件的...

    google Guice 1.0 用户指南 中文

    "google Guice 1.0 用户指南 中文" Guice 是一个超轻量级的、下一代的、为 Java 5 及后续版本设计的依赖注入容器。它可以帮助 Java 企业应用开发社区解决连接对象方面的问题,例如 Web 应用如何访问中间层服务、...

    初试Guice测试文件

    【标题】: Guice框架初探与测试实践 在Java世界中,依赖注入(Dependency Injection,简称DI)是一种常见的设计模式,它可以帮助我们构建松耦合、可测试的代码。Guice是Google提供的一款轻量级的DI框架,用于简化...

    guice入门学习资料

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

    Google Guice需要的jar

    Google Guice是一个轻量级的依赖注入框架,由Google开发并维护,主要用于简化Java应用程序的构建和管理。依赖注入(Dependency Injection,简称DI)是一种设计模式,它可以帮助开发者减少代码间的耦合,提高代码的可...

    初试Guice(转)

    **初试Guice** Guice,全称Google Guice,是一款轻量级的依赖注入(Dependency Injection,简称DI)框架,由Google开发并开源。它主要用于简化Java应用程序的构造和管理,通过DI来解耦代码,使代码更易于测试、维护...

    Guice用户指南翻译

    **标题:“Guice用户指南翻译”** **描述:** Guice是Google开发的一款轻量级依赖注入(DI)框架,它使得Java应用的组件管理变得简单。依赖注入是一种设计模式,它有助于降低代码间的耦合度,提高软件的可测试性...

    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文档-中文(简体)-...

    google-guice用户手册

    ### Google Guice 用户手册知识点详解 #### 一、Google Guice 概览 **Google Guice** 是一个轻量级的 Java 依赖注入容器,它为 Java 5 及以上版本提供支持。与传统的对象创建方式相比,Guice 通过减少样板代码...

Global site tag (gtag.js) - Google Analytics