2017-03-10 33 views
1

我有两个动作,一个以“id”和“event”作为输入并保存到数据库,另一个以“id”,“event”和“thirdparty”作为输入并保存到数据库。这个过程是相似的,但有点不同。对于“第三方”,我不需要检查数据库中“事件”相关的“第三方”。我应该将两个类似的动作放在两个独立的方法中,并将两个路径合并为一个在播放框架中吗?

问题是,哪一个可以提供最佳性能?一条路线与一些开关逻辑?或两条路线分别采取两项行动?

我正在使用scala play 2.5.x和cassandra数据库。

更一般的是,有更多的路线是更好的做法吗?或更少的路线,但更复杂的逻辑?

回答

0

如果代码相同(开关除外,可忽略不计),性能是相同的。更重要的是如何构建代码和端点以避免代码重复,并且具有一致的端点列表。

这实际上是特定应用程序,所以很难建议这个或那个。两者都是正确的,这取决于你的应用程序的结构。


在性能方面基本上是相同的,因为每个请求是独立的,唯一的区别将是一个if检查第三方是否应该被调用。

关于最佳实践,如果您有其他路径具有可选参数和切换逻辑,我可能会选择一个维护代码中的一致性。如果没有,那么只要代码不太复杂,你应该将合理的路线分组在一起,如果代码变得复杂,则表明它们不应该组合在一起。

对于这种情况,我的直觉是只使用路由,因为与第三方联系似乎只是一个简单的额外步骤,但这真的取决于您自己决定。两种选择都是正确的。

+0

我更加好奇它是否会在性能方面产生影响。有更多的路线是更好的做法吗?或更少的路线,但更复杂的逻辑? – yang

+0

@yang如果代码变得太复杂,则表明端点可能做了太多事情并且应该重构。在这种情况下,它看起来像是一个简单的额外步骤。我用更多的见解更新了答案 – nmat