在 Service Fabric 中新建 Service 会导致重复代码

Creating new Services in service fabric will cause duplicated code

服务结构服务的 visual studio 项目模板包含可在其他多个项目中重复使用的代码。例如 ServiceEventSource.cs 或 ActorEventSource.cs

我的程序员本能希望将此代码移至共享库,因此我没有重复代码。但也许这不是采用微服务的方式,因为您希望拥有小型独立服务。引入一个库会让它更加依赖。但是它们已经依赖于 EventSource class。

我的解决方案是将一些可重用代码移动到共享项目中的基础 class 并在我的服务中继承该 class。这是最好的方法吗?

我猜你所有的服务都会做很多不同的工作,所以一旦你填充你的 EventSource 类 它们将彼此完全不同,除了一种方法是服务启动?

与任何日志记录一样,有许多不同的方法,我喜欢的主要方法之一是使用 AOP 或使用 IoC 容器的拦截器代理,这将使您的 类 保持干净,但允许重复使用 ETW代码和相当数量的日志记录,以便稍后进行调试。

我将大量重复代码移到了我自己的运行良好的 nuget 库中。这是一个额外的依赖,但总是比重复代码更好。现在我打算在 visual studio 中制作我的一个 SF 模板,这样我就不必删除和调整一些文件了。

我找到了一个不错的库 (EventSourceProxy),它可以帮助我管理 ETW 的 EventSource 代码:https://github.com/jonwagner/EventSourceProxy