Design Patterns / Entwurfsmuster der Gang of Four - Ein Überblick

  Рет қаралды 21,852

David Tielke

David Tielke

Күн бұрын

Design Patterns bzw. Entwurfsmuster der Gang of Four sind Musterlösungen für Probleme in der Softwareentwicklung und im Software Design, welche Softwareentwicklern dabei helfen, mehr Softwarequalität in Ihre Anwendungen zu implementieren: dazu geben wir einen Überblick Jeder Softwareentwickler in der objektorientierten Programmierung sollte zumindest ein Grundverständnis von solchen Design Patterns bzw. Entwurfsmustern besitzen. Bevor wir uns die einzelnen Design Patterns und Entwurfsmuster im Detail anschauen, werden wir in diesem Video die Grundlagen dazu legen: Was sind Design Patterns und Entwurfsmuster? Was sind aber dagegen keine Design Patterns? Was bedeuten Design Patterns unabhängig der Gang of Four? Neben allen Grundlagen zu Design Patterns werden wir am Ende einen blick auf meine Top 3 Design Patterns werfen und ein paar Tipps für die Praxis geben. Alles in unserem Design Pattern Tutorial.
Gewinnspiel
Vielen Dank an den Rheinwerk Verlag für die Bereitstellung der Buches "Entwurfsmuster" zur Verlosung an Euch im Gewinnspiel. Was ihr machen müsst, um dieses tolle Buch zu gewinnen, erfahrt Ihr im Video.
"Design Patterns" von Matthias Geirhos: www.rheinwerk-verlag.de/entwu...
Kapitel
[00:00] Begrüßung und ein Überblick
[02:23] Was sind Muster?
[04:50] Was ist Design?
[08:56] Ein Beispiel von Design Patterns
[12:10] Was sind Design Patterns nicht?
[15:33] Warum sind Design Patterns wichtig?
[18:08] Wann sind Design Patterns wichtig?
[21:17] Meine Top 3 Design Patterns
▬ Über diesen Kanal ▬▬▬▬▬▬▬▬▬▬▬▬
Seit vielen Jahren arbeite ich als Consultant, Coach und Trainer für professionelle Softwareentwicklung mit den Schwerpunkten Softwarequalität, Softwarearchitektur sowie Prozessmanagement. Auf meinem Kanal möchte ich Euch mein Wissen und meine langjährige Erfahrung in diesen Bereichen vermitteln - natürlich kostenlos. Dabei versuche ich stets Euch das Wissen so zu vermitteln, dass Ihr damit direkt in der Praxis loslegen könnt und das ganze immer mit guten Portion Humor. Lernen soll ja schließlich Spaß machen :)
▬ Empfohlene Videos ▬▬▬▬▬▬▬▬▬▬▬▬
Wie viel Softwarequalität Ihr braucht - • Architekturen - Von Mo...
Warum Software unwartbar wird - • Warum Software unwartb...
Architektur - Modularisierung - • Architektur - Modulari...
Was ist Architektur - • Was ist Architektur?
Warum Architektur - • Warum Architektur für ...
▬ Wichtige Links ▬▬▬▬▬▬▬▬▬▬▬▬
Abonniere meinen Kanal: / @davidtielke
Alle Videos: / @davidtielke
▬ Social Media ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
► Twitter: / davidtielke
► Xing: www.xing.com/profile/David_Ti...
► LinkedIn: / david-tielke-06140912b
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬

