2010-03-27 83 views
1

这是一个初学者的铁轨学习困惑。当我学习铁轨时,我不时因铁轨原理“Convention over Configuration”而感到沮丧。 Rails大量使用约定。其中很多只是命名约定。如果我忘记了一个约定,我会使用错误的命名并得到意想不到的结果,或者神奇地完成任务,但不知道如何。有时候,我想到配置。至少配置清楚地列出了一切,没有什么是迷雾。在铁轨上,你和机器之间似乎隐藏着一个黑暗的契约。如果你遵守合同,你的沟通很好。但初学者通常会忘记合同中列出的项目,这通常会导致混淆。Rails学习的困惑

这就是为什么当我第一次拿起导轨时,我觉得它是某种难以学习的东西。此外,还有很多其他的东西可能对学习者来说是新的,比如使用git,使用社区的插件,使用RESTful路由样式,使用RSpec。所有这些都是全新的,并且共同学习Ruby和Rails。这对初学者来说肯定会增加困难。

相比之下,如果你学习php,它不会那么糟糕。你可以忘记很多事情,并专注于学习PHP本身。如果您已经了解SQL,则不需要学习数据库处理(在rails中,您需要学习全新的概念迁移),您不必学习新的体面单元测试(在rails中,通常他们会一起教授RSpec因为rails是敏捷的,你应该在早期学习阶段学习测试驱动的开发),你不需要学习新的版本控制(在rails中,你将被教授git),你没有要使用复杂的插件(在rails中,他们通常在教科书示例中使用第三方插件!究竟是什么?为什么不教会如何在rails中做类似的简化操作?),您不必担心REST风格。总之,当我学习php的时候,我很快就学会了它,我开始自己写东西。学习PHP类似于学习C/java。它尝起来像那些传统的语言。当我学习铁轨时,这是更困难的。而且我也需要学习ruby(我相信很多人只是因为rails而学习ruby)。

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

+1

社区维客请求 – clyfe 2010-03-27 23:42:50

回答

2

需要学习的Ruby。 Ruby是一种语言。它有它自己的怪癖。你不需要学习很多的Ruby的,但你不能学会没有红宝石想到写像样的东西。

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

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

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

学习需要时间。建模非常重要,而且我看到了一些丑陋的Rails代码,因为作者是不好的建模者。那些可怜的模型变成了丑陋的数据库。但它仍然有效!它满足了客户的需求。

0

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

但是您对Rails“神奇”发生的事情是正确的。我也有问题了解他们,并在Rails代码中查看了许多事情,以查看实际发生的情况以及原因。

要了解Rails的,你应该先了解其所建(像你应该可以与任何框架恕我直言,这样做)的语言,所以先学红宝石。我个人很喜欢Mr. Neighborly's Humble Little Ruby Book。它是以一种简单而美好的方式书写的,并不像无数的语言书籍那样无聊/严肃。

之后,我阅读/完成了关于http://guides.rubyonrails.org/的所有教程/指南,它们隐藏了(重要的!)基础知识,并讲述了您正在编写的有关Rails的具体内容。

+0

我不比较rails和php。我比较的是学习使用rails并使用php进行web开发。我不打算比较ruby和php。 谢谢你的建议。 – Steve 2010-03-28 10:13:07

0

当我第一次听说Rails的时候,声称你可以用比其他框架快十倍的速度构建一个Web应用程序。我一直认为这太夸张了。

如果你没有十年的'配置'方式,大部分的约定都很难记住。因此,对于新开发Web开发人员来说,很难记住所有的约定,并理解它们为什么重要。我绝对没有看到生产力增加了十倍。例如,路由可能开始很好并且简单,但变得越来越复杂。我认为应该做出一些努力(可能由人们编写Rails书籍),不要试图将各种能力混淆在一起混淆新手。