rails:保持干燥,达到什么水平? [关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rails:保持干燥,达到什么水平? [关闭]相关的知识,希望对你有一定的参考价值。

我们总是读着人们用铁轨说“保持干燥”。但到了什么水平?

例如,我们有3个模型ProjectOfferRevision。这3个型号可以有很多Attachment

在“模特”方面,我们最终会直截了当

/app/models/project.rb
/app/models/offer.rb
/app/models/revision.rb

但对于控制器方面,我有问题保持干燥。我最后得到了:

GET  /projects/:id/attachments    ->   Projects/Attachments#index
POST /projects/:id/attachments    ->   Projects/Attachments#create
GET  /offers/:id/attachments      ->   Offers/Attachments#index
POST /offers/:id/attachments      ->   Offers/Attachments#create
GET  /revisions/:id/attachments   ->   Revisions/Attachments#index
POST /revisions/:id/attachments   ->   Revisions/Attachments#create

所以基本上,我在这三个位置的代码几乎相同:

controllers/projects/attachments_controller.rb
controllers/offers/attachments_controller.rb
controllers/revisions/attachments_controller.rb

我的问题,我应该干涸吗?

答案

干或“不要重复自己”是一般的经验法则。

如果你在代码中发现了一个在几个地方重复的模式,那么可能值得研究一下。

如果可以将一个共同的功能提取到模块中,那么你应该这样做。

如果你认为不值得你的时间,复杂或任何理由不这样做,那就完全没问题了。

吻(保持简单和愚蠢)>干

确保您的代码易于遵循,然后重构和干掉。

以上是关于rails:保持干燥,达到什么水平? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

使用嵌套资源干燥 Rails 视图

论文电坐便器暖风干燥性能测试方法的研究(上)

如何在 Rails 视图中干燥条件 content_for?

在 Rails 中显示/隐藏部分/模板的更干燥的方式

您如何在 Rails 3.1 中使用 Sprockets 编写干燥的模块化咖啡脚本?

在 Rails 中处理视图和仅帮助程序常量的最佳方法