Ruby on rails Rails是一个黑盒子吗?

Ruby on rails Rails是一个黑盒子吗?,ruby-on-rails,Ruby On Rails,我最近一直在做一些简单的rails应用程序。我非常了解ruby,但是当我开始用rails的方式做事情时,我注意到有些事情是“仅仅因为”而做的,对于一个rails新手来说,很难知道代码是做什么的 rails是否没有抓住要点,变成了某种第四代语言?我的意思是,为了开发rails网站,你必须做一些事情(你不需要理解),而另一种方法是探索源代码,找出什么起作用 我还看到,人们向任何能做好rails教程的人支付现金。。。我们正在讨论一个将简单性放在首位的框架,是否有必要为好的教程付费 别误会我的意思,我相

我最近一直在做一些简单的rails应用程序。我非常了解ruby,但是当我开始用rails的方式做事情时,我注意到有些事情是“仅仅因为”而做的,对于一个rails新手来说,很难知道代码是做什么的

rails是否没有抓住要点,变成了某种第四代语言?我的意思是,为了开发rails网站,你必须做一些事情(你不需要理解),而另一种方法是探索源代码,找出什么起作用

我还看到,人们向任何能做好rails教程的人支付现金。。。我们正在讨论一个将简单性放在首位的框架,是否有必要为好的教程付费


别误会我的意思,我相信rails给主流带来了非常好的想法(比如约定优于配置),但是这种过于简单化(“只要把这行代码放进去……它就行了!”)降低了框架试图实现的简单性吗?

我发现rails非常容易使用。你可能想接电话。这对我学习“Rails之路”有很大的帮助。我把它更多地用作参考,而不是教程,但它会引导你创建一个应用程序,并解释正在发生的事情。FWIW,我学Rails比学ASP.NET(我还在学习)更快,而且知道Rails对学习ASP.NET MVC有很大帮助。

与任何事情一样,我认为细节是关键。是的,创建一个站点并将各个部分组合在一起以使其工作起来是非常容易的,但是要设计出一个设计良好且健壮的系统需要更深入的设计和思考。开始做出糟糕的OO决策是很容易的,比如违反德米特定律,因为事情很快就组合起来了。Rails就是这么简单。伟大的Rails并非如此。

约定优于配置的问题在于您需要了解约定。至少有了一个配置文件,你就可以开始阅读了。。。一旦你了解了这个惯例,它就会发展得更快,但同时你也要面对学习悬崖。

我认为这是一个视角问题。从广泛的角度来看,Rails社区认为框架就是那么简单。但事实并非如此。事实上,我与Rails的合作越多,我就越不会成为一个粉丝。我不认为这是Rails的错,但我认为很多人已经有了这样的印象:编写Rails is应用程序在某种程度上类似于挥舞魔杖(我自己也喝过kool aid)

不过,Rails确实实现了许多承诺,因为它提供了许多功能,几乎不需要配置。诸如ORM、模型关系和验证之类的事情设置起来很简单,并且为诸如微调应用程序逻辑和关注设计之类的事情留出了更多的时间。Rails代码也非常非常容易重新考虑。Rails绝对可以让您用少量代码完成大量工作

当我想走出老路时,我感到沮丧。我可能想实现“非常特定的功能X”,但我不知道从哪里开始。我发现我对框架的了解越深入,信息就越稀疏。令人遗憾的是,API的某些部分没有得到充分的记录。这迫使我依赖第三方插件,其中一些插件没有文档,并且维护得不好。我几乎被一篇博文困住了,博文告诉我把这段代码或那段代码复制到我的应用程序中,事情就会顺利进行(谢天谢地,他们通常都会这样做)

我的一些问题可能与我缺乏经验有关(仍在从设计师过渡到程序员),但我经常觉得,虽然Rails为构建网站提供了优秀的工具,但至少在表面上,它并没有为构建其他工具提供优秀的工具。它有潜力,但你真的必须深入挖掘。

我相信“了解你的习惯”不是问题所在。我知道如果我做X,那么我就有Y在工作。但是X做什么呢??Rails在我看来就像一个黑匣子,讽刺的是,当它谈到“约定重于配置”时,构建Rails应用程序的整个过程更像是配置而不是编程

不久前,我在遵循Jruby on Rails(Ola Bini)的示例时遇到了这个奇怪的异常

CreateProductCategories未丢失 恒定产品类型

这是因为rails版本不同,但关键是。。。一切都很好,直到你错过了黄金之路,黑匣子再也帮不了你,然后你意识到你不知道自己一直在做什么,开始在论坛/邮件列表中寻求帮助(然后你发现大多数人不知道他们在做什么或为什么,只是它起了作用)

不管怎样,很高兴知道我没有疯,有些人也遇到过这样的问题。谢谢大家


PS:英语不是我的自然语言,所以如果你发现语法错误,请编辑它们。

Pablo你可能想看看Django,它是由一个选择优先提供高质量文档的小组开发的

Rails是一个黑盒子吗

Rails确实有一些“神奇的代码”,你只需要写教程上说要写的东西,这些东西就能神奇地工作,但它根本不是一个黑匣子

  • 根据定义,“黑匣子”是指你不能看里面的东西。因此,你不能有一个“黑盒子”开源项目,看一看

  • 如果你不喜欢阅读源代码,那么这些“神奇功能”中的大多数都有很好的文档记录,并在许多网站和博客上进行了解释(如果没有,你可以在这里询问,我100%相信你会得到很好的回复)

  • 请记住,如果您仍处于教程阶段,任何教程都会有很多“只需插入这行代码”,因为它们试图让概念更为清晰,而不是深入到内部工作中