Skip to content

Instantly share code, notes, and snippets.

@shibukawa
Last active August 18, 2022 16:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save shibukawa/2e03af76ae3da601db905d8f838b49e9 to your computer and use it in GitHub Desktop.
Save shibukawa/2e03af76ae3da601db905d8f838b49e9 to your computer and use it in GitHub Desktop.

[タイトル]

Inspired by https://www.industrialempathy.com/posts/design-docs-at-google/

[作りたいもの、あるいは解決したい問題の両方・どちらかがはっきりしている場合はDesign Docを書く必要がない]

[プロトタイピングで代替したり、プロトタイプを設計ドキュメントと組み合わせることも可能]

コンテキストとスコープ

[新しいシステムができあがった後の世界と、実際に何を作るのか?シンプルに!]

ゴール

  • [箇条書きでシステムの目標]

ゴール外

  • [箇条書きでシステムの目標としないこと(場合によってはこっちの方が大事)]  

実際のデザイン

[抽象的なところから詳細に]

[トレードオフも]

システムコンテキスト図

システムコンテキスト図 mermaid.jsで記述できる

[必要に応じてUMLのユースケース図に似ているが、システムとその外部の境界、そのやりとりを記述する]

graph TD;

ユーザー -->|ブラウザ| システム
システム --> 外部システム
システム --> データベース

API

[APIを公開する場合。ただし、詳細なリファレンスを書く必要はない。設計とトレードオフを書く]

ストレージ

[どのような形式で発生するのかの概要。ただし、スキーマなど詳細なものを書く必要はない。設計とトレードオフを書く]

コードと疑似コード

[新しいアルゴリズムを含む場合などに]

制約の度合い

[特定のフォーマットで出力しなければならないなど、外部システムで要件が制約されている場合などに書く]

代替案

[考えられる代替案とそのpro/con。実際のデザインを補強するものであり重要なセクション]

横断的な懸念事項

[セキュリティ、プライバシー、可観測性などの懸念があれば]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment