我们正准备构建一个大型服务器应用程序。
为了有效地对逻辑进行建模,我们计划使用 DDD,包括领域事件、规范、存储库等战术模式......
洋葱架构适用于Python吗? Python 的抽象能力是否足够?
从技术上讲:
我做了一些研究,发现没有流行的 DI 容器,实际上 DI 在 Python 中被认为是一种不好的做法,考虑到 DI 是我用来在 应用程序层中实例化复杂对象的方式 看起来很可疑...
从架构上来说,
Python (CPython) 中没有内置多线程支持。
Python 提供的协作多线程模型对于单线程架构来说已经足够了,具有横向扩展选项。还是?
在投入之前是否还有更多挑战和值得考虑的事情?
底线是:
有没有人有使用 DDD 和 Python 实现大型企业应用程序的经验?
还是我们应该坚持使用 .NET/Java 以确保安全?
不确定,但听起来您可能是这个组织的新员工,来自 java/.net 商店(“...考虑到 DI 是我用来实例化复杂对象的方式应用层似乎很可疑...)。
牢记
您几乎可以使用任何编程语言以简洁的设计来执行 DDD。
看看 Add Roll 展示的这段视频.基本上,主要观点是解决方案的可扩展性取决于体系结构和设计选择,而不是编程语言或平台。
同时考虑,Drop Box是用 Python 构建的,并在用户考虑任何 C 语言优化之前扩展到 100 万用户。
网-网
从产品开发的角度来看,您通常不希望使用“新技术”将任何关键路径项目置于风险之中。新可能意味着市场新手或团队/组织新手。在这种情况下,根据您帖子的第一部分“我们是一家 python 商店”,我至少会尊重您内部团队的专业知识并利用您现有团队的核心竞争力。与重新培训员工使用其他技术平台相比,您的项目将具有更低的风险状况并实现更快的上市时间。