CLEAN CODE: Wie du IF-ANWEISUNGEN BESSER einsetzt

  Рет қаралды 38,697

Florian Dalwigk

Florian Dalwigk

Күн бұрын

Пікірлер
@markushuber512
@markushuber512 5 жыл бұрын
Sehr gutes Video! Werd diese Tips auf jeden Fall mal ausprobieren. Bitte mehr zu Clean Codes.
@Florian.Dalwigk
@Florian.Dalwigk 4 жыл бұрын
Ausgezeichnet!
@florian2119
@florian2119 3 жыл бұрын
Bitte mehr zum Thema Clean Code sehr schön veranschaulicht
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
Danke!
@GamingDeutschland
@GamingDeutschland 3 жыл бұрын
Hahaha NEIN FLORIAN
@simonverwaltungsrat5445
@simonverwaltungsrat5445 2 ай бұрын
Super Video! Mir hat es auch sehr geholfen komplexe If Bedingungen in eine eigene Methode auszulagern. So ist der Code automatisch deutlich lesbarer. Weiter so!
@replicant777
@replicant777 3 жыл бұрын
Sehr gutes Video! Interessante Alternative zu den switch-case statements im letzten Beispiel wären übrigens die in Java12 (finalisiert in Java14) neu eingeführten switch expressions: String message = switch (ziffer) { case 0 -> "Null"; case 1 -> "Eins"; case 2 -> "Zwei"; case 3 -> "Drei"; ... } System.out.println(message);
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
Ui, die kannte ich noch gar nicht! Da mache ich vlt mal ein Video zu!
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
Dürfte ich deinen Kommentar dann ggf. im Video zeigen? Ich weiß aber noch nicht, ob und wann ich dazu ein Video mache.
@replicant777
@replicant777 3 жыл бұрын
@@Florian.Dalwigk klar, kein Problem!👍
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
Super! Danke :)
@GradientTim
@GradientTim 3 жыл бұрын
Bei 1:15, würde nicht die .isEmpty() Methode besser passen? Weiß nicht was besser ist, die "null" Überprüfung oder die "isEmpty()" Überprüfung.
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
Geht auch
@TinyTeaKettle
@TinyTeaKettle 3 жыл бұрын
Kannst du denn garantieren, das die Felder denn immer initialisiert sind? Ansonsten fliegt dir .isEmpty() mit einer NullPointerException um die Ohren.
@GradientTim
@GradientTim 3 жыл бұрын
@@TinyTeaKettle Da hast du natürlich recht ja. Bin aber davon ausgegangen, dass die Strings einen Wert haben.
@TinyTeaKettle
@TinyTeaKettle 3 жыл бұрын
@@GradientTim In dem Fall, wovon man selten ausgehen sollte, macht eine Überprüfung auf null sowieso nie Sinn. Das wäre ja dann das gleiche wie ein if(true) bzw. if(false)
@multigladiator384
@multigladiator384 5 жыл бұрын
Ganz genau so wie ab 3:25 ! Dazu gibt es von Brian Kernighan ein Buch "Elements of Programming Style" und eine Vorlesung als Video. In diesem zeigt er mit vielen Beispielen wie man guten Code schreibt und wie nicht. Unter anderem wird da auch genau das behandelt wie hier im Video. kzbin.info/www/bejne/boS4nKWIbL-ZiqM&feature=share
@Florian.Dalwigk
@Florian.Dalwigk 5 жыл бұрын
Danke für die Enpfehlung! Das werde ich mir mal anschauen. :)
@TsoiIzAlive
@TsoiIzAlive 2 жыл бұрын
Kurze Frage zu dem Erklärten Beispiel bei 3:50, müsste man das upload_to_server() nicht in den else teil beim 2. If block einfügen? Weil sonst würde der doch einfach trotzdem uploaden oder?
@danielf.7151
@danielf.7151 2 жыл бұрын
Durch den return Befehl wird die Funktion beendet, egal, was dahinter noch kommt.
@BenjaminBuch
@BenjaminBuch 3 жыл бұрын
Statt Switch-Case kann man in vielen Fällen auch eine Map einsetzen. In vielen Sprachen ist das Switch Case Statement sehr stark beschränkt, da ist ein Map Datentyp eine gute und effiziente Alternative und oft ist es auch übersichtlicher, da man zum Beispiel die breaks einspart. Hängt aber letztlich vom konkreten Anwendungsfall an, was besser ist.
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
Gute Alternative!
@harald4game
@harald4game 6 ай бұрын
Maps sind halt vergleichsweise langsam und vom compiler nicht optimierbar.
@outroddet
@outroddet 3 жыл бұрын
Sehr nices Video! Die Dinge hab ich tatsächlich auch schon bei mir erkannt und verändert!
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
Klasse! Und falls man nicht alles auf Anhieb ändern kann: Lernen ist manchmal ein etwas langwieriger Prozess (vor allem, wenn man bestimmte Coding Hobbits schob seit Anbeginn seiner Karriere hat).
@ueberhaupt.niemand
@ueberhaupt.niemand 3 жыл бұрын
Haha extra gewartet, um den tausendsten Like auf dieses Video zu geben 😏👍 übrigens ein gutes Video
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
Nice, vielen Dank 😎
@svenwaibel7007
@svenwaibel7007 3 жыл бұрын
Ist bei 3:55 die if nicht: if (!file.isMP3() || ! file.isPDF()) Sonst breche ich doch ab, wenn die Datei keine MP3 und keine PDF ist, das geht aber ja nicht, denn sie ist entweder MP3 oder PDF. Oder sitz ich gerade auf dem Schlauch?
@cedrichartz390
@cedrichartz390 3 жыл бұрын
Die if-Anweisung bricht nur ab, wenn die Datei weder mp3 noch pdf ist. Es werden so nur mp3 und pdf Dateien hochgeladen. Das ist also richtig.
@svenwaibel7007
@svenwaibel7007 3 жыл бұрын
@@cedrichartz390 Hast natürlich Recht, ich war gestern echt umnachtet. Heute angeschaut und mich über meinen eigenen Kommentar gewundert :)
@bluekernel2448
@bluekernel2448 5 жыл бұрын
Hi, ich wollte dich informieren dass ich immer noch deine nicen Vids schaue, vor kurzem hies ich auf ytb noch irgendwas mit esport oder so... auf jeden fall habe ich jetzt einen geilen club gefunden und lerne jetzt richtig programmieren ((((((((:::::::::::::....
@Florian.Dalwigk
@Florian.Dalwigk 5 жыл бұрын
Es freut mich, dass du noch an Bord bist :) Sehr schön! Was lernst du dort für eine Programmiersprache?
@IAmFeO2x
@IAmFeO2x 3 жыл бұрын
Gutes Video! Das Ganze ist übrigens allgemein unter dem Namen "Guard Clauses" bekannt, zuerst veröffentlicht von Martin Fowler: refactoring.com/catalog/replaceNestedConditionalWithGuardClauses.html
@lollo4711
@lollo4711 4 жыл бұрын
@3:23 - Ich bin auch ein Fan von Short-Circuit exits (return) geworden. Unter VB6 hat man immer am Ende einer Function den Return-Value gesetzt (weil die syntax eine Zuweisung über den Function-Name wollte) - oder man hat einen Default-Wert am Anfang der Function gesetzt, dann konnte man auch mit EXIT FUNCTION raus. Daher neige ich immer noch dazu, Short-Circuit RETURNs im CODE mit Kommentar dahinter zu kennzeichnen ; )
@Florian.Dalwigk
@Florian.Dalwigk 4 жыл бұрын
Hihi :)
@Ciddyism
@Ciddyism 3 жыл бұрын
Sehr schön. Sehr richtig. Den allseits beliebten Ternary "return x ? true : false;" (statt "return x;") hast du zwar nur indirekt (in if-Form) angesprochen, aber egal. Dass "return Ausdruck;" schneller sein kann als als "if (Ausdruck) return true else return false;" hast du verschwiegen, aber das ist inzwischen ja fast egal - solange der Compiler den Nutzer unterstützt und das nachoptimiert, um Lücken in der Pipeline zu vermeiden. Durch Java hast du wahrscheinlich den Missbrauch von switches vermieden. Ich hatte da neulich ein Gespräch mit nem Neuling über ungefähr sowas: switch (true) { case v == "a": .... break; case t == 1: ... break; }
@Bynx44
@Bynx44 3 жыл бұрын
Mehr clean code Videos wären super!! :D
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
Ich überlege mir, ob ich da wirklich noch ein paar Teile zu drehe :)
@andik70
@andik70 3 жыл бұрын
irgendwie finde ich den Code bei 2:00 klarer als z.B. 2:19 zu lesen.
@barkeeper7887
@barkeeper7887 4 жыл бұрын
Stimmbruch ist on fleek
@Florian.Dalwigk
@Florian.Dalwigk 4 жыл бұрын
Da sollte ich eigentlich schon längst draußen sein :D
@barkeeper7887
@barkeeper7887 4 жыл бұрын
@@Florian.Dalwigk xD
@jakobseitz1176
@jakobseitz1176 3 жыл бұрын
Meiner Meinung fehlt da noch ein ganz wichtiger Tipp, oft lässt sich ein Switch-Case (egal ob als If oder Switch-Case geschrieben) mit eine Generalisierung (Vererbung) vermeiden Ist meiner Erfahrung nach meistens die bessere Wahl
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
Hättest du da mal ein konkretes Beispiel?
@DonDerBalken
@DonDerBalken 3 жыл бұрын
Eine weitere Möglichkeit If-Abfragen zu vermeiden ist zum Beispiel die Verwendung von Sealed Classes mit when. Finde das bei Kotlin extrem cool: kotlinlang.org/docs/sealed-classes.html#try-sealed-interfaces-and-package-wide-hierarchies-of-sealed-classes
@jakobseitz1176
@jakobseitz1176 3 жыл бұрын
@@Florian.Dalwigk Das ist eigentlich immer der Fall wenn man je nach Typ einen anderen Code ausführt. Der Artikel enthält ein ganz gutes Beispiel: refactoring.guru/replace-conditional-with-polymorphism
@RealKugor
@RealKugor 3 жыл бұрын
@@jakobseitz1176 das ist eine coole Webseite
@Holzf43ller
@Holzf43ller 3 жыл бұрын
Moin moin, erstmal geiles Video, dass es unter deutschsprachigen Programmierern sowas wie Clean Code gibt wusste ich gar nicht, das scheint im engischen Raum schon ziemlich "verbreiteterer" zu sein. Dafür schon einmal Kudos. Zu Switch-Case-Anweisungen ist zu beachten, dass diese auch nur einfachere If-Anweisungen sind. Klar kann man das ganze auch Overengineeren, aber ich habe selbst festgestellt, dass nach nen paar Wochen und Monaten einen ein Switch-Case ziemlich in den Arsch beißen kann, vor allem wenn er in einem Modul steckt, welches von woanders benutzt wird. Einfach, wie hier mag das noch gehen, wird aber ziemlich schnell unübersichtlich. Ich schreibe mir dafür dann einfach eine Klasse mit der entsprechenden Klassenfunktion und behandle darin alle Fälle, so muss ich dann nicht alle Switch-Cases durcharbeiten wenn sich etwas ändert. In diesem Fall steht dem natürlich nichts im Weg, aber ich meine hinten raus. Wenn man etwas komplexer geworden ist. MfG
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
Vielen Dank für dein Feedback :)
@mastermuc0
@mastermuc0 3 жыл бұрын
Gibt es noch mehr Clean Code videos? Super erklärt!
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
Ich plane aktuell einen zweiten Teil 😉
@schnasndasn1504
@schnasndasn1504 3 жыл бұрын
Das witzige ist, dass z.T. der Java Code vom Compiler automatisch nach deiner Regel "Error handling first" umgebaut wird. Ist mir letztens aufgefallen, als IDEA eine Klasse einer unserer internen Libraries decompiliert hat.
@xsold
@xsold 3 жыл бұрын
Gut, aber man sollte sich an die Allgemeinen Java conventions halten.
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
Wenn das viele machen, ist es sinnvoll.
@xsold
@xsold 3 жыл бұрын
Stimmt auch wieder. Wenn es niemand macht, dann war diese Vereinbarung völlig umsonst.
@berthold64
@berthold64 3 жыл бұрын
oder Sie können assoziative Maps wie folgt verwenden anstatt switch statement (Bespiel im Lua): local map = { ["A"] = 10, ["B"] = 20, .... }; local input = "Hallo"; local output = map["Hallo"]; if(output == nil) then print("Fehler: ungültige eingabe"); return; end
@minastaros
@minastaros 3 жыл бұрын
Tipp für den letzten Fall: lookup table
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
Guter Tipp!
@michaelbuchholz992
@michaelbuchholz992 3 жыл бұрын
Der letzte Fall ist ja nur stellvertretend für Dinge, die Wirklich einen Switch benötigen - z.B. wenn man keine fortlaufenden Zahlen hat, sondern mal eine 1, eine 2 und die 255... Den gezeigten Fall hätte ich mit einer Liste/Array gelöst. Eine weitere Möglichkeit, wenn man eine vollständige (oder Lückenfreie) Liste hat und anhand derer unterschiedlichen nicht-trivialen Code ausführen möchte, wären Funktionspointer in einer Liste oder anonyme Funktionen - wie auch immer die in den unterschiedlichen Sprachen genannt werden. Ich kann gerade fühlen, wie einige Leute nun zu weinen anfangen, weil eben diese Methoden nicht mehr ganz so leicht zu lesenden Code erzeugen. Aber wenn für Euer Programm folgendes Soran-Zitat aus "Star Trek: Treffen der Generationen" zutrifft "die zeit ist das feuer in dem wir verbrennen", werden Knaben zu Männern und Clean-Code wird zu einem Hindernis, Eure Ziele zu erreichen!
@MiauRizius
@MiauRizius 3 жыл бұрын
Ich habe bisher immer nach dem Motto "Fehlerbehebung hat Vorrang" mit If-Anweisungen gearbeitet. Mein Freund mit dem ich öfter programmiere macht das nicht, das triggerd mich immer xD
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
Das fällt ihm früher oder später auf die Füße.
@AndreasDelleske
@AndreasDelleske 3 жыл бұрын
Ich mach das auch, erst alles prüfen und return / throw. Ich hab fast keine else und fast jedes if hat ein return, ich nutze viel continue und break... Kollegen die das lesen bekommen sofort mit was die Methode nicht macht. Das enttäuscht falsche Erwartungen. Nach meinem Gefühl sind falsche Annahmen die größte Quelle von schwer zu entdeckenden Fehlern.
@julianon161
@julianon161 3 жыл бұрын
Schade, dass es in Python keine switch Funktion gibt :/
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
Das stimmt! Man kann die aber so ähnlich bauen.
@michaelbuchholz992
@michaelbuchholz992 3 жыл бұрын
Gibt es in Perl auch nicht. Hat mich nie gestört. Dafür gibt es in Perl das "elsif", mit dem man switch recht gut ersetzen kann.
@ueliriegg
@ueliriegg 3 жыл бұрын
lässt sich in python ziemlich einfach mit einem dictionary lösen
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
Dazu habe ich übrigens schon ein Video gemacht: kzbin.info/www/bejne/qX2ln3mNobWJpc0
@toolstime5136
@toolstime5136 3 жыл бұрын
Clean code ist ein wichtiger Ansatz. Aber gleichzeitig die Konventionen nicht einzuhalten finde ich dann schon recht unschön. Funktionen schreibt man in camel case und für gewöhnlich in Englisch. Eine Funktion die ein boolean zurück gibt beginnt mit "is". Besser als mit != null zu vergleichen ist den konkreten Typ zu wählen, was in der regel === undefined ist.
@florian2119
@florian2119 3 жыл бұрын
Bei 2:0 Braucht man kein IF man kann das Statment direkt zurück geben
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
Siehe 2:04
@keiichitw
@keiichitw 3 жыл бұрын
Wenn man keine 4 Sekunden warten kann zum Klugscheißen
@RealKugor
@RealKugor 3 жыл бұрын
@@keiichitw hahaha alter du bist der youtube kommentat comedian 😂
@ThomasBensler
@ThomasBensler 3 жыл бұрын
"Schalteranweisung" ... :D . Hatte damals an der Uni einen (ziemlich alten) Prof, der immer "Kellerspeicher" gesagt hat, wenn er stack meinte. Hat ne Weile gebraucht, bis das alle Studis das gerafft hatten ...
@michaelbuchholz992
@michaelbuchholz992 3 жыл бұрын
"Sie sind aus der Programmierung nicht mehr wegzudenken und tauchen an vielen Stellen auf" Ja, Programmierung ist ein wundervolles Abenteuer. Das erinnert mich an die Zeit, als ich auf dem C 64 die Programmiersprache "C" gelernt habe und total stolz darauf war, das Prinzip von Funktionen verstanden zu haben und auch schon verschachtelte Funktionsaufrufe genutzt habe. Da habe ich mir zur Belohnung auch immer Marshmallows geröstet... Ich hab ja bis dahin nur in Assembler programmiert und dort habe ich das, was Compiler und Linker tun, alles selber machen müssen. (wir hatten ja nichts) Ach, was würde ich mir wünschen, würden die zwei ersten Semester Informatik daraus bestehen, einfache Funktionen wie Multiplikation und Division von Zahlen, die nicht in die CPU-Architektur passen, schreiben zu müssen - also z.B. 128 Bit lange Zahlen auf einer 8-Bit Architektur! Man braucht nämlich auch heutzutage noch Kalkulationen mit Zahlen, die länger sind als 64 Bit - Weitaus länger! (RSA, Diffie Hellmann, Myer's Bit-Vector Algorythmus, u.v.a.) Zum Ende des zweiten Semesters müsste die abschließende Prüfung daraus bestehen, die RSA Verschlüsselung oder den Diffie-Hellmann Schlüsselaustausch, den Huffmann- oder Arithmetischen Kompessor für eine Z80 CPU in Assembler zu programmieren. Wer das übersteht, weiß wie Computer funktionieren und nur die sollen weitermachen dürfen! Der Rest kann ja immer noch Chemie, BWL oder Hauswirtschaft studieren... Ich möchte mal ein "Clean Code" Video sehen, daß für PostScript gemacht wurde :-D :-D :-D
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
Das ist eine tolle Idee 😄
@kurt773
@kurt773 3 жыл бұрын
In den 80’ern Basic und Assembler auf C64 war lecker ;) C hätte damals zu sehr gerne gehabt.
@monoflop2937
@monoflop2937 3 жыл бұрын
Dem würde ich so zustimmen ;-)
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
Super :)
@davidadamson1588
@davidadamson1588 Жыл бұрын
Was ich mir eigentlich darunter vorstelle, wenn es um Clean Code und if-Anweisungen geht: if-Anweisungen so weit es geht durch polymorphe Methodenaufrufe ersetzen. Und if-Anweisungen hauptsächlich in Factories benutzen, um zu entscheiden, welche polymorphe Implementierung erzeugt werden soll. Resultat: Komplexe if-Anweisungen verschwinden von ganz allein und verteilen sich auf unterschiedlich ausgeprägte Unterklassen. Zudem wird das Open-Closed-Prinzip gefördert 🔥 (vgl. Martin, 2009: Clean Code, S. 299)
@Florian.Dalwigk
@Florian.Dalwigk Жыл бұрын
👍
@lebusiness2847
@lebusiness2847 3 жыл бұрын
Statt dem Schalterblock wäre in dem Fall ein Dictionary sauberer gewesen und dann einfach print(dict[ziffer])
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
Hätte man auch machen können
@tomte2283
@tomte2283 3 жыл бұрын
4:24 Python gerade: 👁️💧👄💧👁️
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
:D
@jensspahn2511
@jensspahn2511 4 жыл бұрын
4:05 lol^^ nur schwarzer bildschirm
@Florian.Dalwigk
@Florian.Dalwigk 4 жыл бұрын
? 😅
@Florian.Dalwigk
@Florian.Dalwigk 4 жыл бұрын
Ja mei 😅
@jensspahn2511
@jensspahn2511 4 жыл бұрын
@@Florian.Dalwigk alles gut : ) deine videos sind sehr gut und hochwertig man lernt echt was Eine Frage hast du dieses eine Hacker Mythen Cybersicherheit wegen den ganzen anderen Vorfaellen runtergenommen?
@Florian.Dalwigk
@Florian.Dalwigk 4 жыл бұрын
Ja, leider. Ich werde das Video aber nochmal YT freundlich aufnehmen und hochladen ;)
@entjic5408
@entjic5408 3 жыл бұрын
Hey, schönes Video c: Wer sich damit ausführlicher beschäftigen will dem kann ich „Clean Code“ von Robert C. Martins empfehlen
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
Diese Empfehlung empfehle ich ebenfalls 😉
@saecula2391
@saecula2391 Жыл бұрын
sehr schönes Video .. meist kommen die Anforderungen im echten Entwickler-Leben aber zeitversetzt, dh. man hat eine if-Anweisung und muß weitere voneinander abhängige Bedingungen einbauen ohne dabei bestehenden funktionieren Code zu gefährden (da auch niemand da ist der die Änderungen am Ende testet *g) .. dh. man geht auf Nummer sicher (und nicht nach Schönheit des Codes) um den Produktiv-Betrieb nicht zu gefährden ... dann entsteht zwangsläufig "historisch gewachsener verschachtelter" Code .. den man aber nach 3-4 Jahren noch lesen kann wenn wenn man sich ein paar Kommentare dazu schreibt
@Florian.Dalwigk
@Florian.Dalwigk Жыл бұрын
👍
@marcusreinicke
@marcusreinicke 3 жыл бұрын
Tolles Video, aber mit dem Switch bin ich nicht einverstanden. In Clean Code sollte man auf Switch cases verzichten. Switch cases machen den den Code u.u. extrem unlesbar. Zusätzlich widersprechen sie, dem Prinzip, dass jede Methode nur eine Aufgabe haben darf. Mein Tipp Switch cases durch Dictionary ablösen. Wesentlich sauberer und verständlicher. Vor allem wenn man durch Schnittstellen entkoppelt.
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
Da hat Python alles richtig gemacht. Hier gibt es NUR Dictionaries und keine Switch Cases.
@berndeckenfels
@berndeckenfels 3 жыл бұрын
Man sollte noch erwähne dass lokale result Variablen die in diesem verschachtelten branches gesetzt werden (oder initial null wenn kein Fall zutrifft) das ganze noch verschlimmern und öfters mal zu null Rückgabe und dann nullpointerexceötkons. Führen. We nn man auf null Rückgaben nicht verzichten will, dann wenigstens in allen guards explizit „return null;“ schreiben, und nicht „Objekt result = null; if(guard()) return result;} In den Fall hilft es auch Variablen generell nicht auf null zu initialisieren wen man davon ausgeht alle Fälle in if/else abzudecken.
@__-kd8oz
@__-kd8oz 3 жыл бұрын
Guten Tag
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
Hi
@michelbruns
@michelbruns 3 жыл бұрын
Wenn man if{ } Benutzt und nicht If { }
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
Ich sehe es genau anders herum!
@TinyTeaKettle
@TinyTeaKettle 3 жыл бұрын
Und letztendlich gilt doch im Normalfall: Es ist das richtig, was die Firma vorgibt. Stichwort Styleguides.
@jhonnatanwalyston6645
@jhonnatanwalyston6645 3 жыл бұрын
Why was thia recommended to me? I don't speak german
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
I don't know. YT algorithm is an enigma.
@Tabaskuh
@Tabaskuh 3 жыл бұрын
Einfach kein if/else benutzen, dann hat man die Probleme nicht. Ja, etwas provokant, aber meistens geht es auch ohne (-:
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
Hehe ... ja, man kann wirklich oft darauf verzichten.
@Tekay37
@Tekay37 3 жыл бұрын
Gar nicht provokant, sondern genau richtig. In meinem Job tue ich genau das: ich versuche, if so oft es geht zu vermeiden und else benutze ich nie. Sehr viele if(-else) Anweisungen existieren nur, weil der Programmierer keine neue Klasse erstellen wollte, obwohl das die bessere Option gewesen wäre. Es gibt dazu hier auf YT einen weunderbaren Vortrag von Sandi Metz ("all the little things"), in der sie das "Gilded Rose" Kata bespricht. Amfang des Vortrages steht eine if-else-Hölle, die keiner mehr durchblickt, am Ende stehen viele kleine Objekte und leicht verständlicher code, der sich einfach um neue Funktionalität erweitern lässt.
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
Poste gerne mal den Beitrag.
@Tekay37
@Tekay37 3 жыл бұрын
@@Florian.Dalwigk Der hier ist es: kzbin.info/www/bejne/bpO9mWiCgsaGo6c "Nothing is something" geht in bisschen in die gleiche Richtung (gegen if/else), behandelt aber einen anderen Fall, der für viele if/else im code sorgen kann: kzbin.info/www/bejne/hX6zl3iOftGHjKc
@Tabaskuh
@Tabaskuh 3 жыл бұрын
@@Tekay37 Das ist schon richtig, aber ohne if geht es halt leider nicht. Deshalb mein "provokant" (-:
@uzuark7221
@uzuark7221 3 жыл бұрын
Instagram ist nice
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
Joaaaa
@marcotroster8247
@marcotroster8247 2 жыл бұрын
Ein weiterer Tipp: Wenn man sicherstellen kann, dass die Funktion immer mit validen Argumenten aufgerufen wird, kann man die Fehlerbehandlung weglassen 😉 Hört sich erstmal super banal an, aber die die mehr Erfahrung haben, wissen wovon ich rede 😂 Log-and-Throw Pattern at it's best 🙃
@Florian.Dalwigk
@Florian.Dalwigk 2 жыл бұрын
👍
@Pnunkll
@Pnunkll 3 жыл бұрын
@Simplicity4711
@Simplicity4711 3 жыл бұрын
Eigentlich ganz gutes Video. Aber Switch Case würde ich keinem mehr empfehlen. Das ist ein Relikt, das es zu vermeiden gilt (gerade das unschöne explizite break; welches erforderlich ist und der implizite Fallthrough macht switch case ziemlich hässlich). Besser auf ein Mapping zurückgreifen.
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
Gute Hinweis!
@hansdietrich83
@hansdietrich83 3 жыл бұрын
"If anwesungen sind aus der Programmierung nicht mehr wegzudenken" ich glaub mein Hirn schimmelt. If Anweisung sind die Definition von Digitaltechnik. Jeder transistor ist eine if Anweisung. Programme funktionieren nur wegen if Anwesungen. Ohne conditional jump ist eine maschiene nicht Turing komplett. Du hättest diesen Satz über jedes Andere feature sagen können, nur nicht über if Anweisungen...
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
Und wo ist jetzt das Problem, dass man überall if-Abweisungen braucht?
@hansdietrich83
@hansdietrich83 3 жыл бұрын
@@Florian.Dalwigk der ganze Satz macht keinen Sinn. "Zinken sind von modernen Gabeln nicht mehr wegzudenken" macht auch keinen sinn...
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
Ok, wenn du das so siehst.
@okdoomer620
@okdoomer620 3 жыл бұрын
@@hansdietrich83 Naja, ganz so ists auch nicht, man kann Verzweigungen auch per switch case umsetzen, wie im Video gezeigt, per pattern matching oder if expressions, ternärem operator usw... chill mal
@keiichitw
@keiichitw 3 жыл бұрын
Beispiel Kommentar um Leuten zu zeigen, was man unter ,,Deutsch“ versteht. Einfach ein Stock im Arsch zu haben ^^
@Mabowle
@Mabowle 4 жыл бұрын
Das letzte Beispiel gehört auf jeden Fall mit einer Mapping-Tabelle (z.B. assoziatives Array, dictionary) gemacht, bitte weder if noch switch für sowas...
@Florian.Dalwigk
@Florian.Dalwigk 4 жыл бұрын
Kann man machen ...
@Mantikor333
@Mantikor333 3 жыл бұрын
Leider wird (bei uns zumindest) auch heute noch auf der MISRA Regel "Nur ein return statement am Ende einer jeden Funktion" herumgeritten. Ich kann den Sinn dieser veralteteten Regel in der heutigen Zeit einfach nicht mehr erkennen und bin ebenso deiner Meinung, dass der Code so besser zu lesen ist. Selbst mit einer lokalen Variable für einen return code entstehen redundante Codezeilen die für den Betrachter unnötig sind.
@Florian.Dalwigk
@Florian.Dalwigk 3 жыл бұрын
Ja, diese Regel sorgt nicht selten dafür, dass man unsinnige Workaround drumherum bauen muss.
Arrays in Java implementieren | Algorithmen und Datenstrukturen
5:21
Florian Dalwigk
Рет қаралды 9 М.
Anti-Patterns: Wie du SCHLECHTEN Code schreibst!
9:33
Florian Dalwigk
Рет қаралды 44 М.
Enceinte et en Bazard: Les Chroniques du Nettoyage ! 🚽✨
00:21
Two More French
Рет қаралды 42 МЛН
Junior Vs Senior Code - How To Write Better Code
22:13
Web Dev Simplified
Рет қаралды 1,1 МЛН
"Stop Using if else if else In Your Code!" | Code Cop #005
7:56
Nick Chapsas
Рет қаралды 73 М.
SO erzeugst du JEDE Datei aus einer anderen Datei | #Python
9:26
Florian Dalwigk
Рет қаралды 22 М.
Niemals Null zurückgeben - Clean Code Tipps #1
5:39
David Tielke
Рет қаралды 11 М.
ALLE Python Keywords in EINEM Video erklärt | #Python
14:06
Florian Dalwigk
Рет қаралды 62 М.
The 3 Laws of Writing Readable Code
5:28
Kantan Coding
Рет қаралды 783 М.
Clean Code Teil 2: Die SOLID Design Prinzipien
26:22
Programmieren Starten
Рет қаралды 20 М.
Das DHCP-Protokoll | #Netzwerktechnik
4:08
Florian Dalwigk
Рет қаралды 75 М.
Enceinte et en Bazard: Les Chroniques du Nettoyage ! 🚽✨
00:21
Two More French
Рет қаралды 42 МЛН