Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 59 additions & 6 deletions documents/forMarkdown/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,64 @@ pageClass: lang-home
footer: ©2015 - 2024 Future Enterprise Coding Standards - Future Corporation
---

Markdownベースの設計ドキュメントの規約です
Markdownベースの設計ドキュメントの規約をまとめる

システム開発にて利用する設計ドキュメントをMarkdownベースにすることで、コーディングと同じ慣れたツールを用いて、Gitによるバージョン管理、レビュープロセス、CI/CDなどに自動化(静的解析、自動生成)を行いやすくし、ドキュメントを陳腐化させず、俊敏な設計開発を目指します
システム開発にて利用する設計ドキュメントをMarkdownベースにすることで、コーディングと同じ慣れたツールを用いて、Gitによるバージョン管理、レビュープロセス、CI/CDなどに自動化(静的解析、自動生成)を行いやすくし、ドキュメントを陳腐化させず、俊敏な設計開発を目指す

Markdownに閉じた話では無いが、どういった内容を設計書に記載すべきかは悩むポイントは多いです。

本規約では、アプリケーションの種別ごとに記載すべき内容と、それをどのようなMarkdownの構造で記載するかを規約化し、各チームで悩む余地を減らし、注力すべきことに集中できる環境を提供することを目的とします。
Markdownに限った話では無いが、どういった内容を設計書に記載すべきかは悩むポイントは多い。

本規約では、アプリケーションの種別ごとに記載すべき内容と、それをどのようなMarkdownの構造で記載するかを規約化し、各チームで悩む余地を減らし、注力すべきことに集中できる環境を提供することを目的とする。

## 前提

TODO チーム規模、アプリケーション/ライブラリなど対象、Gitで管理など、
本規約は以下の前提で作成されている

- チーム/プロジェクトが3~30名程度規模程度
- Git(GitHub, GitLab)で管理され、コードと設計書が同一リポジトリで管理される
- システム開発で必要なアプリケーション開発

## フォルダ階層

リポジトリ直下に `docs` フォルダを作成し、その配下に設計ドキュメントとなるMarkdownファイルを配備する。
<!-- TODO 【相談】docsだと公開フォルダとみなされるかもなので、documentsとかにしたほうが良いか? -->

次はバックエンド、フロントエンド、インフラのコードをモノリポで管理している例である。

```sh
.
├── backend # バックエンド系のコード
├── docs
├── frontend # フロントエンド系のコード
├── infrastructure # インフラ系のコード
```

`docs` 配下は以下のルールにしたがった構造を取る。

- `01_`、`02_` といったプレフィックスを持つ
- 番号には体系をもたせず、必要になったタイミングでインクリメントさせる
- オンボーディングコストを抑えるため、なるべく先頭に新規参画者が欲する情報を配備する

構成例を次にあげる。

<!-- TODO 【相談】フロントエンド系、もっとまとめたほうが良いか?Figmaパスだけだとあれですよねぇ。画面遷移図も内容が薄い。 -->

```sh
docs
├── 01_キャッチアップ # ドメイン知識など抑えておくべき前提知識
├── 02_環境構築 #
├── 03_開発規約 # GitFlowなど、リリース方式、CI/CD周り
├── 04_ユーザーストーリー #
├── 05_画面レイアウト # Figmaのパスなど
├── 06_画面遷移図 #
├── 07_画面アクション
├── 08_API設計書 # OpenAPIのパス+各BL設計
├── 09_データモデル # ERD, テーブル定義
├── 10_IF設計書 # I/F定義+受信/送信BL設計
├── 11_バッチ設計書 # タイマー、イベント起動の非同期処理のBL設計
├── 12_インフラ設計 # 監視、キャパシティサイジング、コスト
├── ...
└── README.md
```

## フロントエンド

Expand All @@ -33,6 +78,14 @@ TODO

## バックエンド

### テーブル定義書

A5ER

### Web API定義書

OpenAPI.yamlで記載する

### Web API設計書

TODO
Expand Down