论坛首页 编程语言技术论坛

是时候大举进军rails了。

浏览 31066 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-08-01  
fyol 写道
很奇怪的想法:
看到加入rails的大军,就想到了上海的公交车。
gigix等就像是车站向上推人的大叔,边推边说:向里走向里走,你看后面还有好多空呢
Robbin搞了一个座位,并且说,嘿嘿,你们最好都不要上来,我一个人坐最好。
然后有好多人已经站在门口,一边向里挤,一边嘟囔:不要再上了,已经满了呀
像我这样的就是:站在门口,向里张望,看还能不能进得去,这趟车好像是经过自己要去的地方,但还不确定

呵呵
0 请登录后投票
   发表时间:2006-08-01  
fyol 写道
很奇怪的想法:
看到加入rails的大军,就想到了上海的公交车。
gigix等就像是车站向上推人的大叔,边推边说:向里走向里走,你看后面还有好多空呢
Robbin搞了一个座位,并且说,嘿嘿,你们最好都不要上来,我一个人坐最好。
然后有好多人已经站在门口,一边向里挤,一边嘟囔:不要再上了,已经满了呀
像我这样的就是:站在门口,向里张望,看还能不能进得去,这趟车好像是经过自己要去的地方,但还不确定

一帮穷小子,还在挤公交...,偶起码还能座座偶的Java老爷车
0 请登录后投票
   发表时间:2006-08-01  
firebody 写道
没有什么可以疑问的,存在我的心中的仅仅是坚定的“决心”。


有项目做没啊?
0 请登录后投票
   发表时间:2006-08-01  
firebody 写道
没有什么可以疑问的,存在我的心中的仅仅是坚定的“决心”。

戴好钢盔和护甲,走好。
0 请登录后投票
   发表时间:2006-08-01  
上之海有二僧,其一贫,其一富。贫者语于富者曰:“吾欲之rails,何如?”富者曰:“子何恃而往?”曰:“吾一vi一firefox足矣。”富者曰:“吾数年来欲买Mac而下,犹未能也。子何恃而往?”越明年...
0 请登录后投票
   发表时间:2006-08-01  
Readonly 写道
fyol 写道
很奇怪的想法:
看到加入rails的大军,就想到了上海的公交车。
gigix等就像是车站向上推人的大叔,边推边说:向里走向里走,你看后面还有好多空呢
Robbin搞了一个座位,并且说,嘿嘿,你们最好都不要上来,我一个人坐最好。
然后有好多人已经站在门口,一边向里挤,一边嘟囔:不要再上了,已经满了呀
像我这样的就是:站在门口,向里张望,看还能不能进得去,这趟车好像是经过自己要去的地方,但还不确定

一帮穷小子,还在挤公交...,偶起码还能座座偶的Java老爷车

哦,为了照顾你们这帮仍然坚守java老爷车的同志们,偶们继续提供和完善JPA的支持,欧们的JPA产品近期也快要发布了,到时候,来捧个场,也权当作对java社区的贡献啊。

透露一点消息出来先: 参与开发RedSoft JPA产品的都是javaeyer,参与者如下:nihongye,buaawhl
0 请登录后投票
   发表时间:2006-08-10  
goncha 写道
use unix or die!

K,这位更看不起人了。

linux还为啥是ubuntu

目前单位用fc5,回家用ubuntu。。。
0 请登录后投票
   发表时间:2006-08-10  
反正我不赶这个摊。

我个人觉得ruby抢夺java市场,还差了点火候。
要达到“企业级”应用还差了点吧。

当然大家都学ruby,可以写ruby相关书的大人倒是高兴啦
0 请登录后投票
   发表时间:2006-08-11  
====
以下言论仅为我的对J2EE发展方向的个人看法,如果您持有不同意见欢迎一起讨论,说的不对的地方也请一并指出,不过我对非建设性意见会置之不理,更不想看到口水战,因为与其在论坛上唇枪舌剑,倒不如做点有意义有贡献的事情。谢谢。
====

