SSブログ

なぜ新たなデザイン本が必要なのか [APIデザインの極意]

APIデザインの極意 Java/NetBeansアーキテクト探究ノート

APIデザインの極意 Java/NetBeansアーキテクト探究ノート

  • 作者: Jaroslav Tulach
  • 出版社/メーカー: インプレスジャパン
  • 発売日: 2014/05/23
  • メディア: 単行本(ソフトカバー)

まもなく書店に並びます。序章「なぜ新たなデザイン本が必要なのか」の冒頭からの抜粋です。
 みなさんは、「プログラミングの世界にはもう十分な数のデザイン本があるのでは」と思うかもしれません。実際、数多くの本があるので、なぜ私がもう1 冊書かなければならないのか(そして、なぜみなさんが読まなければならないのか)と疑問に思うことは当然です。特に、オブジェクト指向システムでのデザインパターンに関しては、いわゆる4 人組(Gang of Four)と呼ばれる人達が執筆した有名なDesign Patterns: Elements of Reusable Object-Oriented Softwareという、オブジェクト指向言語を使用するすべての開発者の必読書があります。加えて、デザインパターンを説明した多くの専門書があり、特定の種類のアプリケーションを作成する場合にはそれらの書籍が役立ちます。さらに、非公式ながらJava プログラマのバイブルであるEffective Javaがあります。これらの事実に照らし合わせても、本当にデザイン本がもう一冊必要なのでしょうか。

 私は、必要であると確信しています。1997 年以来、NetBeans API(アプリケーション・プログラミング・インタフェース)を設計してきました。フレームワークや共有ライブラリを設計する人が経験するであろうすべての段階を経験してきました。初めの頃は、他の言語でうまくいったコーディングスタイルを適用しながらJava言語に徐々に慣れていきました。後に、Java に精通するようになり、その時点で、Java で書かれた私のコードに様々なよく知られたパターンを適用することは簡単に思えました。しかし、しばらくして、物事は見かけほどいつも簡単ではないことに気付いたのです。NetBeans などのオブジェクト指向のアプリケーションフレームワークには、伝統的なパターンは適切ではないことと、完全に異なるスキルを必要とすることに気付いたのです。

 最も古いNetBeans API は、1997 年に設計されました。そのいくつかは、10 年以上経った今でも使用されていますし、きちんと動作しています。しかし、正直なところ、それらは昔と全く同じAPI ではありません。長年にわたって、新たな要求に対応し、ライブラリの機能を拡張し、初心者として犯した誤りを修正する必要がありました。それでも、コードをコンパイルしたAPI のクライアントは、今日の最新のライブラリでもそのコンパイルされたコードを実行することができます。これは、私達ができる限り後方互換性を維持するように努めてきたことで可能になっています。結果として、10 年前のライブラリに対して書かれたプログラムは、現在のライブラリのバージョンでも動作するでしょう。後方互換性を維持してライブラリを発展させるという私達の決定によってもたらされた、投資を無駄にしない方法は、よく知られたデザイン本には書かれておらず、私が今までに読んだデザイン本には少なくとも書かれていませんでした。すべてのNetBeans API が何の問題もなく発展したということではありませんが、NetBeans チームは互換性を維持する高いスキルを今では習得したと確信しており、そのスキルは他のプログラマでも広く必要とすることを信じています。そのため、この本の大部分が、後方互換性を維持することと、後方互換性を維持しながら保守するのに適したコードを生み出す特別なAPI デザインパターンに費やされています。

コメント(0)