Frage

Wenn es um die Verwendung von Designmustern geht, gibt es meiner Meinung nach drei Arten von Geschäften.Diejenigen, die ein Muster nicht erkennen würden, wenn es ihnen direkt ins Gesicht trifft – diese bevorzugen normalerweise den Strg-C-/Strg-V-Ansatz gegenüber der Code-Wiederverwendung.Diejenigen, die Stunden am Tag damit verbringen, ihren Legacy-Code zu durchsuchen, in der Hoffnung, ein weiteres großartiges Muster zu implementieren – diese verbringen normalerweise mehr Zeit damit, den Code einfacher Programme umzugestalten, als jemals in hundert Jahren Wartung aufgewendet werden würde.Und schließlich diejenigen, die den Mittelweg gehen und Muster verwenden, wenn sie Sinn ergeben, und das codieren, was zuerst kommt, um den Code nur minimal offenzulegen.

Ich frage mich, ob jemand einen guten Ansatz für eine ausgewogene Einbeziehung der Musterverwendung in den Lebenszyklus der Softwareentwicklung festgelegt hat.Und was ist die beste Quelle im Internet für Muster, ihre Motivationsfaktoren und ihre richtige Verwendung?

Danke.

War es hilfreich?

Lösung

Es gibt viele verschiedene ‚Muster‘ Familien gibt, aber nehmen Sie Ihre Frage weitesten Sinne ...

Ich würde empfehlen:

Offline (meine Favoriten):

Offline (populär):

  • GoF Design Patterns
  • Fowlers Refactoring: Verbesserung der Design vorhandener Code

Andere Tipps

Gute Verwendung von Mustern hängt von Wissen und Erfahrung; es gibt es keine Formel. um sicherzustellen, dass sie nicht überbeanspruchend oder underusing Design Patterns Eine gute Sache zu tun, ist jemand, der umsichtig regelmäßig bei Anwendung Muster erlebt wird, um den Code von allen anderen im Team zu überprüfen. Sie sind nicht vorgebacken Rezepte -. Sie Geschick benötigen, um effektiv anzuwenden und das hat gelernt werden

Mein erstes und bestes Belichtungsmuster zu entwerfen, war die Pattern Repository Portland.

Die Verwendung von „Muster“ hängt in hohem Maße davon ab

  1. die verwendete Sprache
  2. Ziele, die man gerne erreichen möchte.

Entwurfsmuster können in Sprachen wie C++, Java und dergleichen als überbewertet bezeichnet werden.Sie verbergen die Unflexibilität, die mit allen Arten von Tippproblemen einhergeht.Hier ist ein Link dazu, welches Muster in weniger restriktiven Sprachen „überlebt“:http://norvig.com/design-patterns/

Ein weiteres Beispiel ist die aspektorientierte Programmierung, bei der mit großem Aufwand Dinge in eine Sprache „eingeführt“ werden, die nicht dafür „entworfen“ ist.

Einen großen Einfluss hat auch die Philosophie hinter den verwendeten Werkzeugen.Vergleichen Sie einfach, sagen wir, durchschnittliche PHP- oder Visual Basic-Programme und -Lösungen in Smalltalk, Common Lisp, Haskell und dergleichen.

Auch die Syntaxelemente haben einen großen Einfluss.Sie werden Unmengen ähnlicher Schleifen sehen, sagen wir in C, C++ (Iteratoren), aber wenn Sie sich Sprachen ansehen, die Funktionen höherer Ordnung unterstützen, werden Sie nur ein paar Schleifen finden.

Dann muss man sehen, auf welche Weise die Leute auf die Programmierung zugreifen: von unten nach oben oder von oben nach unten, durch schrittweises Wachstum oder Pyramidenbildung oder durch andere individuelle Vorlieben

Ich schlage vor, den genannten Link zu lesen und dann die Implementierungen in „verschiedenen“ Sprachen zu überprüfen....

Grüße Friedrich

Jeder ist mit Mustern der ganzen Zeit. Sie könnten nur wissen, dass es nicht. Selbst eine einfache Sache wie ‚Iterierte über eine Liste‘ ist ein Muster.

Ich denke, der beste Weg, Muster in Ihren Arbeitsablauf zu integrieren, einfach ist, sie zu benutzen, und sie beim Namen zu verweisen, wenn sie diskutieren und, wenn Ihren Code zu kommentieren. Hoffentlich dies in einer Verbreitung von Wissen führen.

Also, sagen wir zum Beispiel, haben Sie entdeckt, dass, was Ihr tut ein großer fit für Beobachter ist. Sie sagen, Sie mit Ihrem Kollegen „Hey, wird dies einfach zu tun, wenn wir dieses Objekt ein Beobachter machen, und das sein Thema widersprechen.“

