|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
ruby里有这些工具吗?又要简单多少?我没有用过这两门语言,我估计在这些语言力没有很统一的这种标准,或者根本就没有提供。
愈来愈多的企业入手下手选择Rails作为Web使用的框架。Rails已经还次要是一些轻公司的选择,但明天一些“重”企业(好比保险、金融等行业的企业)也入手下手把Rails归入外部使用乃至内部使用的思索局限。我比来服务过的客户是外洋某年夜型保险公司,该公司就选择了Rails来创立他们的保险发卖网站。
选择Rails的缘故原由,是由于它疾速构建的才能,是由于它是Web开辟的DSL。可是否选择了Rails就代表了高效开辟?是不是在Rails上创立的Web使用就必定是高质量的?谜底是不是定的。从我介入过的几个Rails项目来看,质量可谓是乱七八糟,开辟速率也是判若云泥。而开辟的效力低下的缘故原由,则经常是使用自己质量的低下和计划的低劣。
在本文中,我将一一会商几个影响Web使用质量的要素。同时,我们也能够从中意会到Rails为创立高质量的Web使用所做的勉力、它的各类计划给我们的启发,和Rails3的改善所代表的意义和趋向。
MVC
我们都晓得Rails是一个MVC架构形式的Web框架,MVC各部分的职责也很分明。但成绩在于我们是不是真的遵守了MVC架构形式做到了各部分职责的明白分别?是不是遵守了单一职责的准绳?
在年夜多半代码内里,这类浑沌不清的形态存在于model和controller之间:controller承当了太多本应由model承当的职责。个中对照典范的例子是内嵌(多)对象表单。好比,Album和Photo之间是一对多的干系,我们要创立一个含有多个photo的album。在Rails2.3之前,我们大概会写出相似的代码:
AlbumsController
def create
album = Album.new params[:album]
album.photos << Photo.new params[:album][:photo]
...
假如是一个触及更多品种型对象的表单,这里的代码大概会加倍庞大。但在AlbumsController内里,我们真正想体贴的只是Album的创立,而不是Photo或别的联系关系对象的创立。并且从Album的角度看,创立过程当中photo跟别的attributes没有区分,应当失掉分歧地处置。
Rails2.3以后,我们就能够很复杂地到达这个目标。在Album内里做如许的声明:
class Album < ActiveRecord::Base
...
accepts_nested_attributes_for :photos
end
然后,controller中的代码就能够被简化为:
AlbumsController
def create
album = Album.new params[:album]
...
从这个例子中能够看到Rails在促进MVC三部分之间职责明白上所做的勉力和前进。良多人大概会说,我们的代码没有如许的成绩。但MVC三部分之间职责入手下手含混,常常呈现在营业逻辑变得庞大以后。我们应当常常审阅我们的代码,做到真实的职责单一。
<p>
j2EE和asp比较,其实也没什么比的,原因和我上面说那些比较差不了多少,也是稳定性,安全性,J2EE比asp高,速度上比不过asp,asp也是延续着它的拖拽控件的方法,提高速度。 |
|