这里有几个问题可以帮助您了解您的框架是否良好和真实。
“我可以在没有框架的情况下为我的 MVC 类运行单元测试吗?”
即使您不编写单元测试,这也适用。
您应该能够独立于框架编写与 MVC 相关的代码。当您的应用程序从框架接收一些输入时,它应该是具有已知接口的对象,没有具体的类。
问题是,真正的MVC 框架对架构本身没有(或非常有限)影响。充其量,它只会为应用程序调用提供一种清晰而简单的方法来访问您的 MVC 三元组。并且可能为您提供便利......而不是限制和约束。
“它会在魔法和仙尘上运行吗?”
您应该能够扩展框架提供的任何类。并且应该很容易理解您必须实现哪个功能。
如果“事情刚刚发生” ,这将变得非常困难。这通常指向框架代码中的全局状态。以静态方法或全局/静态变量的形式。
“我的代码在什么时候启动?”
你能找到你的控制器在哪里以及如何被执行吗?通常不会那么容易。这个神秘的点通常在对象图中很深。有时甚至在扩展课程中。
这种情况使您很难更改执行控制器的环境。它还对控制器方法的外观施加了严格的规则。
这一切都回到了重点,真正的 MVC 框架应该增强开发过程而不是限制您的选择。
“他/她应该能够做到这一点吗?”
身份验证和授权似乎是开发的一个独立方面,但实际上,在 MVC 的上下文中,它往往有点棘手。
许多框架都有一些身份验证/授权基础设施。这是一项重复性的任务,我们都把它做死了,因此 - 它是框架可以提供的功能的一个很好的候选者。
但关键在于:他们中的大多数人都试图将授权放在你的控制器中,而且他们对如何调整它非常挑剔。这是另一个限制。
归根结底就是这个。对于任何框架,都不能仅仅为了添加登录功能而重写每个控制器。即使您忽略了 OCP 的违规行为,这也会增加您意外忘记某些内容的风险。
..我的两分钱