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

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

¥3,200+税

品種名
書籍
発売日
2014/5/23
ページ数
432
サイズ
B5変形判
著者
Jaroslav Tulach 著/柴田 芳樹 訳
ISBN
9784844335917

NetBeans開発プロジェクト10年超の蓄積! API設計の経験や考察をまとめた一冊

なぜ、設計の良くないAPIを持つソフトウェアが量産されるのでしょう。エンジニアが良いAPI・悪いAPIについて分かっていない、あるいは、適切なレビューを受けていないからかもしれません。本書では、NetBeansアーキテクトの著者が遭遇してきた様々な誤りを解説し、APIの発展を考慮した設計について詳しく説明。あまり語られることがなかったAPI設計について、貴重な10年間の経験をベースに幅広くノウハウを披露。API設計の技術や知見の水平線を押し広げることができる稀有な一冊です。

「読者アンケートに答える」「読者プレゼントに応募」の場合もこちらをご利用ください。

アンケートに答える

書籍の内容に関するお問い合わせはこちら。お答えできるのは本書に記載の内容に関することに限ります。

学校・法人一括購入に関するお問い合わせはこちらへ。

一括購入窓口

詳細

■著者プロフィール

<著者> Jaroslav Tulach(ヤロスラフ・ツゥラッハ)

NetBeansの生みの親で、初期のアーキテクト。NetBeansは当初、Java統合開発環境として開発され、現在はJavaScript・Ruby・PHP・C/C++などにも対応。今も、オープンソースプロジェクトで開発が続けられている。著者は、NetBeansを支える技術の生みの親として、このオープンソースプロジェクトの成功に貢献。現在も、プログラマーの設計スキルを向上させる新たな方法を探究しつつ、このプロジェクトに参加している。

 

<訳者> 柴田 芳樹(しばた よしき)

1959年生まれ。九州工業大学情報工学科で情報工学を学び、1984年同大学大学院で情報工学修士課程を修了。以来、様々なソフトウェア開発に従事。ゼロックス社のパロアルト研究所を含め、5年間米国に駐在してソフトウェア開発に携わる。現在はソフトウェア開発、教育、コンサルテーションなどを業務としている。

目次

序章:なぜ新たなデザイン本が必要なのか

【第1部 理論と正当性】
第1章  現代的なソフトウェア構築の技芸
第2章  APIを作成する動機
第3章  優れたAPIを決定づけるもの
第4章  絶え間なく変わる標的

【第2部 実践的設計】
第5章  必要以上に公開しない
第6章  実装ではなく、インタフェースに対してコーディングする
第7章  モジュール方式アーキテクチャの使用
第8章  クライアント用とプロバイダ用のAPIを分離
第9章  テストの容易性に留意する
第10章 他のAPIとの協調
第11章 APIの実行時の側面
第12章 宣言型プログラミング

【第3部 日々の生活】
第13章 有害で極端な助言
第14章 API設計のパラドックス
第15章 API宇宙の発展
第16章 チームワーク
第17章 ゲームでAPI設計スキルを向上させる
第18章 拡張可能なビジターパターンのケーススタディ
第19章 終焉の手続き

終章:将来

関連書籍

好評発売中

スラスラ読める Javaふりがなプログラミング

コードが読めればプログラミングは楽しい!!

好評発売中

新世代Javaプログラミングガイド [Java SE 10/11/12/13と言語拡張プロジェクト]

好評発売中

スッキリわかるJava入門 第3版

Java入門史上最強の定番書が増補改訂!

好評発売中

スッキリわかるサーブレット&JSP入門 第2版

本格的なWebアプリ開発を始めるならこの1冊

ダウンロード

本製品の読者さまを対象としたダウンロード情報はありません。

お詫びと訂正

