欢迎来到天天文库
浏览记录
ID:33834008
大小:746.78 KB
页数:39页
时间:2019-02-28
《Ruby on Rails 实践.pdf》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、RubyonRails实践Java框架到底怎么了?如果你作为一个Java程序员从事j2ee开发的话,你一定会使用到众多应用程序框架。没有任何一个语言会象java语言社区那样活跃,任何一种新的程序理念都会很快在网上出现相应的开源实现。对应最常用的网站开发模式MVC,每一层都会有很多框架,Struts,Tapestry属于控制器层(C),Velocity框架属于视图层(V),你使用的数据持久层可能是Hibernate,iBatis,OJB,或者是JDO的众多开源实现中的任何一个,比如JPOX。但是你的选择太多,未必是件好事,并不是
2、任何人都能采用正确的框架来做正确的事情。如果你的开发平台是.net,那么你也许会避免这种情况,通常你只要安装一个VisualStudio.net作为开发工具,然后安装一个MSDN来查找资料就可以了。对于程序开发人员来说,这是非常两难的事情。我本人很喜欢Java,无论是学习还是实践,它的确给我们提供了很多。但是为什么我觉得.net那样“一站式”解决方案在很多时候是正确的呢?作为一个Java程序员,我觉得Java一些比较明显的问题,首先是Java太复杂,其次Java太面向程序员了,而不是面向用户。相对C++来说,Java已经很简单
3、了。现在Java程序员数量如此多就说明了这点。但是正如有人曾经说过的那样,“在linux上,你很容易区分出谁是高手”,在Java领域中就不那么容易了。我就经常发现身边的同事还在犯很低级的概念性错误,他们甚至在无法准确地区分什么是接口,抽象类和Servlet的情况下仍然可以从事多年的j2ee开发。但为什么又说Java复杂呢,因为它完成一件事情,需要太多不同的技术来实现了。这样对于那些概念不很清楚的程序员来说,你如何能保证他们作出正确的选择呢?而众多框架中有没有多少提供“一站式”服务的。最近冒头的Spring框架提供的服务在众多的
4、框架中算是最多的了,但是它又有个新问题,就是它还是太面向程序员了,而不是用户。为什么这么说呢?框架本来就是面向程序员的,这难道不对吗?Spring虽然提供了众多选择(但是还是不够多,它本身没有ORM),但它没有提供简单的使用方式,所以我们只能说它是面向程序员的。绝大多数java框架都存在这个问题,就是学习曲线比较高。我觉得学习曲线的高低是区分一个框架是否是面向程序员还是用户的关键,我想这主要表现在框架的易用性上。其实框架最终的用户还是程序员,之所以用“用户”和“程序员”来区分,是因为一些面向“程序员”的框架比较难以使用,虽然提
5、供了大量的基础设施和零件,但是还是要求程序员自己来组装。而面向“用户”的框架就简单一些,用户只要按照说明书来使用就可以了。为什么Rubyonrails会在Java社区引发轰动,我想原因就在于此,它提供了一个“一站式”面向用户的简单易用的框架,这是java框架所缺乏的。为什么Rubyonrails能做到这点,难道java本身做不到吗?事实是众多Java框架的设计者不这么做,可能是他们的思维已经限制在如何用模式设计一个好的框架上了,而没有在框架的易用性上做更多文章。使用过Spring的人就知道它的xml配置文件会渐渐的膨胀,虽然我
6、们很容易将其分解为更多的小配置文件来解决这个问题。但是在使用xml配置文件上,它沿袭了Java编程的习惯性概念:“Java是最好的编程语言,XML是最好的描述数据的语言,两者的结合是最完美的。如果一个应用不使用xml来描述,那么它就不是好的java应用”。但是rubyonraiils就是在这点上和众多java框架区别开来,才达到了框架易用性上的一次突破。这个思想贯穿了Rails设计的始终:习惯约定优于配置。举个例子,通常我们写javaweb应用程序,都会按照MVC来给对应类做区分,我个人喜欢将Controller类放在web目
7、录中,将View类放在view目录中,将model类放在domain目录中。但是不同的人有不同的设置,不同的命名,如何让框架知道这些不同的目录呢,java框架的解决之道,只能是通过xml配置文件让它了解这些信息。而rails的解决方式就是:目录结构我来定义,你只要在我定义好的目录中放东西就可以了。这也就是为什么rails中很少有配置文件(但不是没有)的一个重要原因。虽然思想很简单,但是它带来的好处就是,Rails的开发效率是java开发的10倍(这是rails的fans宣称的,不过我相信这点,相信看完这篇文章你也一定会的)。那
8、么光这点就能让rails开发比采用java更快了吗?不完全是这样,因为这还得益于rails的另外一个设计理念:更少的代码。并不是任何语言都能那么宣称的,rails实现这点完全得益于它的设计语言Ruby。使用Ruby你的确能用很少的语言写很多的功能,这是其他语言所无法实现的。想
此文档下载收益归作者所有