language agnostic welche Verwenden Sie Designmuster?




wann benutzt man welche präposition (12)

Wie ist die Durchdringung von Design Patterns in der realen Welt? Verwenden Sie sie in Ihrer täglichen Arbeit - diskutieren Sie, wie und wo Sie sie mit Ihren Kollegen anwenden - oder bleiben sie eher ein akademisches Konzept?

Stellen sie tatsächlich Ihren Job zur Verfügung? Oder sind sie nur etwas, worüber die Leute reden, um klug zu klingen?

Hinweis: Ignorieren Sie zum Zweck dieser Frage "einfache" Designmuster wie Singleton . Ich spreche über das Entwerfen Ihres Codes, damit Sie Model View Controller usw. nutzen können.


Ja, ich benutze viele bekannte Designmuster, aber am Ende baue ich auch eine Software auf, die ich später herausfinde und die ein 'benanntes' Designmuster verwendet. Die meisten eleganten, wiederverwendbaren Designs könnten als "Muster" bezeichnet werden. Es ist viel wie Tanzbewegungen. Wir alle kennen den Walzer und den 2-Step, aber nicht jeder hat einen Namen für den 'Bump and scoot', obwohl die meisten von uns das tun.


Ja. Designmuster können bei entsprechender Anwendung wunderbar sein. Wie Sie bereits erwähnten, verwende ich jetzt Model-View-Controller (MVC) für alle meine Webprojekte. Es ist ein sehr verbreitetes Muster im Webspace, das serverseitigen Code viel sauberer und gut organisiert macht.

Darüber hinaus sind hier einige andere Muster, die nützlich sein können:

  • MVVM (Model-View-ViewModel): ein ähnliches Muster wie MVC; Wird für WPF- und Silverlight-Anwendungen verwendet.

  • Zusammensetzung: Ideal, wenn Sie eine Hierarchie von Objekten verwenden müssen.

  • Singleton: Eleganter als Globals zum Speichern von Elementen, die wirklich nur eine einzige Instanz benötigen. Wie Sie erwähnt haben, ist ein einfaches Muster, aber es hat seine Verwendung.

Es ist erwähnenswert, dass ein Designmuster auch einen Mangel an Sprachmerkmalen und / oder Unzulänglichkeiten in einer Sprache hervorheben kann. Zum Beispiel sind Iteratoren jetzt in neueren Sprachen integriert.

Im Allgemeinen sind Designmuster sehr nützlich, aber Sie sollten sie nicht überall verwenden. genau dort, wo sie für Ihre Bedürfnisse passen.


MVC ist sehr bekannt, also verwenden wir ziemlich oft Designmuster. Nun, wenn Sie nach den Gang of Four-Mustern fragen, gibt es einige, die ich verwende, weil andere Betreuer das Design kennen und worauf wir im Code hinarbeiten. Es gibt jedoch einige, die für das, was wir tun, ziemlich undurchschaubar bleiben. Wenn ich also eines verwende, erhalte ich nicht den vollen Nutzen eines Musters.

Sind sie wichtig, ja, weil es Ihnen eine Methode gibt, schnell und effizient über Software-Design zu sprechen. Kannst du besser benutzerdefinierte Lösungen, ja (sorta)?

Die ursprünglichen GoF-Muster wurden aus dem Produktionscode gezogen und katalogisiert, was bereits in der Wildnis verwendet wurde. Sie sind nicht rein oder sogar nur eine akademische Sache.


Ich benutze absolut Designmuster. An dieser Stelle nehme ich MVC als Designmuster als selbstverständlich hin. Mein Hauptgrund für ihre Verwendung ist, dass ich bescheiden genug bin, um zu wissen, dass ich wahrscheinlich nicht die erste Person bin, die auf ein bestimmtes Problem stößt. Ich starte selten ein Stück Code, das weiß, welches Muster ich verwenden werde; Ich beobachte ständig den Code, um zu sehen, ob er sich natürlich zu einem bestehenden Muster entwickelt.

Ich mag auch Martin Fowlers Patterns of Enterprise Application Architecture sehr . Wenn sich ein Problem oder eine Aufgabe präsentiert, blättere ich in einen verwandten Bereich (es ist meist ein Nachschlagewerk) und lese ein paar Übersichten über die Muster. Sobald ich eine bessere Vorstellung vom allgemeinen Problem und den vorhandenen Lösungen habe, beginne ich zu sehen, welchen langfristigen Weg mein Code wahrscheinlich über die Erfahrung anderer einschlagen wird. Am Ende habe ich viel bessere Entscheidungen getroffen.

Design Patterns spielen definitiv eine große Rolle in all meinen Ideen "für die Zukunft".


Es gibt viele Designmuster, die über das Einfache hinausgehen und in der "realen Welt" verwendet werden. Gutes Beispiel verwendet das Model View Controller Pattern. Ich habe Class Factories mehrfach in Projekten für meinen Arbeitgeber eingesetzt, und ich habe viele bereits geschriebene Projekte gesehen, die sie ebenfalls verwenden.

Ich sage nicht, dass jedes Designmuster verwendet wird, aber viele sind es.


Ja, Designmuster werden in der realen Welt - und täglich von vielen Menschen, mit denen ich arbeite - verwendet.

