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

问题描述 投票:2回答:1

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

例如,我们有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

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

ruby-on-rails model-view-controller controller dry
1个回答
3
投票

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

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

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.