我对基于服务的架构感兴趣,大致基于微服务的概念。我们的管理层认为这已经到位,因为我们正在构建 Nuget 包。我觉得有一个不同的,但不能很清楚地表达......什么是“微服务”或“SOA”与重用 Nuget 包不同?
最佳答案
声称使用 NuGet 重用代码与“执行”SOA 是一回事,这有点像说使用食品加工机与 cooking 三道菜是一回事。食品加工机可能与结果有关,在执行过程中很有用,甚至偶尔会成为先决条件,但这并不意味着可以通过这种方式直接进行比较。
反对这种观点的一种方法是争辩说 SOA 在没有任何代码重用的情况下是完全可能的,因此不需要包管理。如果您想了解执行 SOA 意味着什么,请参阅我的另一篇博文 here 。
但是,我怀疑您是否可以通过逻辑推理来击败这种观点。我怀疑您的管理层真正说的是“SJDoodle 一直在谈论 SOA?听起来有点贵。”
好消息是您可以在不让任何人知道您正在这样做的情况下实践 SOA。即使您被迫将应用程序构建为单体应用程序,也没有什么可以阻止您在架构时考虑到微服务。某些设计模式可能对您有用,包括 Ports and Adapters 模式和 Command Processor 模式。
Martin Fowler 之前有 written 关于这个,在某些情况下,以这种方式开始比从一开始就尝试执行基于服务的方法更好。
关于architecture - SOA 与 NuGet 包,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39071178/