Design Patterns: Die Basis für Clean Coding!

  Рет қаралды 1,145

Memory Leek

Memory Leek

Күн бұрын

In diesem Video erfährst du, wie du deinen Code effizient strukturieren kannst, indem du bewährte Design Patterns anwendest. Design Patterns bieten Lösungen für wiederkehrende Probleme in der Softwareentwicklung und helfen dir dabei, sauberen und wartbaren Code zu schreiben. Dieses Video ist der Start einer Videoreihe zu Design Patterns, in der du Schritt für Schritt alle wichtigen Patterns kennenlernen wirst. Egal ob du Anfänger oder erfahrener Entwickler bist, in dieser Serie erhältst du wertvolle Tipps und praktische Beispiele, um deine Programmierfähigkeiten zu verbessern. Abonniere unseren Kanal und hinterlasse einen Kommentar, wenn du Fragen hast oder mehr über ein bestimmtes Design Pattern erfahren möchtest.
──────────────────────────────────────
► Folge uns
Instagram: / memoryleekde
TikTok: / memoryleekde
Twitter: / memoryleekde
LinkedIn: / memoryleekde
──────────────────────────────────────
► Studieren in Remagen
🧑‍🎓 www.hs-koblenz.de/mathematik-...
──────────────────────────────────────
► Kapitel
0:00 Intro
0:47 Ursprung
2:27 Kategorien
4:59 Wann einsetzen und wann nicht?
──────────────────────────────────────
► Kontakt
kontakt@memoryleek.de

