铁路的'陷阱'和学习曲线 - 它会永远停止吗?

时间:2011-05-21 15:10:19

标签: java ruby-on-rails ruby spring

我已经开发了一个新的rails项目几个星期,虽然我对这些令人敬畏的插件和框架中一些非常棒的功能感到惊讶......我也有点失望。我很担心。

我认为我犯了一个错误。

我应该按下,还是回到我熟悉的地方? (爪哇/弹簧)

  1. 似乎除非你正在寻找“简单的例子”,谷歌搜索规则的例外情况,特殊情况等确实妨碍了生产力,并且越来越成为我的常态。

  2. 主站点,博客,截屏视频等的文档和示例大多都已过时。对于那里的每5-10个例子,其中1个实际上是正确的。

  3. 做任何应该“正常工作”的新东西几乎都不会。我尝试并遵循文档和示例,但我的结果似乎有所不同,我发现文档和示例中从未提及过的问题。这似乎一直都在发生。

  4. 我尝试使用CoffeeScript的经验以及它与Rails的集成是一场灾难。无论什么时候发生“编译错误”都无法看到问题是令人沮丧的。

  5. ActiveRelation非常棒,直到你需要创建一个连接7个表的查询。然后它开始崩溃。我认为您可以更快地在Hibernate中完成7-table连接查询,并在第一次学习时可靠地完成。

  6. 在Rails中测试实际上非常困难。有太多的“魔术”正在进行中。由于Ruby是动态的,我不知道我需要调用什么来适当地测试一些东西。规则似乎总是有例外。

    例如,Devise的工作方式与您期望的一样......直到您想要在帮助器中测试Devise。它只是不起作用,所以你必须在测试中发明Devise生成的方法以使测试通过。您无需为控制器执行此操作。

    有一些博客教授如何使用Rails进行测试,但它们非常简单且不太有用。其中一些实际上很糟糕。我发现如何以比我发现的许多博客更优越的方式有效地测试验证。我发现在测试时我经常独自一人。

  7. 为什么切换到制作时图像和样式表无法正常工作?疯了吧。如果你谷歌的话,很多人都会问这个...但框架并没有“正常工作”。

    我害怕最终部署这个应用程序。生产版本似乎没有像开发版本那样工作。吓人。

  8. 出于某种原因,在添加jquery-rails和devise之后,在ajax请求期间没有传递身份验证令牌。我必须添加4行javascript代码才能使其正常工作。这花了我5个小时。在Java中,因为你有适当的会话,你甚至不需要考虑这种类型的东西。

  9. 测试运行速度很慢。我有大约780个测试,它已经比需要1800次测试的Java项目花了更长的时间。

  10. 在浏览器中测试应用程序非常慢。渲染一些页面需要1/4秒......而且甚至没有那么多的ORM动作正在进行!即使对于具有1个数据库查询的页面,也需要100-200毫秒。这很疯狂。

  11. 文档经常过时。例如,试图覆盖Devise中的内容很痛苦,因为文档实际上告诉我做错了。只有经过几个小时的谷歌搜索并在另一个论坛上等待48小时后,我才能让别人告诉我我需要做什么。我想做的就是让登录表单拒绝User.enabled为false的用户。而已。事实证明,我压倒一切“活跃?”而不是“active_for_authentication?” - 这是RDoc中的一个错误。

  12. ORM表现得非常奇怪,完全不直观。关联新对象时,插入/更新的工作方式不同。它也不像Hibernate那样级联...这让我怀疑它不跟踪脏对象?如果是......那么为什么默认情况下没有设置级联?像这样的事情几乎不是很好的违约。 Rails应该不是很好的默认值吗?

  13. 两周后,“陷阱”的数量并没有真正放缓。我真的很担心和害怕。我知道Java不存在问题和问题,但我一般每个问题大约发生2-3次 - 一周内不会发生30次。

    当你考虑平台的稳定性,快速性和可预测性时,我几乎认为使用Java / Spring时缺乏灵活性并不是一个负担。你可能会写更多的代码,但你确切地知道发生了什么......你从来没有真正处理过沉默的失败......事情的确往往更加可靠。

    我开始质疑使用Rails进行这个新项目。

1 个答案:

答案 0 :(得分:4)

你能做的最好的事情就是抓住'带有Rails的敏捷Web开发',几年前我开始阅读和阅读本书中的例子真的帮助我了解事情应该如何运作,它也是作为一个很好的参考,您可以在想要阅读某些主题时深入了解。

最新版本似乎是: http://www.amazon.co.uk/Agile-Development-Rails-Pragmatic-Programmers/dp/1934356549/ref=sr_1_1?ie=UTF8&qid=1305991885&sr=8-1