一个由洋葱架构所提供的主要优点是换出“基础设施”的元素,如“数据访问,I/O和网络服务”(http://jeffreypalermo.com/blog/the-onion-architecture-part-3/)的能力。基础的流动性 - 实际影响
杰夫说,在他的岗位从2008年说,“行业已经修改的数据访问技术每三年至少”。
有没有人有一个相当大的项目的例子,其中使用洋葱结构和换出关键的基础设施要素随后被承担?
我有兴趣了解:
- 如何常见的是这种情况下,有什么看法?
我的直觉告诉我,虽然“数据访问技术”可能会每三年修改一次,但运行解决方案的实际基础架构的变化(可以实现此益处)可能会少得多?
- 条件是该解决方案最初运行的条件是什么?
- 是什么导致了底层基础设施的变化?
- 是否有教训关于这种方式改变基础设施的实际影响,这可以使我们能够改进洋葱架构的原实现学到什么?
我很想知道除了更换基础设施组件和实现相同的接口之外是否还有意外的更改。例如,新基础设施是否需要将新参数传递给先前定义的方法,例如SaveOrder(int ID) - > SaveOrder(int ID,bool AllowSiblings,bool SiblingCreated)从关系移动到NoSQL DB模型时。
与传统的耦合方法相比,实施此架构+返工迁移到新基础架构是否显着降低了所需的总体工作量?
开发者是否发现耦合的,硬引用的代码比松散耦合的,间接引用的代码更易于编写和调试,但基础架构更改的最终收益是否值得呢?
您能举一个例子说明您换出第三方服务的位置吗?所以我提出的类似问题也适用于这种情况? – 2015-02-11 01:00:45
@BenMcEvoy我已经编辑了我的答案的例子和一些更多的细节 – MaxSC 2015-02-13 09:05:45