gpt4 book ai didi

java - 从 DDD 后的应用程序批量导出时的最佳实践是什么

转载 作者:行者123 更新时间:2023-11-30 05:17:12 26 4
gpt4 key购买 nike

假设您有一个包含大量产品/客户/订单的数据库,并且代码库 (java/c#) 包含所有业务逻辑。夜间需要分批将数据导出到平面文件,然后将它们通过 ftp 传输到专有系统。

我们应该如何执行“将数据库写入平面文件”?最佳实践是什么?

一些想法:

  • 我们可以创建一个存储过程并使用 f.ex ssis 来获取数据吗?如果我们有一个“批量输出数据库表”,也许我们可以做到这一点,但如果我们必须在写入文件之前执行逻辑,则不行?

  • 我们可以使用与域的其余部分相同的存储库/业务逻辑来完成托管代码中的所有逻辑吗? (与存储过程解决方案相比,这可能是一个缓慢的过程)

  • 如果域服务的唯一接口(interface)是 Web 服务(每个请求可能需要“很长时间”),“最佳实践”会发生变化吗?

最佳答案

我个人更喜欢使用普通(托管)代码来实现提要而不是存储过程,主要是因为:1)通常更容易与其他系统交互(即使只是共享驱动器)2)很容易记录您需要的所有内容并在出现问题时进行调试3)您可以重用用于正常业务逻辑的相同代码(即使您只是引用相同的项目等,这也是有益的)4) 通常,您需要使用来自其他系统的一些信息来丰富数据,而通过托管代码可以更轻松地做到这一点。5) 测试托管代码、进行所有单元测试、自动化构建等要容易得多。

我不确定为什么它需要比在存储过程中完成这一切慢得多。您只需要编写一个好的存储过程来提取所需的数据,C#/java 应用程序将完成所有转换、丰富等工作。

编辑:回答评论:我认为不可能说您是否应该重用现有的存储过程、调整它们或创建新的存储过程。我认为性能损失或所需的更改不会比我尝试使用一组过程太大,以避免逻辑重复。但如果差异很大,那么维护额外进程的成本可能会低于更改和发布现有进程的成本。

关于java - 从 DDD 后的应用程序批量导出时的最佳实践是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/581821/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com