Django项目架构

时间:2016-09-25 12:14:55

标签: django architecture uml software-design

随着我的Django项目越来越大,我面临着有关架构的问题。在开始编码之前,我花了很多时间为我的项目找到一个很好的架构:我如何在应用程序中拆分项目,哪些应用程序依赖于其他应用程序等等。需要明确的是,通过建筑我并不意味着项目布局。

我已经完成了我的研究,但我还没有找到一个资源来展示一些方法来找到给定Django项目的最佳架构。在Web开发之外,UML似乎是要走的路。

我的问题是:

1)为什么互联网上几乎没有关于这些主题的讨论?我的做法是否遗漏了一些错误?

2)UML可以用于处理Django项目架构吗?

3)Django是否有解决此问题的常用方法?

3 个答案:

答案 0 :(得分:4)

  

在开始编码之前,我花了很多时间为我的项目找到一个很好的架构:我如何在应用程序中拆分项目,哪些应用程序依赖于其他应用程序等等。

我认为你是在思考这个问题。您的项目架构可以(并且可能应该)随着您的发展而发展。您可以从一个大应用程序开始,然后在适当的结构变得明显时拆分它。

  

1)为什么互联网上几乎没有关于这些主题的讨论?我的做法是否遗漏了一些错误?

因为简短的回答是“由你决定”或“这取决于你的项目”。这将对您有所帮助:Django: best practice for splitting up project into apps

  

2)UML可以用于处理Django项目架构吗?

我不明白为什么不。

  

3)Django是否有解决此问题的常用方法?

有几种方法,考虑分开你的应用程序:

  • 责任(1个应用程序做1件事)
  • 可重用性(应用程序可以移植到no,对另一个项目进行有限的更改)
  • 易于使用(另一个开发人员可以猜测模型/视图应该在哪里)

答案 1 :(得分:2)

如果您希望获得有关如何为Web应用程序创建UML设计的一些指导,您可能会喜欢我的白皮书“Technical design in UML for AngularJS applications”。它侧重于Angular应用程序,但大多数应用程序通常适用于Web应用程序。

答案 2 :(得分:1)

收集到更多信息之后,我遇到了一个有趣的架构(我在reddit上发现了这个想法,但无法检索到该URL)。

您的整个代码应该分配到独立的应用程序中(关注点分离),您需要定义2"项目范围"应用程序(网站和工具):

  • 网站应用可以依赖于任何其他应用。
  • utils应用程序不依赖于其他应用程序,但其他应用程序可以依赖它。
  • 独立应用程序只能依赖于utils。
相关问题