控制流和数据应该分开吗?
在我看来,显而易见的答案是否定的……但我想要一些更明确的论据来说明为什么不……
所以......这是一个场景
- 服务生成数据并将其发布到本地表以供 ETL 单独流程提取并集成到主报告数据仓库中。
- 有一个建议是源服务应该通知 ETL 数据可用......所以它不需要定期检查
我一点也不喜欢这个。。为什么?
- 它创建了一个结构依赖,因为服务需要了解 ETL
- 它还创建了时间依赖性(如果任一进程关闭/崩溃怎么办?)
如果 ETL 对数据感兴趣,它应该主动进行检查——另一种方法是让服务主动将其发送到消息队列,从而将通知委托给排队基础设施。