具有多个控制器的 Web2py

Web2py with Multiple Controllers

我在生产环境中有一个 Web2py 应用程序,它在默认控制器中包含 40 多个函数。有些功能相当复杂,由几百行代码组成,用于管理数据库事务网络,而其他功能则相对简单。

开发人员什么时候应该考虑使用多个控制器来管理他们的应用程序?例如,我们是否应该将管理冗长站点地图的控制器从管理关键应用程序功能的控制器中分离出来?对性能有影响吗?

当需要一个控制器的功能时,必须读入整个控制器;控制器越小,这将更快。无论差异是否足以保证付出努力,这就是分析的目的。

至于什么时候考虑组织控制器,最好的时间是在开始的时候。之后,您将考虑平衡需要付出的努力,以及拥有新 URL 的可接受程度(因为新控制器将需要新 URL 来访问其功能),以及从练习。

除了给出的其他建议之外,请注意,您可以将一些代码从控制器移至模块。因此,即使控制器有 40 个函数,您仍然可以通过将代码从较长的函数移动到模块并仅从控制器导入和调用模块函数来保持整个控制器文件非常短。