ビブリオ・トーク -私のオススメ-:APIデザインの極意 Java/NetBeans アーキテクト探究ノート
2
0
0
全文
(2) 連載. ビブリオ・トーク. ─ 私のオススメ─. ようとする」という現実を受け入れ,API は徐々に. ・オブジェクトの作成者にのみ特権を与える. 改善されるものであるという前提で何をすべきか,. ・深い階層を公開しない. が語られています.. といったことを推奨しています.. まず,古いバージョンを今まで同様に使えるよう にする後方互換性について言及しています.具体的. 「これからは,無知の時代です」. には, 「ソース」や「バイナリ」,それらより抽象的. 本書は,API の提供・利用によるソフトウェア開. な「機能」といった異なるレベルでの後方互換性が. 発の特長を「選択的無知(selective cluelessness)」. 存在すること,およびそれらの事例について提示し. という言葉で表現しています.選択的無知とは,開. ています.次に,API 設計はユースケース指向であ. 発者は個々のソフトウェア部品の中身のことをまっ. るべきと述べています.API が広く使われるように. たく知らなくても,それらを組み合わせて大規模な. なるほど,ユーザから API に対する要求を直接引き. システムを開発できること,すなわち,開発者は知. 出すことが非常に困難になってきます.そのため,. るべきことと知らなくて良いことを選択することが. API を改善する際にはユースケース(ユーザからの. できる,ということを表しています.. 使われ方)を想定し,それを実現するような最適化. 本書の著者は,今後ますますソフトウェアが大規. を目指すべき,ということを述べています.. 模化・複雑化し,開発者に要求される達成度が上が. 「必要以上に公開しない」. っていく一方で,個々人が理解できるシステムの部 分はますます小さくなっていくあろうという予想を. これは, 「KISS の原則」等で知られる設計の簡潔. 立てています.さらに,その予想通りに状況が推移. さについての普遍的な考え方そのものですが,と. した場合に今後生じるであろうさまざまな問題に対. ても重要なので本書では改めて言及されています.. しては,選択的無知が答えを与えてくれると説いて. API を必要以上に公開してしまうことで,拡張が困. います.. 難になったり想定外の使い方をされたりするような. これからは,無知の時代になりそうです.皆様が. 問題が発生することを事例を交えて述べています.. 選択的無知でいられるために,本書の API に関する. これに関する施策はプログラミング言語によって. 知識はぜひ知っておいていただきたいと私は思い. 異なりますが,本書では Java について,. ます.. ・フィールドよりメソッドを使う. (2016 年 2 月 10 日受付). ・コンストラクタよりファクトリメソッドを使う ・final にする ・不要な setter を公開しない ・パッケージプライベートにする. 木村功作(正会員) [email protected] 2010 年九州大学大学院システム情報科学府博士後期課程修了.博士 (工 学) .同年(株)富士通研究所入社.以降,ソフトウェア開発自動化に関 する研究開発に従事.. 情報処理 Vol.57 No.5 May 2016. 487.
(3)
関連したドキュメント
・ 継続企業の前提に関する事項について、重要な疑義を生じさせるような事象又は状況に関して重要な不確実性が認め
テューリングは、数学者が紙と鉛筆を用いて計算を行う過程を極限まで抽象化することに よりテューリング機械の定義に到達した。
・ 継続企業の前提に関する事項について、重要な疑義を生じさせるような事象又は状況に関して重要な不確実性が認
□ 同意する □ 同意しない (該当箇所に☑ をしてください). □ 同意する □ 同意しない
「系統情報の公開」に関する留意事項
脅威検出 悪意のある操作や不正な動作を継続的にモニタリングす る脅威検出サービスを導入しています。アカウント侵害の
断するだけではなく︑遺言者の真意を探求すべきものであ
2) ‘disorder’が「ordinary ではない / 不調 」を意味するのに対して、‘disability’には「able ではない」すなわち