誤記のためにご迷惑をおかけし、誠に申し訳ございません。

  • 0ページ 序章内の見出し「APIの作成を学ぶ」の上、上へ数えて4段落目【電子書籍版の訂正】
    • [誤]
      これに続く、コード再利用の第2の方法として、コンポジションによる再利用も可能ですが、コンポジションによる再利用という2番目にコードを再利用する方法も可能ですが、二流の方法でした。
    • [正]
      これに続く、コード再利用の第2の方法として、コンポジションによる再利用も可能ですが、二流の方法でした。
  • 0ページ 7章7.1節内の見出し「NetBeansランタイムコンテナを通しての間接依存性」の上、上へ数えて5段落目。文章の途中の改行と字下げを削除【電子書籍版の訂正】
    • [誤]
      そのAPIの
       ほとんどは、公開されているパッケージ内のインタフェースから構成されています。
    • [正]
      そのAPIのほとんどは、公開されているパッケージ内のインタフェースから構成されています。
  • 0ページ 13章13.3節内のコラム見出し「2つのダイアログの話」の上から2段落目【電子書籍版の訂正】
    • [誤]
      Linuxの作成者であるLinus Torvaldsは、電子メール()で、GNOMEファイルチューザは、使いづらくて使えないと述べています。
    • [正]
      Linuxの作成者であるLinus Torvaldsは、電子メール(http://mail.gnome.org/archives/usability/2005-December/msg00022.html)で、GNOMEファイルチューザは、使いづらくて使えないと述べています。
  • 0ページ 9章9.1節のコラム「デジタルビデオ放送フロントエンド」の1文目【電子書籍版の訂正】
    • [誤]
      私の土曜日プロジェクトであるdvbcentral()は、同じような状況にありました。
    • [正]
      私の土曜日プロジェクトであるdvbcentral(http://dvbcentral.sf.net)は、同じような状況にありました。
  • 63ページ 上から12行目(4.6節の5段落目の最後の文)【紙版・電子書籍版の訂正】
    • [誤]
      アップブレード
    • [正]
      アップグレード
  • 66ページ 下から12行目【紙版の訂正】
    • [誤]
      私は、「ヤングパイオニア」(young pioneer)※8として旧共産圏で育ちました。
    • [正]
      私は、「ヤングパイオニア」(young pioneer:1922年から1991年まで旧ソビエト連邦で10歳から15歳までの子供達によって構成された組織の一員)として旧共産圏で育ちました。
  • 79ページ 上から6行目(5.4節の2段落目の後ろから2文目)【紙版・電子書籍版の訂正】
    • [誤]
      AbstractionAction
    • [正]
      AbstractAction
  • 94ページ 6.4節のタイトル上 下から2行目(6.3節の最後の1文)【紙版・電子書籍版の訂正】
    • [誤]
      Hello型
    • [正]
  • 101ページ 6.8節のソースコード3行目から7行目まで【紙版・電子書籍版の訂正】
    • [誤]
      インデントが1段階不足
    • [正]
  • 186ページ 10.4節のコード(NonMixedクラスの定義)【紙版・電子書籍版の訂正】
    • [誤]
      「public final int apiForClients() {」の次の行
      int subclass = impl.toBeImplementedBySubclass();
    • [正]
      int subclassのintを太字にする
  • 229ページ 11.4節の3文目(2行目)【紙版・電子書籍版の訂正】
    • [誤]
      synchronized予約を追加するだけで不整合は消えます。
    • [正]
      synchronized予約語を追加するだけで不整合は消えます。
  • 304ページ 15.4節の図15-6上の下から2つ目の段落の1文目【紙版・電子書籍版の訂正】
    • [誤]
      注意を払うべき別の側面は、StackOverFlowErrorになってしまう可能性がある危険な循環をインテグレーションすることです。
    • [正]
      注意を払うべき別の側面は、StackOverflowErrorになってしまう可能性がある危険な循環をインテグレーションすることです。
    • 備考:

       StackOverFlowError ⇒ StackOverflowError

  • 309ページ 16.1節のコラム「私の最初のアーキテクチャレビュー」の5文目【紙版・電子書籍版の訂正】
    • [誤]
      私がその文書を始めて目にした際には
    • [正]
      私がその文書を初めて目にした際には
  • 388ページ 終章内の見出し「発展の準備ができている言語」の上、上へ数えて4段落目。その段落の2文目【紙版・電子書籍版の訂正】
    • [誤]
      完璧で静的な世界では、可能な解放のすべてを求めるために推論を使用し、
    • [正]
      完璧で静的な世界では、可能な解法のすべてを求めるために推論を使用し、

お問い合わせ

書籍の内容に関するお問い合わせはこちら。お答えできるのは本書に記載の内容に関することに限ります。

お問い合わせフォーム