

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ドキュメントの作成と改善
<a name="documentation-best-practices"></a>

プロジェクトの成功にはドキュメントが不可欠です。ドキュメントはコードの仕組みを説明するだけでなく、開発者がアプリケーションの特徴や機能をよりよく理解するのにも役立ちます。質の高いドキュメントを作成・改善することで、ソフトウェア開発プロセスの強化や、高品質なソフトウェアの維持が可能となり、開発者間の知識移転にも役立ちます。

ドキュメントには、コード内のドキュメントと、コードに関するサポートドキュメントという 2 つのカテゴリがあります。コード内のドキュメントはコメント形式です。コードに関するサポートドキュメントには、README ファイルや外部ドキュメントがあります。コード自体は理解しやすいため、開発者がドキュメントをオーバーヘッドと考えることは珍しくありません。小規模なプロジェクトにはそうした考えが当てはまるかもしれませんが、複数のチームが関与する大規模なプロジェクトではドキュメントは不可欠です。

コードの作成者は、その機能をよく理解しているため、ドキュメントを作成するのがベストプラクティスです。開発者は、個別のサポートドキュメントの管理から生じる追加のオーバーヘッドに苦労することがあります。この課題を解決するために、開発者はコードにコメントを追加し、それらのコメントを自動的に抽出して、すべてのバージョンのコードとドキュメントを同期させることができます。

開発者がコードからコメントを抽出してドキュメントを生成する際に役立つ、さまざまなツールがあります。このガイドでは、 AWS CDK コンストラクトの推奨ツールとして TypeDoc に焦点を当てています。

## AWS CDK コンストラクトにコードドキュメントが必要な理由
<a name="code-docs-constructs"></a>

AWS CDK 共通コンストラクトは、組織内の複数のチームによって作成され、異なるチーム間で共有されて消費されます。優れたドキュメントがあれば、コンストラクトライブラリーの利用者は最小限の労力で容易にコンストラクトを統合し、インフラストラクチャを構築できます。すべてのドキュメントを同期させることは大変な作業です。TypeDoc ライブラリを使用して抽出されるコード内のドキュメントを管理することを推奨します。

## コンストラクトライブラリでの TypeDoc AWS の使用
<a name="typedoc-constructs"></a>

TypeDoc は TypeScript 用のドキュメントジェネレーターです。TypeDoc を使用して TypeScript のソースファイルを読み取り、ファイル内のコメントを解析し、コードのドキュメントを含む静的サイトを生成できます。

次のコードは、TypeDoc を AWS コンストラクトライブラリと統合し、次のパッケージを の `package.json` ファイルに追加する方法を示しています`devDependencies`。

```
{

  "devDependencies": {
   
    "typedoc-plugin-markdown": "^3.11.7",
    "typescript": "~3.9.7"
  },
  
}
```

CDK ライブラリフォルダに `typedoc.json` を追加するには、次のコードを使用します。

```
{
    "$schema": "https://typedoc.org/schema.json",
    "entryPoints": ["./lib"],
}
```

README ファイルを生成するには、 AWS CDK コンストラクトライブラリプロジェクトのルートディレクトリで `npx typedoc` コマンドを実行します。

次のサンプルドキュメントは TypeDoc によって生成されます。

![TypeDoc ドキュメントのサンプル](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/best-practices-cdk-typescript-iac/images/sample_typedoc_1.png)


TypeDoc 統合オプションの詳細については、TypeDoc ドキュメントの「[Doc Comments](https://typedoc.org/guides/doccomments/)」を参照してください。