对于一个PHP开发者来说,学习Rails难吗?

9

我对Ruby一无所知,但对PHP了解很多。

当你在编写RoR代码时...如果你是初学者,你是否真正理解表面下正在发生的事情?你必须理解它吗?还是只要知道足够快速构建东西就足够了?

寻找那些已经完成过这种转换的人的经验。


2
很高兴看到有人在没有阅读问题的情况下点击“关闭”。 - Jed Smith
我喜欢这里一半的答案只是书籍/教程的链接,而问题甚至没有要求。 - Sasha Chedygov
13个回答

8

我认为,从C#到Ruby on Rails再到C#,最大的区别在于你可以仅凭Rails的“意见”来完成简单的应用程序,而无需知道其中的细节。但是,一旦你需要处理不同于常规的基本CRUD任务或以不同的方式实现CRUD任务,你就会遇到障碍。这时,你需要更多地了解Ruby本身才能弄清楚Rails到底在做什么。


6
大多数情况下,一旦你完全理解了某件事,你会看着一个小步骤,回忆起当你第一次仰望它时看到的山。我会说,对于大多数开发人员来说,Ruby很难理解,原因如下:
  • Ruby有一些非常强大但不太常见的编程概念。因此,需要掌握一些概念性的知识。
  • 除此之外,我遇到的大多数程序员,在积累了一定经验后,已经在构建关于编程的基础和概念,但这些概念是使用特定语言或领域中的结构构建的。

我能给出的最好建议是,每种语言/框架/开发环境只提供了操纵机器/网络方面的一种方法。错误的想法是认为是唯一的方法。如果你以“这与PHP有什么关系”的心态来学习Ruby,那么你会发现在许多情况下,就在表面之下,二者并没有多大关联。

一个具体的例子是:

  • 我的'for'循环在哪里?你会感到困惑。

然而,如果你问:

  • 我该如何运行这个代码片段以处理这个数组的每个元素?你会发现有许多精彩的答案,并想知道为什么你一开始需要for循环。但请记住,比Ruby更好的方法还有很多!

因此,在Ruby和Rails框架中具有如此强大的功能,你应该花时间学习基础知识。是的,你可以用非常有限的知识做出像rails这样的奇迹。想象一下,如果你掌握了几年扎实的Ruby知识,你将会做出什么样的成就。

Peter Norvig写了一篇非常好的论文,名为在十年内教自己编程。我建议你去看看。


5

1
将Ruby Cookbook添加到其中。 - Swanand
在我看来,TRPL是一本非常不错的书,但我建议看看《The Well-Grounded Rubyist》:http://davidhayden.com/blog/dave/archive/2009/06/06/TheWellGroundedRubyistBookReview.aspx - Pavel Zaitsev

4
作为一名PHP开发者,我已经有几年的经验,而且我之前是C和C++背景。我可以告诉你,在学习了PHP之后学习Ruby并不难(这是主观的,但问题也是如此)。当然,Ruby有自己的惯用语和“最佳实践”,这与PHP不同,但我认为你会发现Ruby很有趣,而且很容易学习。PHP中的许多“陷阱”在Ruby中不存在,因此学习这种语言会更容易。另外,如果你有任何面向对象编程的背景,你将更好地理解Ruby。
正如其他人指出的那样,你可以使用Ruby on Rails快速构建简单的应用程序,但如果你需要进行任何重量级的操作,你将不得不开始了解底层原理以及Rails的操作方式。这与PHP和它的各种框架(如CakePHP或CodeIgniter)没有什么不同。
我还建议您查看Rails for PHP Developers这本书,如果您有兴趣学习RoR。

3

3
为了回答你的基本问题,就像所有事情一样,你会学到你想学的那么多。你需要理解发生了什么,不需要。你需要知道 ExpressionEngine 是如何工作的才能使用它创建网站吗?
至于学习 Ruby,这是非常建议的。任何超出琐碎网站的东西都需要你知道和理解 Ruby 及其习惯用法。
我认为从 PHP 转向 Rails 的最大问题是开发方法。太多的 PHP 是在视图中包含所有或大量逻辑的产物。Rails 应用程序是通过模型中存在的所有逻辑来创建的。如果你理解这一点,那么你已经远远了解 Rails 了。
至于资源,我建议阅读 David Black 的书《Ruby for Rails: Ruby Techniques for Rails Developers》。它旨在将你从 Rails 开发人员变成 Ruby 开发人员。
+1 对上面列出的所有其他资源。

1

1

Ruby 可能有些困难,但用 Rails 写 Ruby 很容易!这种语言自然而然,读起来非常舒适。在我看来,部署 Rails 应用是个挑战。如果你精通 PHP,特别是有像《Rails for PHP Developers》这样的书籍指导,你将毫无问题。


Phusion Passenger让部署变得非常容易。如果没有它,我会说您是100%正确的。 - Steve Klabnik

1
哦,是的,由于你特别提到了Rails,这里有一份最新的、非常棒的资源列表 Rails指南。除此之外,在这里的许多回答中也有很多很好的建议。

0

按顺序回答这些问题 -

现在我对框架内部发生的事情有了相当多的理解 - 当我开始使用Rails时,这并不是真实的情况(尽管我之前一直在涉猎Ruby几年)

你不必理解Rails,但真正理解MVC(模型-视图-控制器)模式会非常有帮助。你可以很快地走得很远,但像大多数事情一样,要生产出真正高质量的东西需要付出艰苦的努力。

在语言哲学上,Ruby和PHP之间存在重大差异(依我之见)。Ruby的语法更加一致,但其强大的面向对象背景意味着需要克服一个非微不足道的学习曲线。我认为这是值得的,但你的看法可能不同,为什么不试驾一下呢?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接