BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / www-technology / #4112同步于 2008/9/7
WWWTechnology机器人发帖

[学习笔记]粗看了ruby on rail,瞎说说,纯粹找砖拍

wks
2008/9/7镜像同步0 回复
我看RoR也才两三天。什么都不会。这里只说说我对它的第一印象。 我想把ruby on rail跟django对比。它们都是基于model-view-control的网络应用程序框架。 RoR的特点是MVC紧耦合,和convention on configuration 说RoR紧耦合,是因为它常用的scaffold之类的设计方式。 这玩意儿会一下子生成一个model以及这个model的create-read-update-destroy操作的view和control。 然后基本的功能都有了。稍微改改就能用。很省事。 但是Django貌似极力强调MVC这3个组件的松耦合。 可以不用Model,甚至不用数据库都行, 也可以不用Django的template,改用jinja之类的东西。 也没有官方的Scaffold工具。毕竟Scaffold会一下子整合mvc。(有非官方的Django scaffold脚本可以下载到) 官方的教程就是教你怎么实现表单处理。 Convention on Configuration这个方面,ruby的做法是,让类、变量、符号、数据库、表、域等等的名字互相都关联起来。 如果表叫做categories,那么类就叫Category。 目录结构也是固定的,model就在/app/models里面,view就在/app/views里面。 还有control,helper也类似。 url设计,默认就是/object_id/operation这样的。虽然可以改。 Django都需要手动组合。需要用urls.py完全自己设计url,然后自己联系到相应的处理函数上。 目录结构相对自由,但是必须自己配置。 * 还有那个Template所在的目录居然是绝对路径,让我觉得怪怪的。好像跟整个工程都分离了似的。 另外,在数据库方面。 RoR需要自己用sql来建表(RoR2.0开始也可以自动生成表,不用自己写SQL), 然后用ActiveRecord派生一个名字符合convension的类,就可以适配了。 而Django则是先用django.db.models.Model类派生出自己的Model子类, 然后有Django全权负责数据库中的表。 其他方面 RoR有简单的函数来创造简单的Ajax应用。Django没发现这个功能。 RoR的表单处理似乎比Django华丽一些。有自己的服务器端函数生成控件,有点像ASP.net。Django的NewForm库刚刚在1.0更新。没仔细看过。 Django把一个Project划分成若干个Application,这样可以“即插即用”。RoR不了解。 RoR似乎网上的文档,比如教程什么的,虽然有,但是好多都严重过时;Django有官方的Tutorial。 毕竟他们都是这两三年刚出来的框架。 好了 我知道的就这么多。 拍砖吧
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。