首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单片和微型Lambda函数之间的权衡是什么?

单片和微型Lambda函数之间的权衡是什么?
EN

Stack Overflow用户
提问于 2021-10-15 22:31:44
回答 1查看 279关注 0票数 1

我们不断地遇到如何将责任组织到AWS函数中的问题。其中一个例子涉及CRUD操作:

假设我们有四个类,W、X、Y和Z,每个类都有一组CRUD操作。如果我们对每个操作和每个类都有一个lambda,那么这些lambda就会非常简单,可能太简单了,不足以证明lambda是正确的。我们可以为所有类的CRUD操作编写一个lambda (创建W、读取W、更新W、删除W)。它将有一个开关语句来选择正确的CRUD操作。我们还可以为所有类的每个CRUD操作编写一个lambda (创建W、create、create、create )。我们甚至可以让一个lambda来完成这一切,在业务逻辑周围使用嵌套的switch语句。

我在单机上编程的经验让我讨厌让lambdas为一个类做任何事情,而不是一个CRUD操作。我也看过几个主持人说我的厌恶是很好的。不幸的是,他们没有提供任何解释,所以我无法选择适合我的上下文。

在不太费劲的情况下,我可以想到支持单片灯具的两个原因:

  1. Lambda冷启动将通过更多的功能进行摊销,而且发生的频率也会更低。
  2. -- lambda的编程开销大于函数。每个lambda都需要管理(部署、选择适当的资源参数等)。

除了提取参数并将其传递给switch语句所带来的复杂性之外,我将对micro的参数进行空白处理。

你的经验对单块和微型灯笼之间的权衡有什么其他见解吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-15 23:16:40

“Micro”(您称之为Micro)实际上可能会导致更多的冷启动成本,因为您最有可能使用相同的SDK来执行所有4个CRUD操作--您的依赖项很可能是相同的&现在,不是4个CRUD操作的一个冷启动,而是4个冷启动。

只有当您需要在业务逻辑中有意识地拆分某个Lambda时,或者Lambda的运行时间持续危险地增加时,才会将Lambda拆分掉。

否则,对于CRUD操作,将它们100%地保持在一起;您只需要为自己创建4个不同的Lambdas,在一个资源上发生4次冷启动,为CRUD操作创建更多的麻烦。

我用来判断Lambda是否变得太大的一个很好的个人指标是查看执行角色--这个角色中的策略在一起是否有意义?

如果不是的话,为了一个更容易管理的项目的好处,拆分可以保持在一起。

为每一个新的CRUD操作创建一个新的Lambda将单一责任原则降低到不应该的水平。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69591236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档