我想使用比Rails(Sinatra / Ramaze / Camping)更轻的框架,但我担心通过这样做我将无法使用以插件形式为Rails定制的许多共享库。这是一个主要问题,还是大多数这些插件可以在不同的Ruby框架中使用?

使用除Rails之外的Ruby框架还有其他潜在的缺点吗?

有帮助吗?

解决方案

您仍然可以在您提到的所有框架中使用宝石,因此可以重复使用大量内容。想换新的ORM,没问题。想要一个花哨的shmacy语法突出显示,没有问题。 Rails一直在努力摆脱旧的插件模型,专门使用宝石。

如果其他框架中的一个符合您的需求,请更好地使用它。请记住,在文档和示例中,rails有更多。

如果我正在学习Ruby并想尝试一个Web框架,我可能会选择Rails,因为它更好,但因为它有更好的工具和文档。

其他提示

Rails使用的大多数Ruby模块(甚至是ActiveRecord)都可以在没有Rails的情况下使用。但是,你失去了Rails提供的集成的额外好处。您可能需要额外努力将Ruby模块粘合到您选择的框架上。另请注意,Rails使用的大多数有关Ruby模块的文档仅告诉您如何将该模块 Rails一起使用。

网络效应扮演了一个角色。

当您使用sinatra,camping等其他框架时出现的一个问题是rails为您的应用程序中的文件提供了经过验证的结构。较小的框架非常开放和免费。

当您与多个开发人员合作时,这可能是一个缺点,因为您需要进行有关创建约定的对话,而不是简单地遵循它们。

如果您使用Ruby的时间不到一年,请坚持使用Rails,除非您有一个非常明确的需求,其他框架可以更好地处理它。

较轻的框架,尤其是Sinatra,往往受到那些确切知道他们需要什么并且无法承受未使用代码的任何额外开销的人的欢迎。基本上,你选择你的工具链,而不是通常被Rails给你的东西所困。 (是的,在Rails中,您可以将ActiveRecord等替换为其他库,但这并不容易。)因此,较轻的框架为您提供了更多的自由,但在许多情况下您还需要做更多的工作。

我认为没有rails插件可以开箱即用,除了ActiveRecord插件(例如acts_as_nested_set等),它们仍然需要一些管道工作(设置$ LOAD_PATH并要求正确)文件)。我建议为ORM DataMapper ,它不仅比ActiveRecord更快,而且它也非常模块化地构建和插件是您可以轻松安装的实际宝石。不同的是,ActiveRecord插件大多是猴子补丁,往往会破坏每个新版本。

Sinatra没有带任何“好东西”,没有Rakefiles,没有骷髅,没有脚本/生成,但实际上这就是它所写的内容。你可以逐渐“探索”。所有额外的东西。对于带有一些基本布局和默认值的sinatra应用程序,还有骷髅,你可能会觉得这些很有用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top