Inspired by https://www.industrialempathy.com/posts/design-docs-at-google/
[作りたいもの、あるいは解決したい問題の両方・どちらかがはっきりしている場合はDesign Docを書く必要がない]
[プロトタイピングで代替したり、プロトタイプを設計ドキュメントと組み合わせることも可能]
[新しいシステムができあがった後の世界と、実際に何を作るのか?シンプルに!]
- [箇条書きでシステムの目標]
- [箇条書きでシステムの目標としないこと(場合によってはこっちの方が大事)]
[抽象的なところから詳細に]
[トレードオフも]
[必要に応じてUMLのユースケース図に似ているが、システムとその外部の境界、そのやりとりを記述する]
graph TD;
ユーザー -->|ブラウザ| システム
システム --> 外部システム
システム --> データベース
[APIを公開する場合。ただし、詳細なリファレンスを書く必要はない。設計とトレードオフを書く]
[どのような形式で発生するのかの概要。ただし、スキーマなど詳細なものを書く必要はない。設計とトレードオフを書く]
[新しいアルゴリズムを含む場合などに]
[特定のフォーマットで出力しなければならないなど、外部システムで要件が制約されている場合などに書く]
[考えられる代替案とそのpro/con。実際のデザインを補強するものであり重要なセクション]
[セキュリティ、プライバシー、可観測性などの懸念があれば]