我始终认为,要学习的不是Ruby和Rails本身,而是它将Internet Web应用原本简单的一面重新展现在叻J2EE社区前。我是个从asp/php学起internet web开发的人,我始终认为web的开发重点不在服务器端,而是浏览器端,是HTML/CSS/JavaScript的天下,至于你后台用的啥技术,根本无足轻重。可是绝大部分情况下人们将internet应用和企业内部使用的intranet应用混为一谈,才导致今天J2EE社区头重脚轻的一面。Intranet应用一般用于企业内部,要求数据必须一致完整,有严格的事务区分,对边界条件十分敏感,甚至狠多情况下可控制的资源有限,许多方法是不得已而为之。但是Internet应用更加注重页面表现,用户体验和开发的效率,资源完全受控,对数据的完整性并不十分敏感(涉及敏感数据如钱的应用除外),事务的处理也仅仅是一般的提交和回滚,边界条件不敏感。更加重要的是,internet应用暴露面太大,对于web请求传进来的参数更加敏感,甚至这种校验机制更多的时候是靠“面”而不是靠“点”,比如有人在论坛里疯狂灌水,好的论坛可以监测出这种情况,而按照一般思维设计的论坛就会完全想不到这种情况,因为程序员总是在关注怎样让用户成功发表帖子,而没有想过用户会刻意来捣乱。换句话说,我认为,Intranet应用重点考虑的是功能被正确地实现,Internet应用重点考虑的是功能被正确地实现且被适当地使用。差别就在于“被适当地使用”。

拿代码举例子,最常见的webwork一个做update操作的action:

public class TestUpdateAction extends ActionSupport implements Preparable {

    private Model model;
    private ModelService modelService;

    public String execute(); throws Exception {
        //重点关注这里,并没有做额外的set操作,直接update
        modelService.update(model);;
    }

    public void prepare(); {
        model = modelService.get(model.getId(););;
    }

}


这个action经过webwork的params, prepare, params三个interceptor,model对象已经是从数据库中取出的持久化过的对象,并且里面的值也已经被修改为叻用户输入过的,因此在execute()方法里不需要做setA, setB这样的赋值操作,只需直接update这个model对象就可以叻。J2EE程序员可能为为此拍手称快,说webwork真神奇呀真神奇,OGNL真爽呀真爽。可是在实际使用中,假如model里面有两个值,一个是用户自己的昵称,用户可以随意更改,另外一个是用户的登录名,注册时写死的,用户不能改。在页面上,表单里的<input>是这样:

引用

<!-- 假设这里的用户ID是1 -->
<input type="hidden" name="model.id" value="1"/>
<input type="text" name="model.nickname" value=""/>


此时提交表单,没有问题,model被顺利更改。在Intranet企业里,除非有特殊情况,一般是没有任何问题的,因为用户都狠乖,使用这个系统都狠小心,谁弄坏叻谁就会担责任(当然开发商也有责任),没有人从小到大玩过不会坏的玩具。可是在Internet上,就会有不少人这样发包来试探你:(简单起见用GET方法传参数)

?model.id=1&model.nickname=MyNewNickname&model.username=Haha

好么,连model里面的username属性也变成新的叻。这玩意儿可比SQL注入还厉害。有多大危害,我不必多说叻吧。这个程序部署在Intranet上,可能几个月也没问题(当然这么写程序的人水平也的确是忒差叻点)。但是在Internet上,这个问题绝对是高危问题。

在这里我只是举个简单的例子说明一下,并没有说webwork怎么怎么样的意思。所有的框架只是工具,就看你怎么用,工具不合手,要么换掉,要么稍微修改一下以适合自己,仅此而已,没有哪个工具好哪个工具差的说法。

回到原先的主题上,我想阐述的观点主要有以下几个:

1、我对现阶段所有的WEB开发技术都不满意,包括RoR。或者换句话说,如果说当年VB/Delphi/BCB是开发Windows程序的杀手锏,那么到现在为之,还没有WEB开发的killer技术产品。这个技术产品要明显复杂于之前的delphi之类的工具类IDE,因为它必须解决开发环境和部署环境的双重问题。在开发环境下,要能够提供对程序员最周到细致全面的API服务。而在部署环境下,又必须能够做到绝对稳定性能出众而且on-the-fly调试方便。当前所有的技术都仅仅只能解决其中一个方面,或者试图同时解决两个问题但是没有一个解决的完美。比如:

微软的ASP.NET,在IIS.NET的支持下可以提供部署环境,在VS.NET环境下提供开发环境。但是底子实在太差,因为服务器操作系统是Windows,不管它是2003还是Vista还是别的什么东西。

以前有个ColdFusion,没接触过,国内涉及的也不多,是个国外的商业产品,既然到现在都没普及,想必也不是理想的web开发技术。

PHP,至今仍然非常流行。PHP的性能虽然不算出众,但是跟linux/apache/mysql的配合的确是狠好地解决叻中小型网站的部署环境问题,虽然开发环境不甚理想,但是学习容易使用简单,深受广大业余编程爱好者和一些专业人士的喜爱。PHP现在逐渐被J2EE和ASP.NET双重打压的最根本原因我认为不是PHP本身在走下坡路,而是商业社会和人才市场决定的。当一个PHP程序员的工资只有一个J2EE程序员的工资的一半甚至更少时,我相信没有几个人会泰然自若守着PHP不妨,更何况程序员们本身就是自我学习能力和好奇心都特别强的人群。

