对于我的新网络应用,我正在讨论在视图中使用多个视图或条件。
示例方案将向经过身份验证和未经身份验证的用户显示不同的信息。这可以通过几种方式处理。
多个视图的优点:视图更小,更简单 - 视图中没有逻辑
单一视图的优点:维护较少的视图文件
显而易见的缺点是专业人员的对立面:更多要维护的文件或更复杂的视图文件。
你更喜欢哪个?为什么?我在这里没有概述的任何利弊?更新:假设每个视图都使用布局页面和部分视图来抽象明显重复的代码。
答案 0 :(得分:10)
这听起来像是讨论避免过早概括的优点的好地方。作为过早优化的表亲,PG可能同样瘫痪。我之所以这么说,是因为我经常过早地概括,而且往往会劝阻女士们不要跟我调情,嘲笑我搞笑的笑话等等。
请参阅:http://ryanfarley.com/blog/archive/2004/04/30/570.aspx
我的一般经验法则是:
重复两次。
当你第三次重复自己时,创建一个抽象
我倾向于在观看次数和偏好中遵循这一原则:
- 我创建了我的第一个视图 - 没有 分音。
- 我创建了第二个视图 - 没有 分音。
- 我创建了第三个View by 从中抽象出一些代码 第一和第二视图可重用 分音。
- 我重复,直到Mountain Dew全部消失。
醇>
虽然我对你的问题的答案看起来很明显,但我认为我要说的是,作为开发者,我们倾向于浪费大量的时间来考虑我们可以抽象出更多的不同方式。来自我们个性化实例的更多层。具有讽刺意味的是,抽象只有在减少重复的必要性的情况下才有价值,而重复只有在降低你完成任何事情的可能性时才有害,所以过度抽象的重复欲望与编码一样有害。一堆 ON ERROR RESUME NEXT 。
我怀疑这有帮助。但是,唉。
答案 1 :(得分:1)
我会说这取决于两种情况的差异。如果这是一个主要的差异或差异,请做一个单独的视图。如果它出现在多个页面上(例如显示登录控件与注销按钮),请将其设置为单独的部分视图。对于一些微小的差异,if块是可以的
答案 2 :(得分:1)
如果它只是一个“if x display y”情况,我更喜欢单一视图。除此之外的任何东西都很容易失控。但是,减少重复的html值得对少量简单逻辑进行权衡。
我怀疑这个问题的答案会在中间分开,因为每一方都有自己的优点。
答案 3 :(得分:0)
我想从一个视图开始......然后根据经过身份验证和未经身份验证的视图之间的差异有多复杂,您可以创建多个视图。