Ruby 文章索引

  1. 1. 架构之美
  2. 2. 解决问题
  3. 3. 社区
  4. 4. 敏捷
  5. 5. RoR 文档索引

快速和简单是 Rails 的一项,但绝不是 Rails 最独特的一面。ASP.Net 的随意拖拽和最近的 Scaffold 也让其够快够简单。在 Rails 中体验更深的是那种社区反复在强调的设计哲学,DRY、CoC,REST,Agile。这些理念潜移默化的植入这个社区,在我看来,这才是我从 RoR 中最大的收益。

2011 年 4 月 26 日 10:49 @Weibo

起初的选择并不是 Ruby,相对于魔幻,我还是喜欢 Python 的简单唯一,写一些系统调度,便开始做 Web,用过 Django,Web.py,还有 Douban 的?我是个追新的人,也确实是因为 Python 3 的改动在语言语义方面做了很大进步,所以也不愿为了一些旧的插件换回到 Python 2.7,于是 Django 就一直挂在那里,后来勉强也用,感觉不爽吧,不是功能上的,而是语义上的,也说不明白的。

于是在某个下班后的晚上,开始看 Ruby on Rails,@老困 也在边上说,要不一起学这个吧,还能整出个什么东西出来。记得很清,在紫竹 5 号楼 4 楼,南面的落地窗外星光闪闪。这一试就爱上了,而且爱不释手。

架构之美

用过 Struts + Spring + Hibrinet 的人应该都感同身受,那种配置的复杂性,让人崩溃,回头看做过的项目,不难发现几乎全部的东西都是按一个模式来的,而痛苦的是要花在大量的时间来定义自己的这套模式。

Rails 就很简单,约定好就行了,是不是很打击程序员不驯的本性?哈哈。

然后就是 DDD 的开发模型,让业务领域模型更突显,数据库只是做为仓储,清晰易懂,本来在 xxx 笔下复杂的东西,在这里一下就显得格外明了。

都在谈 DRY,Java 社区很高调,C#社区也不示弱的用设计模式装点门面,但看下 ORM 在两大语言中的应用,Hibernate 是不是每次要写好 POJO,做好映射 xml,再建数据库? 就算后期用反射代替了 XML,还是有重复,改了这忘同步修改另一个所产生的问题太多,这就是重复。在 Rails 中,很 easy,Domain 就只定义在数据库。至于性能,仁则见人吧。但在技术和现实方面上,Rails 真的做到了。

解决问题

谈了那么多,语言,框架终究是为了实现目的,也就是个板斧。

1
2
$ rails new .
$ rails s

一个 APP 就 run 了起来,http://rubygems.org/ 上一堆的应用,不用写代码,配置下一个能用的小站就好了。在我高中时,这就能拿出去卖了。

大家都在谈 node.js,node 很好,只是被夸大了,你喜欢 Javascript 吗,连其父都不待见他,估计不是万不得已,不会说喜欢吧。再看下现状,让前端写出优秀的后端代码,通常来说,这个人一般公司请不起。Node 太年轻,语言真正的力量不在这个语言自身,而是其周边的环境,Python 之所以在系统操作方面声名远场,正是因为每台 linux 都预装,其针对系统方面的第三方库异常强大。不信,Mac 上预装 Ruby,而最好用的包管理器 Homebrew 就是用 ruby 来写的。所以相对于 Node,Ruby 不会过气。

社区

社区的气质决定了语言,语言又反作用于社区。有点扯,但就是这样认为的。Py 语言中每个功能都仅有一个方法来实现,所以企业喜欢,它能约束,但 Ruby 就很 Open,所以 DHH 选择后者,确实在 Web 方面,Ruby 天生有创新精神。还是看 RubyGems 吧。

敏捷

RoR 文档索引