

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 为大型项目组织代码
<a name="organizing-code-best-practices"></a>

## 为什么代码组织很重要
<a name="organization-important"></a>

对于大型 AWS CDK 项目来说，拥有高质量、定义明确的结构至关重要。随着项目规模的扩大及其支持的功能和构造数量的增加，代码导航变得越来越困难。这种困难可能会影响工作效率，减慢开发人员的载入速度。

## 如何组织代码以实现扩展
<a name="organize-scale"></a>

为了实现较高的代码灵活性和可读性，我们建议您根据功能将代码分成几个逻辑块。这种划分反映了这样一个事实，即大多数构造用于不同的业务领域。例如，您的前端和后端应用程序都可能需要一个 AWS Lambda 函数并使用相同的源代码。工厂可以在不向客户端公开创建逻辑的情况下创建对象，使用通用接口引用新创建的对象。您可以使用工厂作为在代码库中创建一致行为的有效模式。此外，工厂可以作为单一信任源，帮助您避免重复代码，简化问题排查。

为了更好地了解工厂的运作方式，不妨以汽车制造商为例。汽车制造商不需要具备制造轮胎所需的知识和基础设施。相反，汽车制造商将这项专业技术外包给专门的轮胎制造商，然后只需根据需要向该制造商订购轮胎。同样的原则也适用于代码。例如，您可以创建一个能够构建高质量 Lambda 函数的 Lambda 工厂，然后在需要创建 Lambda 函数时在代码中调用 Lambda 工厂。同样，您可以使用相同的外包流程来解耦应用程序，构建模块化组件。

## 示例代码组织
<a name="sample-org"></a>

以下 TypeScript 示例项目（如下图所示）包括一个**公共**文件夹，您可以在其中保存所有构造或常用功能。

![common 文件夹](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/best-practices-cdk-typescript-iac/images/common_folder.png)


例如，**compute** 文件夹（位于 **common** 文件夹中）保存不同计算构造的所有逻辑。新的开发人员可以轻松添加新的计算构造，而不会影响其他资源。所有其他构造都不需要在内部创建新资源。这些构造只是调用通用构造工厂。您可以用同样的方式组织其他构造，如存储。

配置包含基于环境的数据，您必须将其与保存逻辑的 **common** 文件夹分离。我们建议您将通用 **config** 数据放在共享文件夹中。我们还建议您使用 **utilities** 文件夹提供所有帮助程序函数和清理脚本。