>_DEVELOP

Mermaid記法の活用について

目次


この記事では、Mermaid記法の概要と、その実装方法、ソフトウェアエンジニアが仕様や思考の整理にどのように利用できるのかを説明します。
特に、円滑な開発プロセスを促進するための具体例を交えながら解説します。

前提条件

特に特殊なハードウェア環境やソフトウェアバージョンは必要ありません。
WebベースのツールやMarkdownエディタがあれば十分です。

Mermaid記法の概要

Mermaidは、手軽に図やフローチャートを生成するための記法です。
プログラムのフローやシステム設計などを視覚的に整理できます。
Markdownと組み合わせることで、ドキュメント内に直接図を埋め込むことも可能です。

たとえば、手書きの図をスキャンしてドキュメントに貼り付ける代わりに、Mermaid記法を使用すれば、常に最新の状態を保ちながら、修正や更新も容易に行えます。
これにより、開発チーム内でのコミュニケーションが効率的になります。

基本的な記法

フローチャートの基本

Mermaidでは、フローチャートを作成する際に以下のようなコードを書きます。
例として、簡単な判断フローを示します。

graph TD;
    A[スタート] --> B{条件};
    B -->|はい| C[処理1];
    B -->|いいえ| D[処理2];
    C --> E[終了];
    D --> E;


graph TD;
    A[スタート] --> B{条件};
    B -->|はい| C[処理1];
    B -->|いいえ| D[処理2];
    C --> E[終了];
    D --> E;

コードの説明

  • graph TD;は、グラフの方向を指定します。「TD」は「Top Down」を意味し、上から下へ向かいます。
  • A[スタート]は、ノードAを「スタート」として定義します。
  • -->は、矢印の方向を示します。
  • {条件}は、ダイアモンド型の条件ノードを表します。
  • |はい|は条件分岐のラベルを表示します。

階層図の基本

次に、階層図の記法を示します。
これは組織図や分類図に利用でき、以下のように記述します。

graph LR;
    A[親ノード] --> B[子ノード1];
    A --> C[子ノード2];
    B --> D[孫ノード1];
    B --> E[孫ノード2];
graph LR;
    A[親ノード] --> B[子ノード1];
    A --> C[子ノード2];
    B --> D[孫ノード1];
    B --> E[孫ノード2];

コードの説明

  • graph LR;は、「Left to Right」、左から右へ向かうことを示します。
  • ノード間の接続も同様に定義できるため、視覚的にわかりやすい階層関係を簡単に作成できます。

実装方法

  1. MarkdownエディタやWebベースのMermaidツールを開きます。
  2. 上述の記法をコピー&ペーストして、必要な部分を修正します。
  3. 生成された図を確認します。

具体的な使用シーン

Mermaid記法は、以下のようなシーンで特に有用です。

  • 仕様書の作成: 複雑な処理の流れを図にすることで、関係者全員に共通理解を持たせられます。
  • データフローの可視化: システム間のデータの流れを明確にすることで、実装の際のミスを減らせます。
  • ミーティング資料: 定例会議や設計レビューでの資料作成が簡略化されます。

うまくいかなかった場合の注意点

記法のミスや記号の使い方を誤ると、図が正しく表示されないことがあります。
例えば、セミコロンや括弧の不足に注意してください。
エラーが発生した場合は、コンソールログやエディタのエラーメッセージを確認して修正しましょう。

WordPressでMermaidを使うには

WordPressのGutenbergでMermaid記法を直接書いても、標準状態では図として表示されません。

図を正しく表示するには、以下のような方法があります。

  • Mermaid対応のプラグインを導入する
    例:「Mermaid Block」や「MerPress」などのプラグインを使うと、専用ブロックで記法を図に変換可能です。
  • テーマやプラグインでMermaid.jsを読み込み、カスタムHTMLブロックに<div class="mermaid">形式で記述する
  • Markdownプラグイン+Mermaid対応の組み合わせで管理する

まとめ

Mermaid記法を利用すれば、ソフトウェアエンジニアは仕様や思考を視覚的に整理できます。
シンプルな記法により、迅速に図を生成し、チームとのコミュニケーションを効率化することが可能です。

正式なドキュメントやミーティング資料の作成にも役立つため、ぜひ取り入れてみてください。