基于Ruby On Rails开发高品质Web应用(1)

越来越多的企业开始挑选Ruby On Rails作为Web开发的框架,Rails在以前还是一些“轻量级公司”的选择。挑选Rails的原由,是由于它高速构建的才干,是由于它是Web开发的DSL。那么挑选了Rails就代表了“高效开发”呢?其中有哪些因素影响着Web应用的质量呢?

51CTO推荐专题: Ruby On Rails开发教程

MVC

我们都知晓Rails是一个MVC架构方式的Web框架,MVC各局部的职责也很清楚。但疑问在于我们能不能真的遵照了MVC架构方式做到了各局部职责的明白别离?能不能遵照了单一职责的准绳?

在大非少数代码内部,这种混沌不清的形态存在于model和controller之间:controller承当了太多本应由model承当的职责。其中比拟典型的例子是内嵌(多)对象表单。比如,Album和Photo之间是一对多的联系,我们要创立一个含有多个photo的album。在 Rails 2.3之前,我们能够会写出类似的代码:

    AlbumsController   def create  album = Album.new params[:album]  album.photos << Photo.new params[:album][:photo]  ... 

假设是一个触及更多品种型对象的表单,这里的代码能够会愈加庞杂。但在AlbumsController内部,我们真实想关心的只是Album的创立,而不是Photo或其它关联对象的创立。并且从Album的角度看,创立流程中photo跟其它attributes没有区别,应该得到一致地处置。Rails 2.3之后,我们就能够很容易地抵达这个目标。在Album内部做这样的声明:

    class Album < ActiveRecord::Base   ...   accepts_nested_attributes_for :photos  end 

然后,controller中的代码就能够被简化为:

    AlbumsController   def create  album = Album.new params[:album]  ... 

从这个例子中能够看到Rails在推进MVC三局部之间职责明白上所做的全力和提高。许多人能够会说,我们的代码没有这样的疑问。但MVC三局部之间职责开端模糊,往往出如今业务逻辑变得庞杂之后。我们应该经常审视我们的代码,做到真实的职责单一。

你在会议中吵架时,尼泊尔的背包客一起端起酒杯坐在火堆旁。

基于Ruby On Rails开发高品质Web应用(1)

相关文章:

你感兴趣的文章:

标签云: