4

我们公司正在为一切推荐服务。

所以在需求实现会议上,我被问到为什么将服务推荐给现有的存储过程。

他们想直接使用存储过程,不想调用内部调用相同存储过程的服务。

他们的论点是 Web 请求如何处理大量数据并且存储过程比服务更快。

我唯一的论点是服务可以向任何人公开,也可以在外部使用。

我告诉他们我们可以使用分页技术来分解期望大量数据作为对多个请求的响应的请求。他们不相信。

你还有什么理由吗?

4

2 回答 2

2

这归结为软件质量。

好的软件质量应该包括以下几点:

  1. 可读性
  2. 可维护性
  3. 效率
  4. 安全、异常和错误处理
  5. 可测试性

我认为您会发现存储过程将无法涵盖所有​​这些要点以及具有良好源代码控制的托管代码。在对数据库运行一个大的长计算调用时,服务特别有利。

在我看来,使用调试器单步执行也非常有价值。

但是 - 如果不担心软件质量的这些点,那么在性能方面在数据旁边运行计算是有优势的,特别是如果对数据库有很多调用(连接开销较少)。此外,解决方案可以更简单,没有编译和服务设置的开销。

于 2013-05-03T16:40:37.603 回答
2

可能有很多原因,但适用性会因问题域而异。如果用户熟悉存储过程,并且如果没有客户端应用程序、没有用户界面、不需要多个数据视图等,那么就没有足够的论据来反对直接使用存储过程。

一般而言,服务提供以下好处。您需要判断它们是否适用于您的要求:

  1. 支持多个客户端,视图。
  2. 定义事务边界。
  3. 将数据从存储在 db 中的格式映射到域对象的地方,考虑到服务层的 DAO/ORM 部分而不是存储过程。
  4. 捆绑业务逻辑/规则。
  5. 底层数据源更改不会影响消费者/视图。
  6. 更好的日志记录。
  7. 过滤/代理选项。
  8. 用于负载平衡、缓存等的层。

还有很多。

于 2013-05-03T20:19:21.607 回答