J2EE。从一开始J2EE就是复杂、庞大、难学、臃肿的代名词,当然这里面EJB功不可没,但是即使拿开EJB不谈,J2EE与PHP相比也足够复杂叻。以前写PHP的程序员可能不会注意事务,但是现在写J2EE叻居然发现我用户看个帖子居然也要打开一个事务、提交一个事务,如果万一哪根筋不对叻还要回滚这个事务。于是乎大家觉得这样狠烦,就发明叻一系列的东西如spring啊transaction interceptor啊aop啊来实现声明式事务,于是大家拍手称快说哈哈真完美。我认为这就是J2EE的商业本质:有困难要上,没有困难制造困难也要上。虽然J2EE忽悠叻如此多的人、如此长的时间,但是不可忽视的有重要贡献的一面是它产生叻狠多品质优秀的开源产品,如Tomcat。有叻Tomcat这样的优秀web服务器,部署环境的解决就不愁叻。

于是RoR就坐不住叻,站出来说你丫把本来挺简单一事搞的这么复杂,看我的!于是大家转头一看,RoR好啊RoR妙啊RoR呱呱叫啊!
RoR里许多思想是非常先进的,学习借鉴的意义非常大。但是RoR仍然不够理想,原因有三。一是Ruby本身无法与Java这样的语言在商业上抗衡,非技术因素的力量不可小视。二是RoR的部署环境还不够成熟,需要时间的检验,这不是跑叻一年两年就可以说自己ready的事,跟流行的程度也有狠大关系,什么时候那些中小学生做网站第一个想到的是RoR,那它才算是ready叻。三是RoR的开发环境还不存在,最起码人家PHP有Zend官方的Zend Studio,用起来狠爽。写RoR应用还要到处找哪个编辑器好,有点太那个叻。不管怎么说,RoR是个值得关注的好东西,要学的不是Ruby语言本身、Rails里有几个tag几个参数可以用,而是它的思想,或者说的悬乎一点,服务程序员的态度。今时今日,像EJB那样的服务态度是行不通滴,程序员会找315投诉滴。

其它的一些框架,如基于Python的各种框架,FastCGI等等,不想过多讨论叻,成功的都只是个案,人家成功叻,背后一定付出叻狠多,只不过我们作为外人不知道而已。


总结下来,RoR是狠可能有前途的,J2EE是非常需要反省的,ASP.NET是在自己的路线上越走越远的,PHP是被人打晕叻不知道该怎么办的。

2、Java社区需要一个简洁明快的轻量级web开发框架,这个框架必须非常轻,不得步J2EE的后尘,必须专攻一个领域,那就是internet应用开发。GRails算是一个尝试,但是选择groovy我认为是个错误的路线,并且grails似乎打算在错误地路线上越走越远,当然这只是我的个人看法。我认为这个框架要想成功必须要学会聪明地借力打力,充分利用Java社区里现有的优秀资源,如使用Eclipse作为开发环境,使用嵌入式Jetty作为开发服务器,等等。但是与此同时,这个框架也不能仅仅是几个框架的结合,比如你把webwork/spring/hibernate/freemarker绑一起发布一个框架,没有任何意义,不解决实际问题,因为web开发的复杂度并没有明显地降低。RoR号称能比J2EE开发快10倍我认为不是RoR快而是本身J2EE太慢叻,活该被人家骑在头顶。这方面RoR有许多可以借鉴的地方,值得重点关注。

我现在有一个framework计划,打算在hibernate和freemarker这两个主要框架的基础上,提供一个能够完整的、高效的框架,这个框架的目标就是让Java开发者开发web起来觉得爽、简单,最后喊出一句“web的开发本来不就应该是这样嘛!”。而最终基于这个框架做出来的web应用,也是完全可以在部署环境下顺利运行的真实项目。

J2EE社区这几年经历的太多叻,从EJB到Spring,从JSP/Servlet到Struts再到Webwork,从Tapestry到JSF再到其它的N多框架,实在是有太多的选择叻。之所以存在选择,就是因为没有一个是完美的。即使是1年前对Webwork无比喜爱的我,现在对它也是报怨报怨加报怨。不是它的错,而是在像RoR这样的新技术的引导下,人们的思维发展叻,而且发展的太快叻。

最后总结一句,楼主的“是时候大举进军rails”在我看来,深刻的含意应该是“是时候与时俱进”,再深一点,那就是J2EE社区需要新的killer级框架。
0 请登录后投票
   发表时间:2006-08-11  
是等J2EE这只恐龙去整好容,还是立马娶了Rails这位ppmm呢?:P
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics