来自经典的 ASP,我们现在正在开发一个相对较大的 Django 应用程序。我们正试图弄清楚如何将这个项目的代码分成可管理的部分。
为了便于讨论,假设我们有 CLIENTS,他们与 USERS 具有多对多关系,这些用户具有一个 ROLE,并且每个角色与 RIGHTS 具有多对多关系。
目前,我们将所有这些都放在一个名为“后台”的应用程序中。
缺点是后台应用程序中的 forms.py 和 views.py 包含所有这些实体的类。因为应用程序肯定会增长,我们希望将这些实体的代码分成几个文件。因此,即使它们不是真正独立的应用程序(我认为),它们肯定在处理我们项目后台部分的不同部分。
我在互联网上阅读过,似乎有两种情绪;一种是将models.py和views.py等拆分成文件夹/模块。在这些文件夹中,我们可以有一个 clients.py/users.py/roles.py 等。这将保持应用程序完整,但将代码分开。最后,我们将拥有一个包含大量文件的大型应用程序。
另一种选择是拆分代码并将客户端、用户和角色转换为单独的应用程序,并完全删除我们现在拥有的“后台”应用程序。Django 鼓励分割成更小的应用程序,但这些并不是真正独立的应用程序,客户端用户和角色密切相关,我们正在创建的维护工具反映了这一点。
我实际上是通过在“后台”应用程序中创建更小的(子)应用程序开始的,但我发现这里是不行的。
问题是,应用程序应该鼓励重复使用,我们正在构建的大型网络应用程序有很多部分相互交织并相互依赖。没有真正的方法可以将它分成更小的可重复使用的部分,这些部分在现实世界中是有意义的。
所以问题真的是;在此示例中,分离用户/客户/角色的代码的明智方法是什么?这两种方法的优点/缺点是什么?也许甚至还有一种完全不同的方法,我们还没有找到......
谢谢你的时间。