有关框架设计的问题探讨

28 天前
 brazz
问题 1:service 层的主要职责是什么? service 层的入参传 ID 还是对象?
问题 2:在 service 和 service 互相调用之间如何避免一条数据被多次调用查询
问题 3:你们会在 service 层级做参数验证吗?会的话如何避免多个服务之间的验证重复问题产生呢
941 次点击
所在节点    PHP
5 条回复
pota
28 天前
1 、处理业务数据、以单一职责为主,且参数经历不依赖调用放获取
2 、我处理方式是相同或者近似业务的 service 实现相同的 interface ,用成员变量去共享需要共享的数据
3 、参数校验区分情况,用户输入校验我是在 controller 处理,业务参数 service 自己负责
pota
28 天前
@pota #1 勘误。参数经历参数经历不依赖调用放-> 参数尽量不依赖调用方。这该死的输入法
fgt1t5y
8 天前
我一般都是传一整个 request 对象给 service 层方法
encro
6 天前
从写代码爽度和性能上来来说,service 参数应该用对象引用。
从重构,异步化上来说,应该传 id 。

我比较喜欢 nodejs 的一些框架,给 service 加个注解中间件就成了 rpc 或者 rest 的 api 了,参数验证也可以在中间件做。
ywisax
4 天前
1. 不直接操作数据源,不接触界面,就放到 service ;对象;
2. 不是一般 service 要关心的,这个时候应该有独立的 service 去做数据的管理,一般就是 EntityManager 之类的名字;
3. 会,应该重复验证不必要避免;

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1036423

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX