Closed. This question is opinion-based。它当前不接受答案。
想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
5年前关闭。
我刚刚和我的一位同事进行了有趣的讨论。
我们有一个远程接口,该接口是2000余行代码,其中包含100多种方法。
该接口的实现具有某些逻辑,但也委派给与某个特定问题相关的其他接口。
我认为我们还应该基于关注来拆分远程接口。
优点:
- 关注点分离
-只需为每个接口创建不同的端点,客户端开发人员应仅使用他们感兴趣的接口
-没有“怪物界面”
-例如每个端点可能的安全性
他对此表示反对:
-客户端开发人员可以轻松使用一个远程接口
我想知道这是什么“一般性意见”?
创建一个将您所有关注的问题分组到一个端点的远程立面是一个好习惯吗?
想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
5年前关闭。
我刚刚和我的一位同事进行了有趣的讨论。
我们有一个远程接口,该接口是2000余行代码,其中包含100多种方法。
该接口的实现具有某些逻辑,但也委派给与某个特定问题相关的其他接口。
我认为我们还应该基于关注来拆分远程接口。
优点:
- 关注点分离
-只需为每个接口创建不同的端点,客户端开发人员应仅使用他们感兴趣的接口
-没有“怪物界面”
-例如每个端点可能的安全性
他对此表示反对:
-客户端开发人员可以轻松使用一个远程接口
我想知道这是什么“一般性意见”?
创建一个将您所有关注的问题分组到一个端点的远程立面是一个好习惯吗?
最佳答案
如果考虑可伸缩性以及该接口背后的事实,您最终可能会拥有多个服务(至少在SOA体系结构中),那么确实值得将其拆分为多个接口。
让我们看看为什么:
确实如您所指出的,您将有不同的关注点
您将获得一个轻量级的API-开发人员最终将只使用他们需要的功能
实施版本控制更容易-现在可能不是这种情况,但将来可能会这样
从侧面看,它的可读性和可维护性-较小的接口使调试代码和了解每个问题的意图变得更加容易
实际上,每个端点或每个远程接口的安全性/授权/身份验证都易于实现。
我确信此列表可以继续,但是我现在可以想到的只是其中一些
最后给您一个论点-“它们越大,跌落的难度就越大”