当前位置: 首页 > 面试题库 >

models.py越来越大,最好的分解方法是什么?

商经业
2023-03-14
问题内容

主管的指示:“我要避免在其中添加任何逻辑models.py。从现在开始,让我们将其用作访问数据库的类,并将所有逻辑保留在使用模型类或包装它们的外部类中。”

我觉得这是错误的方法。我觉得将逻辑排除在模型之外只是为了减小文件大小是一个坏主意。如果逻辑在模型中是最好的,那么无论文件大小如何,它实际上都是应该去的地方。

那么有没有一种简单的方法可以只使用include?用PHP讲,我想向主管建议,我们只是models.py从其他地方获得了include()模型类。从概念上讲,这将使模型具有我们想要的所有逻辑,但可以通过增加文件数量来减小文件大小(从而减少诸如冲突等的版本控制问题)。

因此,有没有一种简单的方法可以从models.py文件中删除模型类,但仍然可以使模型与所有Django工具一起使用?或者,对于“大” models.py文件的一般问题,是否有完全不同但优雅的解决方案?任何输入将不胜感激。


问题答案:

Django旨在让你构建许多小型应用程序,而不是一个大型应用程序。

在每个大型应用程序中,都有许多免费的小型应用程序。

如果你models.py觉得自己很大,那你就做得太多了。停止。放松。分解。

查找较小的,可能可重用的小型应用程序组件或组件。你不必实际重用它们。只是将它们视为潜在可重用的对象。

考虑你的升级路径并分解你可能需要替换的应用程序。你不必实际替换它们,但是你可以将它们视为独立的编程“模块”,将来可能会替换为更酷的东西。

我们大约有十二个应用程序,每个应用程序model.py最多不超过400行代码。它们都集中在少于大约六个离散类定义上。(这些不是硬性限制,它们是对我们代码的观察。)

我们会早期分解,而且经常分解。



 类似资料:
  • 前面提到多进程的并行可以提高并发度,那么进程是越多越好?一般遇到这种问题都回答不是,事实上,很多大型项目都不会同时开太多进程。 下面以支持100K并发量的Nginx服务器为例。 举个例子: Nginx Nginx是一个高性能、高并发的Web服务器,也就是说它可以同时处理超过10万个HTTP请求,而它建议的启动的进程数不要超过CPU个数,为什么呢? 我们首先要知道Nginx是Master-worke

  • 我正在使用Firebase来保存我的数据。我试图在活动中分离Firebase方法和我的方法。例如,我已经创建了一个名为"Firebase method odsHelper"的类,在那里我想编写所有的Firebase方法。例如,"getAllUser"方法应返回列表中的所有用户。我唯一的问题是它不起作用。 我不知道我做错了什么,所以如果你们能帮我。 碎片 FirebaseMethodHelper类

  • 本文向大家介绍jquery代码规范让代码越来越好看,包括了jquery代码规范让代码越来越好看的使用技巧和注意事项,需要的朋友参考一下 最近学了jQuery,感觉这个jQuery是真的挺不错的,果然像他说的那样,少些多做!刚一入手感觉真是不错。但是写多了,就会发现这个代码一行居然能写那么长。而且可读性还不好。  有幸自己买了一本锋利的jQuery这本书。我就整理了下。到底在实际应用中怎么让自己的j

  • 问题内容: 在我的游戏代码中,我尝试添加一张手牌。一旦我做完了,我的数组就超出了范围。一切看起来都不错,但也许我缺少了一些东西。 仅供参考,一个和两个是Player实例。来自Main类的相关代码(对格式感到抱歉。我很想将其传输到Stack Overflow): 卡类: 玩家等级: 问题答案: 问题出在你的循环上 没有其他任何值可设置,因此此循环不断循环,直到所有玩家拥有超过52张牌为止。一旦某人拥

  • 我有一个Spring启动,Hibernate使用java应用程序。我部署它在一个jetty webserver与多个实例.如果我有太多(大于10)很多实例我得到 许多连接(10x实例)显示为空闲 ps: 实例的Hikari跟踪日志: 设置 没有记录任何有趣的事情。我认为这看起来很有趣-连接不可用 有什么办法可以调试这个吗?我也在java 7上,所以hikari 2.4.7

  • 主要内容:前言,1、是否依赖Java系统自身内存处理数据?,2、依赖Java系统自身内存有什么缺陷,3、优化为依赖OS Cache而不是JVM,4、老司机经验之谈:,5、正确的做法:前言 这篇文章,给大家聊一个生产环境的实践经验:线上系统部署的时候,JVM堆内存大小是越大越好吗? 先说明白一个前提,本文主要讨论的是Kafka和Elasticsearch两种分布式系统的线上部署情况,不是普通的Java应用系统。 1、是否依赖Java系统自身内存处理数据? 先说明一点,不管是我们自己开发的Java应