Performance 在WS-API中选择性能和易用性
我们正在为我们的产品创建一个新的API,它将通过web服务公开。我们有一个内部辩论,API应该尽可能容易使用(以进行更多调用为代价)还是尽可能高效(使其更难使用)。例如,出现了两个问题:Performance 在WS-API中选择性能和易用性,performance,web-services,api,usability,Performance,Web Services,Api,Usability,我们正在为我们的产品创建一个新的API,它将通过web服务公开。我们有一个内部辩论,API应该尽可能容易使用(以进行更多调用为代价)还是尽可能高效(使其更难使用)。例如,出现了两个问题: 我们应该在服务器上管理会话信息,还是应该将该信息传递回用户,并期望用户在需要时将其发送回我们?(请忽略会话的安全影响) 我们是否应该合并可能产生结果的调用,以节省往返的时间,即使它们实际上不共享相同的逻辑功能 基本上,桌面用户支持清晰、易于使用的API,而互联网用户则希望使其尽可能高效。这是我们提供的第一个
- 我们应该在服务器上管理会话信息,还是应该将该信息传递回用户,并期望用户在需要时将其发送回我们?(请忽略会话的安全影响)
- 我们是否应该合并可能产生结果的调用,以节省往返的时间,即使它们实际上不共享相同的逻辑功能
那么,我们的战略应该是什么?创建这样的API时有哪些常见做法?在我看来,最好是为那些将不得不使用您的API的人提供最简单的API,但让这些人有深度定制的可能性,使其高效,即使使用起来更难
但是用户的简单性>所有。在我看来,最好是为那些将不得不使用您的API的人提供最简单的API,但让这些人有深度定制的可能性,使其高效,即使使用起来更困难
但是用户的简单性>所有。典型的使用场景是什么?API的延迟会决定UI的响应能力吗?性能权衡将有多大?在不了解你的情况下,很难提出任何建议 但是
典型的使用场景是什么?API的延迟会决定UI的响应能力吗?性能权衡将有多大?在不了解你的情况下,很难提出任何建议 但是
我建议您按照以下步骤创建web服务,这意味着无状态。效率比易用性更重要。以后,您可以始终在API之上创建一个框架,以减轻实现难题。我建议您按照API创建web服务,这意味着无状态。效率比易用性更重要。以后,您可以在API之上创建一个框架,以减轻实现方面的麻烦。您正在讨论一个循环图。这就是可用性(易用性) 您可能会将这两个方面都考虑进去,因为它们都会影响用户性能 这是(i)可定制功能的范围与(ii)操作这些功能的效率的对比。两者之间将有一个交叉点 我要说的是,提供一个简单的API,将控制权交给用户——这是CMS的主要目的。最初可以组合的更详细的方面,稍后将它们作为附加控件引入 通过这种方式,您将管理用户对系统的学习曲线,以便(i)在开始时不要用过多的选项轰炸他们,(ii)允许他们在开始时快速采用您的系统。然后,通过提供更多的API特性来扩展您的用户控制(从用户角度来看的系统功能)
另一个很好的建议是,在你走的时候提前询问你的用户。你正在辩论一个循环图。这就是可用性(易用性) 您可能会将这两个方面都考虑进去,因为它们都会影响用户性能 这是(i)可定制功能的范围与(ii)操作这些功能的效率的对比。两者之间将有一个交叉点 我要说的是,提供一个简单的API,将控制权交给用户——这是CMS的主要目的。最初可以组合的更详细的方面,稍后将它们作为附加控件引入 通过这种方式,您将管理用户对系统的学习曲线,以便(i)在开始时不要用过多的选项轰炸他们,(ii)允许他们在开始时快速采用您的系统。然后,通过提供更多的API特性来扩展您的用户控制(从用户角度来看的系统功能) 另一个很好的建议是提前询问您的用户。我的2美分: 首先从提供高性能的非常细粒度的低级API开始。 然后创建一个易于使用的高级API,它由上述低级API“组成” 这样,客户可以根据自己的需要定制自己的行为。客户机可以从使用高级API开始,但如果某些用户操作需要高性能,他们可以在一个案例中使用速度更快但难度更大的低级API-