あけましておめでとうございます。
ソフトウェアを開発し公開する場合,
本稿では,
対象とするドキュメント
ドキュメントと一口にいっても仕様書,
このようなドキュメントは一般的にマニュアルと呼ばれます。具体的にはREADMEやAPIリファレンス,
ドキュメントを書くための技術
ソフトウェアの世界にはドキュメントを書くためのたくさんの技術があります。最も古くからある技術で,
他にもPerl,
ドキュメントを書く場所としてREADMEは以前から使われていましたが,
そしてドキュメントの間違いをチェックするツールとして,
ドキュメントを書くための技術とソフトウェア開発の類似性
先ほど紹介したドキュメントを書くための技術は次のように整理できます。
- 言語:HTML,
Markdown, reStructuredText, 独自のドキュメントコメントなど - 場所:GitHub,
Read The Docs, GitBookなど - 検査:RedPen,
textlintなど
また,
- 言語:Ruby,
Java, JavaScriptなど - 場所:GitHub,
BitBucketなど - 検査:Lintツール,
コーディング規約, コードフォーマッターなど
このように言語,
しかし,
- 要素:GoFのデザインパターンやMVCに代表されるようなコードそれぞれの役割
- 性質:保守性,
可用性, 信頼性, 障害耐性など
ソフトウェア開発ではこれらの要素と性質に対してどのようにアプローチすれば,
ドキュメントの要素と性質
そこで筆者はドキュメントも要素と性質に構造化することを考えました。そしてその要素と性質をそれぞれ次の5つに整理しました。
- 要素
- 導入:ソフトウェアのインストール方法,
環境構築の方法など - 操作:ソフトウェアの実行方法,
設定の方法, チュートリアルなど - 参照:ソフトウェアのAPIリファレンス,
網羅的な設定項目など - 事例:ユースケースに応じた使い方や設定方法のサンプル,
スクリーンショットやデモ動画など - 履歴:これまでの変更履歴,
リリースの内容など
- 導入:ソフトウェアのインストール方法,
- 性質
- 継続性:ドキュメントが継続的に保守されているかどうか
- 網羅性:ソフトウェアについて抜けも漏れなく書かれているかどうか
- 正確性:ソフトウェアについて正しく書かれているかどうか
- 関連性:関係するドキュメントが相互に紐付いているかどうか
- 検索性:ドキュメント内を検索できるかどうか
このように整理した要素と性質に対してアプローチすることで,
そこで以降では筆者が開発しているESDocというJavaScript向けのドキュメンテーションツールを紹介します。ESDocはこの要素と性質に対してアプローチを行うことで良いドキュメントを書くためのツールを目指しています。