1

假设您有一个功能可以reserve a dining table分解为多个 lambda 函数,例如:

1. RestaurantsLambda - get list of restaurants etc
2. BookingLambda - takes payment, confirms booking etc
3. EmailLambda - sending confirmation emails.

现在你会把以上所有的 lambdas 放在 1 个罐子里还是每个 lambda 罐子都有一个罐子?

4

1 回答 1

1

可能所有的功能都非常小。如果是这样的话,到头来不会有什么不同。但是如果它们很大或者函数有不同的依赖关系,它会有所不同,但是......

最佳实践是在 lambda 中仅保留函数所需的代码。这包括依赖项和库,当然还有主要代码。这种最佳实践基于这样一个事实,即对于 lambda 执行,必须在第一次调用时下载代码(一段时间后,代码被关闭,下一次调用将再次被视为第一次调用)。在 Java 中还有一个额外的痛苦,那就是在代码执行之前发生的类加载过程。

所以:理解这个响应的最好方法是:更大的代码库,加载函数需要更多的时间,这将花费你更多的时间。

长话短说:每个函数一个罐子!

额外点:在 Java 中,您必须非常小心要导入的库。例如,在 aws-sdk 中,您必须只导入您需要的库,而不是导入整个 aws-sdk。这将使您的功能保持苗条,并且......再次阅读最后一段......;-)

于 2018-08-16T12:20:16.583 回答