在MVC应用程序中使用相同的视图进行创建和编辑是不是很糟糕的做法

时间:2015-07-31 22:15:23

标签: ruby-on-rails model-view-controller web-applications maintainability

我正在编写一个允许用户创建(后来编辑)的Web应用程序 类似博客的文字帖子。因为用于创建它的页面将与用于编辑它的页面相同,所以我很想对两者使用相同的页面。

在我看来,这将是DRY(不要重复自己)的一个很好的例子。但是,使用相同的页面并进行一些修改和自动填充似乎有点脏并且难以维护(例如,我向编辑页面添加控件或功能,现在我必须确保它不会在创建时显示页面或被我写的任何javascript打破。

This Question问了类似的问题,但所有的答案都谈到了如何实施它,而不是它是否是好的,可维护的实践

2 个答案:

答案 0 :(得分:0)

我认为您不能说这是否是最佳做法,因为它取决于您具体应用的因素。具体因素包括:

除了创建/更新按钮之外,视图之间是否有任何区别 您的视图生成了多少个事件 您的页面将来会变得多么复杂 您期望有多少用户,是否面向公众? 你的应用程序将存在多长时间

理论上,您的观点应尽可能轻松,不包含任何业务逻辑。它只会将事件报告给您的控制器。考虑到这一点,你并没有违反任何重复使用它的最佳做法(除了可能会分开关注点),但我更多的是不要复制轮子。我过去已经做过两种方式,通常取决于最终应用程序的大小以及我希望它能存活多久。

只是我的两分钱。

答案 1 :(得分:0)

取决于您是否使用javascript。但即使您使用相同的视图,您也可以在控制器中使用面向对象的方法来处理该过程的不同阶段。毕竟,它们可以像任何常规方法一样调用,而不仅仅是为了提供特定的视图。