JavaDoc(ジャバドック)のような仕組みは、ほぼすべての主要なプログラミング言語に存在するのか?
結論から言うとJavaDoc(ジャバドック)のような仕組みは、ほぼすべての主要なプログラミング言語に存在しています!
それぞれの言語には、専用のドキュメンテーション生成ツールがあり、ソースコード中のコメントから自動的にHTMLなどの形式でAPIドキュメントを作ることができます。
以下に代表的な言語と対応ツールを紹介します。
各言語におけるドキュメント生成ツールの比較表
言語 | ドキュメント生成ツール | コメントの形式 | 備考 |
---|---|---|---|
Java | JavaDoc | /** コメント */ | 一般的に@param や@return などを使用 |
Python | Sphinx / pdoc / pydoc | """docstring""" | 関数やクラスの先頭に書く |
JavaScript | JSDoc | /** コメント */ | JavaDocに似た形式 |
C# | XML ドキュメントコメント | /// コメント | Visual Studioと連携可能 |
Go | GoDoc | // コメント | コメントは関数の直前に書く |
Rust | rustdoc | /// コメント | Markdown形式が使える |
PHP | phpDocumentor | /** コメント */ | JSDocやJavaDocに似ている |
Swift | Swift-Doc / jazzy | /// コメント | AppleのXcodeと親和性あり |
それぞれの特徴を詳しく見てみよう!
Python:docstringとSphinx
Pythonでは関数やクラスの中に """ """
で囲んだ「docstring(ドックストリング)」を書きます。
def greet(name):
"""名前を受け取って挨拶する関数"""
print(f"こんにちは、{name}さん!")
このコメントをもとに、Sphinxというツールが自動でHTMLマニュアルを作成できます。
また、Markdownのようにレイアウトも調整できます!
JavaScript:JSDoc
JavaScriptではJSDocが一般的です。JavaDocと似た構文で書けます。
/**
* ユーザーに挨拶する関数
* @param {string} name - ユーザー名
*/
function greet(name) {
console.log(`こんにちは、${name}さん!`);
}
Node.jsやTypeScriptと組み合わせると、型情報もドキュメント化できて便利!
Rust:Markdownで書けるコメント
Rustでは ///
を使って関数や構造体の前にコメントを書くと、自動的にrustdocで読み取られます。
/// 数値を2倍にして返します。
fn double(n: i32) -> i32 {
n * 2
}
なんと、Markdown形式で書けるので、コードブロックやリストも使えるんです!
JavaDocと他ツールの違い
JavaDocはJavaに特化したドキュメントツールですが、他のツールも「コメントからドキュメントを自動生成する」という思想は共通です。
しかし、それぞれの言語の文化やエコシステムに合わせた形式で進化しているのが面白いところですね!
まとめと学習のヒント
JavaDocのような仕組みはどの言語にもあり、読みやすいコードとチーム開発に不可欠です。
次のステップとしては:
- 自分の使っている言語のドキュメントツールを導入してみよう
- コメントを「他人が読む前提」で書く練習をしよう
- Markdown形式やタグの使い方を学んで、リッチなドキュメントを作ろう!
どんなにコードがよくても、説明がなければ伝わらない。
「コードを書く力」と同時に、「説明する力」も育てていきましょう!
他にも気になる言語があれば教えてください!
セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク
投稿者プロフィール

- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
最新の投稿
山崎講師2025年5月9日「テストのしやすさ」を考えたクラス設計とは?Javaを例に新人エンジニア向けにやさしく解説!
山崎講師2025年5月9日合成と集約の違いとは?新人エンジニア向けにやさしく解説!
山崎講師2025年5月9日委譲と集約の違いとは?Javaを使って新人エンジニアにやさしく解説!
山崎講師2025年5月9日「継承は最後の手段」とは?新人エンジニアのためのやさしい解説