【问题标题】:What are some strategies to shrink down a model in rails? [closed]有哪些策略可以缩小 Rails 中的模型? [关闭]
【发布时间】:2015-06-02 16:27:28
【问题描述】:

在 Rails 中缩小模型的一些策略是什么?

【问题讨论】:

    标签: ruby-on-rails model


    【解决方案1】:

    恕我直言。

    在你开始做任何事情之前,你应该有工作规范。如果没有,请先编写它们,然后将代码分散到单独的文件中。

    一种方法是将共享特定用例的代码移至专用类(创建发票、预订您域中的任何内容)。有时人们会名义上为这些类提供服务,但只要你是结果,这真的取决于你。 在第一步中不要重构代码本身,只需将其剪切并移动到单独的类中,以便模型变得更小。在任何更改后运行测试。

    当您完成此阶段后,请重构每个提取的组件,同时牢记 SOLID。此时您应该开始编写新的测试(TDD...) 此外,您应该开始直接在模型中提取初始化这些用例——我想说的是,您的模型应该越来越成为一个保存数据的对象,并且上面的东西知道上下文/事务并将这个模型传递给特定的用例。这将是困难的,但真的值得你在未来花时间。此时您的模型应该更小,因为您不再在模型中创建和调用用例类,而是在上面的某个地方进行。

    【讨论】:

    • 我总是尝试采用这种 TDD 方法但不能。我真的很想学习这个过程..我不知道怎么做! ://
    • 不要内疚,不要把 TDD 当作教条。我知道在你的情况下这会很困难,特别是当有这么多代码要覆盖的时候。但是,您应该至少进行高级测试(因此不是单元测试,而是集成/验收),以确保您的代码在更改后可以正常工作。另一方面,如果这是一个长期项目(看起来确实如此),你应该努力通过编写规范来保证质量。最后,如果您有 2 个选项 - 根本不编写规范并在实施后编写它,请选择第二个。
    • 感谢您的指导!您会将这些服务类放在目录结构中的什么位置以及如何将它们包含在模型中?
    • 我会回答为什么...这取决于。这取决于代码是否已经以比传统 Rails 应用程序更复杂的方式结构化。通常 Rails 应用程序有很多类的应用程序/模型,并且没有分解为更多特定于域的文件夹。如果是你的情况,我会建议应用程序/服务。
    • @djaszczurowski 是的,我做最后一个,与第一种方法一样,我无法编写任何代码..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-21
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 2011-07-12
    • 2012-01-01
    • 1970-01-01
    相关资源
    最近更新 更多