私はデザインパターンの学習に興味があり、この主題を学習する上で一流の本と見なされるものを知りたいと思っています。
ベストプラクティス、設計方法論、および設計パターンに関するその他の有用な情報を説明するための事実上の標準である本はありますか?その本はそれを特別なものにしていますか?
私はデザインパターンの学習に興味があり、この主題を学習する上で一流の本と見なされるものを知りたいと思っています。
ベストプラクティス、設計方法論、および設計パターンに関するその他の有用な情報を説明するための事実上の標準である本はありますか?その本はそれを特別なものにしていますか?
回答:
デザインパターン:再利用可能なオブジェクト指向ソフトウェアの要素は、デザインパターンに関する標準的な本の定義に非常に近いものです。ウィキペディアの記事(エンファシス鉱山)によると:
本の最初の発行日は1994年10月21日で、1995年の著作権があり、2010年7月の時点で、本は38回目の印刷でした。この本は、1994年10月にオレゴン州ポートランドで開催されたOOPSLAミーティングで初めて公開されました。ソフトウェア工学の分野に大きな影響を与え、オブジェクト指向の設計理論と実践の重要な情報源と見なされています。以上の50万枚が販売されている英語と13個の言語で。
ウォード・カニンガム、デザインパターンのパイオニアは、維持本のパターンのオンラインカタログにWikiWikiWebを。そして、デザインパターンに関するウィキペディアの記事によると(再び、私のものを強調):
デザインパターンは、ブックデザインパターンの後にコンピュータサイエンスで人気を博した:再利用可能なオブジェクト指向ソフトウェアの要素が1994年に出版された、いわゆる「四人組」によって(ガンマら)。
同じ記事 で、このジャンルで注目すべきものとして参照されている他の本がかなりあります。
- パターン指向ソフトウェアアーキテクチャVolume 1:A System of Patterns(Douglas Schmidt、Michael Stal、Hans Rohnert、およびFrank Buschmann著)
- Martin Fowlerによるエンタープライズアプリケーションアーキテクチャのパターン、
- エンタープライズ統合パターン:メッセージングソリューションの設計、構築、展開。、Hohpe、Gregor、Bobby Woolf、
- ヘッドファーストデザインパターン、エリックT.フリーマン、エリザベスロブソン、バートベイツ、キャシーシエラ。
私がファウラーの本を読んだ中で、非常に影響力があり、良い本です。ある時点では、私の好みには少しあいまいですが、全体的には楽しい本です。ありますオンラインカタログ最小限の説明とともに本に含まれるパターンのは、。
また、Head First Design Patternsをざっと読みましたが、Head Firstシリーズの他の本を読んだことがあるなら、それはシリーズのほとんどの本と同じ高品質で楽しいものです。
Head Firstは、O'Reilly Mediaから出版された、多くのトピックに関する一連の入門書です。パズル、ジョーク、非標準のデザインとレイアウト、そして読者を特定のトピックに没頭させる魅力的な会話スタイルの、非正統的で視覚的に集中的な、読者が関与する組み合わせを強調します。
すべての一般的な再利用可能なソリューションは設計パターンと見なすことができるため、「設計パターン」という用語はやや曖昧です。上記の有名な本の1つ、特にGang of FourとFowlerの本で説明されているソリューションにラベルを適用する傾向に常に気付きました。設計パターンは独自の開発プロセスに従わず、非常に再利用可能な偶発的なソフトウェアソリューションであり、特定するのは非常に困難です。
しかし、両方の書籍のオンラインカタログを言語固有の書籍の内容と比較すると、それらが多くの場合テンプレートとして使用されていることがわかります。ですから、両方の本は標準的な参照に非常に近く、両方の本はオブジェクト指向プログラミングに限定されていますが、GoF本は歴史的な観点からより重要なものです。
ギャングオブフォーブック- デザインパターン:再利用可能なオブジェクト指向ソフトウェアの要素は、おそらくデザインパターンに関する業界標準に最も近いものです。
よりアクセスしやすい紹介として、Head First:Design Patternsも適しています。「トレンド」の表紙に目をそらさないでください。読みやすいので、最初に読むとGoFの本の概念を理解しやすくなるでしょう。
いつでも、世界のどこかで誰かがあなたと同じソフトウェア設計の問題に苦しんでいます。車輪(または、さらに悪いことに、パンクしたタイヤ)を再発明したくないことを知っているので、デザインパターンに注目してください。デザインパターンを使用すると、他の人のベストプラクティスや経験を活用できるので、他のことに時間をかけることができます。もっと挑戦的なもの。もっと複雑なもの。もっと楽しいもの。
重要なパターンについて学習する必要があります。パターンを使用する理由、使用するタイミング、使用方法(および使用しないタイミング)です。しかし、本の中でパターンがどのように見えるかだけを見たいのではなく、「荒野で」どのように見えるかを知りたいのです。ネイティブ環境で。言い換えれば、実際のアプリケーションで。また、Java APIでパターンがどのように使用されるか、そして独自のコードでJavaの組み込みパターンサポートを活用する方法も学びたいと思います。
本当のオブジェクト指向設計の原則と、上司が継承についてあなたに言ったことすべてが間違っているかもしれない理由(そして代わりに何をすべきか)を学びたいのです。設計パターンを使用せずに小川を登るときに、これらの原則がどのように役立つかを学びたいと思います。
最も重要なのは、デザインパターンの「秘密の言語」を学び、同僚(およびカクテルパーティーのゲスト)がコマンド、ファサード、プロキシ、およびマティーニの一口の間に工場。Singletonが見た目ほど単純ではない理由、Factoryがよく誤解されている方法、またはDecorator、Facade、Adapterの実際の関係について深く理解すると、簡単に対処できます。
でヘッドファーストデザインパターンは、デコレーターは、「トレーディングスペース」のショーから何かある思考の当惑を避けるだろう...
はい、デザインパターンに関する有名な本があります:デザインパターン:再利用可能なオブジェクト指向ソフトウェアの要素と著者は、しばしば「4人のギャング」(GoF)と呼ばれ、デザインパターンに関するほとんどすべてのテキストで参照されます。
ウィキペディアから:
設計パターン:再利用可能なオブジェクト指向ソフトウェアの要素は、ソフトウェア設計の一般的な問題に対する反復的なソリューションを説明するソフトウェアエンジニアリングの本です。この本の著者は、Erich Gamma、Richard Helm、Ralph Johnson、John Vlissidesであり、Grady Boochによる序文があります。著者は、多くの場合、Gang of Four、GoF、またはGo4と呼ばれます。この本は2つのパートに分かれており、最初の2つの章ではオブジェクト指向プログラミングの機能と落とし穴について、残りの章では23の古典的なソフトウェア設計パターンについて説明しています。この本には、C ++およびSmalltalkの例が含まれています。
最適なデザインパターンWebサイトの1つは、最初のWikiであるWardのWikiです。適切な開始ページについては、http://c2.com/cgi/wiki?HistoryOfPatternsを参照してください。
1987年、ウォードとケントは、設計の仕上げに問題があったテクトロニクスの半導体テストシステムグループと相談していました。彼らは勉強していたパターンのものを試してみることにしました。建物の占有者が設計するべきだと言ったアレクサンダーのように、ウォードとケントはユーザーの代表者(トレーナーとフィールドエンジニア)に設計を完成させました。
Wardは、初心者のデザイナーがSmalltalkの長所を活用し、短所を避けるのに役立つ5つのパターン「言語」を考案しました...
ウォードとケントは、ユーザーが設計したインターフェイスの(確かに質素な)優雅さに驚いていました。彼らはオーランドのOOPSLA 87でこの実験の結果を報告しました。彼らはパネルのポジションを書き上げ、ノーム・カースのワークショップ「オブジェクトはどこから来たの?」で発表しました。彼らは顔が青くなるまでパターンを話し、多くの合意を得ましたが、より具体的なパターンがなければ誰もサインアップしませんでした。
一方、Erich Gammaは博士号の論文の一部として、ET ++でのオブジェクト指向設計の記述と反映に忙しかった。エーリッヒは、繰り返される設計構造またはパターンが重要であることを認識していました。問題は、どうやってそれらをキャプチャして伝達するかでした。
ブルース・アンダーソンは、TOOLS 90でErichGammaが出席した講演を行いました。エーリッヒは話が好きだった。ブルースは、EcoopOopsla90(オタワ)で論文を発表し、Toward a Architecture Handbookと呼ばれるBOFを実行しました。彼は、Erich Gamma、Richard Helm、その他がパターンについて議論しました。RichardとErichが初めて出会ったのは、再利用可能なオブジェクト指向ソフトウェアを書く背後にある重要なアイデアについて共通のアイデアを共有していることに気づいたからです。
暑い夏の日にチューリッヒの屋上に座っていたECOOP'91 Erich GammaとRichard Helmの直前に、最終的にDesignPatternsになるパターンのカタログの非常に謙虚な始まりをまとめました...
ブルースが1991年に運営したOOPSLAワークショップで物事は本当に動き始めました。偶然にも、Erich Gamma、Richard Helm、Ralph Johnson、およびJohn Vlissidesがすべてそこにいました。彼らは後にデザインパターンの本を書いた4人の一団になります...
このチュートリアルサイトには、次のサブセクションが含まれています
このサイトには、アンチパターン、UML、およびリファクタリングに関するガイドも含まれています。
オリジナルの本「デザインパターン:再利用可能なオブジェクト指向ソフトウェアの要素」は、オブジェクト指向デザインパターンの優れたリソースです。
他にも多くの本があります。クイックリファレンスが必要で、GoFブックが手の届かないところにある場合、ウィキペディアには通常、それらや他のデザインパターンに関する十分な情報があります。
これらは私が使用する主要なものです。また、人々は、プロジェクト管理などの他のことにパターン形式を適用し始めたことに注意する必要があります。
知っておくべきアンチパターンについて知りたい場合は、「AntiPatterns:Refactoring Software、Architectures、and Projects in Crisis」と「Refactoring:Improving the Design of Existing Code」のセクションがある2冊の本がありますコードの匂い、アンチパターンの別名。
「C#のアジャイルの原則、パターン、および実践」Robert C. Martin著。彼はこの本のJavaバージョンも持っていると思います。
また、パターン自体ではありませんが、完全なDDDアプローチを採用しなくても、ドメインドリブンデザインには優れた概念があります。
* Ubiquitous Language
* Code first approach (vs. DB first)
* etc.
C ++のデザインパターンに特に興味がある場合は、Andrei AlexandrescuによるModern C ++ Designを試してください。
この本は、Factory、Singleton、Visitorなどの一般的に使用されるパターンをC ++で実装する方法について説明しています。また、スマートポインター、テンプレートメタプログラミング、ポリシーベースのクラス設計など、非常にC ++固有のトピックについても説明します。
本の著者は権威ある専門家であり、彼の
テンプレートのメタプログラミングを介して実装されたポリシーベースの設計に関する先駆的な仕事。これらのアイデアは、彼の著書Modern C ++ Designに明確にまとめられており、最初に彼のプログラミングライブラリLokiで実装されました。彼はまた、MOJOライブラリーに「コンストラクターの移動」という概念を実装しました。彼は、「Generic <Programming>」という署名の下でC / C ++ Users Journal に貢献しました...