Rails学到了混乱

时间:2010-03-27 22:49:16

标签: ruby-on-rails

这是初学者的轨道学习困惑。当我学习rails时,我不时会对rails的原则“Convention over Configuration”感到沮丧。 Rails大量使用约定。其中很多只是命名约定。如果我忘记了一个约定,我将使用错误的命名并获得意想不到的结果或者做出神奇的事情,但不明白如何。有时候,我会想到配置。至少配置清楚地列出了一切,没有任何东西在雾中。在铁轨中,你和机器之间似乎有一个隐藏的黑暗合约。如果你遵守合同,你就能很好地沟通。但是初学者通常会忘记合同中列出的项目,这通常会导致混淆。

这就是为什么当我第一次拿起铁轨时,我觉得它有点难以学习。此外,还有许多其他对学习者来说可能是新的东西,例如使用git,使用来自社区的插件,使用RESTful路由样式,使用RSpec。所有这些都是新的,并在学习红宝石和铁轨。这肯定会给初学者带来困难。

相比之下,如果你学习php,它就不会那么糟糕。你可以忘记许多事情并专注于学习php本身。如果你已经知道SQL,你不需要学习数据库处理(在rails中,你需要学习一个全新的概念迁移),你不必学习一个新的体面单元测试(在rails中,通常他们教RSpec因为rails是敏捷的,你应该在早期学习阶段学习测试驱动的开发),你不必学习新的版本控制(在rails中,你将学习git无论如何),你没有使用复杂的插件(在rails中,他们通常在教科书示例中使用第三方插件!到底是什么?为什么不教导如何在rails中进行简化的类似操作?),你不必担心REST风格。

总而言之,当我学习php时,我会快速学习它,很快我就开始自己写作了。学习php类似于学习C / java。它的味道就像那些传统语言。当我学习rails时,它更难。我也需要学习红宝石(我相信很多人因为铁轨而学习红宝石)。

有没有人和我有类似的感觉?你如何克服它并开始掌握铁轨?提示将受到欢迎。谢谢。

3 个答案:

答案 0 :(得分:2)

需要学习Ruby。 Ruby是一种语言。它有自己的怪癖。你不需要学习很多Ruby,但是你不能学习 no ruby​​并希望写出任何不错的东西。

接下来,您执行需要学习Rails约定。学习约定意味着您不需要学习Ruby网络类。如果你不想学习这些约定,那么写任何有价值的东西将是困难的。

与学习C#(作为一种语言),然后学习MVC框架(如ASP.NET MVC或FubuMVC)没什么不同。

是的,你在PHP中抛出任何东西,在这个过程中学到的东西要少得多。但投资很有价值。你的教育很有价值。

学习需要时间。建模很重要,我看到一些丑陋的Rails代码,因为作者是糟糕的建模者。那些糟糕的模型变成了丑陋的数据库。但它仍然奏效!它满足了客户的需求。

答案 1 :(得分:0)

你比较Rails与PHP并不成立,因为Rails是一个框架而PHP是一种语言。你应该将Ruby与PHP或Rails与一些PHP框架进行比较(我不熟悉PHP框架并且不知道一个例子)

但你对Rails'神奇地'发生的事情是正确的。我也很难理解它们,并在Rails代码中看了很多东西,看看实际发生了什么以及为什么。

要学习Rails,你应该首先学习构建它的语言(就像你应该使用任何框架恕我直言),所以先学习Ruby。我个人非常喜欢Mr. Neighborly's Humble Little Ruby Book。它以简单明了的方式编写,并不像很多语言书那样枯燥/严肃。

之后我阅读/做了http://guides.rubyonrails.org/上的所有教程/指南,他们隐藏了(重要的!)基础知识,并讲述了你正在撰写的Rails特定内容。

答案 2 :(得分:0)

当我第一次听说Rails时,声称您可以构建一个Web应用程序,速度比其他框架快十倍。我一直以为这是夸大其词。

如果您没有十年的“配置”方式,大多数惯例都很难记住。因此,对于刚接触Web开发的人来说,很难记住所有约定并理解它们为什么重要。我绝对没有看到十倍的生产力提升。例如,路由可能开始很简单但变得越来越复杂。我认为应该做一些努力(也许是由编写Rails书籍的人),不要试图把所有功能都抛在那里来混淆新手。