浏览 4066 次
锁定老帖子 主题:祝贺Guice拿了Jolt Award
精华帖 (5) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-03-10
所以对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。 ![]() 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-03-10
这个消息固然可喜,但我觉得更可喜的是Google Guice的“一站式”解决方案已经出现了:Warp Framework,完全基于Guice的架构,向下封装了持久化层,向上提供了Web MVC层,有了这种一站式的框架,才能普及应用。
|
|
返回顶楼 | |
发表时间:2008-03-16
spring的确是太庞大了点,感觉有点失控的意思。
对于某些只需要ioc容器和aop的基本运用来说,guice应该是个好选择。 只是真要拿到商业运用中就比较麻烦了,guice的名气和普及远比不上spring,说服manager接收和编程人员学习使用,障碍不少。 个人非常喜欢guice,或许和自己的喜好符合,我比较喜欢简单/优雅的东西,所谓simple is best。 |
|
返回顶楼 | |
发表时间:2008-03-16
skydream 写道 spring的确是太庞大了点,感觉有点失控的意思。
对于某些只需要ioc容器和aop的基本运用来说,guice应该是个好选择。 只是真要拿到商业运用中就比较麻烦了,guice的名气和普及远比不上spring,说服manager接收和编程人员学习使用,障碍不少。 个人非常喜欢guice,或许和自己的喜好符合,我比较喜欢简单/优雅的东西,所谓simple is best。 难道google的adwords不是商业应用?不是大型应用? |
|
返回顶楼 | |
发表时间: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吧? |
|
返回顶楼 | |
发表时间:2008-03-16
Warp的资料太少,用的人更少。
确实值得关注,但不推荐应用。 |
|
返回顶楼 | |
发表时间:2008-03-16
guice还找不到应用到俺项目的理由……虽然俺是Z咖
|
|
返回顶楼 | |
发表时间:2008-03-16
时间,让我们给Guice一些时间吧。它才1.0,后面的路还长着呢。webwork已经集成Guice了吧?随着功能的完善,会有更多优秀的框架选择和Guice集成的。它后面还站着一些相当不错的开发者,所以我一点也不担心Guice会取代逐渐没落的Spring。人生,不能总是到处发春啊。
![]() |
|
返回顶楼 | |
发表时间:2008-03-17
Guice?原来是和spring一样的框架啊?java里面的框架的确是非常非常的多,搞得现在太迷茫了。初学者都不清楚到底学哪一个好。
|
|
返回顶楼 | |