2011-05-21 36 views
8

我一直在开发一个新的rails项目几个星期,虽然我对令人敬畏的插件和框架中的一些非常棒的功能感到惊讶......我也有点失望。我很担心。铁路'陷阱'和学习曲线 - 它会停止吗?

我想我犯了一个错误。

我应该按下还是返回到我所熟悉的状态? (Java /春)

  1. 看来,除非你正在寻找“简单的例子”,谷歌搜索的规则的例外,特殊情况等真正阻碍生产力并日益成为我的常态。

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

  3. 做什么新的应该“只是工作”几乎从来没有。我尝试并遵循文档和示例,但是我的结果似乎有所不同,我发现文档和示例中从未提及的问题。实际上这似乎始终发生。

  4. 我尝试使用CoffeeScript并与Rails集成的经验是一场灾难。无论何时出现“编译器错误”,都无法看清问题所在,这无疑是令人沮丧的。

  5. ActiveRelation真的很棒,直到你需要做一个连接7个表的查询。然后它开始崩溃。我认为在第一次学习Hibernate时可以更快地完成7表连接查询,并且可以可靠地完成。

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

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

    有一些博客教导如何使用Rails进行测试,但它们非常微不足道,并且不是非常有用。其中一些实际上很糟糕。我发现如何以比我发现的许多博客更高级的方式进行有效的测试验证。我发现当谈到测试时,我经常独自一人。

  7. 为什么切换到生产时图像和样式表无法正常工作?疯了吧。许多人问这是否谷歌它...但框架不“只是工作”。

    我害怕死亡,最终部署此应用程序。生产版本似乎不像开发版本那样工作。害怕。

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

  9. 测试运行非常慢。我有大约780次测试,并且它已经比测试1800次的Java项目花费了更多的时间。

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

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

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

2周后,“陷阱”数量没有真正减慢。我真的很担心和害怕。我知道Java对于问题和困难并不是免疫的,但我通常每月遇到2-3次问题 - 一周内不是30次。

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

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

+0

我应该停止或者我应该按上?这是一个错误吗?铁轨是否被认真对待?我不知道。我只是害怕,担心陷阱和问题不会停止:(这不是因为我不理解这些概念......我非常了解它们,Rails对于简单的事情非常适用......但每次我想做一些“更复杂”的事情,我遇到了问题,有些时候,应该“正常工作”的简单事情实际上是行不通的,这实际上是道德败坏,因为它很“神奇”(更不用说“沉默”了) ,我在黑暗中如何解决这个问题 – 2011-05-21 15:17:11

+4

你的问题听起来像缺乏经验,如果我试图用Java编程,我肯定会遇到同样多的问题 – DGM 2011-05-21 15:41:58

+0

你可以争辩说缺乏经验是任何事情遇到问题的原因 - 甚至没有编程相关的事情,我只是认为文档应该更准确 - 这可以解决很多问题,而且,你不必去遍历互联网找出如何去做点什么,这有点败了pu获得生产力效益。我在想,除非你计划在一年内使用Rails,否则如果你只计划花费2个月的时间来制作一个新项目,那么改变平台可能是不值得的。 – 2011-05-21 15:48:15

回答

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

+0

我翻看了目录,我真的很了解书中的很多内容。我已经有大量的应用程序已经建成。从一些评论中,我得到的印象是,你们认为我几乎无法获得控制器或1个Ajax电话的工作。我的问题是关于事情如何精确运作的可怕文档以及作为规则例外情况的复杂事物或事情。没有任何关于在rails中执行7表连接的示例。我甚至没有看到一个2表加入的例子,更不用说了。这就是问题所在。 – 2011-05-21 18:48:51

+3

而7表加入甚至不那么难......我在误入歧途之前就被误导了六次。首先是“&”...这是谷歌首先提出的。然后“合并()”。但是当你想用2个merges()做3个模型时,它停止工作..所以你不需要再使用merge。而且......永远不会结束。 – 2011-05-21 18:51:31