限制违反体系结构-asp.net MVP

限制违反体系结构-asp.net MVP,asp.net,mvp,Asp.net,Mvp,如果我们在应用程序中定义了层次结构。对于3层架构,我们如何限制后续开发人员违反规范 例如,如果是MVP(而不是asp.net MVC)体系结构,演示者应该始终绑定模型和视图。这有助于编写适当的单元测试程序。然而,我们有一些实例,人们直接导入视图中的模型,调用违反规范的函数,因此无法正确编写测试用例 有没有办法限制哪些类可以从一组类继承?我正在考虑各种可能性,包括采用不同的设计模式,但是一种新的方法应该值得更改所涉及的代码。您想用软件解决人员问题吗?为痛苦的世界做好准备 解决问题的方法是确保你有与

如果我们在应用程序中定义了层次结构。对于3层架构,我们如何限制后续开发人员违反规范

例如,如果是MVP(而不是asp.net MVC)体系结构,演示者应该始终绑定模型和视图。这有助于编写适当的单元测试程序。然而,我们有一些实例,人们直接导入视图中的模型,调用违反规范的函数,因此无法正确编写测试用例


有没有办法限制哪些类可以从一组类继承?我正在考虑各种可能性,包括采用不同的设计模式,但是一种新的方法应该值得更改所涉及的代码。

您想用软件解决人员问题吗?为痛苦的世界做好准备

解决问题的方法是确保你有与人共事的方法,而不是以这些问题告终。。。。结对编程/审查。人员首次进入项目时的入职培训等


话虽如此,您可以编写分析软件和查找常见问题的工具。但是人们很有创造力,可以找到各种奇怪的做事方式。

只要一切都按照你的满意程度锁定,新的需求就会到来,你就必须突破它

考虑到程序员可以通过反射访问所有私有成员,在.NET编程级别强制执行这种严格性几乎是不可能的


做好自己的工作,支持并安排定期的代码审查,提供教育并实施适当的培训。而且,正如您所说,当您无法针对它编写单元测试时,它将很快变得明显

恐怕这是不可能的。我们试图借助属性来实现这一点,但没有成功。你可以参考我的意见

您所能做的最好的事情就是继续使用检查程序集。NDepend向您显示项目中程序集的依赖关系图,您可以立即跟踪冲突并采取反应性措施



(来源:)

我发布这个问题已经快三年了。我必须说,尽管这里有精彩的答案,我还是尝试过探索这一点。到目前为止我学到的一些教训-

  • 通过查看消费者(如果您有单元测试,那么单元测试是查看它们的最佳场所),会产生更多的代码味道

    • 构造函数中的参数数量是依赖项数量的直接指示。太多依赖项=>类执行的操作太多
    • 类中的(公共)方法数
    • 单元测试的设置几乎总是会泄露这一点
  • 代码会随着时间的推移而退化,除非有集中精力清理技术债务和重构。无论使用何种语言,这都是正确的

  • 工具只能在一定程度上有所帮助。但是工具和测试的结合通常会对各种气味给出足够的提示。要及时捕捉到它们需要一点经验,尤其是要了解每种气味的意义和影响


  • 哦,我感觉到了疼痛,好吧!!!如果有某种框架/工具可以分析/验证某些体系结构规则,我想没有捷径可以进行审查,呃?好吧,通过分离组件并使视图完全独立于模型,因此,演示者提供了视图处理的所有对象,您可以验证视图是否未使用模型。但这比它的价值更痛苦。大多数情况下。但这可能会把你的问题转移到其他地方。。。。介绍更多关于如何在您喜欢的体系结构风格中工作的培训have@this.__curious_geek:谢谢你给我指点NDepend。我要去看看。酷尼克顺便说一句,你能回答吗?