24 December 2014

前言

在学校时,在陈老师的指导下,做了一年的软件测试的研究之后,最大的收获就是:信息搜集能力变强了。由一个点扩展下去,进行 范式搜索。当初,决定从事Rails和web开发时,就对Ruby的web框架搜索了一番,发现了Rails,Camping; 时至今日,我看到了更多, 特别总结一下。

正文

起初,是看到这张图,萌生了想总结一下的欲望:

Ruby网站框架的组件
ruby在web领域相关的组件

:其中,我认为Web Layer层中,因该是ActionPack(包含ActionController和ActionView)而不是ActionController。

上述这张图,将web框架分隔成这样的几个组件: Web Layer, Templating, ORM , HTTP Client , Test framework , Web Server以及Rack。

以下,结合个人的搜集和整理(ruby方面):

  • Web Layer : ActionPack,Sinatra
  • Templating : Erb, Haml, Slim, Liquid, Markdown, textile
  • ORM : ActiveRecord, DataMapper, Sequel
  • HTTP Client: ActiveResource , RestClient , HTTParty
  • Test framework(Tests/Specs) : Test::Unit, RSpec , Shoulda, Cucumber,
  • Web Server : Mongrel, Thin, Puma, Unicorn以及mod_ruby
  • ruby的实现: REE, MRI, JRuby, Rubinuis
  • 以及Rack : 类似CGI,使用HTTP协议,提供通用的接口

关于web框架的组件分类,可以映射到其他的其他的脚本语言的框架,这样也起到对比学习的目的。

此外,时常看到,“Full Stack”web框架。Rails就是一个全栈式的web框架,Padrino是一个基于Sinatra的全栈式框架。但,全栈式意味着什么??不甚了解。

Sinatra本身足够轻巧,但是真正开发起来,确实少些东西。功能上,Padrino 介于 Rails 和 Sinatra之间。

Padrino相关的信息:

后记

留个Flag,以后,等经验充足了,再来研究这个话题。

参考文献

  1. Ruby社区应该去Rails化了



傲娇的使用Disqus