我倾向于根据逻辑分组将我的 API 的 src 代码组织到多个目录和子文件中,当涉及到数据库操作时,这些最终也会分成逻辑目录
FWIW这些是nodejs lambdas,但我认为这个问题与语言无关
似乎有 3 个选项,我不确定如何对它们进行排名:
let dynamo = new AWS.DynamoDB.DocumentClient({...})
在每个需要的文件中实例化一个 dynamodb 文档客户端。
- 缺点:似乎不需要重复,配置漂移的风险(除非我使用环境变量)
- 优点:易于实施
- 在父文件中实例化 dynamodb 客户端并根据需要导入
- 缺点:对 webpack 的可能影响,管理相对文件路径可能会变得很麻烦
- 优点:集中配置
- 在控制逻辑的文件中实例化一个 dynamodb 客户端,将作为输入参数添加到所有需要数据库访问的函数中
- 缺点:将参数添加到函数中似乎很臃肿,仍然会创建多个客户端,尽管没有选项 1 那么多,可能的配置漂移
- 优点:非常明确的客户范围
我倾向于选项 2,但我真的很感激关于你们如何合理化这一点的任何见解。