Пікірлер: 31
@martapfahl940
@martapfahl940 26 күн бұрын
Krass, gerade deinen Kanal entdeckt und der ist ja noch total jung und trotzdem schon so professionell. Freue mich wahnsinnig auf die Design Patterns Reihe.
@jaydi6223
@jaydi6223 23 күн бұрын
Kommt jetzt jeden Freitag ein neues Video? Finde das ganze sehr professionell und in einer sehr angenehmen Tonlage vorgetragen. Man kann dir gut zuhören
@MemoryLeekDE
@MemoryLeekDE 23 күн бұрын
Ja, jeden Freitag ein Video, wir allerdings sehen, wie wir weitere Serien unterbringen.
@EliasX962
@EliasX962 28 күн бұрын
Tolles Video! Freu mich schon !
@user-jw7dm8hz9u
@user-jw7dm8hz9u 29 күн бұрын
Jo Softwarearchitekturen wären interessant, vor allem in Kombination mit Infrastructure as a Code. Wie man z.B. Python Fabrics, Ansible, etc. mit evt. gängigen Softwarearchitekturen verheiraten könnte, damit Admins/DevOps leichtere Möglichkeiten zum deployment haben.
@sebstianfuhr1559
@sebstianfuhr1559 27 күн бұрын
Ich würde mich über ein Video über die Architecture-Pattern freuen. Für mich als Hobbyentwickler wäre das sicher sehr nützliches Wissen. Ich freue mich schon auf die Design-Pattern Videos, bisher kam ich mit MVP, MVC und MVVM aus. Habe mich kaum mit anderen Pattern beschäftigt, hoffe das noch was dabei sein wird was bei mir noch bessere Struktur in die Projekte reinbringen kann.
@MemoryLeekDE
@MemoryLeekDE 27 күн бұрын
Wir werden liefern :)
@MichaelSchuerig
@MichaelSchuerig 18 күн бұрын
Ein üblicher Fehler ist es, Design Patterns auf das darin möglicherweise enthaltene Klassendiagramm zu reduzieren. Dieses Diagramm repräsentiert selbst im besten Fall nur _eine_ Lösung, die man aber nur verstehen kann, wenn man das Problem versteht. Der echte Wert eines Design Patterns besteht darin, dass es ein übliches Problem beschreibt und die relevanten Einflussfaktoren explizit macht. Diese Faktoren müssen abgewogen werden und je nach Gewichtung können dann durchaus unterschiedliche Lösungen als geeignet heraus kommen. Das kann dann beispielsweise dazu führen, dass man eine Subject-Observer-Beziehung verwendet, um Codeteile zu entkoppeln. Das kann aber ebenso dazu führen, dass man entscheidet, dass diese Kopplung nicht so schlimm ist und der Aufwand für den Observer sich nicht lohnt.
@SyntaxSculptor-tn4gs
@SyntaxSculptor-tn4gs 26 күн бұрын
Klasse Video! An einem Video über Architekturmuster wäre ich durchaus interessiert. In der Vorlesung wurde mir nicht ganz klar, wo man die Grenze, zwischen Design- und Architekturpatterns, zieht. Bei den Design-Patterns habe ich bisher nur MVC, Observer und Singelton verwendet. Bei MVC würde mich allerdings mal interessieren, warum es ein Design Pattern und nicht auch ein Architekturpattern ist. z.B. würde ich eine Website mit dem MVC aufbauen, was aus meinem Denken, dann auch eine Architekturpattern sein muss, da ja die Software nach Model, View und Controller aufgebaut wurde. Gibt dann ja quasi die Architektur des Systems vor, an die man sich halten soll.
@MemoryLeekDE
@MemoryLeekDE 23 күн бұрын
Wir sind dran, ein wenig wird es aber schon dauern, weil wir erstmal bei 1 Video / Woche bleiben.
@u8array
@u8array 26 күн бұрын
Eure Videos haben ein hervorragendes Format! Die Design Pattern der GoF, sind generell eher für das Objekt orientierte Paradigma ausgelegt sind. Im funktionalen Paradigma halten wir uns relativ stark an die Idiome, was auch zu clean code führen kann. Das einzige Problem ist meistens nur, dass viele mit dem Konzept nicht vertraut sind. Vielleicht könnt ihr im Anschluss der Design-Patterns-Serie auch auf FP genauer eingehen?
@MemoryLeekDE
@MemoryLeekDE 23 күн бұрын
Ich selbst hab nie professionell mit funktionaler Programmierung gearbeitet, weil es nie eine Anforderung von Unternehmen war. Aber ich sprech mit meinem Kollegen, der darin Experte ist. Vielleicht machen wir dann mal eine eigene Serie zu FP.
@harisimer
@harisimer 7 күн бұрын
@@MemoryLeekDE Wie wäre es generell erstmal die verschiedenen Programmierparadigmen vorzustellen? Ich kann wohl einigermaßen den Unterschied von deklarativen zu imperativem Code verstehen, aber der Unterschied zwischen funktional und objektorientiert, da wirds echt schwammig, wenn man ehrlich ist. Der Rückgabewert einer Funktion ist letzten Endes ein Objekt. Und ein Objekt besteht widerum aus Funktionen
@MemoryLeekDE
@MemoryLeekDE 3 күн бұрын
Auf jedenfall ein sehr guter Gedanke. Ist notiert ... allerdings war es schon auf der Liste, wenn ich ehrlich bin. Es kommt alles nach und nach, ich würde gerne mehr Zeit investieren können und so schneller Content aufbauen, aber die Regelmäßigkeit sollte gegeben sein. Zu deiner Frage: Das Funktionale Paradigma funktioniert komplett anders und hat nur bedingt etwas mit den Funktionen/Methoden in der Objektorientierung zu tun. Die Denkweise ist komplett anders. Es geht sehr viel darum, welche Zustände veränderbar sind und welche nicht. Um genau zu sein, sollte der Zustand in der Funktionalen Programmierung nicht verändert werden bzw. KANN nicht verändert werden. Es gibt meiner Meinung nach nicht genug Entwickler, welche Funktional Programmieren können (Funktional denken können). Daher glaube ich tut es den meisten Entwicklern gut, sich damit zu beschäftigem das verbessert die eigenen Skills (genau wie Design Patterns diese Denkskills verbessern). In der Entwicklung halte ich es aus Arbeitsmarkterwägungen oft für nicht gut einsetzbar. Ein Henne-Ei-Problem ...
@MemoryLeekDE
@MemoryLeekDE 3 күн бұрын
Auch wenn es so wirkt, sind wir ja übrigens auch kein "reiner Programmierchanel", sondern ein MINT Channel. Bald kommen Serien zu Mathematik und Physik. Ich hoffe alles bleibt spannend :)
@Ven0mm04
@Ven0mm04 29 күн бұрын
Habe bisher noch nichts von "Design Patterns" gehört aber klingt nice und vielleicht macht es das coden leichter, bin gespannt :D
@MemoryLeekDE
@MemoryLeekDE 29 күн бұрын
Auf jedenfall. Wenn man einmal alle kennt, dann hat man sehr viele Aha-Erlebnisse in Bibliotheken, die man sich importiert. "So haben die das also implementiert ..."
@pinkeHelga
@pinkeHelga 14 күн бұрын
Der häufige Fehler ist nur, daß man mit Kenntnis der Entwurfsmuster nur noch in diesen Mustern denkt. Oft sind ganze Teams darauf fixiert. Unbestritten ist es gut, sich mit den Mustern auseinanderzusetzen, um eine Idee zu bekommen, wie man etwas umsetzen _könnte_ und welche Vor- und Nachteile daraus resultieren. Noch wichtiger finde ich die Anti-Patterns. Da sollte man sich mit der Diskussion auseinandersetzen, wieso die sich als problematisch erwiesen haben. Viele der Anti-Patterns galten einmal als tolle Designpatterns. Ich persönlich würde z.B. das Singleton zu den Antipatterns zählen - wird leider immer noch als super Designpattern gehandelt. Entwurfsmuster sollte man auch immer in Hinblick auf die Sprache beurteilen. In modernen dynamischen Skripten sind sehr viele Designpattern hinfällig und unnötiger Overhead - sowohl in der Entwicklung als auch zur Laufzeit.
@samuelorth7307
@samuelorth7307 28 күн бұрын
Sehr schönes Video, steht dem Thumbnail in nichts nach.
@hrtmtbrng5968
@hrtmtbrng5968 22 күн бұрын
Meiner Meinung nach dienen Design-Pattern nur dazu, Schwächen der verwendeten Programmiersprache oder prinzipielle Probleme in der OOP zu umschiffen. Beispiele: Wenn die verwendete Programmiersprache keine Multimethoden unterstützt, ist man gezwungen, das Visitor-Pattern zu verwenden. Wenn die verwendete Programmiersprache nicht auf Werten dispatchen kann, ist man gezwungen, das Strategie-Pattern zu verwenden. Wenn die verwendete Programmiersprache nur auf Objekten dispatchen kann, obwohl man keine Objekte hat, ist man gezwungen, das Fliegengewicht-Pattern zu verwenden.
@pinkeHelga
@pinkeHelga 14 күн бұрын
Nach Jahrzehnten OOP hinterfrage ich sogar das Konzept insgesamt. Erst einmal mußte ich beim Einstieg in OOP feststellen, daß es nichts Neues unter der Sonne war. Verbundvariablen (records) gab es schon in Turbo Pascal. Die hat man an eine Funktion übergeben. Nun kam Syntax-Sugar hinzu, daß man die Funktion (Methode) direkt ans Objekt klemmen konnte. Neu waren nur die Zugriffsmodifikatoren. Tolle Sache, man konnte beim Entwurf festlegen, welche Methoden und Eigenschaften als Schnittstelle gelten. Außerdem ersparte einem die Vererbung einiges an Tipparbeit. Mittlerweile gilt Vererbung im Sinne der Kopplung ja schon wieder als ganz ganz böse. Mit der Zeit stellt man aber fest, daß die Zugriffsmodifikatoren eine Selbstbeschränkung sind, die im späteren Projektverlauf häufig zu riesigen Workarounds und Abstraktionen führen. Da frage ich mich oft: Wäre es nicht sinnvoller, Klassen zu dokumentieren und sich möglichst an die gedachten Schnittstellen zu halten. Manchmal tritt dann der Fall auf, wo vielleicht doch mal ein Eingriff in die Mechanik ein Problem ganz simpel lösen könnte. Auch solche "Mißbräuche" müssen dann dokumentiert werden. (Beim guten alten abgesoffenen Vergaser steckte man einen Schraubenzieher in die Kaltstartklappe, und der Wagen sprang an. War so nicht vorgesehen, aber funktionierte.) Ich bin der Meinung, man könnte auch "schmutzig" einigermaßen wartbaren, zukunftsträchtigen Code schreiben, und das oft viel schneller und auch laufzeitperformanter. Diese ganze Selbstbeschränkung und Schutz vor dem Team sehe ich heute sehr ambivalent. Eigentlich ist es Ausdruck von wenig Vertrauen in die Kompetenz. Ich stelle mir manchmal vor, ein hochintelligenter Außerirdischer sieht sich den Code an. Er würde auch verworrenen Spaghetticode schnell überblicken und wahrscheinlich sogar so programmieren, weil es für ihn ein triviales Problem ist. Dann sieht er Unmengen an "strukturierendem" Code, der keinerlei Funktion hat.
@g2h5j3
@g2h5j3 29 күн бұрын
Man hört ja immer wieder mach das besser so oder mach das nicht so, aber den Begriff "Design Pattern" höre ich zum ersten mal. Grade Anti-Patterns sind mir dann anscheinend schon öfters auf YouTunbe präsentiert worden. Bin gespannt!
@MemoryLeekDE
@MemoryLeekDE 29 күн бұрын
Ich freu mich, dass du mit an Bord bist!
@RonnieTreibholz
@RonnieTreibholz 29 күн бұрын
War Erich Gamma nicht auch der, der mit Kent Beck zusammen JUnit gemacht hatte? Basierend auf SUnit? :D Design Pattern sind können schon praktisch sein, ich meine … wie oft verwendet ihr einen Iterator? :D Mir hatte mal jemand gesagt, dass dieses berühmte Buch leicht auf einem Architekturbuch basieren würde. Solche grundlegenden Dinge wie mache einen Lichtschalter immer neben die Tür. Fenster sollten sich nach draußen öffnen und so weiter. Dass man sozusagen dasselbe für Software haben wollte. Ist halt wie mit vielen Dingen, manchmal können Pattern einen auch mega einschränken, aber in 80 % der Fälle ist es gut sich daranzuhalten.
@MemoryLeekDE
@MemoryLeekDE 29 күн бұрын
Genau der ist das! Die Großen Denker im Softwarebereich aus dieser Zeit haben oft wirklich großen Impact in vielen Bereichen gehabt. Zeitgenössische Denker sind offensichtlich immer schwerer einzuschätzen!
@RonnieTreibholz
@RonnieTreibholz 29 күн бұрын
@@MemoryLeekDE Haha ja :D Gefühlt habe ich in meiner Thesis immer wieder nur die Namen, Kent Beck, Uncle Bob, Erich Gamma etc. gelesen. Es ist auch echt interessant, wie "klein" die Szene dann doch wieder ist.
@pinkeHelga
@pinkeHelga 14 күн бұрын
Ich habe mich oft dabei entdeckt, Iteratoren zu Schleifen umzuschreiben, und die Laufzeit hat sich ganz erheblich verbessert - die Lesbarkeit als Nebeneffekt auch. In der Programmierung bin ich ein Ressourcengeizhals.
@matthias_lang
@matthias_lang 21 күн бұрын
Dachte der Kanal hat sicher über 100 Tsd. Abos
@MemoryLeekDE
@MemoryLeekDE 21 күн бұрын
Wir sind vor 2 Wochen gestartet. Schau in 2 Wochen nochmal ;)
Sieht so die Zukunft in der Medizin aus? MINT-AI Podcast
55:12
Final muy increíble 😱
00:46
Juan De Dios Pantoja 2
Рет қаралды 17 МЛН
PINK STEERING STEERING CAR
00:31
Levsob
Рет қаралды 22 МЛН
Stupid Barry Find Mellstroy in Escape From Prison Challenge
00:29
Garri Creative
Рет қаралды 19 МЛН
Super gymnastics 😍🫣
00:15
Lexa_Merin
Рет қаралды 102 МЛН
Clean Coding: Das verstehen alle falsch!
12:11
Memory Leek
Рет қаралды 12 М.
Welche Programmiersprache soll ich zuerst lernen?
9:09
Programmieren lernen
Рет қаралды 119 М.
Why I Quit the Scrum Alliance
7:58
The Passionate Programmer
Рет қаралды 8 М.
Design Patterns / Entwurfsmuster der Gang of Four - Ein Überblick
24:41
Builder Pattern in C# / Java: Vom Anfänger zum Bau-Meister!
19:39
Rust Functions Are Weird (But Be Glad)
19:52
Logan Smith
Рет қаралды 127 М.
"Clean" Code, Horrible Performance
22:41
Molly Rocket
Рет қаралды 861 М.
My 10 “Clean” Code Principles (Start These Now)
15:12
Conner Ardman
Рет қаралды 145 М.
Iphone or nokia
0:15
rishton vines😇
Рет қаралды 1,8 МЛН
5 НЕЛЕГАЛЬНЫХ гаджетов, за которые вас посадят
0:59
Кибер Андерсон
Рет қаралды 1,6 МЛН
Как работает автопилот на Lixiang L9 Max
0:34
Семен Ефимов
Рет қаралды 18 М.