在客户端视图中重新使用数据库模型是否被认为是不好的做法?
Is re-using database model in client view considered bad practice?
假设我的数据库中有一个用户 table。在我的 WCF 服务中,它会生成 POCO。如果我一直重复使用这个 POCO 直到客户端 GET 请求的结果。这是流程:
browser/client <-- REST API (Web API 2) <-- SOAP API (WCF) <-- Database
这被认为是不好的做法吗?
如果是这样,为什么?
我能想到的唯一原因是它揭示了数据库结构。
这是一个权衡
优势
- 更少的代码
- 更少的映射边界
- 更少的概念开销
缺点
- 在多个层
上非常高耦合
- 架构更改更困难(不影响客户端)
- Web 服务中潜在的阻抗不匹配,因为 DB 问题泄漏到 API
就我个人而言,我认为您提到的所有这些层之间的耦合有点太多了。我只会将这种方法用于没有可维护性要求的快速破解。
但是你得自己权衡利弊。
假设我的数据库中有一个用户 table。在我的 WCF 服务中,它会生成 POCO。如果我一直重复使用这个 POCO 直到客户端 GET 请求的结果。这是流程:
browser/client <-- REST API (Web API 2) <-- SOAP API (WCF) <-- Database
这被认为是不好的做法吗? 如果是这样,为什么?
我能想到的唯一原因是它揭示了数据库结构。
这是一个权衡
优势
- 更少的代码
- 更少的映射边界
- 更少的概念开销
缺点
- 在多个层 上非常高耦合
- 架构更改更困难(不影响客户端)
- Web 服务中潜在的阻抗不匹配,因为 DB 问题泄漏到 API
就我个人而言,我认为您提到的所有这些层之间的耦合有点太多了。我只会将这种方法用于没有可维护性要求的快速破解。
但是你得自己权衡利弊。