rails:保持干燥,达到什么水平? [关闭]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rails:保持干燥,达到什么水平? [关闭]相关的知识,希望对你有一定的参考价值。
我们总是读着人们用铁轨说“保持干燥”。但到了什么水平?
例如,我们有3个模型Project
,Offer
,Revision
。这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 视图中干燥条件 content_for?