Ruby提供的三大改进?

时间:2009-11-09 21:13:31

标签: php ruby

当我学习HTML时,我喜欢构建页面并按照我想要的方式安排所有内容的方式。

然后我转到CSS并了解到您可以快速交换设计而无需重新编码页面。只需几次CSS更改,您的HTML设计就可以从一个主题转到另一个主题,任何元素都可以成为任何其他元素!使用CSS,我可以设计看起来像图像的跨度!

从HTML迁移到CSS扩展了我的设计概念,实现了我后来学到的模块化事物 - 就像MVC一样。

我现在是一位非常称职的PHP程序员,正在考虑Ruby。我在google上提取的大部分内容都是PHP vs Ruby rants,它们并没有真正帮助我们。它们是两种不同的语言,从不同的角度来看它们的风格。 PHP看起来像C ++ strlen($string),而Ruby看起来像服务器端JavaScript。 str.len()

我想知道关于红宝石的前三件事情,它可以让我作为一名程序员真正打开我的眼睛,并证明我知道它需要时间来拾取并掌握一门新语言。

  

请不要提及抽象的东西   喜欢语言成熟,或者显而易见   图书馆就像AR一样存在于两者中   语言。

     

现在几乎每个网站都使用MVC   编程语言,所以它没有   算一算。它也不是   足够的自我   涵盖一切。 MVCLLCC   (模型/视图/控制器/库/地点/缓存/配置)   更准确。

:UPDATE:

显然,与我使用的其他语言相比,Ruby中没有太多新内容。块似乎只是具有不同名称的函数。 procs似乎是带回调的块,就像一个钩子系统。 MVC,AR和其他所有语言已经在其他语言中。

但是,我相信我看到的最令人兴奋的事情是你可以在运行时打开类并添加新方法!这是一个非常重要的概念,真正消除了PHP的一些障碍。您不再需要扩展子类只是为了向父类添加一些方法。

9 个答案:

答案 0 :(得分:4)

嗯,你删除了一些使Ruby非常有趣的东西,所以我认为任何剩余的列表都会有点武断。这就是认为Ruby比PHP更好的原因:

  1. 一致性:在Ruby中,所有内容都是一个对象 - 偶数。你以同样的方式在一个对象上调用一个方法 - 实际上没有任何“特殊情况”。此外,标准库(以及大多数第三方库)具有一致的命名方案和样式。 PHP库已经增长...... 有机,因此,名称,下划线的使用等是混乱的。
  2. 功能样式编程:Ruby从Lisp等函数式语言中借用了许多构造。这是一个非常随意的原因,但我喜欢函数式编程,因此可以轻松访问Lisp和Haskell中的mapfold*方法等函数。它还大量使用块(也称为“闭包”),它不仅开辟了一些非常好的编程风格,而且还允许您编写一些非常通用的代码,可以根据您的需要以非常具体的方式使用。 / LI>
  3. 真正的OOP: Ruby的OO模型大量借用Smalltalk,并使用消息传递样式而不是方法调用样式。这可以让你做很酷的事情,比如为丢失的方法实现自己的处理程序。 Ruby本质上也是动态的,因此可以在运行时动态定义方法 - 甚至整个类。您还可以“打开”课程并提供自己的方法,这可以省去自己的麻烦,例如,扩展String课程只是为了添加rot13方法。
  4. RubyGems: RubyGems是Ruby gems(第三方Ruby模块)的包管理器。它使安装,管理和删除第三方模块(及其依赖项)变得轻而易举。 (我把这个作为奖励理由扔了。)

答案 1 :(得分:3)

  1. Lambdas(街区)。
  2. 混入。
  3. 在标准库中大量使用上述两个概念。
  4. 我也会提名延续(callcc),但它们似乎相对模糊(很遗憾),并且在1.9中消失了。

答案 2 :(得分:2)

我喜欢Ruby的三大优点:

  • 阻止和触发
  • 元编程
  • 可枚举的模块(吨令人敬畏的数组好东西)

很难在3点停下来,但也许其他人可以增加更多。

最好的事情是为自己尝试一些代码。祝你好运,玩得开心。

答案 3 :(得分:1)

至少有一个适用于我的理由(也许你也是这样):ruby处理面向对象编程的方式在我对编码和体系结构的思考方面已经“释放”了很多。 Everything 是一个带红宝石的对象......

答案 4 :(得分:1)

  1. Ruby读写很有趣
  2. 积木更有趣
  3. RUBY只是纯粹的乐趣
  4. 我想试一试。我曾经是PHP编码器,然后切换到Ruby,从不回头。唯一的缺点是PHP中的文档明显更好(我甚至会说PHP有最好的文档之一)

答案 5 :(得分:1)

以下是我非常喜欢的三件事。 我不会谈论语言本身,而是谈论我喜欢的红宝石世界。

  1. 测试

    有很多框架可供使用。如果发现它们很简单。比我在JAVA尝试的任何东西都容易得多。 ruby社区非常以测试为中心,您可以找到非常好的截屏视频和教程来帮助您入门。 它改变了我编码的方式。

  2. 滑轨

    我相信我开始了(似乎很久以前:))。使用Html +表格然后是CSS然后是PHP等。 2年前我发现了Rails。我真的认为这是一个了不起的框架。 从我的角度来看,如果你进行Web开发,它是迄今为止最好的。

    我很好奇所以我看过其他的东西,比如django,CakePHP,Zend等,但我找不到像rails一样好的东西。当然这是一个品味问题,但我强烈建议你尝试一下。

    Rails不仅仅是一个MVC。这是一个易于使用的MVC。

    Ruby!= Rails。 但是,随着Rails

  3. ,Ruby的受欢迎程度大幅提升
  4. 可读语法

    exit unless "restaurant".include? "aura"
    

    您可以尝试this interactive online tutorial(15分钟),看看您是否喜欢这种语法。

答案 6 :(得分:1)

  1. Ruby是一种通用脚本语言,已被整合到网页设计中,PHP是一种用于网页设计的语言。 (这不是赞成或反对,只是澄清一点)
  2. 如果您已经拥有使用Ruby的经验脚本,那么很容易采取下一步并将其合并到您的网页设计中(作为必然结果,将Ruby代码从您的网页设计中拉出来并将其作为独立测试也更容易脚本)
  3. 对于许多人/项目而言,差异并不足以保证从新系统开始。我有点像红宝石传道者,但我不得不说如果你已经熟悉PHP,你可能会更好地坚持你所知道的。当然不要在没有经过深思熟虑的情况下从头开始从头开始重写一个可用的PHP Web应用程序。对于很多人来说这是令人沮丧的原因(因为你可能已经阅读了上述的咆哮),这可能会对你的语言或框架不公平地留下不好的品味

答案 7 :(得分:0)

Ruby相对较新。

因此,大多数使用Ruby的教程都使用最新的最佳实践。

它与其他语言有很多不同的东西,所以它是你爱或恨的语言。我个人并不喜欢它,我相信Ruby粉丝很快就会出现并提供一长串优势。不久之后,这个问题将被视为主观的。

答案 8 :(得分:0)

Ruby块非常棒!

您可以在其上创建DSL并提高无法通过匿名功能实现的代码可读性。一个微不足道的例子是这样的:

def it(expect)
    yield expect
end

it 'should do as I want it to be' do |this|
    puts this
end