Design「オブジェクトデザイン」という設計技法の本を読みました。www.shoeisha.co.jpオブジェクトデザインは、2007年9月に出版された本で、残念ながら今は絶版となっています。原著は2002年11月に出版されたこちらですね。www.informit.com実は先日たまたま図書館の蔵書にあるのを発見し、借りて読むことができたので、今回はこの本について書きたいと思います。さんの「ドメインオブジェクトの責務について」という記事の中でこの本の存在を知ったのがきっかけでした。この本のテーマこの本では、オブジェクト指向設計について次のように解説しています。エラーでさえも表現します。生命のないものに対して、生命と知性を与えます。理解が困難な現実世界のオブジェクトを、よりシンプルで管理しやすいソフトウェアオブジェクトへと分割します。オブジェクト指向ソフトウェア開発は、その根本において実世界の物理学に従わないものです。現実世界をオブジェクト機構にモデリングすることが私たちの目的ではありません。そのため、私たちには現実世界を新たに考え出す資格があります。この、管理しやすいソフトウェアオブジェクトへと分割するために、ロール、責務、コラボレーションという観点から設計を考えていく、というのがこの本の全体的なテーマとなっています。本の構成この本は大きく2つの部分で構成されています。ついて書かれています。前半を読むことで、設計の目的である、一貫した使いやすいオブジェクトを作り上げるために、ロール、責務、コラボレーションがどう作用するのかについて考えるための準備ができます。後半の第7章から第10章は、前半で得た知識をもとに、ドキュメンテーションやコラボレーションにおける信頼領域内外での戦略、システムの柔軟性について解説しています。オブジェクトを分類することで、責務に注目しやすくしています。オブジェクトについて大雑把に記述したもので、本から引用すると以下の3つの主要な項目を含んでいます。オブジェクトもしくはロール(またはこの両方)の相互作用のことですね。これらを踏まえて本の前半では、初期の探究的設計で作り上げた概念モデルに対して、オブジェクトを見つけ出し、ロールステレオタイプでオブジェクトの役割を単純化したうえで、それぞれの責務やコラボレーションを考えていくという流れで解説しています。あと、ロールや責務に応じたオブジェクトの名前付けのガイドラインについても解説があるので、個人的にとても参考になりました。累進性の実感もうひとつ、この本の中で印象に残った箇所について紹介します。第7章「コラボレーションの記述」では、設計したオブジェクトをどのようにチームに伝えるかという、ドキュメンテーションの話になっています。ストーリーを展開する単純なものから始めて、より興味深い視点や入り組んだ視点へと導く方法があります。realization)の原理を使います。景観設計者は、ものを意図的に隠して景観全体を渡り歩くまでは見えないようにするための、さまざまな眺め(view)を設計します。この考え方は、少しずつ、興味深い段階を踏んで、目指している目的地へと見物人を動かすというものです。あらゆる曲がり角に、新しく、興味深いものがあります。Architecture(邦題:ランドスケープ・アーキテクチュア)』の中で次のように述べています。「ある眺めは、計画上最も望ましいとした地点からだけ、最も印象深くその全貌を明らかにすべきである」。それぞれの眺めは、独自に魅力を発揮します。新たな眺めは、それぞれ新たな驚きを含んでいます。累進性の実感により、曲がり角の向こうにあるものへの期待で楽しみが増えるのです。ソフトウェアの設計者も、読み手がコラボレーションの景観を渡り歩くにつれてより深く理解するように仕向けることができます。これは、ドキュメンテーションに限った話ではなく、例えばプログラミングであれば、宣言的にWHATを明示し、必要になったらHOWを探求させるような構成で書いておけば、累進性の実感を促すことにつながるのかなと思いました。終わりにオブジェクトデザインは非常に学びの多い本でした。今回紹介した内容以外にも、実践するためのガイドラインが多く書かれています。10年以上前に出版された本なので、内容が古い部分もあるのですが、それらは脳内で補完しながら読む必要があります。個人的には、恐らく1回読んだだけでは理解できていない部分があると思うので、間隔を空けて数カ月後にもう一度読んでみたいと思います。Mojaveにアップグレードして対処したこと月別アーカイブはてなブログをはじめよう!shinharadさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。