News.jp(Javaに関する最新ニュース)」の安藤幸央氏が、CoolなプログラミングのためのノウハウやTIPS、筆者の経験などを「Rundown」(駆け足の要点説明)でお届けします。Interface)に囲まれています。APIも含む)の利用範囲は、社内で使うものから、オープンソースで公開するものまでさまざまな形態が考えられます。APIの誕生の発端はいろいろありますが、以下のようなものが考えられます。McClanahan氏が休暇中に思い付いて開発したものだそうです。オレゴン州のビーチで、ラップトップに向かい、3日間の休暇中ずっとコーディングしていたそうです。一緒に行った奥さんは機嫌が悪かったようですけど。ここでは、作成したAPIが自分だけではなく、多くの人に使ってもらえるよう、便利に使えるポイント、広く普及するためのポイントをとらえていきましょう。API設計のポイント開発したAPIを数多くの人に活用してもらおうと思った場合、APIの機能や性能以上に大切な事柄がいくつかあります。自分がよく利用しているフレームワークやAPI群には、共通したある要素があることが再認識できるでしょう。利用するために覚えることが少なくて済むこと頻繁に使うものは、デフォルト値で簡単に使えること頻繁に使うものは、できるだけコンパクトにまとめること(多機能になり過ぎないように)頻繁に使うものは、できるだけ短い名前で。使わないものは、逆に長い名前でもよい頻度の低い細かな機能や、詳しい人は深いところまで細かく設定して使えることできるだけ簡単に。できるだけソースコードを書く量は少なくて済むこと無駄な繰り返し、設定などを記述しなくても良いようにする同じ機能を持つものが複数個所にあると混乱する。統一・統合を考える統一された設計思想の下に作られ、少し慣れると、使い方が予想できること各API、メソッドの名前に統一感がある。欲しい機能名が予想できること規格を網羅しようとするために、複雑になり過ぎてはいけない。必要な機能がそろっていること。重要な機能が未完成だと、以降、使ってもらえなくなる大量のソースコードの中でも読み取りやすい(あるAPIの一部であることが認識しやすい)ことコードが読みやすいことが第一。文字数を少なくするために読みやすさを犠牲にしてはならない何がデフォルトであるのか、が明確に分かること。True/Falseでは、一瞬どちらがどちらだか分かりにくい内部実装やパフォーマンスチューニングにAPIそのものの機能が影響を受けないことメソッド名などに、ほかのライブラリと同じ名前が混在すると混乱する。関して明確な指針があること統一されたパッケージでまとめられ、ほかのパッケージ(ライブラリ)と衝突しないことある特定のマジックナンバー(1番が何、2番が何、......)を使わないこと。覚えなくてもよいこと定番の省略形があったり、多少長いと感じても、フルスペルで命名すること。ヘタな省略形を使った命名だと、時間がたつと誤解されたり、訳が分からなくなる場合が多いAPIの宣言部分(関数やクラスの冒頭)に必要最低限のAPIドキュメントを記述しておく。ソースコードを見ただけで、ある程度のことを把握できるようになる。多数を拾い読みするときに便利エラーメッセージは、どこで何が起こったのか、原因と思われる事象は何なのかを明らかにする。新しい、初めてのAPIを利用するかしないかといった判断をする場合、ドキュメントの充実度も重要な要素になってきます。世の中には、Ajax用のPrototype.jsのように、ソースコード中に解説が書かれ、公式ドキュメントがまったくない変わった例もありますが、大抵の場合、ドキュメントの充実度は、APIそれ自身の完成度にも大きくかかわってきます。多くの人にAPIを利用してもらいたい場合、APIそのものの出来や性能のほかにも、数多くの要素が重要視されます。流行のAPIとなるためには、APIそのものの出来だけでは普及しないのです。人気のAPIにする付加要素の6カ条ネーミングはとても大切である。覚えやすい名前であること、Googleで検索しやすい、一般的ではない単語、ほかにはない独自の名前であること、つづり間違いをしにくい単語名であることが重要が重要(できれば)オープンソース化されており、ライセンス形態が明確になっていることAPIを利用する開発者間でコミュニティが形成されていること(ノウハウを蓄積した人がいる、利用者が多いといった安心感が得られる)開発者、開発チームへのフィードバックが受けられる場(連絡先)、雰囲気があること頻繁にバージョンアップされており、開発版と安定版が明確に分かれていること将来のロードマップが明らかにされており、今後の発展や、将来性が感じ取れることAPI普及への道のり世の中には数多くのAPIがあり、オープンソースのものから、企業が製品として販売しているものまでさまざまなものが存在します。APIを組み合わせて開発する場合、そのAPIの枠組み以上には自由度がなくなる弊害に陥りがちです。新たな発想が閉じ込められてしまわぬよう、自由な発想の下にアイデアを実現するのが理想です。便利なAPIを見つけ、便利なAPIを開発し、便利に活用していきましょう。40カ条目は......もし、40カ条の方がキリがよいと思われる方がいれば、ぜひご自分のノウハウを1つ加えるようにしてみてください。次回は、9月初めころに公開の予定です。内容は未定ですが、読者の皆さんの興味を引き、役立つ記事にする予定です。次回もどうぞよろしく。ゆきお)1970年北海道生まれ。マルチメディアソリューションセンター所属。フォトリアリスティック3次元コンピュータグラフィックス、リアルタイムグラフィックスやネットワークを利用した各種開発業務に携わる。ソフトの開発、インターネットベースのコンピュータグラフィックスシステムなどを手掛ける。情報源となるWebページをまとめている。今回は、ソフトウェア品質を高めるために進化を遂げてきたアプリケーション開発環境の最近の道筋を概観する。Webアプリ開発に必要なツールとなってきたAjaxライブラリ。アイデアとテクニックがあれば個人でも強力なWebサービスを生み出せる。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。