Skip to content

ソースコードを生成しない

irof edited this page Mar 27, 2021 · 2 revisions

JIGはプログラミング言語による設計を補助するツールであり、実際はソースコードおよびバイトコードから情報を読み取って設計を可視化します。

ソースコードとドキュメントを結びつけるためのさまざまな手法が存在します。

  • ドキュメントからソースコードを生成する
  • DSLからドキュメントとソースコードを生成する
  • ソースコードからドキュメントを生成する

image

ドキュメントからソースコードを生成するものは、クラス図を描いてソースコードの雛形を生成するものが挙げられます。

DSLからドキュメントとソースコードを生成するものに、protobufによってAPIを設計し、APIスタブ部分のソースコードを自動生成するgRPCがあります。ドキュメントという観点では、DSLであるprotobufが設計を記述するドキュメントとしての役割を果たし、そこからAPI定義一覧などのドキュメントを自動生成する外部ツールもあります。

これらの手法は一長一短であり、適応領域も解決している問題も異なります。 また、多くのツールは双方向に対応しています。

JIGはソースコードからドキュメントを可視化するツールであり、その逆ではありません。 ソースコードの生成を行うようになると、ジェネレーションギャップパターンの強要など、ソースコードの記述に余計な制約が生まれます。 JIGはコードを歪めないことを重視しています。

これは設計意図を可能な限りソースコードに表現することでソースコードを中心に据えた設計を促進するための制約であり、他の手法を否定するものではありません。 相補的に使用するのが良いでしょう。

狙い・背景・思想

付録

JIGの設定と他ツールとの統合

JIGの利用シナリオ

JIGが提供しないもの

その他

参考リンク 🔗

Clone this wiki locally