CPANモジュールのドキュメントの良いところ - 読みやすいドキュメント

Perl/CPANの良いところ~なぜCPANにはモジュールが集まるのかの5.で「ドキュメントの構造が統一されている」と書いたが,それだけでは無いんだなということに気づいたので追記。 実はこの順番は読みやすいドキュメントになるようになっている。良く考えたらUNIXのmanと同じ構成なのですけど。
  1. NAME
  2. VERSION
  3. SYNOPSIS
  4. DESCRIPTION
  5. (メソッドor関数の詳細など)
  6. SEE ALSO
  7. AUTHOR
  8. COPYRIGHT
この順番は,モジュールを使おうか検討しているユーザ(Perl開発者)の興味を惹くように配慮されている。 NAMEとVERSIONが最初なのはとりあえず「ふんふん」と流すとして,次に出てくるSYNOPSISでモジュールの使い方をまず大雑把に示すことになっている。 DBIだとちょっと大きすぎるのでLWP::UserAgentを例にあげてみよう。  require LWP::UserAgent;    my $ua = LWP::UserAgent->new;  $ua->timeout(10);  $ua->env_proxy;    my $response = $ua->get('http://search.cpan.org/');    if ($response->is_success) {      print $response->content;  # or whatever  }  else {      die $response->status_line;  }   これを見ただけで「そうか,このモジュールだとこんなに簡単にWebページを取得することができるんだな」というのがまず分かる。これで「このモジュールで何ができるのか」を最初に示すことで興味を惹きつけることができた。 何をやっているのか,これだけで分からないとしても次のDESCRIPTIONで補足できるだろう。 興味を持ったユーザは,このSYNOPSISをもうちょっと読んで「このモジュールはnewしてtimeoutとかを設定してgetをするんだな。そうするとresponseという別のオブジェクトが返ってくるのだな。getの詳細を見てそっちのドキュメントも読む必要があるのかな」というくらいのことが読み取れる。 モジュール動作を理解するきっかけになるメソッド名を教えることができた。 その直後にメソッドの詳細説明があるが,ユーザはまず上で出てきたメソッドから読み始めることができる。 滅多に使わないメソッドは後で読むことができる訳だ。 ここまで来たら後はもう放っておいてもユーザはドキュメントを隅から隅まで読み始めるだろう。 AUTHORを見て「この人は他にどんなモジュールを使ってるのかな」とか,COPYRIGHTを見て「よし,次の案件に使おう」とか思うようにもなるかもしれない。 そして,不幸にしてユーザが探しているのがこのモジュールでは無かったとしても,早い段階で「ああ,これは違うな」と判断することができる。 では,これが逆順だったら? COPYRIGHTを見て「うるさいな,まだ使うかどうかも決めてないのに」と思い,AUTHORを見て「名前見ても分からないよ」と思い,大量のメソッドの詳細にうんざりし,ようやく何ができるのか,どうやって使うのかが見つかる。 しかし,そこまで根気良く読み進めるユーザがどれだけいるだろうか? 途中で投げ出してしまうユーザがほとんどだろう。 以上のように,Perl/CPANモジュールのドキュメントの読みやすさにはこの'順番'も一役買っている。そして,podの中ではSYNOPSISの書き方こそがもっとも重要と言っても良いかもしれない。

Trackback URL for this post:

http://www.typemiss.net/trackback/54