Meiner Meinung nach besteht der größte Nutzen von Design Patterns darin, dass sie eine universelle Hochsprache zur Verfügung stellen, um Software Design an andere Programmierer weiterzugeben.

Anstatt Ihre neue Klasse beispielsweise als ein "Dienstprogramm zu beschreiben, das basierend auf einer Kombination von Eingangskriterien eine von mehreren anderen Klassen erstellt", können Sie einfach sagen, dass es eine "abstrakte Fabrik" ist und jeder sofort versteht, wovon Sie sprechen.


Ja.

Wir verwenden sie sogar in meiner jetzigen Aufgabe: Mainframe-Codierung mit COBOL und PL / I.

Bis jetzt habe ich Adapter, Besucher, Fassaden, Module, Observer und etwas gesehen, was sehr nahe bei Composite und Iterator liegt. Aufgrund der Natur der Sprachen werden meistens struturale Muster verwendet. Auch bin ich mir nicht immer sicher, dass die Leute, die sie benutzen, das so wissentlich tun: D


Ja, Factory, Chain of Responsibility, Command, Proxy, Visitor und Observer sind unter anderem in einer Codebasis im Einsatz, mit der ich täglich arbeite. Soweit MVC geht, scheint diese Seite es recht gut zu nutzen, und die Entwickler konnten im letzten Podcast nicht genug Gutes sagen.


Ich versuche es, ja. Sie unterstützen in der Tat die Wartbarkeit und Lesbarkeit Ihres Codes. Es gibt jedoch Leute, die sie missbrauchen, normalerweise (aus dem, was ich gesehen habe), indem sie ein System in ein Muster zwingen, das es nicht gibt.


Meiner Meinung nach ist die Frage: "Benutzt du Designmuster?" Allein ein bisschen fehlerhaft, weil die Antwort allgemein JA ist.

Lassen Sie mich erklären, wir, Programmierer und Designer, alle verwenden Designmuster ... wir realisieren es einfach nicht immer. Ich weiß, das klingt Klischee, aber du gehst nicht zu Mustern, Muster kommen zu dir. Sie entwerfen Dinge, es könnte wie ein bestehendes Muster aussehen, Sie nennen es so, damit jeder versteht, wovon Sie sprechen, und die Gründe für Ihre Designentscheidung sind stärker, weil Sie wissen, dass es schon früher diskutiert wurde.

Ich persönlich benutze Muster als Kommunikationsmittel. Das ist es. Sie sind keine Designlösungen, sie sind keine Best Practices, sie sind keine Werkzeuge in einer Toolbox.

Versteh mich nicht falsch, wenn du ein Anfänger bist, werden Bücher über Muster dir zeigen, wie eine Lösung am besten gelöst wird, indem du ihre Muster verwendest, anstatt ein anderes fehlerhaftes Design. Sie werden wahrscheinlich von der Übung lernen. Sie müssen jedoch erkennen, dass dies nicht bedeutet, dass jede Situation ein entsprechendes Muster benötigt, um es zu lösen. Jede Situation hat hier und da eine Eigenart, die Sie dazu zwingt, über Alternativen nachzudenken und eine schwierige Entscheidung ohne perfekte Antwort zu treffen. Das ist Design.

Anti-Pattern sind jedoch in einer völlig anderen Klasse. Sie wollen tatsächlich Anti-Muster aktiv vermeiden. Deswegen ist der Name Anti-Pattern so umstritten.

Um zu Ihrer ursprünglichen Frage zurückzukommen:
"Benutze ich Designmuster?", Ja!
"Habe ich mich aktiv an Design Patterns orientiert?", Nein.


Jedes große Programm, das gut geschrieben ist, verwendet Entwurfsmuster, selbst wenn sie nicht als solche benannt oder erkannt werden. Das ist was Designmuster sind, Designs, die immer wieder und natürlich vorkommen. Wenn du eine hässliche API verwendest, wirst du wahrscheinlich eine Facade implementieren, um sie zu bereinigen. Wenn Sie Messaging zwischen Komponenten haben, die Sie entkoppeln müssen, können Sie Observer . Wenn Sie mehrere austauschbare Algorithmen haben, können Sie am Ende Strategy .

Es lohnt sich, die Designmuster zu kennen, weil Sie sie eher erkennen und dann schneller zu einer sauberen Lösung konvergieren. Aber selbst wenn Sie sie überhaupt nicht kennen, werden Sie sie schließlich erstellen (wenn Sie ein anständiger Programmierer sind).

Und natürlich, wenn Sie eine moderne Sprache verwenden, werden Sie wahrscheinlich gezwungen sein, sie für einige Dinge zu verwenden, weil sie in die Standardbibliotheken gebacken sind.


Ja, das tun wir, normalerweise passiert es, wenn wir anfangen etwas zu entwerfen und dann merkt jemand, dass es einem existierenden Muster ähnelt. Wir schauen uns das dann an und sehen, wie es uns helfen würde, unser Ziel zu erreichen.

Wir verwenden auch Muster, die nicht dokumentiert sind, aber aus dem Entwerfen hervorgehen.

Wohlgemerkt, wir benutzen sie nicht oft.





design-patterns