0

在 Rails 中,创建模型、控制器和视图的最佳实践是什么?我知道三种方式。

1)脚手架“一切”。

2)通过终端生成每个控制器和模型。

3) 手动创建所有文件。(这样做时需要小心。我必须牢记控制器的复数形式和在模型中使用单数)

目前,我遵循第三种方法,尽管它涉及一些风险。我只想知道要遵循的最佳做法是什么。如果还有其他方法,我很高兴知道。谢谢你的时间。

PS:我是RoR的初学者。

4

3 回答 3

2

我认为脚手架相当糟糕,因为它会产生很多你可能不想要的东西,我只将它用于尖峰解决方案。

在实际项目中,我的公司规则书说我必须使用测试驱动开发(我喜欢)。这意味着在默认方法中(有时我无法遵循)我从集成测试开始并遵循它。(我构建了一个路由,然后是一个控制器方法,然后是一个视图,然后是一个模型......)。

于 2013-01-10T07:53:45.707 回答
0

我确实相信脚手架是最好的方法,因为它可以自动完成手动创建的整个过程。您将获得您的模型、控制器、视图和迁移,rails g scaffold myscaffold这就是为什么我们将 ruby​​ on rails 称为敏捷 Web 开发解决方案。因此,支持开发人员快速引导软件或快速更改功能的工具可以帮助您保持敏捷。

另一件事是,如果您可以快速引导一个项目,您可能会更灵活地对优先级的重新排序做出反应。这将有助于以更清晰和更好的方式对您的开发计划进行核心开发。

于 2013-01-10T08:00:51.450 回答
0

没有完美的解决方案。如果你手动编码,你真的在​​使用惯用的 rails 吗?对于“中级”程序员 - 既不想手动编写所有代码,也不能依赖简单的脚手架。您必须了解生成的代码,但将 60 wpm 的完美编码留给大师!

我建议三个语用学

A. 有一个好的开始。样板化是在 Javascript 和 Node 项目中执行此操作的主要方法,您可以在其中选择所需的模块(为 auth 设计,为 ajaxy 表单设计 simple_form,twitter-bootstrap 等),然后从一个负载充足的站点开始,而不是零碎地固定它. 这并不重 - 仅用于制作“PRO”网站。我仍在寻找好的 RoR 样板、railsapps(composer 是姊妹站点)和 railsbricks,以及好的旧 Rails 模板,Rails Engines 应该允许你这样做。遗憾的是,没有足够的说明如何做到这一点,因为它需要“大师”来提供包含最佳实践的经过测试的配置。

B. 模型优先方法。从第一天起就从一个体面的模型开始。不要一一添加字段,而是坐下来尝试为您的站点获取 3-4 个核心表,然后确定它们之间的关系。“敏捷”的人可能会反对极简主义的方法,但如果你有经验,为什么不“提前设计一点”。当然,您想在编码之前避免 10 多个表格或 ER 图的另一个极端!如果你有不错的模型/用户设计,你可以为你的 MVP(最小可行产品)提前很好地预测网站的外观和固有模型。这当然表明您对您希望应用程序的外观有大约 2-4 周的远见:)

C. 测试/迁移更少的脚手架。混合方法更实用,您首先单独进行模型生成和任何数据迁移,然后在没有测试或迁移的情况下搭建支架。您可以查看 Rails 4 for Beginners book ch 5 中的示例。好处是 - 您不会覆盖手工制作的模型代码,并让脚手架负责处理 RoR 魔法为您提供的每个模型约 5+ 个文件的脏细节。# 1. 生成带有标题、正文的模型文章 # 执行 rake db:create,手动向模型添加验证,例如存在性、最小长度等架构编辑或脚手架全部) $ rails 生成迁移 add_excerpt_and_location_to_articles 摘录:字符串位置:

如果您明白了这一点 - 您可以看到在您改进模型时,脚手架被视为丢弃。此时您真的不关心覆盖控制器详细信息或视图。但是您正在保护您的模型,并手动编辑模型之间的关系,以及详细的验证。

作为一个附带好处,模型优先的实用主义适用于这种方法。在停止搭建脚手架之前,您可以在应用程序中获得 5-20 个模型。到那时,您的代码模型应该是相当确定的。

于 2014-01-26T01:18:32.337 回答