我试图找出构建大型Web应用程序的最佳方法,但保持各种逻辑部分的模块化。例如,将有许多不同的逻辑部分:
尽可能地,我想让每个模块的代码与所有其他模块断开连接。如果一个部分的代码开始抛出错误或导致错误的数据,我不希望这会影响其他模块。
我的第一个想法是通过使用Django' apps'来分开。每个模块都是自己的应用程序。然后,如果我将每个应用程序构建为"可插拔",那么代码就足够了。但是,这种方法的问题是模块可能需要访问其他模块的models
。例如,'会计'模块将需要访问'联系人' model
,因为我们要将发票发送给联系人列表中的人员。
我考虑为每个模块设置一个完全独立的Django项目,但这会给用户身份验证带来问题(我认为)。另外,据我所知,多个Django项目不能(轻松)共享一个数据库。
只是想知道是否有任何好方法或最佳实践来制作逻辑上独立的模块'尽可能地保持一个模块的代码与其余模块完全隔离,但仍然具有一致性的Web应用程序。