Gibt es ein kanonisches Buch über Designmuster? [geschlossen]

Kommentare

  • Ich ' bin nicht sicher, ob dies Ihre ' denke darüber nach, aber ich finde viele clevere Entwicklungsmaterialien auf Forrst .
  • Wie wäre es mit a Titel von " Referenzquellen für Entwurfsmuster

oder " Entwurfsmusterressourcen " (da ich nicht ' bedeutet nicht, dass " auf " verweist, da nur " bei Bedarf nachschlagen ") und verschieben Sie das gesamte Listenmaterial in den Body (oder entfernen Sie es)?

  • .NET Design Muster- und Architekturrichtlinien
  • Bei einigen anständigen Implementierungen habe ich mir die auf dofactory (didn ' kaufe die Bücher allerdings nicht.)
  • Da diese Frage eine vollständige und umfassende Antwort erhielt, habe ich ' geschlossen Die anderen Entwurfsmuster werden als Duplikate von diesem abgefragt, um sie als kanonisches Q & A- und Antwortpaar für dieses Thema zu kennzeichnen.
  • Antwort

    Entwurfsmuster: Elemente of Reusable Object-Oriented Software kommt meiner Definition eines kanonischen Buches über Designmuster sehr nahe. Laut seinem Wikipedia-Artikel (Hervorhebung von mir):

    Das ursprüngliche Veröffentlichungsdatum von Das Buch war der 21. Oktober 1994 mit einem Copyright von 1995 und ab Juli 2010 war das Buch in seinem 38. Druck . Das Buch wurde erstmals auf der OOPSLA-Tagung im Oktober 1994 in Portland, Oregon, der Öffentlichkeit zugänglich gemacht. Es hat großen Einfluss auf das Gebiet der Softwareentwicklung und gilt als wichtige Quelle für objektorientierte Designtheorie und -praxis. Mehr als 500.000 Exemplare wurden in Englisch und in 13 anderen Sprachen verkauft .

    Ward Cunningham , ein Pionier für Designmuster, unterhält einen Online-Katalog der Muster des Buches auf WikiWikiWeb Und laut dem Wikipedia-Artikel über Designmuster (wieder meine Betonung):

    Entwurfsmuster gewann in der Informatik an Popularität, nachdem 1994 das Buch Entwurfsmuster: Elemente wiederverwendbarer objektorientierter Software veröffentlicht wurde von der sogenannten „Gang of Four“ (Gamma et al.).

    Es gibt einige andere Bücher, auf die in der gleicher Artikel wie im Genre bemerkenswert:

    Von denen, die ich in Fowlers Buch gelesen habe, ist es sehr einflussreich und eine gute Lektüre. An bestimmten Stellen ist es für meinen Geschmack etwas vage, aber insgesamt ist es ein erfreuliches Buch. Es gibt einen Online-Katalog der im Buch enthaltenen Muster mit minimalen Beschreibungen.

    Ich habe auch Head First Design Patterns durchgesehen, und wenn Sie ein anderes Buch der Head First-Reihe gelesen haben, ist es von der gleichen hohen Qualität und genauso unterhaltsam wie die meisten Bücher in der Reihe :

    Head First ist eine Reihe von einführenden Lehrbüchern zu vielen Themen, veröffentlicht von O „Reilly Media. Es betont eine unorthodoxe, visuell intensive, leserbezogene Kombination aus Rätseln, Witzen, nicht standardisiertem Design und Layout sowie einen ansprechenden Gesprächsstil, um den Leser in ein bestimmtes Thema einzutauchen.

    Der Begriff „Entwurfsmuster“ ist etwas vage, da jede allgemein wiederverwendbare Lösung als Entwurfsmuster betrachtet werden kann. Ich habe immer eine Tendenz bemerkt, das Etikett auf den in einem beschriebenen Lösungen anzubringen Von den bemerkenswerten Büchern, die ich oben aufgeführt habe, und insbesondere von den Büchern Gang of Four und Fowler. Entwurfsmuster folgen keinem einzigartigen Entwicklungsprozess, sondern sind normale Softwarelösungen s, die immens wiederverwendbar sind und extrem schwer zu identifizieren sind .

    Wenn Sie jedoch die Online-Kataloge für beide Bücher mit dem Inhalt sprachspezifischer Bücher vergleichen, werden Sie feststellen, dass sie häufig als Vorlagen verwendet werden. Daher würde ich sagen, dass beide Bücher fast kanonisch sind Referenzen, wobei das GoF-Buch aus historischer Sicht das wichtigere ist, obwohl beide Bücher auf objektorientierte Programmierung beschränkt sind.

    Kommentare

    • +1. Eigentlich wollte ich Ihnen +5 geben, aber leider ist ' nicht erlaubt.
    • In der gesamten Reihe der musterorientierten Softwarearchitektur geht es um Muster in verschiedenen Systemtypen – In Band 1 geht es um Architekturmuster und Muster, die Domänen überkreuzen, in Band 2 geht es um gleichzeitige Systeme, in Band 3 geht es um Ressourcenmanagement in vernetzten / verteilten Systemen, in Band 4 um verteilte Systeme und in Band 5 um Mustersprachen als Referenz für die anderen 4 Bände. Angesichts der Frage denke ich, dass Band 5 auch anwendbar sein könnte, aber ich habe ' nicht zu viel Zeit damit verbracht … noch nicht.
    • @Yannis Dieser und der Kopf voran basieren im Allgemeinen auf statisch typisierten Sprachen. Gibt es gute Bücher für dynamische Sprachen wie Python?
    • @ ravi404 norvig.com/design-patterns

    Antwort

    Das Buch der Viererbande – Entwurfsmuster: Elemente wiederverwendbarer Objekte- Orientierte Software entspricht wahrscheinlich am ehesten einem Industriestandard für Entwurfsmuster.

    Für eine besser zugängliche Einführung Head First: Design Muster ist auch gut. Lassen Sie sich vom „trendigen“ Cover nicht abschrecken, da es eine gute Lektüre ist und Ihnen wahrscheinlich dabei helfen wird, die Konzepte im GoF-Buch viel einfacher zu verstehen, wenn Sie es zuerst lesen.

    Antwort

    mg src = „https://i.stack.imgur.com/Fl7XR.gif“ alt = „Head First Design Patterns“ title = „Head First Design Patterns – Buchbeschreibung unter O ' Reilly Media“>

    Zu jedem Zeitpunkt hat irgendwo auf der Welt jemand Probleme mit denselben Software-Design-Problemen, die Sie haben. Sie wissen, dass Sie das Rad (oder schlimmer noch einen platten Reifen) nicht neu erfinden möchten, also schauen Sie sich Design Patterns an – die Lehren, die diejenigen gezogen haben, die mit denselben Problemen konfrontiert waren. Mit Design Patterns können Sie die Best Practices und Erfahrungen anderer nutzen, um Ihre Zeit mit … etwas anderem zu verbringen. Etwas herausfordernderes. Etwas komplexeres. Etwas mehr Spaß.

    Sie möchten mehr über die wichtigsten Muster erfahren – warum Sie sie verwenden, wann Sie sie verwenden, wie Sie sie verwenden (und wann Sie sie NICHT verwenden). Sie möchten jedoch nicht nur sehen, wie Muster in einem Buch aussehen, sondern auch, wie sie „in freier Wildbahn“ aussehen. In ihrer ursprünglichen Umgebung. Mit anderen Worten, in realen Anwendungen. Sie möchten auch lernen, wie Muster aussehen werden in der Java-API verwendet und erfahren, wie Sie die integrierte Musterunterstützung von Java in Ihrem eigenen Code nutzen können.

    Sie möchten die wirklichen OO-Entwurfsprinzipien kennenlernen und erfahren, warum alles, was Ihr Chef Ihnen über die Vererbung erzählt hat, möglicherweise falsch liegen (und was stattdessen zu tun ist). Sie möchten lernen, wie diese Prinzipien helfen, wenn Sie das nächste Mal „einen Bach ohne Entwurfsmuster hinauffahren“.

    Am wichtigsten ist, dass Sie die „geheime Sprache“ von Entwurfsmustern lernen möchten, damit Sie sie halten können Ihre eigene mit Ihrem Kollegen (und beeindrucken Cocktailparty-Gäste), wenn er beiläufig seine erstaunlich clevere Verwendung von Command, Facade, Proxy und Factory zwischen einem Schluck Martini erwähnt. Sie werden leicht mit Ihrem tiefen Verständnis dafür, warum Singleton, kontern Es ist nicht so einfach, wie es sich anhört, wie oft die Fabrik missverstanden wird oder wie die Beziehung zwischen Dekorateur, Fassade und Adapter aussieht.

    Mit Head First Design Patterns vermeiden Sie die Verlegenheit zu denken, dass Decorator etwas aus der Show „Trading Spaces“ ist …

    Kommentare

    • Dies. ' ist eine sehr leicht zugängliche Lektüre und hat die Art und Weise geändert Ich nähere mich vollständig dem Software-Engineering.
    • Die gesamte Head-First-Serie ist großartig, insbesondere für den Start von Entwicklern.
    • Ich liebe das Buch, aber ich hasse das Cover absolut! Ein Nicht-Programmierer-Kollege von meins ging neulich an meinem Büro vorbei, sah das Buch und sagte " Head First Designer Patterns? Gehst du in das Modegeschäft? "
    • @Pete Warum das Cover Sie in größere Schwierigkeiten bringen kann. Sie lebt anscheinend ein Doppelleben. fishbowl.pastiche. org / 2005/08/12 / …

    Antwort

    Ja, es gibt ein bekanntes Buch über Design n Muster: Entwurfsmuster: Elemente wiederverwendbarer objektorientierter Software und die Autoren werden häufig als „Gang of Four“ (GoF) bezeichnet und in fast allen referenziert Texte zu Entwurfsmustern.

    Kommentare

    • Auch das Buch von Martin Fowler ': amazon.com/Patterns-Enterprise-Application-Architecture-Martin/…
    • Dies ist kein Buch über Designmuster. ' ist ein Katalog von Mustern. Es gibt ' eine kurze Einführung in Entwurfsmuster am Anfang, aber ich ' halte diese Einführung nicht für ausreichend.
    • @J ö rgWMittag ' ist nicht ' ein einzigartiger Prozess zum Erstellen von Design Muster, Entwurfsmuster sind relativ kleine wiederverwendbare Lösungen. Entwurfsmuster werden durch die normalen Prozesse der Softwareentwicklung erstellt. Was sie auszeichnet, ist ihre immense Wiederverwendbarkeit. Der einzig relevante eindeutige Prozess besteht darin, eine Lösung als Entwurfsmuster zu identifizieren, und Kataloge tun dies genau.

    Antwort

    Entwurfsmuster: Elemente wiederverwendbarer objektorientierter Software

    Alternativtext

    Von wikipedia :

    Entwurfsmuster: Elemente wiederverwendbarer objektorientierter Software ist ein Softwareentwicklungsbuch, das wiederkehrende Lösungen für häufig auftretende Softwareprobleme beschreibt Design. Die Autoren des Buches sind Erich Gamma, Richard Helm, Ralph Johnson und John Vlissides mit einem Vorwort von Grady Booch. Die Autoren werden oft als Gang of Four, GoF oder Go4 bezeichnet. Das Buch ist in zwei Teile unterteilt, mit In den ersten beiden Kapiteln werden die Funktionen und Fallstricke der objektorientierten Programmierung sowie in den verbleibenden Kapiteln 23 klassische Software-Entwurfsmuster beschrieben. Das Buch enthält Beispiele in C ++ und Smalltalk.

    Antwort

    Eine der besten Websites für Designmuster ist Wards Wiki, das allererste Wiki. Eine gute Startseite finden Sie unter http://c2.com/cgi/wiki?HistoryOfPatterns .

    1987 berieten sich Ward und Kent mit der Semiconductor Test Systems Group von Tektronix, die Probleme bei der Fertigstellung eines Entwurfs hatte. Sie beschlossen, das Mustermaterial auszuprobieren, das sie untersucht hatten. Wie Alexander, der sagte, die Bewohner eines Gebäudes sollten es entwerfen, ließen Ward und Kent Vertreter der Benutzer (einen Trainer und einen Außendiensttechniker) den Entwurf fertigstellen.

    Ward entwickelte eine „Sprache“ mit fünf Mustern. Dies half den unerfahrenen Designern, die Stärken von Smalltalk zu nutzen und seine Schwächen zu vermeiden …

    Ward und Kent waren erstaunt über die (zugegebenermaßen spartanische) Eleganz der von ihren Benutzern entworfenen Benutzeroberfläche. Sie berichteten über die Ergebnisse von Dieses Experiment bei OOPSLA 87 in Orlando. Sie schrieben eine Panel-Position auf und präsentierten sie in Norm Kerths Workshop über Woher kommen Objekte? Sie sprachen über Muster, bis sie blau im Gesicht waren, und bekamen sie viel Übereinstimmung, aber ohne konkretere Muster meldete sich niemand an.

    In der Zwischenzeit war Erich Gamma im Rahmen seiner Doktorarbeit damit beschäftigt, über objektorientiertes Design in ET ++ zu schreiben und nachzudenken. Erich hatte erkannt, dass wiederkehrende Designstrukturen oder -muster wichtig waren. Die Frage war wirklich, wie Sie sie erfassen und kommunizieren.

    Bruce Anderson hielt einen Vortrag bei TOOLS 90, bei dem ErichGamma anwesend war. Erich gefiel das Gespräch. Bruce hielt einen Vortrag bei EcoopOopsla90 (Ottawa) und leitete eine BOF mit dem Titel Toward an Architecture Handbook , in der er, Erich Gamma, Richard Helm und andere über Muster diskutierten.Dies war das erste Mal, dass Richard und Erich sich trafen, und sie stellten fest, dass sie gemeinsame Ideen zu den Schlüsselideen für das Schreiben wiederverwendbarer OO-Software hatten.

    Kurz vor ECOOP „91 saßen Erich Gamma und Richard Helm auf einem Auf dem Dach in Zürich wurden an einem heißen Sommertag die sehr bescheidenen Anfänge des Musterkatalogs zusammengestellt, aus dem schließlich DesignPatterns werden sollten …

    In der OOPSLA-Werkstatt, die Bruce 1991 leitete, ging es richtig los Zufälligerweise waren Erich Gamma, Richard Helm, Ralph Johnson und John Vlissides alle da; Sie wurden später die Gang of Four , die das Buch Design Patterns verfasste …

    Antwort

    Ich denke, dass das Refactoring zu Mustern kann einfach deshalb nützlich sein, weil es beschreibt, wie bestimmte Entwürfe / Codes in Richtung Muster im GoF-Buch umgestaltet werden können. Dies kann helfen, die anfängliche Lernkurve zu überwinden. Oh, und es geht auch um „Musterglück“ 🙂

    Möglicherweise sind auch die ersten drei Bände der musterorientierten Softwarearchitektur eine gute Lektüre.

    Antwort

    Entwurfsmuster

    Diese Tutorial-Site enthält die folgenden Unterabschnitte

    • Absicht jedes Entwurfsmusters
    • Struktur der realen Welt für das Entwurfsmuster
    • Eine Problemstellung
    • Detaillierte Diskussion zum Problem
    • Checkliste, wie man zu einem Muster kommt
    • Faustregeln
    • Codefragmente für das Entwurfsmuster, das C #, C ++, Delphi, Java und PHP enthält.

    Diese Site enthält auch eine Anleitung zu Anti Patterns, UML und Refactoring.

    Kommentare

    • Die SourceMaking-Site sieht auf den ersten Blick simpel aus, aber ' s wirklich eine tolle Referenz. Abgesehen von den Entwurfsmustern sind einige der Antipattern für das Projektmanagement in der Architektur & urkomisch. Die überarbeiteten Lösungen können Ihnen tatsächlich dabei helfen, ein Meeting zu speichern, das ' aus dem Ruder läuft. (Nicht schlecht für eine Entwurfsmusterreferenz)

    Antwort

    Das Originalbuch „Entwurfsmuster: Elemente von Wiederverwendbare objektorientierte Software „ist eine gute Ressource für objektorientierte Entwurfsmuster.

    Es gibt viele andere Bücher da draußen. Wenn ich eine Kurzreferenz benötige und mein GoF-Buch nicht erreichbar ist, verfügt Wikipedia normalerweise über genügend Informationen zu diesen und anderen Entwurfsmustern.

    Dies sind die wichtigsten, die ich verwende. Es sollte auch beachtet werden, dass Leute begonnen haben, das Musterformat auf andere Dinge anzuwenden, wie zum Beispiel das Projektmanagement.

    Wenn Sie etwas über Antimuster wissen möchten, die Sie kennen sollten, gibt es zwei Bücher: „AntiPatterns: Refactoring von Software, Architekturen und Projekten in der Krise“ sowie „Refactoring: Verbessern des Designs vorhandenen Codes“ mit einem Abschnitt über Codegerüche, einem anderen Namen für Antipatterns.

    Antwort

    „Agile Prinzipien, Muster und Praktiken in C #“ von Robert C. Martin. Ich denke, er hat auch eine Java-Version des Buches.

    Auch kein Muster selbst, aber Domain Driven Design bietet einige großartige Konzepte, selbst wenn Sie sich nicht für den vollständigen DDD-Ansatz entscheiden.

     * Ubiquitous Language * Code first approach (vs. DB first) * etc. 

    Antwort

    Wenn Sie speziell an Entwurfsmustern in C ++ interessiert sind, versuchen Sie Modernes C ++ – Design von Andrei Alexandrescu.

    In diesem Buch wird erläutert, wie Commonl implementiert wird Sie haben Muster wie Factory, Singleton und Visitor in C ++ verwendet. Es wird auch über sehr C ++ – spezifische Themen wie intelligente Zeiger, Metaprogrammierung von Vorlagen und richtlinienbasiertes Klassendesign gesprochen.

    Der Buchautor ist ein autorisierender Experte , bekannt für seine

    Pionierarbeit zum richtlinienbasierten Design, die über Template-Metaprogrammierung implementiert wurde. Diese Ideen sind in seinem Buch Modern C ++ Design artikuliert und wurden erstmals in seiner Programmierbibliothek Loki implementiert. Er implementierte auch das Konzept „Konstruktoren verschieben“ in seiner MOJO-Bibliothek. Er trug zum C / C ++ Users Journal unter der Überschrift „Generic < Programming >“ bei …

    Kommentare

    • Würde es Ihnen etwas ausmachen, mehr darüber zu erklären, was es tut und was es ' ist gut für? " Nur-Link-Antworten " sind bei Stack nicht ganz willkommen Exchange
    • @gnat: Wie ' ist das?
    • Nun, Ihre letzte Bearbeitung scheint mir sicherlich eine Verbesserung zu sein.Obwohl die Leser der Antwort wahrscheinlich von einer detaillierteren Erklärung von wer Aleksandresku
    • @gnat profitieren würden: Da Sie offensichtlich wissen, wer er ist, können Sie meine Antwort gerne bearbeiten.

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.