社内勉強会向けに作成したコード内コメントとJavadocの書き方についてのスライドを、Speaker DeckとSliDeckで公開しました。
このスライドは概要とメリットについてざっくり説明し理解と学習の動機を作ることを目的としていますが、これは日本ないし中国の大学ではコメントについてそこまで扱わないらしい*1という前提に基づいたものです。
ここに記載のない発展的な内容としては以下が挙げられますが、これらについて学ぶのはまず手を動かした後で良いと考えています。
- API Specとは何か、何を書くことが望ましいのか(読み手目線に立った考え方)
package-info.java
によるパッケージに対するドキュメンテーションコメント- Mavenでjavadocを出荷する方法
- @Documentedアノテーションとは何で、いつ必要なのか
- コード内コメント以外のドキュメント(README、コミットコメント、バグトラッカー、プルリクエスト等)の使い方、使い分け
プレゼン後に「publicでないクラスやメソッドにJavadocを書くべきか?」という質問を受けましたが、私の答えは「書くべき」です。自分自身の理解を深め、備忘にもなり、将来のメンテナンスも助けてくれます。少しでも直感的でないコードがあるならば、時間を取って書きたいです。 まぁ書くべきものは厳密には対外的なAPI Specではなく、内部実装方針や歴史的経緯等になるかもしれませんので、Javadocを書くべきというよりは開発者向けドキュメントを書くべきと言うべきなのかもしれません。
また、ドキュメンテーションコメントはOSS contributionの良い題材になるとも話しました。typo修正くらいなら敷居は低いですし、多くのOSSでは喜ばれるはずです。自分の経験上、リジェクトされることはほとんどありませんでした:
- FindBugs / Bugs / #1232 Improve javadoc about OperandStackDetector
- [javadoc] explain sample values and related classes to improve readability by KengoTODA · Pull Request #52 · findbugsproject/findbugs · GitHub
- fix typo in the documentation comment. by KengoTODA · Pull Request #342 · google/closure-library · GitHub
なお自分のJavadocに関する理解は、Oracle公式ドキュメントに加えて「エンジニアのためのJavadoc再入門講座」に依るところが多いです。英語の解説書でこのくらい幅広く丁寧に説明したものが欲しい……。
エンジニアのためのJavadoc再入門講座 現場で使えるAPI仕様書の作り方
- 作者: 佐藤竜一
- 出版社/メーカー: 翔泳社
- 発売日: 2009/06/30
- メディア: 単行本(ソフトカバー)
- 購入: 15人 クリック: 263回
- この商品を含むブログ (49件) を見る
*1:共同開発ないし保守については優先度が低い印象を受ける