weixin_42298440 2009-02-25 12:22
浏览 238
已采纳

RoR 新手解惑

本人一直对 RoR 很感兴趣, 以前一直只是看一些评论, 介绍等, 直到最近才正式开始学习 Ruby, 目前碰到几个问题, 希望得到各位的帮助:

  1. 关于 Ruby 的特性, 与其它语言 C#, Java, PHP, Python 相关有何优势?
    目前我仅了解到 module, mixin, yield, 在某些方面所带来的好处, 除了这些还有哪些特性是很重要的呢?

  2. 关于 Rails 中 ActiveRecord 的定义:
    [code="ruby"]
    class Product < ActiveRecord
    belongs_to :category
    ...
    end
    [/code]
    其中 belongs_to 是在类定义的块中, 那么它究竟是一个什么东西? 属性,方法的定义或调用?

  • 写回答

2条回答 默认 最新

  • xenocide 2009-02-25 16:10
    关注

    它是解释执行的,解释器读一行执行一行,你写完代码不用编译,不用重启服务器,马上就能看到结果;

    它是duck type的,你只需要检查对象是否响应一个方法,不需要检查对象的类型,写起来很灵活;

    用测试和契约代替类型检查,用validate代替外键约束;

    元编程能力很强,你可以动态的定义方法和对象,就像那行belong_to,它给Product类生成一系列方便的method,给你节省了很多定义DAO的工作;

    任何东西都是对象,集合和字符串操作简单又强大(做同样的事情,动态语言的代码总是短得多);

    贴近自然语言,而且更容易写出清爽的短句(也很容易写出让人看不懂的长句);

    语法糖让你可以少写很多不必要的标点符号……

    另外,我一直觉得ruby写view的好处是<% end %>比<% } %>好看……
    (<% } %>太难看绝对是jsp中各种模版层出不穷的主要原因……)

    不需要学各种设计模式,因为很多模式就蕴含在语言之中。

    缺点当然也不少,譬如比C慢很多,和windows之间有斥力等……不过开发速度的加快使你有更多的时间来优化代码,而且rails应用的运行速度绝对不慢。

    与其它动态语言比较,除去语法的那层皮和rails的光环,区别其实不大-_-

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效