インターフェイスを設計するために読んだ技術書まとめ
アーキテクトの(機能面での)主要な仕事の1つに、システムを構成するサブシステム/コンポーネントの境界、つまりインターフェイスを決める、というものがあります。またはそこまで大げさに捉えなくても、例えばライブラリのAPIを設計する、というのは単にプログラミングをする、ということとは少し違う視点が求められるように思います。
案外インターフェイスを考えるという観点での技術書まとめがないような気がしたので、需要があるかわかりませんが関連して読んだ本を紹介しておきます。なお、個人的なキャリア上、C++/Javaが対象です。(色々経験したら随時追加するかも知れません)
何か他にいい本があったらぜひ教えてください。
言語仕様をきちんと知る
まずはAPIを設計する対象言語をよく知る、ということは必要であると思います。これだけだと、結果的にプログラミングに精通するということとあまり変わりはないかも知れません。
少なくとも、アクセス指定子やconstもしくはfinalなどを適切に使いこなすことは必要です。もしフレームワークを作るのであれば、加えてテンプレート(ジェネリクス)やリフレクション、オブジェクトファイルやクラスの動的ロードなど、APIを利用するだけならあまり知らなくて良いところを知っておく必要があるのではないかと思います。
- 作者: スタンリー・B・リップマン,ジョゼ・ラジョワ,バーバラ・E・ムー,玉井浩
- 出版社/メーカー: 翔泳社
- 発売日: 2006/07/04
- メディア: 単行本
- 購入: 5人 クリック: 25回
- この商品を含むブログ (21件) を見る
プログラミング言語Java (The Java Series)
- 作者: ケン・アーノルド,ジェームズゴスリン,デビッドホームズ,柴田芳樹
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2007/04
- メディア: 単行本
- 購入: 38人 クリック: 1,044回
- この商品を含むブログ (73件) を見る
Effective C++ 第3版 (ADDISON-WESLEY PROFESSIONAL COMPUTI)
- 作者: スコットメイヤーズ,小林健一郎
- 出版社/メーカー: 丸善出版
- 発売日: 2014/03/18
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
EFFECTIVE JAVA 第2版 (The Java Series)
- 作者: Joshua Bloch,柴田芳樹
- 出版社/メーカー: 丸善出版
- 発売日: 2014/03/11
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (5件) を見る
インターフェイスとはどういうものかを考える
下記の本は、インターフェイスを設計する、ということに力点を置いた書籍です。"インターフェイス指向設計"は、インターフェイスを考えるきっかけとして良い本だと思います。また、下の2冊は言語は違えど着目点は似ており、インターフェイスを設計する上での注意点やプラグインアーキテクチャを実現するための具体的な機構が載っていて有用でした。
インターフェイス指向設計 ―アジャイル手法によるオブジェクト指向設計の実践
- 作者: Ken Pugh,角谷信太郎(監訳),児島修
- 出版社/メーカー: オライリージャパン
- 発売日: 2008/05/24
- メディア: 大型本
- 購入: 16人 クリック: 357回
- この商品を含むブログ (67件) を見る
- 作者: マーティン・レディ,Martin Reddy,三宅陽一郎,ホジソンますみ
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2012/11/02
- メディア: 大型本
- 購入: 4人 クリック: 106回
- この商品を含むブログ (10件) を見る
APIデザインの極意 Java/NetBeansアーキテクト探究ノート
- 作者: Jaroslav Tulach,柴田芳樹
- 出版社/メーカー: インプレスジャパン
- 発売日: 2014/05/23
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (5件) を見る
Web APIを考える
基礎的なWeb関連の知識を学習するのであれば"Webを支える技術"を、基礎的な知識がすでにあるのであれば下の二冊のいずれかを選ぶのが良さそうな気がします。現状鮮度が高く内容が具体的という意味では"Web API: The Good Parts"は多数の有名サービスを分析しており参考になると思います。
Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)
- 作者: 山本陽平
- 出版社/メーカー: 技術評論社
- 発売日: 2010/04/08
- メディア: 単行本(ソフトカバー)
- 購入: 143人 クリック: 4,320回
- この商品を含むブログ (180件) を見る
サービスデザインパターン SOAP/WSDLとRESTful Webサービスの基本的な設計ソリューション
- 作者: Robert Daigneau,角征典,高木正弘
- 出版社/メーカー: アスキー・メディアワークス
- 発売日: 2012/08/24
- メディア: 大型本
- 購入: 2人 クリック: 45回
- この商品を含むブログ (4件) を見る
- 作者: 水野貴明
- 出版社/メーカー: オライリージャパン
- 発売日: 2014/11/21
- メディア: 大型本
- この商品を含むブログ (1件) を見る
アーキテクチャパターンを学ぶ
ライブラリの界面のような細粒度のインターフェイスではなく、サブシステム/コンポーネント界面を考えるようであれば、もっと俯瞰的にシステムを捉える必要があると思います。"ソフトウェアアーキテクチャ"は今となっては正直みんな知ってるような知識なのかも知れませんが、古典として改めて読んでみるのも良いかもしれません。
ソフトウェアアーキテクチャ―ソフトウェア開発のためのパターン体系
- 作者: F.ブッシュマン,H.ローネルト,M.スタル,R.ムニエ,P.ゾンメルラード,Frank Buschmann,Hans Rohnert,Michael Stal,Regine Meunier,Peter Sommerlad,金沢典子,桜井麻里,千葉寛之,水野貴之,関富登志
- 出版社/メーカー: 近代科学社
- 発売日: 2000/12
- メディア: 単行本
- 購入: 15人 クリック: 448回
- この商品を含むブログ (53件) を見る
エンタープライズ アプリケーションアーキテクチャパターン (Object Oriented Selection)
- 作者: マーチン・ファウラー,長瀬嘉秀,株式会社テクノロジックアート
- 出版社/メーカー: 翔泳社
- 発売日: 2005/04/21
- メディア: 単行本
- 購入: 10人 クリック: 635回
- この商品を含むブログ (142件) を見る
エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)
- 作者: エリック・エヴァンス,今関剛,和智右桂,牧野祐子
- 出版社/メーカー: 翔泳社
- 発売日: 2011/04/09
- メディア: 大型本
- 購入: 19人 クリック: 1,360回
- この商品を含むブログ (130件) を見る