Пікірлер: 135
@DavidTielke
@DavidTielke 3 жыл бұрын
Wie immer interessiert mich: Wie steht Ihr zum Thema Design Patterns bzw. Entwurfsmuster? Welche nutzt Ihr? Welche vermeidet ihr und welche Erfahrungen habt ihr damit gemacht? Welches Design Pattern sollen wir uns mal im Details anschauen? Und wie immer: wenn Euch das Thema interessiert, helft mir und unterstützt den Kanal mit Likes und einem *Abo* - Danke!
@hubertfuchs2237
@hubertfuchs2237 3 жыл бұрын
#FragDavid: Kann das eigentlich sein, dass bei vielen Design Pattern Beispielen(im Buch z.B.) Zyklen zur Laufzeit entstehen? Ist das nicht "böse"? Sollte man das nicht immer vermeiden?
@DominikZogg
@DominikZogg 9 ай бұрын
Decorator Pattern ist das erste Pattern, dass ich einem Entwickler beibringen würde. Das Konzept ist relativ einfach die Wirkung extrem mächtig. Und extrem Flexible, sowohl OOP als auch FP tauglich
@WoW4332
@WoW4332 7 ай бұрын
Und jeder, der sich dieses Video angesehen hat, hat ein observer Pattern verwendet. :) (Der musste sein) Danke fürs Video. Und noch hab ich keine Lieblings Muster. Wir lernen es gerade und eben wegen dem Factory Muster bzw zum verständniss des selbigen, hab ich eigentlich auf das Video geklickt.
@prof.sebastian
@prof.sebastian 2 жыл бұрын
sehr coole Einführung! Super die Abgrenzung von Design- und Architekturpattern!
@crushl2451
@crushl2451 2 жыл бұрын
Gutes Video, um als purer Programmierer mal die Perspektive auf das zu bekommen, was noch vor einem liegt. Danke!
@mazenal-ali3543
@mazenal-ali3543 3 жыл бұрын
Ich habe mich mit Singleton erstmal beschäftigt und es war eine SUPER Lösung für ein Problem in der Software. Top 3 sind , Singleton, Fassade und decorativ Pattern. Sehr informatives Video. Ganz herzlichen Dank, weiter bite damit.
@davidkroll9725
@davidkroll9725 3 жыл бұрын
Wie immer sehr informatives Video, danke für deine hervorragende Arbeit! Was die Patterns sind meine Top drei Singleton, Factory und Observer.
@Schnickalodeon
@Schnickalodeon 3 жыл бұрын
Wie immer super Video. Habe in meiner bisherigen Laufbahn vor allem Singleton, UnitOfWork, Repository und MVC eingesetzt. Würde mich über Videos zu Patterns auf jeden Fall sehr freuen :)
@nifix777
@nifix777 3 жыл бұрын
Erst mal vielen Dank für die tollen Videos. Auch nach jahren in der Softwareentwicklung kann man immer wieder neue Sachen lernen oder sich nochmal ins Gedächnis rufen lassen :). Meine TOP 3: DI, Adapter und Builder
@DavidTielke
@DavidTielke 3 жыл бұрын
Danke nifix :) Gruß David
@marcof7893
@marcof7893 3 жыл бұрын
Deine Videos sind immer sehr gut strukturiert und auch sehr verständlich erklärt. Weiter so! Würde mich über mehr Videos zu einzelnen Design Pattern im Detail freuen!
@juantabuena6797
@juantabuena6797 3 жыл бұрын
Hallo David, bin ein großer Fan von deinem Channel. Habe durch deine Videos viel gelernt und möchte gerne weitere Videos bezüglich Design Patterns sehen. coole Arbeit mach weiter so!! :)
@plotze0692
@plotze0692 Жыл бұрын
Das beste Video über Softwarestruktur das ich bisher gesehen habe :)
@DavidTielke
@DavidTielke Жыл бұрын
Hey, vielen Dank für Dein Lob - das freut mich! Gruß David
@gruaba2
@gruaba2 3 жыл бұрын
Super Videom danke für den Überblick :) Meine Top 3: Adapter-Pattern, Strategy-Pattern, Template-Pattern
@honeyloop2746
@honeyloop2746 3 жыл бұрын
Tolles Video, speziell der Tipp, dass man nicht zu früh mit dem Lernen der Muster anfangen soll, ist sehr wertvoll. Meine Top 3 Entwurfsmuster sind Adapter, UoW und Factory
@DavidTielke
@DavidTielke 3 жыл бұрын
Danke, ganz Deiner Meinung :)
@IxFreeZe4TW
@IxFreeZe4TW 3 жыл бұрын
Sehr cooles Video! Ich habe mich auch viel zu früh mit dem ganzen Thema auseinander gesetzt und habe das meiste nie wirklich verinnerlichen können. Ein paar sind aber bei mir hängen geblieben: Strategy, Facade und Observer 😊 Ich werde in nächster Zeit erstmal so weiter Erfahrungen sammeln und mich dann eines Tages wieder damit beschäftigen. Hat mich gefreut, dass du diesen wichtigen Aspekt genannt hast ✌🏻
@DavidTielke
@DavidTielke 3 жыл бұрын
Hey, danke schön! Das ich damit den Nerv von so vielen treffe, habe ich zwar vermutet, aber die Menge an Zustimmung verblüfft mich doch etwas ;)
@michael_maurus
@michael_maurus 2 жыл бұрын
Das ist richtig Klasse! Ich habe deinen Kanal gleich mal abonniert. Besten Dank!
@DavidTielke
@DavidTielke 2 жыл бұрын
Hallo Michael, vielen Dank, das freut mich sehr! Schön das Du dabei bist! Gruß David
@superhandy333
@superhandy333 2 жыл бұрын
Mein Favorit: Adapter-Entwurfsmuster
@DavidTielke
@DavidTielke 2 жыл бұрын
Hey Matthias, ebenfalls eins meiner Lieblinge :) Gruß David
@l3vel1
@l3vel1 3 жыл бұрын
Hallo David, dir und deiner Familie ein guten und gesunden Start ins Jahr 2021. Ich freue mich schon sehr auf viele spannende Videos rund um Softwarequalität und -design. Ich habe im letzten Jahr enorm viel dazu gelernt und bin weiterhin hungrig mehr zu lernen. Meine Top 3 Patterns: Strategie Fassade Repositority Ansonsten verwende ich sicher noch einige mehr, auch ohne diese korrekt kennen oder benennen zu können. Aber auch daran kann und will ich arbeiten.
@aikofrank36
@aikofrank36 4 ай бұрын
Als die Patterns in den 90ern neu waren, fand ich diese sehr interessant. Inzwischen sehe ich den Patterns, die zusätzliche Schichtungen/Schachtelungen schaffen also Factories und Facades etc. als wesentlichen Grund für überladenen und schlecht wartbaren Code (ganz zu schweigen von der Ineffizienz mit einhergehenden Performanz und zusätzlichen CO2 Footprint). andere Patterns wie Publish/Subscribe oder MVC erlauben geschickte Lösungen.
@MoWe42
@MoWe42 3 жыл бұрын
Ganz kurz was ich am meisten gebraucht hab: Adaptor, Decorator, Observer Und Allen ein schönes, besseres Neues Jahr
@DavidTielke
@DavidTielke 3 жыл бұрын
Danke, Dir auch :)
@Eratosthenes0815
@Eratosthenes0815 Жыл бұрын
Moin, moin! War zuerst etwas skeptisch, hab mir das Video aber trotzdem angesehen... Erkenntnis: "Echt amtlich, das Ganze!" - Sprich: Gefällt mir richtig gut. Werde es und Deinen Channel definitiv weiterempfehlen. Warum? - Weil die Themen für Entwickler extrem(!) wichtig sind und weil Deine Art der Präsentation, zumindest bei mir, sehr gut rüber kommt. - Weil das Thema genug Detailinformation enthält, trotzdem aber leicht verständlich bleibt => Es gefällt mir also... ;->
@onuryuksek7810
@onuryuksek7810 3 жыл бұрын
Gesundes und erfolgreiches neues Jahr, Sehr Schönes Video Dankeschön, Strategy Vermittler bzw. Mediator Facade
@DavidTielke
@DavidTielke 3 жыл бұрын
Hallo Onur, vielen Dank, sehr gerne! Gruß David
@onuryuksek7810
@onuryuksek7810 3 жыл бұрын
@@DavidTielke Hallo David, Kennst du Anki "Anki (basierend auf dem japanischen Wort 暗記 anki für „Auswendiglernen“) ist eine quelloffene Lernkartei-Software, ursprünglich vorrangig gedacht zum Erlernen von Fremdsprachen, wegen ihrer vielfältigen Einstellmöglichkeiten allerdings für das Einüben unterschiedlichster Inhalte geeignet. Für die Übungen benutzt Anki einen Algorithmus, dessen Wiederholungsintervall für einzelne Fakten gezielt für den Einbau in das Langzeitgedächtnis konzipiert ist" => Wikipedia => ich finde es wirklich sehr interessant was die Software alles kann. Vor allem das Man seine Decks offen zur Verfügung stellen kann. ankiweb.net/shared/decks/ Jetzt zur meiner Frage: würdest du so ein Projekt in Angriff nehmen und einen Anki Deck für deine Community zur Verfügung stellen. Ich stelle mich gerne zur Verfügung (wenn du mir einen Script gibst, was ich zur Kartei Karten zusammen Fügen soll) => nur würde ich gerne die Unterteilung und Aufteilung komplett dem zertifizierten Trainer( alos dir ) überlassen... Die mühsamme Arbeit die Karteikarten zur einem deck zusammenzufügen würde ich übernehmen ^_^ sogar sehr gerne würde ich das machen... Liebe Grüße Onur
@Aalii6
@Aalii6 2 жыл бұрын
klasse Video, danke!
@robby7292
@robby7292 2 жыл бұрын
Videoreihe-Idee: Entwurfsmuster einzeln erklären und v.a. mit guten Beispielen untermauern. Man findet häufig nur abstrakte Erklärungen, die nicht richtig aufzeigen welches Problem durch ein Muster gelöst wird. Super Video, wie immer! Mega cool! :D
@DavidTielke
@DavidTielke 2 жыл бұрын
Hey Robby, genau diese Reihe ist gerade in Arbeit - bin mir nur unsicher ob ich erst damit anfange, oder lieber mit Systemarchitekturmustern :) Mal schauen was bis nächste Woche passiert ;) Gruß David
@robby7292
@robby7292 2 жыл бұрын
@@DavidTielke Mega cool! Freue mich schon drauf! Das ist wirklich eine gute Frage, womit man da lieber beginnt. Erinnert etwas an Bottom-Up oder Top-Down. Intuitiv würde ich fast sagen, dass zuerst Systemarchitekturmuster besser passen könnten :)
@powlsn
@powlsn 10 ай бұрын
Das Buch ist zwar schon verlost, aber hier meine top 3 1. factory 2. proxy 3. composition Tolles Video David, lieben dank für deine Mühe
@yutubl
@yutubl Жыл бұрын
Ja Deine 3 favorisierten Entwurfsmuster (Adapter, Singleton, Fabrik) finde ich auch wirklich wichtig. Mein erstes bewußt erlerntes Muster während meines Studiums war das sehr nützliche Iterator-Muster, später konnte ich mich für das Observer-Muster, Strategie-Muster und Command-Muster begeistern.
@DavidTielke
@DavidTielke Жыл бұрын
Iterator war auch mein erstes :) Gruß David
@perahoky
@perahoky 4 ай бұрын
Mein Liebling ist das Strategie Pattern. Man kann das so schön variieren und damit so oft komplexe Probleme lösen und sehr gut erweiterbar machen. Vor paar Jahren hatte ich die Aufgabe Objekte Beliebiger Farbe und Form über eine Service Schnittstelle zu schieben. Der Architekt meinte dass ich wohl jedes Objekt einzeln so implementieren soll. ich habe mich dem widersetzt und damit das Problem sehr viel einfacher und schneller gelöst. Leider durfte ich das Konzept dann nicht mehr selbst fertig umsetzen wodurch ziemlich viel Chaos (redundanzen, unlesbarkeit, zu viel Code der zu wenig macht etc) reingekommen ist unter dem wir jetzt leiden (was mich tierisch auf(ge)regt hat). Aber trotzdem: Strategie pattern! Setze ich immer wieder sehr gern eine. Zuletzt habe ich das leicht variiert angewandt in dem ich die gleichen Objekte woe zuvor für eine Export/Import Schnittstelle schubsen muss. Die Objekte müssen geladen und in die ExportImport Schnittstellen Objekte transferiert und serialisiert werden. Die alte Lösung von zuvor liest & schreibt jede Property einzeln mit manuellem Code (tausende Zeilen Redundanzen). Das ist auch super gut erweiterbar. man kann da ohne Probleme eine andere Variante für eine Ausnahme umsetzen. Sind einfach nur 2 interfaces :D
@alexanderbehling4680
@alexanderbehling4680 2 жыл бұрын
sehr gut erklärt. Meine Top 3 kann ich noch nicht nennen, da ich mich erst seit kurzem wieder mit Design Patterns beschäftige. Bislang habe ich nur das Singleton-Pattern für den DB-Zugriff genutzt. Habe mich damals auch mit der Gang of Four beschäftigt und habe es nicht verstanden. Da ich ohnehin der einzige Webentwickler in meiner Firma bin, war dies bislang auch nicht so wichtig. Nun habe ich aber ein Projekt bei dem ich alten PHP-Code (lauffähig bis 5.6) so überarbeiten muss, dass dieser auch mit PHP 7 / 8 problemlos läuft. Hierbei hat sich die enge Bindung zur Datenbank als Nadelöhr erwiesen, da die Aufrufe dieser Methoden sich durch zig Dateien ziehen. Auch sind leider in dem Code zahlreiche "Leichen" enthalten. Also Funktionen, die entweder nie genutzt wurden oder noch nie richtig funktioniert haben. Daher wollte ich meine freien Tage mal nutzen um mich mit Design Patterns auch den aktuellsten Stand zu bringen.
@sergioserafino1651
@sergioserafino1651 3 жыл бұрын
Hallo David, fühlte mich sehr angesprochen als du meintest "viel zu früh damit beschäftigt", da dies denke ich auch auf mich zutraf/-trifft : ) - das 'Bridge'- Pattern fand ich einleuchtend und sehr interessant (den Rest kenne ich noch nicht so gut) weiter so!!
@DavidTielke
@DavidTielke 3 жыл бұрын
Hallo Sergio, interessant, das es Dir auch so ergangen ist :) Mache ich! Gruß David
@dollares85
@dollares85 3 жыл бұрын
Mein Top 3: loan pattern, builder, composite
@manolomonetha8238
@manolomonetha8238 3 жыл бұрын
Echt informatives und gutes Video. P.S.: Deine Stimme klingt an manchen Stellen wie die Stimme des Sprechers bei der Sendung mit der Maus, hat mich kurz in meine Kindheit geworfen xD
@DavidTielke
@DavidTielke 2 жыл бұрын
Hey, danke, schön das es Dir gefällt :) Ich wäre begeistert, wenn das echt meine Stimme wäre - damit bin auch ich aufgewachsen :D Gruß David
@OlafSt
@OlafSt 3 жыл бұрын
Durch deinen Kanal und deine Videos bin ich ein sehr viel besserer Entwickler geworden, dafür an dieser Stelle ein megadickes Danke. Ich habe mich schon vor längerem mit Design Patterns befasst und war erstaunt, wieviele davon ich schon "aus dem Bauch heraus" anwende, ohne je was darüber gelesen zu haben. Tatsächlich ist deine Aussage, mit Patterns erst nach einer gehörigen Portion Erfahrung zu benutzen und dann auch sparsam damit umzugehen, unbedingt ernst zu nehmen - denn nach einem Riesen-Programm (damit sind Programm deutlich jenseits der 500K LoC gemeint), das völlig unstrukturiert zusammengeworfen wurde, ist ein Pattern polluted Programm wohl das zweitübelste Übel. Da ich in den letzten Jahren fast ausschließlich alte und älteste Software refactored habe (30 Jahre und älter), kommt bei mir hauptsächlich das Facade-Pattern zum Einsatz, denn meist haben solche uralten Programme, die dann auch gewaltig groß sind, viele hundert Klassen mit den unterschiedlichsten Schnittstellen, weil von den unterschiedlichsten Programmierern geschrieben. Und damit das überhaupt Klassen werden, brauchts oft das Adapter-Pattern - sonst kriegst den Kram nie in einen Sack 😀. Zweiter Platz ist die Factory, denn diese Klassenungeheuer müssen ja auch mal erzeugt werden. Alls drittes würde ich das Singleton-Pattern nennen. Irgendwo müssen all die globalen Variablen, nachdem man sie zusammengesucht hat und die doppelten, dreifachen und z.T. 8fachen Deklarationen (!!) zusammengefasst hat, ja hin.
@DavidTielke
@DavidTielke 3 жыл бұрын
Hey Olaf, Danke, das freu mich sehr :) Ja, scheinbar ging es hier vielen wie uns beiden: Ohne Erfahrung bringen Design Patterns oft nichts. Gruß David
@anibuffo
@anibuffo 3 жыл бұрын
Also meine drei Favoriten sind einmal das Composite Pattern (häufig die bessere Alternative zu Vererbungen), das Observer Pattern und dann wie bei dir noch das Factory Pattern. Das Buch klingt nach einem perfekten Zeitvertreib für die Semesterferien :)
@yutubl
@yutubl Жыл бұрын
Stimmt absolut!
@sennah2672
@sennah2672 3 жыл бұрын
Meine Favoriten sind Adapter, DI und generierte Decoratorklassen.
@franzbiberkopf9179
@franzbiberkopf9179 3 жыл бұрын
Klasse Video! Grüße aus Rom.
@DavidTielke
@DavidTielke 3 жыл бұрын
Hallo Franz, schön das es Dir gefällt. Aus Rom, ernsthaft? :D Gruß David
@realGhandi
@realGhandi 3 жыл бұрын
Meine Top 3 in dieser Reihenfolge: 1) Factory 2) Singleton 3) Facade. Mir ging es übrigens ähnlich. Irgendwann dachte ich mir du musst dich unbedingt mal mit Design Patterns beschäftigen. Aber mit einfach mal durchlesen und dann hat man das drauf war leider nicht. Man wird erschlagen und legt das Thema erstmal wieder weg. Bis auf Singleton. Das versteht man recht einfach und kann sich vorstellen wofür man es brauchen kann. Facade hatte ich schon verwendet ohne das Design Pattern selbst zu kennen. Ein guter Systemdesigner hat es in einem Projekt, an dem ich mitarbeite, zur Verfügung gestellt. Factory Pattern verwende ich, wenn abzusehen ist, dass zu einer Anforderung unterschiedliche Ausprägungen geben wird.
@DavidTielke
@DavidTielke 3 жыл бұрын
Bin total bei dir Udo, dazu könnte man mal ein Video machen - Also welche Design Patterns in welcher Reihenfolge gelernt werden sollten, so das der Schwierigkeitsgrad kontinuierlich ansteigt. Aus meiner Erfahrung heraus wird man so wesentlich schonender und effizienter an das Thema Entwurfsmuster herangeführt.
@notkha
@notkha Жыл бұрын
Gibt es weiter Videos über die bestimmten Entwurfsmuster und deren Anwendung/Vorteil/Nachteile wie zum Beispiel State Pattern, Factory Method, Decorator oder Observer?
@martinbernasconi9208
@martinbernasconi9208 3 жыл бұрын
Meine Top 3: Builder, dazu passend Null-Objekt (wird gerne unterschätzt) und Adapter. Das neue Jahr fängt gut an. 😉
@DavidTielke
@DavidTielke 3 жыл бұрын
Hey Martin, bei dem Null-Objekt hast Du recht :) Gruß David
@yutubl
@yutubl Жыл бұрын
Ja vor einigen Jahren half mir tatsächlich überraschenderweise dass Nullobjekt zu einer viel unkomplizierteren und vor allem problemloseren Lösung.
@thomasbednarczyk643
@thomasbednarczyk643 3 жыл бұрын
Meine Favoriten sind Fassaden-Muster, MVC-Muster und Beobachter-Muster ;).
@DavidTielke
@DavidTielke 3 жыл бұрын
Danke Thomas :)
@Sunny-wh6jr
@Sunny-wh6jr 3 жыл бұрын
Zu meinen Top 3 gehören Adapter, Factory Method und das Strategy Pattern. Bei meinen Studenten kann ich oft sehen, dass sie zu pattern pollution neigen nachdem sie sich mit dem Thema befasst haben. Das lässt aber auch schnell wieder nach. Für uns könntest du ja mal herausstellen warum es beim Factory Pattern (im Gegensatz zum Factory Method Pattern) zu Verstößen gegen das Open-Closed-Prinzip kommt.
@DavidTielke
@DavidTielke 3 жыл бұрын
Ja, die Pattern Pollution erledigt sich meist nach einer gewissen Zeit wieder - die Frage ist, was man bis daher durch die Design Patterns für eine technische Schuld erzeugt hat ;) Gute Idee mit dem Factory Pattern und OCP - packe es mal auf die Liste :)
@geowody4914
@geowody4914 3 жыл бұрын
Facade, Adapter, Factory, aller drei gut zum entkoppeln.
@alexandergabele
@alexandergabele 3 жыл бұрын
Meine Pattern sind die Singleton, Facade, Factory aber auch gern Repository ;) War mir bis vor ein paar Jahren auch nicht so recht bewusst, dass dies Design Patterns sind. Hab es auf dem Bauch raus schon "richtig" gemacht. Hatte, so wie du auch, mal ein bisschen dazu gelesen und nichts verstanden und mich auch gefragt was diese Mist soll.. mit der Erfahrung kam dann die Erleuchtung.
@DavidTielke
@DavidTielke 3 жыл бұрын
So ging es mir bei vielen Design Patterns ebenfalls - das ist leider so ein bisschen das Henne-Ei-Problem. Man benötigt Erfahrung um Design Patterns richtig zu verstehen und anzuwenden, allerdings nutzt man mit der entsprechenden Erfahrung meist schon diverse Design Patterns ohne es zu merken - hat sich diese aber hart "selbst erarbeitet" :)
@biask89
@biask89 3 жыл бұрын
Moin David, also ich muss sagen, dass ich bisher nicht mit Pattern gearbeitet habe, mich allerdings seit geraumer Zeit intensiv mit Softwarearchitektur und Design beschäftige. Bei meinen Recherchen fällt mir immer mehr auf, dass auch wenn ich keine Pattern aktiv genutzt habe, sie trotz allem anwandte, indem ich sie mir selber erdacht habe. Momentan (seit gut 3 Monaten) erstelle ich in meiner Freizeit eine umfangreiche Programmierrichtline um neue Auszubildene und Kollegen zu unterstützen und stelle mir die Frage: „Ist es besser Programmieranfängern erstmal ins kalte Wasser zu werfen, oder sollten sie alles an die Hand bekommen, bzw. nur helfen wenn sie Fragen haben?“ Sozusagen, man irrt sich empor und wenn man vermeintlich oben angelangt ist, versucht man es richtig zu machen.
@DavidTielke
@DavidTielke 3 жыл бұрын
Sehr gute Frage Bias, pack einen #FragDavid dran und wir machen mal ein Video dazu!
@000rapp
@000rapp 3 жыл бұрын
Singleton, Factory, Strategy :)
@dennist593
@dennist593 Жыл бұрын
Super informatives Video! Aber eines ist mir gerade unklar: Warum sollte man auf statische Methoden in der modernen Softwareentwicklung verzichten? 🤔 22:40
@becklink
@becklink 3 жыл бұрын
Meine Top 3: MVC - Singleton - Observer in IoT Anwendungen
@DavidTielke
@DavidTielke 3 жыл бұрын
Interessant Design Patterns mal aus dem IoT-Bereich zu hören :) Gruß David
@caoutchouc-cc
@caoutchouc-cc 10 ай бұрын
Meine Kollegen mögen ehr lange ausschweifende Methoden und versuchen möglichst wenige Klassen zu benutzen damit der Solutiontree nicht so voll und unübersichtlich wird. Ich nenne es das Roman-Pattern wegen Klassen lang wie Kapiteln und Methoden wie Seiten. Innerhalb des Codes gibt es Kommentare - so viele Kommentare, dass sie ganze Dialoge zwischen Entwicklern abbilden. Es liest sich nicht schlecht aber trotzdem verschieben wir das Release-Date immer weiter. Auch unsere Teamatmosphäre ist anders. Wenn jemand es wagt Kritik zu üben werfen wir beleidigt den Schal über die Schulter - wir sind keine Entwickler , wir sind keine Programmierer - wir sind Autoren. Künstler die ein Meisterwerk erschaffen.
@caoutchouc-cc
@caoutchouc-cc 10 ай бұрын
@DavidTielke Sie würden bestimmt mit einer Software Architektur starten. Das ist quatsch. Ein literarisches Meisterwerk fängt man nicht mit einem Inhaltsverzeichnis an. Man fängt es gar nicht an - es geschieht bis es fertig ist.
@reo1980
@reo1980 2 жыл бұрын
Gut, das Video ist jetzt ja schon von Anfang des Jahres und natürlich ist die Umfrage schon vorbei, aber ich möchte trotzdem kurz meine Meinung schreiben: Ein Video zu machen und dann eine Verlosung zu starten und dort dann nach den 3 TOP Themen zu fragen ist für mich kontraproduktiv. Wenn jemand "seine" 3 schon kennt, dann benötigt er das Buch wahrscheinlich schon nicht mehr. Vielleicht ist es sinnvoller die Verlosung eher für Leute zu machen, die sich erst damit anfangen mit dem Thema zu beschäftigen und nicht (nur) den Leuten, die sich damit schon auskennen. (Bitte dies als Verbesserungsvorschlag für die Zukunft sehen) Ansonsten aber ein gutes Video. Ich schaue dann mal die viele anderen in dem Kanal, die noch nachzuholen sind.
@DavidTielke
@DavidTielke 2 жыл бұрын
Hey, Hast total recht, so hab ich das noch gar nicht gesehen - war total unsinnig, danke! Gruß David
@farrir3175
@farrir3175 3 жыл бұрын
Meine Top 3: Facade, Singleton, Factory
@DavidTielke
@DavidTielke 3 жыл бұрын
Danke Farrir :)
@mplaimer
@mplaimer 3 жыл бұрын
Meine aktuell meist verwendeten Pattern Singleton Factory und dann kommt mal lange nichts, bin jedoch aktuell (naja seit eher 6 Monaten) noch dabei, dass ich mir die Patterns anschaue und durcharbeite. Jedoch fehlt da aktuell die Zeit und wie du auch erwähnt hast. Wenn man das Problem noch nicht hatte, aufgrund von fehlender Erfahrung dann fängt man mit den Erklärungen wenig an.
@DavidTielke
@DavidTielke 3 жыл бұрын
Hey Markus, viel Erfolg beim weiteren Einarbeiten :) Gruß David
@arturhorst8321
@arturhorst8321 2 жыл бұрын
Hallo David. Erstmal danke für das tolle Video. Ich habe eine Frage zum Teil "Wann sind Design Patterns wichtig?". Kannst du Übungsaufgaben / Übungsprojekte empfehlen, die (die wichtigsten) Design Patterns für Junior Softwareentwickler zugänglich machen? Also ich meine nicht nur Anwendungsbeispiele zu bestimmten Problemstellungen, sondern wirklich Übungen, die man auch selbst machen kann. Gibt es sowas überhaupt? Würde mich über eine Antwort sehr freuen, weil ich mich mit Design Patterns beschäftigen möchte. Vielen Dank nochmal für deine Videos. Sind echt hilfreich.
@DavidTielke
@DavidTielke 2 жыл бұрын
Hey Artur, leider nein - solche Übungen sind mir nicht bekannt, ich halte sie auch nicht für sinnvoll. Junior Entwickler sollten sich mit anderen (Grundlagen)Themen beschäftigen, die Design Patterns kommen dann von ganz allein. Aber da kommt mir eine coole Video-Idee: Warum ich Design Patterns nicht mag, vielen Dank dafür ;) Gruß David
@marcusschone296
@marcusschone296 3 жыл бұрын
Top Muster wäre wohl das Repository Pattern, dazu das UnitOfWork Pattern.
@DavidTielke
@DavidTielke 3 жыл бұрын
Ja guck, UoW hatte ich gar nicht auf dem Zettel :)
@biphie
@biphie 3 жыл бұрын
Danke für das Video! Ich fand deine Erklärung von Design mit der Abgrenzung zur Softwarearchitektur sehr gut. Hast du evtl. eine Quelle für dein Schema bei 7:20? :)
@DavidTielke
@DavidTielke 3 жыл бұрын
Hallo Sophie, schön das Dir das Video gefällt. Was genau meinst Du mit Quelle? Von der Grafik? da habe ich keine direkte Quelle, aber in jedem guten Architekturbuch findest Du genau diese Informationen - Beispielsweise "Effektive Softwarearchitekturen" von Gernot Starke oder "Software Architect's Handbook" von Joseph Ingeno. Brauchst Du das für etwas wissenschaftliches? Gruß David
@biphie
@biphie 3 жыл бұрын
@@DavidTielke Danke, dann schau ich mir mal die Bücher an. 👍 Ich beschäftige mich im Rahmen einer wissenschaftlichen Arbeit aktuell mit Entwurfsmustern im Bereich der Automatisierungstechnik, deswegen. :)
@stefanr.7485
@stefanr.7485 3 жыл бұрын
Meine TOP 3 sind: Factory, Decorator, Singleton
@DavidTielke
@DavidTielke 3 жыл бұрын
Danke :)
@stefanalpers7415
@stefanalpers7415 3 жыл бұрын
Ich nutze Factory, Strategy und Decorator. Wie entkräftest Du die Meinung, dass Singleton böse ist?
@majidsoleyman5184
@majidsoleyman5184 3 жыл бұрын
Meine top 3 sind: Factory, Singleton, Facade
@DavidTielke
@DavidTielke 3 жыл бұрын
Vielen Dank :)
@eviyler2952
@eviyler2952 Жыл бұрын
Danke ! bist du noch bei Google?
@TheDarkRumo
@TheDarkRumo 3 жыл бұрын
Meine top 3 pattern sind decorator, strategy und repository
@DavidTielke
@DavidTielke 3 жыл бұрын
Danke!
@Sebastian-zs8cp
@Sebastian-zs8cp Жыл бұрын
Habe ich es richtig verstanden das die Fassade die Klassen kollektiviert ? was fehlt noch mal unter Systemarchitektur, Softwarearchitektur, Design? also Systemarchitektur = Microservice, Monolith ist das nicht Softwarearchitektur. ? Softwarearchitektur = ddd, tdd Design = GoF
@Palladin007
@Palladin007 3 жыл бұрын
Bei dieser Frage habe ich das Problem, dass es nur sehr wenige "Lieblings"-Patterns gibt, immerhin sind für jedes Projekt immer andere Muster relevant. Aber ein paar allgemeine Beispiele, die sehr oft vorkommen: Nummer 1 wäre bei mir die DependencyInjection in Verbindung mit einem geeigneten Container. Ich weiß ehrlich gesagt gar nicht mehr, wie man übersichtliche Software ohne DI entwickeln kann, hab ich früher mal gemacht, aber heute ... keine Ahnung :D Da hab ich aber auch schon mein persönliches Anti-Pattern: Service-Locator. Der Grundgedanke von DI ist da, nur gibt man viele Vorteile auf, weil man nicht umdenken kann/möchte. Ich bin ein Fan davon, dass Objekte nach der Erstellung nur noch möglichst wenig geändert werden können oder gar nicht - dadurch gibt's einfach weniger Fallstricke, besonders beim Multithreading. Das funktioniert natürlich nicht immer, aber in den Fällen, in denen es funktioniert, können Factory oder Builder eine große Hilfe sein. Ansonsten wären da noch Adapter, Decorator oder Facade, die ja alle drei eine gute Vereinfachung von komplexen Strukturen ermöglichen. Oder wenn es um wirklich sehr allgemeine Patterns geht: Lock und Observer, beides ist ja bereits in C# bereits implementiert. Ach ja: Mediator für Web-APIs
@DavidTielke
@DavidTielke 3 жыл бұрын
Bei Dependency Injection wär ich eher bei einem Prinzip, als bei einem Design Pattern ABER: Du hast total recht, ich kann es mir heute auch nicht mehr vorstellen :)
@Palladin007
@Palladin007 3 жыл бұрын
@@DavidTielke Ja, wann was nun welchen Oberbegriff hat, ist mir nicht immer so ganz klar, deshalb hab ich dir auch nicht drei, sondern massig genannt :D
@r0bnet
@r0bnet 3 жыл бұрын
Nicht die Patterns, die ich am häufigsten nutze oder genutzt habe, aber die, die mir am meisten Arbeit erspart haben: 1. Decorator 2. Template 3. State
@DavidTielke
@DavidTielke 3 жыл бұрын
Hey Robin, bei mir sind die meist genutzten auch in der Tat die, welche am meisten zeit sparen :) Gruß David
@CoderboyPB
@CoderboyPB 3 жыл бұрын
Ich persönlich mag das Strategy Pattern, es ist ja quasi die Grundlage für die Dependency Injection, Facade habe ich schon selbst angewendet und das Decorator Pattern beeindruckt mich jedes mal aufs Neue. Ich kam noch nie zum Einsatz, aber wenn ich es brauchen könnte, würde ich es in dem Moment erkennen. Was Factory angeht, so findet man in diesem kompletten Fullstack Kurs (engl sprachig) sehr viele Beispiel, die helfen zu verstehen, was das Factory Pattern ist, und wozu man es verwendet. Obendrein wird auch das Thema Dependency Injection ausführlich besprochen. Hoffe es ist OK, dass ich es hier verlinke, ich selbst habe nichts davon, will nur den Anderen hier was Gutes. :-) kzbin.info/aero/PLA8ZIAm2I03jSfo18F7Y65XusYzDusYu5
@DavidTielke
@DavidTielke 3 жыл бұрын
Genau so geht es mir mit dem Decorator Design Pattern auch immer :D Gruß David
@harper482
@harper482 3 жыл бұрын
Singelton, Repository & Dependency Injection
@DavidTielke
@DavidTielke 3 жыл бұрын
Danke :)
@optimusbryan258
@optimusbryan258 2 жыл бұрын
Also ich habe gelernt, dass man auf Singletons verzichten sollte - (in objektorientierter Programmierung)
@floriangerlinghoff2649
@floriangerlinghoff2649 3 жыл бұрын
Drei Patterns, die ich gerne verwende, sind Decorator, Kompositum und natürlich Monaden.
@JoachimDehm
@JoachimDehm 3 жыл бұрын
Visitor findet ich sehr wichtig
@DavidTielke
@DavidTielke 3 жыл бұрын
Hallo Joachim, ja, absolut! Allerdings verwende ich das nicht häufig genug :) Gruß David
@andreasdanek2561
@andreasdanek2561 3 жыл бұрын
Chain of Responsibility Mediator Command
@Kanaler
@Kanaler 3 жыл бұрын
Meine sind 1. Singleton 2. Factory 3. Facade
@DavidTielke
@DavidTielke 3 жыл бұрын
Danke Steffen!
@francisj.hunter1843
@francisj.hunter1843 3 жыл бұрын
Ich beschäftige mich nur Hobbymäßig mit Programmieren. Mir wurde gesagt ich sollte mich mit den "DesignPatterns" beschäftigen. Ich bin Anfänger, also sollte ich mich lieber vorher mit der Programmierung selber beschäftigen? Jedenfalls hört sich das im Video so an? MFG
@DavidTielke
@DavidTielke 3 жыл бұрын
Hallo Francis, ja das solltest Du definitiv. Ohne Erfahrung in den Bereich werden die Design Patterns nicht viel bringen. Gruß David
@francisj.hunter1843
@francisj.hunter1843 3 жыл бұрын
@@DavidTielke Ist wahrscheinlich dann auch der Grund wieso ich absolut keine Ahnung habe was mir dieses Buch vermitteln will. Okay dann werde ich es mal hinten einreihen und nur manchmal nen Blick reinwerfen :D
@DavidTielke
@DavidTielke 3 жыл бұрын
Vermutlich ja, bevor du frustriert bist und den Spaß verlierst, ist das besser so. Du wirst schon noch dazu kommen :)
@yutubl
@yutubl Жыл бұрын
Tipp: anschauliches Einsteigerbuch "Entwurfsmuster von Kopf bis Fuss" mit Java Beispielcode aber verständlich ich konnte es auch für C# gebrauchen. C++ sollte man wirklich gut können oder gleich zum C++Entwurfsmuster Klassiker der Gang of Four (GoF) greifen.
@Marco_M84
@Marco_M84 3 жыл бұрын
Top 3 ist schwer, hier die mir gerade als erstes aus unseren Produkten einfallen: 1. Adapter für Fremdkomponenten 2. Factory für Initiale Strukturen 3. Facade für komplexe Bereiche #FragDavid: Singleton wird bei uns auch verwendet, es wird aber auch von vielen als Antipattern gesehen. Wie ist deine Meinung hierzu? #FragDavid: Bist du der Meinung man sollte bei der Klasse den Namen des Patterns immer mit aufführen? z.B. LogXYZAdapter, PersonFactory, ThemaXYFacade? Also Facade habe ich noch nie in den Namen geschrieben Adapter/Factory aber immer. :-) -> Da sind wir wieder bei Codierrichtlinien
3 жыл бұрын
observer, factory, decorator
@DavidTielke
@DavidTielke 3 жыл бұрын
Danke László :)
@tubewatcher77
@tubewatcher77 3 жыл бұрын
Ich kenne nur drei: MVC, Strategy und Observer-Pattern.
@DavidTielke
@DavidTielke 3 жыл бұрын
Danke :)
@yutubl
@yutubl Жыл бұрын
Und in diesem Video wurden Dir noch mal 3 lohnenswerte gezeigt.
@rene7952
@rene7952 2 жыл бұрын
Schon mal als Synchronsprecher gearbeitet? Könnte ich mir gut vorstellen.
@DavidTielke
@DavidTielke 2 жыл бұрын
Hallo René, noch nicht, könnte ich aber mal in Erwägung ziehen ;) Gruß David
@elonado
@elonado Жыл бұрын
Methoden und Klassen gehören doch eigentlich sowohl zu Struktur als auch Quellcode.
@simplemanideas4719
@simplemanideas4719 7 ай бұрын
Kein Daumen hoch. Bin Singleton Antimaximalist. Lol!!
@tomatentheo6316
@tomatentheo6316 2 жыл бұрын
Jein. Ein Muster ist eine "Skizze" oder "Schablone" und stellt noch keine Lösung dar.
@DavidTielke
@DavidTielke 2 жыл бұрын
Hallo theo, jain, es ist sowohl eine Skizze, als auch eine Schablone und auch eine Lösung. Die Frage ist immer wofür es die Lösung ist - in dem Video geht es ja darum, dass es eine Lösung ist wenn du ein Problem bei Deinem Klassendesign lösen möchtest. Wennn dort beispielsweise das Problem ist, dann ein Objekt nur ein mal im Speicher existieren darf, ist das Singleton nicht nur eine Skizze, eine Schablone sondern in dem Kontext auch die Lösung. So war das gemeint :) Gruß David
@michaelhahn4778
@michaelhahn4778 3 жыл бұрын
Meine top 3 sind: Singleton, Observer und Facade.
@DavidTielke
@DavidTielke 3 жыл бұрын
Observer wäre bei das Design Pattern auf Platz 4 gewesen :)
Agile Softwareentwicklung
30:37
David Tielke
Рет қаралды 9 М.
10 Design Patterns Explained in 10 Minutes
11:04
Fireship
Рет қаралды 2,2 МЛН
Vivaan  Tanya once again pranked Papa 🤣😇🤣
00:10
seema lamba
Рет қаралды 20 МЛН
The day of the sea 🌊 🤣❤️ #demariki
00:22
Demariki
Рет қаралды 84 МЛН
Increíble final 😱
00:37
Juan De Dios Pantoja 2
Рет қаралды 106 МЛН
Was sind DI Container?
51:31
David Tielke
Рет қаралды 10 М.
Das PROBLEM bei älteren Softwareentwicklern
20:35
David Tielke
Рет қаралды 66 М.
Was ist eine PROGRAMMIERSCHNITTSTELLE? Wie funktioniert eine API? Einfach erklärt
9:06
Informatik mit Prof. Sebastian
Рет қаралды 4,8 М.
3 Design Patterns, die Softwareentwickler kennen sollten
9:13
Kevin Chromik
Рет қаралды 8 М.
Design-Patterns? Bloß nicht! // deutsch
17:47
the native web GmbH
Рет қаралды 17 М.
Softwarearchitektur - Komponenten schneiden
42:29
David Tielke
Рет қаралды 7 М.
8 Design Patterns | Prime Reacts
22:10
ThePrimeTime
Рет қаралды 387 М.
WARUM Softwareentwickler inkompetent sind!
10:50
David Tielke
Рет қаралды 13 М.
Design Patterns Revisited in Modern Java by Venkat Subramaniam
51:30
Softwarearchitektur mit Komponenten
46:55
David Tielke
Рет қаралды 14 М.
APPLE совершила РЕВОЛЮЦИЮ!
0:39
ÉЖИ АКСЁНОВ
Рет қаралды 4 МЛН
Hisense Official Flagship Store Hisense is the champion What is going on?
0:11
Special Effects Funny 44
Рет қаралды 2 МЛН
Собери ПК и Получи 10,000₽
1:00
build monsters
Рет қаралды 1,4 МЛН
CY Superb Earphone 👌 For Smartphone Handset
0:42
Tech Official
Рет қаралды 823 М.
ПОКУПКА ТЕЛЕФОНА С АВИТО?🤭
1:00
Корнеич
Рет қаралды 3,2 МЛН