Entweder Ihr Kollege wird sofort verstehen - das Muster sparen Sie Zeit - oder Sie bekommen sie zu erziehen, und weiter Zeit erwähnen Sie Observer werden sie sofort verstehen

.

Und zur gleichen Zeit, die Sie verbreiten das Wissen, und sie werden Möglichkeiten vor Ort die neuen Muster zu verwenden, die sie von Ihnen gelernt. Das geht in beiden Richtungen selbstverständlich. Das nächste Mal könnte es sein sie Lehre Sie ein neues Muster.

All dies angewiesen auf Ihrem Kollegen den Typ nicht zu sein, der nickt und gibt vor, etwas zu verstehen, wenn sie es nicht tun. Sie sie tun müssen, sagen: „Hey, du Observer erwähnt, ich glaube nicht, ich weiß, was das ist.“

Ich denke, die beste Web-Ressource Informationen über Muster und Refactoring enthält - http://sourcemaking.com

Ich bin ein großer Fan der Serie und viele ihrer Bücher gelesen, also würde ich empfehlen Kopf First Design Patterns . Sie können es online über O'Reilly Safari Bibliothek lesen, aber die harte Kopie kommt mit einem großen Muster Plakate zu .

Ich kann nicht mehr mit dem Kommentar oben zustimmen. Ich benutze Design Patterns, wo ich kann, aber immer auf den Rest meines Teams verlassen, um wirklich die Vorteile eines bestimmten Musters zu verstehen. Sonst beenden Sie mit hässlichem Code und einem leichten Wrapper, der etwas das Muster ähnelt.

Als Neben http://www.developer.com ein paar Artikel im Monat hat, die betreffen Entwurfsmuster und deren Anwendungen. Viel Glück!

Ich glaube, ich würde empfehlen, müssen Refactoring:. Die Verbesserung der Gestaltung von vorhandenen Code


(Quelle: 2020ok.com )

Viele Beispiele dafür, wie sinnvolle Nutzung von Mustern zu implementieren.

Die Definition und originelle Antwort ist der Ursprung des Begriffs, in Entwurfsmustern . Dieses Buch befasst sich mit dem Konzept auf einem sehr theortical Ebene, anstatt das Management sprechen, dass das Gebiet eingedrungen ist. Ihre Ansicht ist, dass Design-Muster sind nur Namen für die gemeinsame Idiome; sie aufzuzählen einige und ihre Positionen rechtfertigen.

Sie vermeiden die Art der Frage „Welche Design-Muster sollte ich“, anstatt mit Problem zu tun, wie „Bin ich in einem bekannten Gebiet natürlich treten? Wenn ja, können andere mir erleben helfen?“. Design-Muster, für mich, ist nicht wie vorgefertigte Komponenten, die Sie zusammenkleben, um eine Lösung herzustellen. Sie sind nur Führung Repositorys für, wenn Sie auf eine Situation kommen, ähnlich wie einen anderen habt begegnet, und geben Namen Menschen zu den allgemeinen Situationen im Gespräch beziehen können.

Entwurfsmuster sind lustig, dass Sie nur wissen, wo ein Muster verwenden, wenn Sie in vollem Umfang die entsprechenden Muster verstehen. Dinge wie Strategie, Observer, Iterator Sie können aftera wenig Übung verwenden, ohne zu hart zu denken. Wenn Sie in C # sind verwenden Sie den Iterator der ganze Zeit (IEnumerable ...) ohne als Muster daran zu denken.

Meiner Meinung nach ist diese einfachen Muster sind die besten Muster. Du hast bereits einen Job zu tun, und versuchen, das Problem in ein Muster nach dem anderen Schuhanzieher wenn es nicht ganz fit ist eine Verschwendung von Zeit und führt zu schlechten Code.

Mein Rat ist, an dem UML-Diagramme für ein Muster zu suchen, und wenn es recht einfach ist, dann versuchen und lernt es gut genug, dass man es wieder zu später. Ein Muster mit einem einfacheren Subaufträge nützlichen häufiger sein.

ich mit der Gang of Four Design Patterns gehen würde buchen mich

ich mit diesen Referenzen stimmen, aber es ist nicht freundlich Neuling. Zum schnellen Start Design Patterns den einfachen Weg zu lernen:

Kopf bis Fuß: Entwurfsmuster

Dann können Sie Ihre die erweiterten Bücher überprüfen, sobald Sie das große Bild bekam (viele praktische Beispiele; -))

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top