我(非常)是一位经验丰富的程序员,但对Ruby和Ruby on Rails来说是全新的。
RoR看起来非常适合快速工作,特别是CRUD操作的自动屏幕生成。
它真的能让你快速提高工作效率。
当我必须完成申请时,问题是最后20%的工作。 RoR会议不会妨碍我吗?因为并非所有用户都可以使用每个数据库表,并且并非所有用户都可以编辑所有列和/或所有行,并且视图必须适应我的站点的外观等。
我知道RoR已成功用于现场,但在第一阶段烧毁后,你如何在RoR中获得足够的速度以逃避重力。
答案 0 :(得分:7)
我认为脚手架不会让你80%。脚手架很好,因为它向您展示了Rails的各个部分是如何组合在一起的,但我不会使用脚手架代码构建我的应用程序。现在您对脚手架印象深刻,最好忘记它的全部内容。 :)
Rails在我的脑海中真正闪耀的是database migrations,动态ActiveRecord的动态和插件生态系统的真棒。
决定使用Rails时需要学习很多东西。你有一种新的语言,新的框架和新的插件 - 但如果你花时间学习这些东西,那么使用Rails可以提高效率。
答案 1 :(得分:5)
我一直在铁轨上做红宝石很长一段时间。 80/20问题并非铁路独有。它通常适用于整个世界。我也不知道任何可以为你做业务逻辑的框架。
回答您的具体问题。在做20%时,约定不会妨碍你。相反,惯例将帮助您更快地完成20%的速度。
就个人而言,对于用户身份验证,我使用Authlogic。对于用户授权,我根据客户需要使用Lockdown或Authorization插件。
我还在大多数项目中使用inherited_resource来简化控制器代码。这是惯例的另一种力量。
为了提高开发速度,您不仅需要了解Rails,还需要为您提供正确的东西,这样您就不必再重新发明轮子了。此外,了解Ruby语言是快速发展超过80%的必要条件。
Ruby Toolbox提供了针对特定域的典型rails项目中使用的一些最流行的gem和插件。您可以查看相关类别并了解大多数人使用的内容。 (并且使用流行的,维护良好的宝石可能是一个好主意)
TDD / BDD风格的开发也将帮助您从长远来看加速。
最后,一个警告:如果你偏离轨道惯例,你将会有一段痛苦的时间。
P.S。我以前用过Merb。我的感觉是惯例可以帮助你使用merb,但是你不会因为没有在merb中使用它们而受到太多的惩罚。但是,我对Rails的体验是,如果你在开发rails应用程序时决定不遵循rails约定,它会以某种方式回过头来咬你!所以当你真的试图偏离铁路惯例时要三思而后行......(这是我自己的经验,当然也是主观的,但你可以把它当作警告......)
答案 2 :(得分:1)
RoR会议不会妨碍我吗? 因为不是每个数据库表都必须 适用于所有用户,而不是 所有用户都可以编辑所有列和/或 所有行,视图必须是 适应我的网站的外观和感觉, 等
这有点不合理。 Rails是一个从现实世界的应用程序中解脱出来的框架。这些应用程序也必须处理所有这些问题,以及您可能还没有想到的其他问题。一般来说,这些惯例一旦你学会了它们就会让生活更轻松。
另一点是,这些惯例仅仅是惯例。你不必遵循它们。你甚至不必为所有东西使用RoR,虽然我还没有找到一个我没有/不可能的情况,我通常会尝试尽可能多地进入DB或缓存层。
答案 3 :(得分:0)
我不相信你会遇到Rails惯例的严重问题。坚持惯例并信任RoR系统。 Rails背后的人们在这些约定中投入了大量精力来支持99%的常见使用场景。
如果你真的需要在约定之外做一些事情,它最终会变得非常复杂。但是,你并不孤单。网上有很多优秀的资源可以获得帮助(例如StackOverflow社区)。
总结一下: