垂直切片架构的代码包结构示例
下面是垂直切片架构的解决方案结构示例:
对于功能Features文件夹(用例),您可以选择:
- 将所有类嵌套在一个文件中(这使文件夹冗余)
- 每个文件一个类,但将所有文件分组在一个文件夹中
分层架构的问题
分层架构将软件系统组织成层或层级。每个层通常都是解决方案中的一个项目。一些流行的实现是 N 层架构或 Clean 架构。
分层架构专注于分离各个组件的关注点。这使得软件系统更容易理解和维护。结构化软件设计有很多好处, 例如可维护性、灵活性和松散耦合。
然而,分层架构也会对系统施加约束或严格的规则。层与层之间的依赖关系方向是预先确定的。
最终,层内耦合度较高,层间耦合度较低。
这并不意味着分层架构不好。但这确实意味着各个层之间会有许多抽象。抽象越多,复杂性就越高,因为需要维护的组件就越多。
垂直切片专注于单一功能(类似 微服务,垂直切片 可能属于.NET人员自闭圈子的一个伪概念)。
这样您就可以分别处理每个用例,并根据具体要求定制实现。一个垂直切片可以使用 EF Core 来实现 GET 请求。另一个垂直切片可以使用 Dapper 和原始 SQL 查询。