Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails学习&x27;s混乱_Ruby On Rails - Fatal编程技术网

Ruby on rails Rails学习&x27;s混乱

Ruby on rails Rails学习&x27;s混乱,ruby-on-rails,Ruby On Rails,这是一个初学者的rails学习困惑。当我学习rails时,我时常对rails的原则“约定优先于配置”感到沮丧。Rails大量使用约定。其中很多只是命名约定。如果我忘记了一个约定,我要么使用错误的命名,得到意想不到的结果,要么神奇地完成事情,但不知道如何完成。有时候,我会想到配置。至少配置清楚地列出了所有内容,并且没有任何内容处于模糊状态。在rails中,您和机器之间似乎有一个隐藏的、黑暗的契约。如果你遵守合同,你就能很好地沟通。但是初学者通常会忘记合同上列出的项目,这通常会导致混淆 这就是为什么

这是一个初学者的rails学习困惑。当我学习rails时,我时常对rails的原则“约定优先于配置”感到沮丧。Rails大量使用约定。其中很多只是命名约定。如果我忘记了一个约定,我要么使用错误的命名,得到意想不到的结果,要么神奇地完成事情,但不知道如何完成。有时候,我会想到配置。至少配置清楚地列出了所有内容,并且没有任何内容处于模糊状态。在rails中,您和机器之间似乎有一个隐藏的、黑暗的契约。如果你遵守合同,你就能很好地沟通。但是初学者通常会忘记合同上列出的项目,这通常会导致混淆

这就是为什么当我第一次学习rails时,我觉得它不知何故很难学习。此外,对于学习者来说,还有许多其他的新东西,比如使用git、使用来自社区的插件、使用RESTful路由风格、使用RSpec。所有这些都是新的,在学习ruby和rails时结合在一起。这无疑给初学者增加了困难

相反,如果你学习php,它不会那么糟糕。您可以忘记很多事情,专注于学习php本身。如果您已经了解SQL,那么您不需要学习数据库处理(在rails中,您需要学习一个全新的概念迁移),您不需要学习一个新的像样的单元测试(在rails中,通常他们一路教RSpec,因为rails是敏捷的,您应该在早期学习阶段学习测试驱动的开发),您不必学习新的版本控制(在rails中,您将学习git),您不必使用复杂的插件(在rails中,他们通常在教科书示例中使用第三方插件!见鬼!为什么不教您如何在rails中做简化的类似事情呢?),您不必担心RESTful风格

总之,当我学习php时,我学得很快,很快我就开始自己写东西了。学习php类似于学习C/java。它尝起来像那些传统语言。当我学习rails时,它就更难了。我也需要学习ruby(我相信你们中的许多人学习ruby只是因为rails)


有人有和我一样的感觉吗?如何克服它并开始掌握rails?我们欢迎您的提示。谢谢。

您将Rails与PHP进行比较是站不住脚的,因为Rails是一个框架,PHP是一种语言。您应该将Ruby与PHP进行比较,或者将Rails与一些PHP框架进行比较(我不熟悉PHP框架,也不知道示例)

但是关于Rails“神奇地”发生的事情,您是对的。我在理解它们时也遇到了问题,我查看了Rails代码中的许多内容,以了解实际发生的情况以及原因

要学习Rails,您应该首先学习构建Rails的语言(就像您应该使用任何框架IMHO一样),所以首先学习Ruby。我个人很喜欢。这本书写得既简单又漂亮,不像很多关于语言的书那样枯燥/严肃


在那之后,我阅读了/完成了所有关于Rails的教程/指南,它们隐藏了(重要的!)基础知识,并讲述了您正在撰写的Rails特定内容。

您需要学习Ruby。Ruby是一种语言。它有自己的怪癖。你不需要学习很多Ruby,但是你不可能不学习Ruby而期望写任何像样的东西

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

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

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


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

当我第一次听说Rails时,有人说你可以比其他框架快十倍构建一个web应用程序。我一直认为这是夸大其词


如果你没有十年的“配置”经验,大多数约定都很难记住。因此,对于刚接触web开发的人来说,很难记住所有的约定并理解它们为什么重要。我肯定没有看到生产力提高十倍。例如,路由一开始可能很简单,但越来越复杂。我认为应该做出一些努力(也许是写Rails书籍的人)不要试图把所有功能都扔掉,让新手感到困惑。

我不是在比较Rails和php。我比较的是学习使用rails和使用php进行web开发。我也不打算比较ruby和php。谢谢你的建议。