RubyOnRails究竟有多么的神奇?

pic alt

这篇文章讲的究竟是什么?

从Web框架的历史来说,为什么Rails是非常出色的Web快速开发框架!

涉及到的点有:

1.为什么要使用Web框架?
2.为什么要使用Rails框架?
3.什么时候该使用什么框架?

1.为什么要使用Web框架?

很简单,追求开发效率.来个场景说明一下:

我登录我的新浪weibo,查看我的私信,浏览别人的webo,然后删除我觉得不好的内容.

那,这个过程的本质是什么呢? 就是取来我的weibo数据和别人的weibo数据,接着对数据进行增删改查.对吧?

其实你仔细想想,这个过程和你所了解的Web开发没有什么关系嘛!

如果世界上每一个人都是程序员,只要个终端链接数据库select一下取出数据不就好了?

聪明的你显然已经看出来了,可以这么做,但并不是每个人都是程序员啊!所以,Web开发的程序员就是将这个过程美化成用户友好的网站,屏蔽了客户端的复杂度,降低了用户的门槛.

那么发展到现在,这种B/S的架构的东西就是

那么,关系到我们Web开发的程序员的问题就来啦!由于你需要将这些看起来神奇而又恶心的数据进行正常的处理.那怎么处理?

比如输出书籍(注:使用的是Python代码,其原理是一致的.)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

#!/usr/bin/env python

import MySQLdb
print "Content-Type: text/html\n"
print "<html><head><title>Books</title></head>"
print "<body>"
print "<h1>Books</h1>"
print "<ul>"

connection = MySQLdb.connect(user='me', passwd='letmein', db='my_db')
cursor = connection.cursor()
cursor.execute("SELECT name FROM books ORDER BY pub_date DESC LIMIT 10")

for row in cursor.fetchall():
print "<li>%s</li>" % row[0]

print "</ul>"
print "</body></html>"

connection.close()

这个脚本就是网站开发的原型(准确点就是动态网站的原型)

那么,现在有几个问题需要说明.

  • 现在仅仅是一个脚本运行,那要是多个用户查看,那数据库连接不就容易出问题了么?好,你另写一个函数进行控制数据库链接.等等!万一你要支持多数据库怎么办?你不想根据Mysql写一份sql语句,sqlite又写一份sql语句…..
  • 输出Content-type这种事情没必要让开发人员来吧?
  • 现在是Python/Ruby/Php代码中包含着html,如果页面进行修改怎么办?设计人员修改可还方便?
  • 有没有一些Web开发界非常常用的惯例和Hacks可以节省Web开发效率?

好,这就是Web开发框架解决的问题.框架屏蔽这些细节,使得你可以在相对短的时间里专注与业务代码.不纠结于一些细节问题.

那为什么要使用Rails?

因为生命短暂.
戳这里看更加详细的描述