ファンクション・デザイン


AWSラムダを設計するときは、副作用を低くしてください.あなたのハンドラ関数を考えてください.リストと同じように入力できるArray[string] , だけでなく、1つのIOタイプを維持してください.
機能
const handler = async event => {...}
種類:
Event -> IO[String]
私は、これが難しいということを知っています.あなたの関数がちょうど2つのものさえするならばS3 , 次に、Dynamo , それは2 IOイベントです.しかし、それは3つの可能な応答です.
あなたは最初にどのように迅速に“ちょうど1機能”複雑さの成長に驚くことでしょう.経験したならbig ball of mud ” または“ビッグコードベースは、”友人がない場合は、なぜあなたが小さな目的で起動する理由を取得します.
AWS Lambda best practices 小さな、状態のない機能を奨励します.より正式に言うために、彼らは小さいファイルサイズ純粋な機能を奨励します.
それが容易に/速度理由のためにより多くの副作用を作成するとしても、1ラムダでコードを共同で見つけるのはより簡単かもしれません.
Pythonならばreturns library with the IO マーカーmypy .
ジャバスクリプトFolktale v2 Result インPromise .
タイプスクリプトを使用してIOEither (彼らはチェーンを奨励するでしょう、しかし、約束の中でOKです).
スカラZIO から選択するすべての種類のIOタイプがあります.