mStanford-Cart
Copyright © By Doug Lea
For original English text, go to: http://g.oswego.edu/dl/pd-FAQ/pd-FAQ.html
Verwaltet von Doug Lea.
Senden Sie Kommentare zu dl@cs.oswego.edu .
Hiroshi Yuki und Freunde haben ein versehen japanische Übersetzung.
Zuletzt aktualisiert November 2000 .
Dies ist nicht eine FAQ im üblichen Sinne. Es enthält sehr kurze
Zusammenfassungen der Themen, die auf die diskutiert wurden,
Muster-Diskussionsliste, in Frage und Antwort-Format. Wahl
und die Inhalte der Positionen betreffen die Voreingenommenheit der Betreuer. Dies
FAQ wird in unregelmäßigen Abständen aktualisiert.
Informationen zu Mustern, einschließlich Links zu Online-Muster,
Papiere auf Muster,
Beschreibungen der Bücher, die sich mit Mustern, Anzeigen von Konferenzen und
Muster-Mailinglisten finden Sie unter Die
Patterns Home Page .
- Warum gibt es eine gute Definition des Begriffs Muster Warum gibt es eine gute Definition der meisten technischen Begriffen?
`Pattern ’scheint auf mindestens so guten Stand wie, sagen wir` Objekt’. Niemand
scheint den kurzen Slogan Sinn “ eine Lösung für ein Problem in ein
Kontext” . Allerdings kann die Kürze dieser Slogan
Verwirrung stiften. Der Ausbau jeder dieser Begriffe aus nur ein wenig hilft:- Kontext bezieht sich auf eine wiederkehrende Reihe von Situationen, in denen
Das Muster gilt. - Problem bezieht sich auf eine Reihe von Kräfte -
Ziele und Zwänge – das in diesem Zusammenhang auftreten. - Lösung bezieht sich auf eine kanonische Form Design
oder Design-Regel, dass jemand kann sich bewerben, um lösen diese Kräfte.
Diskussionen über umfangreichere Definitionen können an die gefunden werden
Patterns Home Page und WikiWikiWeb . - Kontext bezieht sich auf eine wiederkehrende Reihe von Situationen, in denen
- Kannst du nicht verwenden, ein besseres Wort als `pattern ‘zu beschreiben,
diese Dinge?Sie nennen sie können, was du willst, aber es ist zu spät zu ändern
was die meisten anderen Leute nennen sie. - Ist ein Entwurfsmuster unterscheidet sich von einem Muster Die Vorstellung von einem Muster ist sehr breit, und kann in allen angewendet werden
Arten von Zusammenhängen.Die “ Gang of Four” (GoF – Gamma, Helm, Johnson und Vlissides)
Design Patterns Buch besteht fast ausschließlich um Muster gewidmet
Umgang mit Mikro-Architekturen (auch bekannt als
Objektstrukturen ) – statische und dynamische Beziehungen
zwischen Objekten (und / oder ihre Klassen) begegnet in
objektorientierte Entwicklung. Der Begriff Design Pattern
ist gekommen, um auf diese Arten von Mustern beziehen. Diese haben sich
häufigsten Arten von Mustern in der Literatur beschrieben.Manche Menschen benutzen den Begriff falsch Entwurfsmuster zu
beziehen sich auf jede Objekt-Struktur, auch wenn es nicht in
jeder Hinsicht ein Muster. Bitte tu das nicht. - Was kann Muster angewendet werden? Bestehende Software-bezogene Beispiele sind:
- Programmierausdrücke
- Zum Beispiel, bestimmte Verwendungen von geschachtelten Klassen in C + +,
Schnittstellen in Java, kaskadierenden Anrufen in Smalltalk, … - Coding Idiome
- Zum Beispiel die C-Idiom:
while (* dest + + = * src + +); - Datenstrukturen
- zum Beispiel Bäume und Puffer.
- Algorithmen
- Zum Beispiel, die zur parallelen Verarbeitung.
- Protokolle
- beispielsweise denen in unbehandelten Aufgabe verwendet.
- Entwicklung neuer Rahmenbedingungen (Sätze von Klassen erweiterbar)
- Zum Beispiel, die für die UI-Toolkits
- Nutzung der bestehenden Frameworks
- Zum Beispiel OpenDoc, JavaBeans …
- Analysemodelle
- Zum Beispiel jene, die mit Rechnungslegungsvorschriften
- System Architecture
- Zum Beispiel, Blackboard-und Broker-Architekturen
- Entwicklung Organisation
- Zum Beispiel, Entwicklungs-Team Struktur und Dynamik
- Entwicklungsprozess
- Zum Beispiel, Schritte und Strategien in der OO-Analyse und Design.
Zusätzlich wurden Muster in verschiedenen Bereichen angewendet wurde außerhalb
der Software-Entwicklung. - Was ist der Unterschied zwischen einem Muster und einer Codierung
Idiom? Ein Design? Ein oder mehrere OMT oder UML-Diagrammen? Ein Anwendungsfall?
Ein Protokoll? Ein Algorithmus? Eine Heuristik? Eine Architektur? Ein
Coding Standard? Eine Coding-Style? Eine Entwicklung, Methode?Ein Muster kann vor allem über eines dieser Dinge, aber die
Sache allein nicht aus einem Muster.
Ein Muster beschreibt, wie und warum jede von ihnen kann in ei-
gegeben Entwicklung Kontext, zusammen mit Leitlinien für deren Anwendung. - Was ist der Unterschied zwischen einem Muster und einer Klasse? Ein
wiederverwendbare Komponente? Ein parametrisierter (Template)-Klasse? A-Klasse
Bibliothek oder Paket? Ein Rahmen? Ein Werkzeug? Ein Code-Generator?Ein Muster ist nicht auf eine Implementierung. Es beschreibt, wann, warum, und
wie man zum Erstellen einer Anwendung oder eine andere technische gehen
Produkt.Einige (nicht viele) Lösungen zugänglich sind für die Beschreibung
über Implementierungen (wie Klassen, Frameworks, Werkzeuge oder was auch immer)
, mit dem Entwickler so ziemlich alles, sie würden geben
müssen wissen, oder tun. Trotzdem ist der Code selbst nicht das Muster. - Was ist der Unterschied zwischen einem Muster und How-To Reiseführer? Die Lösung in einem Muster beschrieben, als eine Reihe beschrieben werden kann
von Schritten, ähnlich wie in How-To Guides und Kochrezepte gesehen.
Aber noch einmal diese Schritte nur einen Aspekt eines Musters. Auch
Muster streben größere Anwendungsbreite und Allgemeingültigkeit der inhaltlichen und
größere Autorität bei der Identifizierung und Lösung von Kräften als
gesehen in typischen How-To Guides. - Wie ist das Verhältnis zwischen dem Studium der Muster und
, die von Domain-spezifische Software-Architekturen, Software-Wiederverwendung,
und in anderen Bereichen des Software-Engineering?Es scheint einige Überschneidungen.
- Wo finde ich die Druck-oder Online-Muster über XXX? Es gibt nicht eine zentrale Clearingstelle für Muster, aber es ist nicht
zu hart, um sie zu finden. Hier sind einige Ansatzpunkte:-
Hillside Patterns Home Page - Linda Rising BuchDie Pattern Almanac (auch sein Vorgänger, die Muster-Handbuch),
das enthält Verweise auf die meisten Muster, die veröffentlicht wurden. - Wiki
- Muster-Depot
- Open-Verzeichnis
- Ihre Lieblings-Suchmaschine
-
- Wer ist Christopher Alexander? Alexander ist Architekt (im Sinne von Gebäuden, nicht
Software), die Muster erfunden. Eine kurze Biografie und Links zu
Lesungen und verwandten Web-Seiten können in Nikos
Salingaros die Hinweise zum Christopher Alexander . - Was ist das beste Format für Muster? Treffen Sie Ihre Wahl. Die meisten von Alexanders Muster sind von der Form:
Wenn Sie sich in KONTEXT zum Beispiel Beispiele, PROBLEM mit, BRINGT FORCES Dann für einige Gründe, gelten überzeugt in Form und / oder Regel konstruieren, um LÖSUNG was zu neuen Kontext und andere MusterEs gibt viele stilistische Varianten. Keine zwei der vorhandenen Bücher
enthält Muster verwenden, genau das gleiche Format.
Alternativen sind die rein narrative Portland Formular . Wahrscheinlich
das beliebteste Format (wird in derDesign Patterns Buch) kehrt diese, beginnend mit der
Gestaltungsformen und / oder Regeln und dann beschreibt Probleme, Kontexte,
und Beispiele für die sie gelten.Über verschiedene Formen, gemeinsamer Anforderungen bezüglich der Struktur
und Inhalt von Mustern gehören:- Beschreibung von Best Practices
Oder zumindest - allgemein anerkannten Praktiken . Manche Menschen sehen
Muster als Schritt zur Konstruktion des endgültigen
Software Engineering Handbooks.
Entsprechende - Allgemeinheit
- Der Nachweis, dass das Muster wiederholt sich . Dies
fast immer voraus, dass Sie über mehrere bekannte abstrakte
verwendet. Dies kann erfordern, erwähnt Situationen, in denen das Muster
tut nicht gelten, zusammen mit Verweisen auf
alternativen Mustern. - Scope
- Der Kontext, in dem jemand will, um das Muster anwenden können
ausführlich beschrieben. Wenn angebracht, einschließlich Verweise auf andere Muster
dass in der Regel, die Anwendung dieses Musters führen. - Konstruktivität
- Das Muster wird in einer Weise, die Menschen ermöglicht formuliert
um eine Instanz der Lösung zu bauen. In einigen Fällen führte dies
kann eine Reihe von Darstellungen wesentlichen Beziehungen zur Folge haben.
In anderen Fällen kann es bringen eine Reihe von Design-Schritte, die
Muster benutzen sollten, zusammen mit einer Beschreibung
und / oder beispielsweise der Form einer Lösung, wie es erscheinen sollte. - Vollständigkeit
- Alle relevanten Kräfte beschrieben werden
- Dienstprogramm
- Der Nachweis, dass die Lösung erfolgreich aufgelöst
die Kräfte, oder wenn sie nur teilweise gelöst,
und / oder wenn sie die Einführung neuer Kräfte, Verweise auf
In Verbindung stehende Muster, die in Kraft treten. - Beispiele
- sowohl diejenigen veranschaulicht Lösung Schritte sowie die
dokumentieren den Einsatz in bestehende Software. - geeignete Abstraktionsebene
- Zum Beispiel “ Hinzufügen von anderen
Dereferenzierungsebene” können nützliche Heuristik sein, aber es ist wahrscheinlich zu
allgemeinen und vielfältig, um ein gutes Muster sein. - Mangel an Originalität
- Neue Lösungen sind nicht Mustern. (Obwohl die
Abstraktion, Integration und Umarbeitungen, dass
führen zu Beschreibung, wie ein Muster neu sein kann. Auch das Muster
kann, um neue Verwendungen führen.) - passenden Namen
- Concise, beschreibende Namen dazu beitragen, ein gemeinsames Vokabular für
Entwickler. - Clarity
- Die Präsentation und Stil lassen die Menschen einfach
festzustellen, ob das Muster und gilt wenn ja, wie
für sie gelten, so dass sie nicht über sich selbst neu zu erfinden sie.
- Beschreibung von Best Practices
- Was ist ein Kraft Der Begriff der Kraft verallgemeinert die Arten von Kriterien, die
Software-Ingenieure nutzen, um Designs und Implementierungen zu rechtfertigen.
Zum Beispiel wird in der klassischen Studie der Algorithmen in der
Wissenschaft ist die wichtigste Kraft gelöst werden Effizienz
(Zeitkomplexität). Doch lassen sich Muster mit dem größeren,
schwieriger zu messen, und etwaige entgegenstehende Sätze von Zielen und Zwängen
begegnet in der Entwicklung jedes Artefakt, das du jemals
zu erstellen. Zum Beispiel:- Correctness
-
- Vollständigkeit und Richtigkeit der Lösung
- Statische Typsicherheit, dynamische Typsicherheit
- Multithreaded Sicherheit, Lebendigkeit
- Fehlertoleranz, Transaktionalität
- Sicherheit, Robustheit
- Ressourcen
-
- Effizienz: Leistung, Zeit, Komplexität, Anzahl der Nachrichten
Mail, Bandbreitenanforderungen - Raumausnutzung: Anzahl von Speicherzellen, Gegenstände, Fäden,
Prozesse, Kommunikationskanäle, Prozessoren, … - Incrementalness (On-Demand-ness)
- Politische Dynamik: Fairness, Gleichgewicht, Stabilität
- Effizienz: Leistung, Zeit, Komplexität, Anzahl der Nachrichten
- Struktur
-
- Modularität, Kapselung, Kopplung, der Unabhängigkeit
- Erweiterbarkeit: subclassibility,
Abstimmbarkeit, Erweiterbarkeit, Wartbarkeit - Wiederverwendbarkeit, Offenheit, composibility, Portabilität, Einbettfähigkeit
- Kontextabhängigkeit
- Interoperabilität
- … andere “ hkeiten” und “ Qualitätsfaktoren”
- Construction
-
- Verständlichkeit, Minimalität, Einfachheit, Eleganz.
- Fehleranfälligkeit der Umsetzung
- Koexistenz mit anderen Software-
- Wartbarkeit
- Auswirkungen auf die / der Entwicklungsprozess
- Auswirkungen auf die / von Entwicklungs-Team Struktur und Dynamik
- Auswirkungen auf die / der Nutzerbeteiligung
- Auswirkungen auf die / von Produktivität, Zeitplanung, Kosten
- Aufruf
-
- Ethik der Verwendung
- Menschliche Faktoren: Erlernbarkeit, undoability, …
- Anpassungsfähigkeit an eine sich verändernde Welt
- Ästhetik
- Medical und Umweltauswirkungen
- soziale, wirtschaftliche und politische Auswirkungen
- … andere Auswirkungen auf die menschliche Existenz
Tres Seaver fügt hinzu: Die Nutzung ist weit älter als Software: in
Architektur oder in der mechanischen / Tiefbau, ein entworfen
Einheit existiert in Bezug zu einem System von wechselwirkenden physikalischen
Kräfte. Designs, die nicht lösen jede Kraft, und das System
als Ganzes nicht (z. B. Narrows Tacoma Brücke nicht
lösen dynamische Belastung durch Wind, das Feuer an
Texas A & M nicht für die Lasten durch Bewegen induzierte ermöglichen
Arbeitnehmer). Durch die Verlängerung, müssen Geschmacksmuster erfüllen andere Anforderungen, die
Interaktion in komplexen und manchmal unvorhergesehene Weise; der Begriff
“Kraft” wurde erweitert, um diese Fälle zu erfassen. - Was ist Kraftauflösung Alexanders Beschreibungen von Mustern beinhaltet die Idee, dass ein
Muster sollten stellen eine Art Gleichgewicht der Kräfte.
(Selbst Alexander wurde kritisiert
(Auch von ihm selbst) für die Durchführung dieses nicht immer in einem überzeugenden
Art und Weise.) Dies ist die gleiche Vorstellung, wie Optimalität wie zum Beispiel in gesehen
die Analyse von Algorithmen in der Informatik, aber angewandt auf
die Arten von schwerer zu messen Kräfte in der vorherigen Frage beschrieben.Es ist normalerweise nicht möglich, analytisch “ beweisen, dass eine”
Lösung optimal löst Kräfte. (In der Tat ist es schwierig,
Definition des Begriffes “ Beweis” hier, oder sogar zu sehen, was Sie
ein solcher Nachweis müsste.) Auf der anderen Seite ist es nur allzu leicht
zu kommen mit “ Just-so” Geschichten, die falsch oder stellen
trügerisch Begründungen für Lösungen. Selbst die concientious
Muster Autoren manchmal nicht ganz verstehen, warum eine Lösung
arbeitet so gut es tut, oder schätzen die gesamte Bandbreite von
Anwendbarkeit. Wie Ralph Johnson hat einmal geschrieben:Es ist oft schwer herauszufinden, das Problem, dass ein Muster löst.
Man kann sagen, es ist ein Muster, weil Sie es so oft sehen, und
Sie wissen, es ist ein gutes Muster, weil es macht die Einführung
Welt einen besseren Ort. Aber wenn man die Welt anschaut, ist es
schwer zu sagen, warum die Dinge so sind wie sie sind. Ich denke, die Art und Weise
wir herausfinden, das Problem, dass ein Muster löst durch die Beobachtung ist
wir uns als Design-Dinge. Was sind die Bedingungen, dass
auslösen unsere Verwendung eines Musters?Ich denke, der Hauptgrund dafür, dass Alexander nicht immer beschreiben
das Problem eines Musters ist, weil er nicht immer kannte.
Das ist sicherlich, warum die GOF Buch keine das Problem
gut. Es ist nicht, dass das Format die Autoren auf die ignorieren geführt
Probleme ist es, dass ihr Verständnis für die Probleme geführt
sie ihr Format.Aus diesen Gründen wird die Muster-Community
rechnet damit, dass Argumente mit gesichert werden:- Empirische Evidenz für Güte
- dass die Lösung in mehreren Kontexten verwendet wurde in
dem sie gültig ist. Die Regel von 3 wird manchmal verwendet,
als Kriterium: behaupte nicht, dass etwas ist ein Muster, es sei denn,
Sie wissen aus drei unabhängigen Nutzungen. - Vergleiche
- Beziehungen zu anderen bekannten Lösungen oder Verfahren. Diese können
auch Beispiele demonstrieren Schwachstellen oder Lücken
weil die richtige Lösung wurde nicht angewendet. - Unabhängige Urheberschaft
- Muster sollte nicht allein durch die geschrieben werden
Menschen, die erst erfunden oder sie umgesetzt werden. - Bewertungen
- Kritiken, die von anderen Parteien, darunter sowohl die eng
vertraut mit der Domain, sowie diejenigen, die es nicht sind. Eine
beliebtes Format für Muster Rezension (verwendet in der Pattern
Languages of Programs (PLOP) Konferenzen) ist das Writers
Werkstatt .
Bis dieser Nachweis erbracht wird, ein Muster, manchmal auch als
ein proto-Muster – ein Kandidat dafür, ein Muster. - Wie ist die Qualität Without A Name (Qwan)? Es gibt keine gute kurze Antwort. Du musst Die
Timeless Art zu bauen .Übermäßig-geeky Muster-Enthusiasten wie zu behaupten, dass Alexander
schrieb nie über Qwan. Übermäßig-flakey diejenigen gerne vorgeben, dass
Qwan Krawatten-Muster lässt sich nahezu jede mystische, seltsam klingenden
metaphysischen Tiraden würden Sie zu Name egal. - können Muster nehmen eine negative Form, sagen Ihnen, was NICHT
zu tun?Vielleicht nicht ideal
- Sets von guten Muster würden Sie steuern
klar, der unendlich vielen schlechten Designs (manchmal auch als
Antipatterns ), könnten Sie kommen mit, sowie alle
die Kontexte, in denen es nicht angemessen, um eine bestimmte Anwendung
Muster. Aber einige Ideen sind so schlecht, doch so weit verbreitet, dass sie
explizite Erwähnung verdienen. Ein Weg, dies zu tun ist, um ein umfassen
“ Gemeinsame Fallen und Stolpersteine” Abschnitt in einem Muster Beschreibung.
Beschreibungen von schlechten Lösungen ( Misfits ) kann Teil
die Motivation, Begründung oder Kräfte für eine gute Lösung. Patterns
kann auch beschreiben Wege der Umwandlung schlechte Lösungen in guter
ones (manchmal in “ Vorher / Nachher” oder “ Repair” Abschnitte). - Können Muster präsentieren eine Reihe von alternativen Lösungen eher
als einer?Vielleicht nicht ideal
- jede Lösung sollte auf die angebunden werden,
Kontext, in dem es am besten trifft. Aber manchmal ist dies zu hart.
Die Erwähnung Alternativen ist besser als nicht aufzunehmen, da
es richtet Gerüst für die weitere Verfeinerung durch die Entdeckung
jene Kräfte, die alternative Lösungen zu unterscheiden. Selbst wenn
sie sind differenziert, es gibt auch die stilistische
Frage darüber, ob eine Reihe von Mustern teilen meisten gruppieren
Kontext und die Kräfte in derselben Präsentation. - Warum sich die Mühe zu schreiben Muster, die gerade laufen auf meinem beraten
Großmutter würde mir geben?Da einige Muster sind so gut und nützlich, dass auch Ihr
Großmutter kennt sie. Aufschreiben macht den Kontext, den Wert und
Auswirkungen der Beratung klarer als deine Großmutter wohl tat. - Müssen alle Muster so [Low-Level / High-Level / allgemein /
spezifische / abstrakt / konkret] als [einige Muster]?Natürlich nicht.
- Was ist die theoretische Grundlage der Patterns? Keine formelle Grundlage im üblichen Sinne. Muster können auszudrücken Design
Begriffe, die sich aus allen möglichen theoretischen und empirischen Grundlagen. Auf
Auf der anderen Seite sind viele der Vorstellungen von Muster-Design gerichtet Stammzellen
von klassischen und nicht-so-klassische Werke auf “ Design-Theorie” über
unterschiedlichsten Bereichen der Technik. (Siehe die Bibliographien von Papieren
aufgeführt in das
Patterns Home Page .) - Können Muster in [einem bestimmten FORMALISMUS ausgedrückt werden
Oder Notation]?Sie sind herzlich eingeladen, um zu versuchen, aber bedenken Sie, dass eine Darstellung von
ein Design oder Design-Rule in irgendeiner formalen Notation ist kein Muster, wenn es
Unterlässt Beschreibungen der Zusammenhang ist das Problem (e) es löst, Beweise für
Angemessenheit der Lösung, dem Bau oder der Implementation Guidelines,
oder Beziehungen zu anderen Mustern. - Warum sollte ich Muster? Aus den gleichen Arten von Gründen, dass Sie gute Wiederverwendung von Code sollte: profitiert
vom Wissen und den Erfahrungen anderer Menschen, die mehr gesetzt haben
versucht zu verstehen, Zusammenhänge, Kräfte und Lösungen als
Sie getan haben oder tun wollen. Des Weiteren kann Muster sein als wiederverwendbare
Code, da sie sich angepasst, so dass Sie Software auf gebaut werden kann
adressieren insbesondere besondere Umstände, mit denen Sie nicht in der Lage dazu führen,
eine vorhandene Komponente wiederverwenden.Patterns auch den Entwicklern gemeinsamen Sets von Namen und Konzepte für
Umgang mit der gemeinsamen Entwicklung Probleme und somit eine Verbesserung Kommunikation. - Wäre es nicht schön, einige Muster-basierte CASE-Tools haben? Vielleicht, aber Muster sind über die Kommunikation von Mensch zu Mensch
andere. Wenn das Medium verbessert die Kommunikation mit anderen Menschen ist es
gut. Wenn es macht nur die Machenschaften der Muster ausführbaren
durch einen Computer ist es nicht. - Was ist der Unterschied zwischen einem Muster und einer Sprache
Menge von Mustern?Eine Muster-Sprache besteht aus einer Reihe von zusammenhängenden Mustern, die alle
teilen einige der gleichen Kontext, und vielleicht in klassifiziert
Kategorien.Dieser Begriff ist darauf zurückzuführen, Alexander.
Alexanders Verwendung des Begriffs “ Sprache” ist unkonventionell, aber
nicht falsch. Wenn Sie schielen und overformalize ihnen, Muster
Einträge sind “ Produktion Regeln”. Wenn Sie sich an Ihre Automaten
Theorie, werden Sie sich erinnern, dass Sätze von Regeln Produktion sind ein Weg
zu rekursiv aufzählbar langauges charakterisieren. - Warum gibt es nicht mehr Muster etwa [irgendetwas]? Weil Sie habe sie nicht geschrieben. Wenn Sie Interesse haben, können Sie mehr
als wahrscheinlich etwas wissen, und wenn Sie etwas wissen, können Sie schreiben
Mustern. - Wie kann ich über das Schreiben eines Musters gehen? Hier sind einige gemeinsame Empfehlungen:
- Vermeiden Sie das Schreiben
- über Muster; nur
Muster schreiben. - Pick etwas, das Sie kennen und finden dann mehrere
Vorkommnisse und / oder Beschreibungen. Oder umgekehrt, Mine
vorhandene Software für neue mögliche Muster. - Finden Sie heraus, ob andere Leute ähnliche Muster geschrieben haben
- Ziel für Qualität, nicht Quantität von Mustern.
- herauszufinden, warum das Muster existiert oder gilt.
- Wählen Sie ein Format für das Schreiben darüber.
- leitet sie an andere (z. B. über Web-Seiten, Muster
Diskussionsgruppen, oder
Eingaben an eine Mailing-Liste) und Kommentare erhalten. - Senden an einem Fahrzeug, wie PLOP wo es geht
in einem Writer-Werkstatt überprüft werden. - kontinuierlich durchlaufen und zu verfeinern.
Siehe auch Ward Cunningham
Tipps
für das Schreiben Pattern Languages . - über Muster; nur
- Wie erkenne ich, ob eine Idee / Entwicklung / Konstruktion ich habe, ist ein Muster? <pVersuchen Sie schreibe es als Muster. <p
- Wie viele Muster gibt es? Einige Leute denken, gibt es relativ wenige unentdeckte Muster
dass fast jeder sollte wissen. Einige Leute denken, dass es
gibt sehr viele weitere Domain-spezifische Muster, die sein müssen
geschrieben. Beides kann richtig sein. Versuchen Sie, einige weitere Muster so können wir
herauszufinden. - Wird nicht die Existenz von vielen Mustern führen zu Problemen bei der
Suche, Klassifizierung, Indizierung, Anwendung und Wartung ihnen?Vielleicht
.
- Kann ich Muster in [einem bestimmten OO-Analyse und
Design Methode]?Wahrscheinlich schon. Obwohl, wenn Sie tun, könnten Sie nicht mehr folgende
viel des Verfahrens über ihre Schreibweise. - Ist die Verwendung von Mustern unbedingt iterativen? Im Prinzip könnte man sehr viel Glück und habe ein Problem, für das
Es ist bereits eine komplette Reihe von Mustern, und bei dem jeder
des Anlegens eines Musters fließt in den nächsten zu einer endgültigen
Produkt ohne jemals Backtracking. Aber die Menschen sind noch nie so viel Glück. - Gibt es eine empfohlene Entwicklungsprozess verbunden mit
die Verwendung von Mustern?Wahrscheinlich, aber auch wenn wir es viel diskutieren, wissen wir nicht,
was es ist. Verwenden Sie Muster, damit wir herausfinden können. - Ist die Verwendung von Mustern haben keinen Einfluss auf Geschäftspraktiken
und Software-Ökonomie?Gleiche Antwort.
- Wäre es nicht sinnvoller, den Leuten beizubringen, um Muster zu schreiben
anstatt sie zu lehren, eine Reihe von bestehenden Mustern zu verwenden?Beide sind notwendig. Weder ist mehr nötig.
- Wie können wir institutionalisieren die Verwendung von Mustern, wo ich arbeite? Gemeinsame Empfehlungen gehören:
- Mine die beste Code, den Sie haben nach Mustern.
- erweitern Design-Dokumentation und Kritik Praktiken zu
auch mit Design zu tun Muster . - Run Kurse über die Verwendung der bestehenden Design-Patterns.
- Bewertung vorhandener Muster in der Werkstatt eines Schriftstellers.
- Verwenden Sie ein Muster-basierte Stilvorlage zum Festhalten von Entwürfen
so dass er in Muster zu entwickeln. - Bilden Sie einen Arbeitskreis, und treffen sich einmal wöchentlich, um über Muster zu sprechen.
Sobald es ein Körper von Enthusiasten, können sie für drücken
Institutionalisierung.
- Warum werden nicht Alexanders Muster von universell eingesetzt
Architekten?Es scheint keine einzige Grund sein. Die Leute nennen Faktoren, einschließlich
Zusammenstöße mit seit langem etablierten Praktiken und mit der professionellen
Kultur des Architekten, wirtschaftliche Faktoren, die Tatsache, dass Alexander
konzentriert sich auf die mit Menschen entwerfen und bauen ihre eigenen Häuser, und
Meinungsverschiedenheiten darüber, wie gut oder nützlich sind die besonderen
Muster in einem Muster-Sprache sind in der Praxis. - Kann man Muster in sehr großen Entwicklungsaufwand? Leute haben berichtet, dass sie dies tun.
- Sind Muster überbewertet? Natürlich. Es ist unmöglich, zu vermeiden.
- Sie Muster wirklich? Bitte fragen Sie eine konkrete Frage.
Geschrieben von Doug Lea, und veröffentlicht in der Public Domain.
Doug Lea