Latest / Coding Buddies | Tech & Dev-Mindset / Simpler Code == Besserer Code? Das KISS Prinzip
Transcript
- 0:00Stell dir mal vor, du machst so das Watte Abi oder deine
- 0:02Abschlussprüfung allgemein und kommst mit so einem
- 0:04Rechenschieber an. Also.
- 0:06Entweder so n absolutes. Genie.
- 0:07Ist find ich wahnsinnig. Wahnsinnig genau.
- 0:10Ah, verdammt noch mal von vorne alles zurückgeschoben.
- 0:12Coding Boys Deinem Podcast rund um Softwareentwicklung und
- 0:16aktueller Technews. Herzlich Willkommen.
- 0:30Halli Hallo und herzlich Willkommen zur neuen Folge vom
- 0:34Coding Buddies Podcast. Es gibt mal wieder ne neue Folge
- 0:38und dafür brauchen wir alle hier beisammen und zwar dich, liebe
- 0:42Zuhörerin, lieber Zuhörer und mich, ich bin da und jetzt
- 0:45gucken wir einmal. Tino, bist du auch am Start?
- 0:48Ich bin auch am Start. Moin Moin Fabi, Was geht ab?
- 0:52Spoiler alarm. Ich hab dich.
- 0:53Schon in der Kamera gesehen. Haha, du wusstest, dass ich da
- 0:56bin. Ja, wäre auch komisch, wenn ich
- 0:59passt. Schon so also Setting ist
- 1:01aufgebaut, wir können eine neue Folge aufnehmen, auf jeden Fall
- 1:03perfekt. Ansonsten ja, bist du fit.
- 1:07Wie geht's dir? Ja, mir geht's gut, ich hab
- 1:09eigentlich nichts zu beklagen, bin das ist gut, bin wach, bin
- 1:12da, hab Bock. Wie geht's dir aufmerksam?
- 1:15Bin bereit fürs Thema, quasi. Nee, das nicht.
- 1:20Geht es dir denn auch gut? Ja, ja, soweit schon.
- 1:24Ich bin ein bisschen körperlich im Arsch, aber mental bin ich
- 1:26völlig am Start für die Folge. Was hast du denn gemacht?
- 1:31Nein, also nichts Wildes. Ich war gestern Bouldern.
- 1:38Ja, klar, klar. Nee, ich war Bouldern und hab
- 1:41jetzt natürlich so n paar Nachwehen.
- 1:43War ne sehr anstrengende Session, war auch sehr warm in
- 1:46der Halle, es hat es nicht einfacher gemacht.
- 1:48Ah. Ja, aber da, du weißt ja wieder,
- 1:50stimmts. Lehrer, oder?
- 1:52Ja, es war auf jeden Fall Lehrer.
- 1:53Ich denke, es waren viele so clever und waren am See oder so
- 1:56und ich war mit n paar Leuten in der Boulderhalle.
- 2:00Ja, Na ja, auf jeden Fall. Ich kann jetzt wieder das
- 2:02typische, ich kann nichts greifen, ich krieg die Tasse,
- 2:04die Kaffeetasse nicht mehr gehoben und du weißt ja, wie es
- 2:07ist, du boilderst doch selbst. Nimm den Strohhalm, das ist.
- 2:10Sehr leicht im Strohhalm. Genau.
- 2:13Genau, nee. Ansonsten ist aber alles tutti
- 2:16soweit, wie man so schön sagt, sagt man hoffentlich so und ich
- 2:21hab n schönes Thema mitgebracht für heute, was ich gerne mit dir
- 2:23bequatschen möchte, hau mal raus.
- 2:26Und zwar hatten wir vor kurzem ja mal angefangen.
- 2:30So. Prinzipien in der
- 2:33Softwareentwicklung zu erklären und hatten da ja.
- 2:37Das Drive Prinzip also Don't repeat yourself.
- 2:41Prinzip erklärt und n bisschen analysiert fordert und Nachteile
- 2:44benannt. Auch so Challenges die wir da
- 2:46drin sehen. Und ja, das das fand ich cool
- 2:49und deswegen hab ich mir gedacht, bring ich mal noch n
- 2:51anderes Prinzip mit und ich glaube wir haben das auch in der
- 2:53Folge schon so n bisschen angeteasert für die aufmerksamen
- 2:57Zuhörerinnen und Zuhörer. Und zwar soll es heute um das
- 3:01Kiss Prinzip gehen und damit meine ich nicht die Hard Rock
- 3:04Band die es mal gab aus New York, die zwar fantastisch war,
- 3:07aber um die soll es nicht gehen, sondern um das Prinzip Keep it
- 3:11simple stupid. Ach so, ich dachte, jetzt
- 3:13kriegen wir hier eine Anleitung zum Küssen.
- 3:17Der. So schlecht du bist allein.
- 3:19Ich, ich, ich aber der. Musste sein.
- 3:22Ja gut, ich mach alleine weiter, ich denke es ist besser.
- 3:27Nein, magst du vielleicht mal erklären, was hinter dem Kiss
- 3:29Prinzip steht? Ja, also das Kiss Prinzip
- 3:32besagt, dass man Systeme und Lösungen eigentlich so einfach
- 3:36wie möglich gestalten soll oder halten soll und aber natürlich,
- 3:41und das ist die Schwierigkeit, glaube ich auch, auf die wir
- 3:43gleich auch insgesamt in der Folge auch ein bisschen
- 3:46eingehen, dass man natürlich die Funktionalität auch trotzdem im
- 3:49vollen Umfang erfüllen soll. Und.
- 3:51Dabei liegt halt der Fokus darauf, dass unnötige und hier
- 3:56auch noch mal der das Hauptaugenmerk auf das Wort
- 4:00unnötig unnötige Komplexität zu vermeiden.
- 4:03Und damit kann man halt im Endeffekt natürlich auch die
- 4:07Lesbarkeit oder Verständlichkeit des Codes erhöhen,
- 4:10logischerweise wichtiger Punkt auf jeden Fall, wir hatten ja
- 4:13auch in der letzten Folge vom Don't repeat yourself.
- 4:18Im Prinzip gesagt, dass es oder haben wir herausgestellt, dass
- 4:21es ja wirklich essentiell und wichtig auch ist, Code
- 4:23verständlich zu gestalten und natürlich auch, dass man den
- 4:28Code warten kann. Das spielt so ein bisschen Hand
- 4:30in Hand und da ist es natürlich einfach gut, wenn man versucht,
- 4:35möglichst einfache, simple Lösungen in die Software
- 4:40einzubauen. Ja, und das ist im Großen und
- 4:43Ganzen so, mal kurz abgerissen, das Kiss Prinzip, darum geht es.
- 4:48Genau, also grundsätzlich klingt es gar nicht so kompliziert und
- 4:51auch irgendwie logisch, aber ganz.
- 4:53So einfach ist es dann am Ende doch nicht, weil wie du so schön
- 4:57gesagt hast, es geht darum unnötige Komplexität.
- 5:01Zu vermeiden, das heißt, es geht jetzt nicht darum.
- 5:05Zeichen einzusparen oder Zeilen ne, also dass man es also
- 5:10einfach nicht im Sinne von Codes oder knapp, also wenig Codes,
- 5:13sondern es geht da eher um die Komplexität und um den
- 5:16Grundgedanken. Die erste simple Lösung, die dir
- 5:22für ein Problem in den Kopf kommt?
- 5:24Meistens. So nach dem Prinzip.
- 5:29Die beste Lösung gleich ist und auch die Robusteste, weil das
- 5:32ist das, was dir in den Sinn kommt.
- 5:33Das ist nicht. Kompliziert gedacht, sondern es
- 5:37ist so okay du hast ein Problem, lass mich kurz nachdenken, so
- 5:40und so machen wir das und das ist oftmals nicht fernab von der
- 5:45finalen Lösung oder von dem von der von einer guten Lösung, sage
- 5:49ich mal. Und dieses Prinzip möchte halt
- 5:51dazu animieren, so verstehe ich es.
- 5:54Halt auch in die Richtung zu entwickeln, dass man sagt, OK,
- 5:57es ist halt jetzt der erste Ansatz, aber das ist nicht
- 6:00schlimm, weil genau diese Intuition, die ich hatte, führt
- 6:03mich jetzt in die richtige Richtung.
- 6:04Ja, und das finde ich eigentlich auch da recht spannend.
- 6:08Hinter dieser Philosophie sage ich mal, die dahinter steckt,
- 6:12weil ich glaub, jeder kennt das und das hatten wir ja auch so
- 6:14als Challenge bei dem Dry Prinzip, dass eine hohe
- 6:18Komplexität, wenn ich mich jetzt selbst nicht wiederholen möchte,
- 6:21da haben wir ja gesagt, man neigt denn dazu, oft vielleicht
- 6:25zu hohe Abstraktionsebene, noch mal so als kleiner Reminder in.
- 6:29Zu integrieren, und das ist ja natürlich dann fernab von
- 6:34einfachen, simplen Lösungen. Und auch die Challenge dahinter,
- 6:38weil wer soll das am Ende noch verstehen oder warten, da
- 6:42hattest du ja ein cooles Beispiel gebracht mit dieser
- 6:45generischen Tabelle, die bezogen lieber Zuhörer, falls sich das
- 6:48Thema interessiert, dann hör gern dann noch mal in die Folge
- 6:50rein, weil das war wirklich ein Paradebeispiel dafür, wo das
- 6:54Dryprinzip dann. Limitierung hat beziehungsweise
- 6:58vielleicht nicht mehr der richtige Ansatz ist, um da so
- 7:01dran festzuhalten. Ja, das war auf jeden Fall, hat
- 7:06auf jeden Fall dafür geführt, dazu geführt, dass auch die das,
- 7:10was wir hatten, die Wartbarkeit sehr eingeschränkt wurde, weil
- 7:13wir wollten diese Software oder diesen Software teil erweitern,
- 7:16und das ist uns schwerlich gelungen.
- 7:19Und wenn du dann am Ende natürlich an den Punkt kommst,
- 7:22dass du sagst, ja okay, das wollen wir nicht noch mal haben,
- 7:24weil sind wir, sind wir mal ehrlich und sagen Hand aufs
- 7:28Herz. Wenn man sich eine Zeit lang
- 7:30irgendein Code nicht anguckt. Man vergisst auch, was da drin
- 7:32ist. Also es ist ja so, dass du
- 7:33selbst deinen eigenen Code schreiben kannst.
- 7:35Irgendwann nach 2 Wochen, 2 Monaten wieder zurückkommst und
- 7:38dir denkst, was habe ich ja noch mal fabriziert.
- 7:41Wer war das? Also das geht ja auch und da ist
- 7:46es dann natürlich nicht hilfreich, wenn man sagt, okay,
- 7:47wir haben jetzt eine Anpassung, vielleicht kommt irgendwann noch
- 7:49mal eine und wir haben das dann auch tatsächlich Gechallen
- 7:51gesagt, okay wollen wir das vielleicht noch mal.
- 7:55Vereinfachen, also nicht verallgemeinern, sondern eben
- 7:58vereinfachen. Also das ist ja sozusagen dann
- 8:01wieder weg vom Don't repeat yourself Prinzip.
- 8:04In dieser Abstraktionsebene hinzu Air Kiss ne zu diesem Kiss
- 8:08Prinzip und da muss man natürlich dann auch wieder
- 8:11gucken. Wie stark also es wäre natürlich
- 8:15blöd, wenn man sagt, EY, wir machen jetzt hier Don't repeat
- 8:18yourself, dann beim nächsten Mal sagt man, ach, das ist ja aber
- 8:20viel zu abstrahiert, lasst uns das lieber einfacher machen, wir
- 8:23refactor nass und dann beim nächsten Mal sagt sie wieder ja,
- 8:25lass uns das doch mal abstrahieren, weil das könnte
- 8:27man ja super machen, das soll es natürlich nicht sein, dass man
- 8:30immerhin und her geht. Aber in dem Fall hatten wir das
- 8:36dann nochmal umgebaut und mehr das Kiss Prinzip angewandt um
- 8:38halt eben die diese Lösung möglichst einfach zu gestalten,
- 8:43auch wenn sie dann nicht mehr so manche würden es elegant nennbar
- 8:49hinterher. Und das ist, weil du meintest,
- 8:53ihr habt dann das Prinzip angewandt, finde ich halt
- 8:55spannend, weil so grundlegend von der Definition oder der
- 9:00Philosophie her sind sie ja eigentlich nicht gegensätzlich,
- 9:04die Prinzipien. Also du kannst ja sagen, ich
- 9:07möchte mich nicht wiederholen und ich Sorge dafür, dass es so
- 9:09diese einheitliche Wissensbasis gibt, und die kann ja auch
- 9:13einfach und straight geschrieben sein.
- 9:17Das Problem ist, und das zeigt auch das Beispiel mit dieser
- 9:21Tabelle ganz gut, wenn ich jetzt so krass in dieses Rapid hole
- 9:25gehe, dass ich sage, nee, ich muss das jetzt hier
- 9:27verallgemeinern, ich muss jetzt ne einheitliche Wissensbasis
- 9:31schaffen, aber ich möchte alles da drin abbilden können und ich
- 9:33abstrahiere und abstrahiere, dann gehe ich so extrem in die
- 9:36Dry Richtung, dass quasi dieses Kiss Prinzip komplett verletzt
- 9:40wird. Wenn ich jetzt sage, ich möchte
- 9:42beides. Eigentlich einhalten und
- 9:44genauso, wenn ich es total vereinfache, werde ich
- 9:47irgendwann an den Punkt kommen, dass ich mit einfachen
- 9:49Funktionen ja nicht mehr schaffe, mich nicht mehr zu
- 9:53wiederholen, weil es einfach zu unterschiedlicher Kontext dann
- 9:56auf einmal ist. Das heißt, ich werde Sachen
- 9:58doppelt schreiben, wenn diese Funktion einfach sein sollen
- 10:02oder nicht komplex so rum, das ist besser gesagt.
- 10:07Dass man sich das wieso eine Gewichtung vorstellen kann von
- 10:10beiden Prinzipien. Und dann musst du gucken, in der
- 10:13Mitte zu bleiben und nicht nach links oder rechts weg zu
- 10:16driften. Vielleicht kann man sich so das
- 10:17ganz cool vorstellen. Ich finde, man kann an der
- 10:20Stelle auch noch mal ein bisschen abgrenzen.
- 10:23Welche? Also für mich ist dieses dry
- 10:26Prinzip, beispielsweise um das noch mal ganz kurz zu sagen, hat
- 10:292 verschiedene Facetten, weil auf der einen Seite hast du ja
- 10:32die Möglichkeit zu sagen, ey, du hast.
- 10:34Code duplikationen, die du einfach in eine Funktion
- 10:37auslagerst und das ist zum Beispiel ne Sache, wo definitiv
- 10:42die Komplexität des Codes nicht steigt.
- 10:43Das ist auch keine Abstraktionsebene, von der wir
- 10:45hier reden, wenn wir von abstraktionsebenen reden ne,
- 10:48sondern eher wenn man jetzt zum Beispiel sagt Okay, du hast
- 10:50vielleicht irgendwie ein Interface, wo verschiedene
- 10:53Implementierungen zu diesem Interface dahinter hängen und
- 10:56dann hast du zum Beispiel eine Abstraktionsebene gezogen, die
- 10:58unter Umständen. Je nachdem, wie viele du davon
- 11:01brauchst, irgendwann das ganze sehr, sehr komplex und
- 11:04undurchsichtig macht. Das sind nicht so 2 verschiedene
- 11:06Sachen, weil das eine ist Don't repeat yourself, das andere
- 11:11auch, aber auf verschiedenen Ebenen.
- 11:13Genau. Und dann?
- 11:15Nimmst du das Kiss Prinzip und sagst okay du kannst ja zum
- 11:18Beispiel sagen, ich habe eine Lösung und diese beiden Lösungen
- 11:21hast du einmal eine Lösung, die ist sehr sehr einfach und
- 11:24straight. Und einmal hast du eine Lösung,
- 11:26die ist sehr, sehr kompliziert und führt aber am Ende zum
- 11:29gleichen Ergebnis. Das wäre so, wie wenn du jetzt
- 11:31zum Beispiel, sagen wir mal, du erklärst ein gesellschaftliches
- 11:35Spiel auf eine super einfache Art und Weise und jeder versteht
- 11:37sich sofort und sagt ja alles, klar, verstehe ich.
- 11:40Und auf der anderen Seite gibt es n anderen, der erklärt das
- 11:42gleiche Spiel total kompliziert, ist aber am Ende das gleiche
- 11:45Spiel und keiner versteht es so. Da ist natürlich klar der
- 11:49einfache straighter Ansatz besser, bedeutet ja aber nicht
- 11:53zwangsläufig, dass du bei deiner einfachen Straightnerklärung
- 11:56beispielsweise nicht dich vielleicht mal wiederholst.
- 11:59Also kann ja vorkommen und dann kannst du ja sagen okay pass
- 12:02auf, ich habe eine einfache Lösung, da habe ich vielleicht
- 12:04ein paar. Code duplikationen drin oder was
- 12:07auch immer. Und natürlich kann man dann
- 12:09sagen, ich nehme auch noch mal 3 mit rein, also handle nach dem
- 12:13Dry Prinzip und. Entferne sozusagen Redundanz so
- 12:18also deswegen wollte ich noch mal sagen, das ist ja genau, um
- 12:21das noch mal zu unterstützen, was du meintest, es sind ja
- 12:24nicht 2 Prinzipien, die gegeneinander arbeiten, sondern
- 12:26die können ja Hand in Hand gehen.
- 12:28Genau. Und das eine kann halt auch
- 12:30dafür sorgen, dass das andere noch besser umgesetzt ist.
- 12:32Nur dass sie extremfälle dann schnell quasi in die andere
- 12:36Richtung kippen können und das dann doch wieder in die Farbe.
- 12:40Richtung in Sachen gut entwickelter Code wie auch immer
- 12:43gut bei jedem aussieht. Aber jetzt nach diesen
- 12:45Prinzipien gut entwickelter Code, dann halt wieder in die
- 12:49Gegengesetzte Richtung kippt. Mal so ein dieses Kiss Prinzip,
- 12:54wenn man jetzt mal so Analogien ziehen möchte.
- 12:57Beispiele so wie was kann man sich darunter vorstellen, ich.
- 13:02Find das was bei mir so n Beispiel ist.
- 13:06Ist zum Beispiel N Taschenrechner.
- 13:07Das klingt jetzt n bisschen weit hergeholt, aber es gibt ja so
- 13:11verschiedene Arten Taschenrechner, ne, es gibt
- 13:14diesen ganz einfachen. Wo du so n bisschen Preise
- 13:18zusammen addieren kannst, weißt du, der kann halt so plus minus
- 13:20geteilt mal und du kannst halt so.
- 13:22Hast halt 0 bis 9 deine Zahlen und es gibt die die halt schon
- 13:26irgendwelche mathematischen Funktionen können.
- 13:28Oder weißt du die so für die in wissenschaftlichen Bereichen
- 13:32verwendet werden oder keine Ahnung im Matheunterricht ab
- 13:36klasse 10 oder weiß ich ab wann wo du denn sagst okay wir
- 13:39brauchen jetzt einen krasseren Taschenrechner der weiß ich was
- 13:42berechnen kann. Rechenschieber genau das ist so
- 13:47die einfachste Form. Jetzt muss ich kurz da mit
- 13:53Rechenschieber ist natürlich super.
- 13:54Stell dir mal vor du machst so das Watte Abi oder deine
- 13:57Abschlussprüfung allgemein und kommst mit so einem
- 13:59Rechenschieber an, also entweder ist ein absolutes Genie oder
- 14:02völlig wahnsinnig genau verdammt noch mal von vorne alles
- 14:06zurückgeschoben. Okay auf Topic beendet und dann
- 14:12ist ja genau die Sache so. Keine Ahnung, du hast eine Tasse
- 14:15für eine Division und du willst es eigentlich.
- 14:17Du sagst, ich will jetzt 2 zahlen voneinander dividieren
- 14:21beispielsweise und dann fängst du ja nicht an bei so einem
- 14:24simplen Taschenrechner zu sagen, na ja, aber warte mal was für ne
- 14:27Division will er denn machen an der Stelle?
- 14:29Vielleicht geb ich ihm jetzt aber noch ne Zusatztaste und er
- 14:32konfiguriert erst diese Division.
- 14:35Will er ne ne bruchzahl danach haben oder will er ne Ganzzahl
- 14:38Division machen? Nee das muss mir der Anwender
- 14:40jetzt erstmal sagen, weißt du also so mal als Analogie, dass
- 14:43du dir denkst, nee, keep it simple. 90% der Leute oder 99%
- 14:48der Leute wollen einfach keine Ahnung, irgendwelche Zahlen
- 14:52miteinander dividieren und dann soll ne Bruchzahl am Ende
- 14:54rauskommen um im Durchschnitt zu berechnen oder so weißt du beim
- 14:58Einkauf keine Ahnung oder oder wir haben jetzt in der Gruppe
- 15:03hat jeder mal jetzt ein Bier geholt, hier weißt du wir waren
- 15:05alle was trinken und was hat es jetzt pro Person gekostet im
- 15:08Durchschnitt sowas weißt du dann also die Taschenrechner App die
- 15:11standardmäßige ist ja auch super simpel gemacht.
- 15:15Das stimmt also ich find immer, also mir hat das auch
- 15:20tatsächlich schon oft geholfen und auch im Team geholfen.
- 15:26Also ich bin totaler Verfechter davon, mir zu sagen.
- 15:29Wie geht es denn super einfach? Also ich versuche also das das
- 15:33ist tatsächlich irgendwie ich, ich manchmal.
- 15:36Ich weiß nicht ob du das kennst, aber manchmal hab ich dann auch
- 15:38das Gefühl, bin ich vielleicht doch einfach zu einfach
- 15:41gestrickt, dass ich nur Lust habe, mir zu versuchen.
- 15:46Ne komplexe Lösung versucht also es nicht einzugestehen, also
- 15:51dass ich nicht es mir eingestehen möchte, dass eine
- 15:54Lösung auch komplex sein muss. Manchmal könnte vielleicht auch
- 15:57so ein kleines Problem sein, weil ich möchte mal gerne sehr
- 16:01einfache Lösung und manchmal klappt's und das hilft dann auch
- 16:04und manchmal klappt es halt eben nicht, also zum Beispiel in der
- 16:07Vergangenheit hatte ich auch im Team.
- 16:09Wenn ich dann im Pair Programming mit einem
- 16:11Teamkollegen gearbeitet habe. Wo also wurden gleich so bei
- 16:15bestimmten Lösungen kam so richtig komplexe Ideen raus und
- 16:18ich so, na lass uns das doch vielleicht erstmal einfach
- 16:20machen, weil guck mal, wir brauchen doch eigentlich nur
- 16:22sowas zu machen und das hat auch.
- 16:25Dazu geführt, dass die Lösung am Ende tatsächlich einfacher
- 16:27wurde. Und das fand ich schön.
- 16:29Aber manchmal, wo die Lösung vielleicht wirklich nicht so
- 16:32einfach und simpel gehalten werden konnten, habe ich mich
- 16:35mich dann manchmal gefragt, so hm.
- 16:38Vielleicht bin ich auch ein bisschen beschränkt, ich weiß es
- 16:40nicht. Also weißt du, ich weiß nicht,
- 16:44ob du kennst das Schwein aber. Also das ist mal mal ganz als
- 16:50blödes Beispiel vielleicht oder nicht als blödes Beispiel,
- 16:53sondern vielleicht als Beispiel, was man sich auch vorstellen
- 16:55kann, wenn du. In deiner Anwendung etwas
- 16:58asynchron machen musst und aber sagst Ey synchrone Bearbeitung
- 17:04codebearbeitung ist doch viel einfacher, es aber nicht
- 17:07funktioniert synchron, dann kannst du ja so oft versuchen zu
- 17:11zu sagen, ey lass doch mal das ganze synchron und einfach auch
- 17:15verständlich zu machen. Wenn es aber nur asynchron
- 17:17funktioniert, weil die Anwendung das so hergibt oder der Prozess
- 17:21der dahintersteckt, weißt du das als Beispiel.
- 17:23Naja klar, weil das sequence seller kannst du einfach im Kopf
- 17:25einfacher bilden und auch codechn.
- 17:28Ist leichter verständlich. Logisch ist n ganz gutes
- 17:31Beispiel auf jeden Fall, aber es gibt halt einfach Sachen, die
- 17:33kannst du nicht, die kannst du dann nur asynchron lösen, das
- 17:38ist auch n wirklich n klassisches Beispiel.
- 17:41Was bei mir, ich kann auch so aus der Vergangenheit noch einen
- 17:44kleinen Plausch mal einwerfen. In meiner Embedded Zeit hatte
- 17:50ich auch mal ne Phase im Projekt weiß ich nicht.
- 17:53Auf jeden Fall weiß ich wie ich es nennen soll, da habe ich mich
- 17:56auf jeden Fall darum gekümmert, dass wir so ein Inhouse library
- 18:00geschrieben haben und das war halt in der C Welt so eine
- 18:05Header Only inline Library, die war die Funktion die ich da
- 18:09geschrieben habe, waren halt hoch nach hochoptimiert klingt
- 18:12jetzt zu hoch dran, aber ich habe versucht sie bestmöglich zu
- 18:14optimieren. Weil klar im amented Bereich
- 18:19hast du halt beschränkte Ressourcen und da muss das halt
- 18:21schon alles passen und dann ist es halt wirklich so ein Rabatt
- 18:24Hay und das finde ich hat nichts damit zu tun, dass denn Leute
- 18:27sag ich mal beschränkt sind in Ihrer Vorstellungskraft das zu
- 18:31verstehen oder so, aber du beschäftigst dich ja tagein
- 18:34tagaus damit und steckst halt voll in dieser Materie drin und
- 18:38für dich ist das logisch, was da Komplexes passiert.
- 18:42Weißt du also das so? Wenn ich jetzt glaube ich jetzt
- 18:4623 Jahre später, weiß nicht wie lange das erste drauf gucken
- 18:48würde, würde ich nur noch sehen, dass irgendwelche Bits da durch
- 18:51die Gegend geshiftet werden. Irgendwelche Funktionen, die
- 18:53Funktionen sind Gott sei Dank, da bin ich mir sicher, so
- 18:56benahmt, dass ich verstehe. Was das Resultat ist, davon aber
- 18:59die Implementierung. Ja würd ich glaub ich jetzt auch
- 19:03nicht mehr sofort durchdringen. Das heißt es ist wirklich nen ne
- 19:06ne Frage wie nah du an dieser Entwicklung dran bist.
- 19:09Um diese Komplexität greifen zu können und genauso ist es ja
- 19:12auch, wenn du sehr komplexe asynchrone Prozesse hast, macht
- 19:15es für dich vielleicht Sinn. An der Stelle und für andere ist
- 19:19es aber n enormer Aufwand sich da reinzudenken und deswegen bin
- 19:23ich von damals wie es umgesetzt hab, irgendwann gedanklich
- 19:27weggegangen und wieder mehr Richtung dem Kiss Prinzip, dass
- 19:30ich mir dachte, war es das jetzt wert ist so komplex zu machen,
- 19:34weil es sind auch Kollegen zu mir gekommen, die dann an dieser
- 19:36Library weiterschreiben wollten und aber nicht wussten was
- 19:39Niveau das ist. Ähnlich wie dein
- 19:42Tabellenbeispiel. Und dann dachte ich mir, war es
- 19:46das jetzt wert, vielleicht diese 1 2% noch rauszukitzeln.
- 19:51Wenn jetzt aber niemand damit arbeiten kann, übertrieben
- 19:53gesagt, weil das Halt wirklich komplett fernab von dem Kiss
- 19:57Prinzip Dame ja. Und das meinte ich ja auch schon
- 19:59in dem in der anderen Folge von dem 3.
- 20:02Prinzip, das. Man natürlich Sachen optimieren
- 20:06kann ohne Ende, aber immer den Trade auf dem Kopf haben muss.
- 20:10Okay wie stark wird das noch weiterentwickelt, wieviel wird
- 20:14denn da auch noch vorausgesetzt, dass andere Leute das verstehen
- 20:18und natürlich auch noch zu gucken, wer aber mit einem also.
- 20:23Jeder hat ja vielleicht auch so seine Qualitäten und in dem Fall
- 20:26warst du zum Beispiel jemand, der das Halt hingekriegt hat,
- 20:29das möglichst stark zu optimieren und n anderer Kollege
- 20:33hat dann vielleicht andere Qualitäten, aber ist dann
- 20:37vielleicht nicht so stark da drin diesen Code, dann diesen
- 20:40optimierten Code so gut zu verstehen.
- 20:43Und wenn du jetzt aber zum Beispiel jemanden hast, wo du
- 20:45weißt, keine Ahnung, wir sind so, wenn ich sage hier.
- 20:49Ich hab's absolut ausoptimiert, sagt er.
- 20:52Haha, ich hab noch nicht mal angefangen, das Auszuoptimieren,
- 20:55also das sind ja dann dann dann weiß der okay es kommt immer
- 20:59finde ich, auch ein bisschen darauf an, mit wem man dann
- 21:01arbeitet und wo die Qualitäten liegen und ich finde, das ist
- 21:04auch ein generellwichtiger.in der Teamarbeit, wenn du weißt,
- 21:08mit wem du arbeitest, weil du kannst.
- 21:11Natürlich weiß ich nicht, unglaublich komplexe Lösungen
- 21:15schaffen. Und kann du kannst dich dafür
- 21:19auch feiern, aber die Frage ist Halt, bringt es dir was in
- 21:22diesem Team, dann sozusagen. Wenn das aber am Ende eher
- 21:27behindert, das gesamte Team und die den gesamten Fortschritt
- 21:30kleiner Exkurs jetzt gerade, aber ich finde das ist ein
- 21:33wichtiger Punkt, den manche glaube ich auch nicht so richtig
- 21:37vor Augen haben. Ja ja, ist halt die Frage mit
- 21:41wem wie du so schön meint es mit wem arbeitest du daran und was
- 21:44für ein Produkt ist es am Ende? Man konnte es jetzt insofern
- 21:48rechtfertigen, dass diese inhouse library ja quasi nur
- 21:52Anwender hatte und wenig Entwickler.
- 21:54Die war jetzt auch nicht so riesig.
- 21:57Hat aber im Prinzip auch so ein bisschen das 3.
- 21:59Prinzip unterstützt zu sagen okay wir lagern diese Funktion,
- 22:02die wir an vielen Stellen brauchen.
- 22:04Es waren halt auch so mathematische Berechnungen und
- 22:06sowas, das lagern wir halt aus in eine eigene Lipp und die
- 22:10kannst du dann einfach einbinden sozusagen und verwenden, das
- 22:13heißt du hast halt mehr Anwender am Ende, aber trotzdem gab es ja
- 22:17den Punkt, dass sie erweitert werden sollte von anderen
- 22:20Entwicklern. Und dann hast du halt den Salat,
- 22:23sozusagen ne, weil dann ist es halt auf einmal echt komplex, da
- 22:27kleine Änderungen zu machen. Ja und das ist halt nicht cool
- 22:30dann so und wenn du jetzt sage ich mal von Grund auf an einem
- 22:33Produkt arbeitest oder ein sagen wir mal allgemein an einem
- 22:35Projekt wo viele Entwickler sind, wo auch vielleicht in
- 22:39Zukunft noch Entwickler dazu kommen, dann willst du den ja
- 22:42nicht unnötig die Einarbeitungszeit schwierig
- 22:44machen, das heißt dann sollte es schon eher.
- 22:47Der Fokus auf Wartbarkeit und Verständlichkeit liegen
- 22:50sozusagen. Und dann kann man sich manchmal,
- 22:53wie gesagt, in anderen, sagen wir mal, sind wir mal bei Web
- 22:56Applikationen oder so ey, ganz ehrlich, da kannst du auch diese
- 23:001 2% wirklich pfeifen und sagen, nee es ist viel wichtiger, dass
- 23:04die Leute es verstehen halten. Ja, auf jeden Fall.
- 23:06Und da, das ist halt immer so, dieser Trade, auch bei diesen,
- 23:09bei so einem Prinzip dann am Ende deswegen ist finde ich
- 23:12dieses Kiss Prinzip auch wie du meintest, dass du Verfechter
- 23:14davon bist oder es magst erstmal den Simpl.
- 23:18Zu verfolgen kann ich halt absolut nachvollziehen und ist
- 23:20es auch oftmals der der richtige Weg so zu starten.
- 23:25Was ich manchmal schwierig finde, ist, ich weiß nicht das
- 23:28das das kennst du ganz bestimmt auch, aber stell also sagen wir
- 23:31mal man programmiert ne. Neue Funktionen.
- 23:34Irgendwas. Sag ich jetzt mal.
- 23:38Du musst irgendwas sortieren und.
- 23:40Irgendwas mit Kot. Meinst du sagen wir mal du musst
- 23:43was sortieren? Du musst dabei noch irgendwas
- 23:45filtern, du musst dann noch irgendwie die Daten mappen oder
- 23:48verändern auf ne gewisse Art und Weise und so weiter und dann
- 23:51hast du vielleicht. Ein Array von Objekten und
- 23:57innerhalb dieses Objektes hast du ein Attribut oder eines
- 24:00solchen Objektes. Hast du ein Attribut, was auch
- 24:02wieder ein Array ist. So, und das musst du alles
- 24:04irgendwie durchgehen. Dann musst du das kurz mal im
- 24:07Kopf. Sehen.
- 24:07Im Endeffekt hast du, wenn du sozusagen also im Worst case
- 24:11hast du so eine n hoch 2 n quadratkomplexität, weil du ja
- 24:15sagst ich gehe einmal durch alle Objekte durch und muss dann
- 24:18vielleicht noch mal bei jedem Objekt noch mal durch das eine
- 24:21Array. Laufen so zum Beispiel.
- 24:23Und. Klar weiß ich, dass es definitiv
- 24:27eine bessere Lösung gibt als mit 2 Vorschleifen darüber zu
- 24:30laufen. So, aber deswegen finde ich es
- 24:32trotzdem nicht schlimm, wenn jemand sagt, EY, ich will jetzt
- 24:35erstmal kurz mit 2 vorschleifen drüber laufen.
- 24:37Weil voll oft hab ich erlebt, dass jemand das zum Beispiel
- 24:40machen möchte. Manchmal mach ich das auch
- 24:42selber, ne, dass ich sage, komm ich mach es jetzt erstmal zum
- 24:45Beispiel ne neue Sprache du. Bist vielleicht noch nicht so
- 24:47drin in dieser Sprache und vielleicht kannst du das
- 24:51funktional lösen oder so ne, also auf ne andere Art und
- 24:54Weise, dass du jetzt nicht irgendwie diese 2 vorschleifen
- 24:56ineinander geschachtelt hast. Trotzdem finde ich, dass es
- 24:59manchmal erst mal sinnvoll ist zu sagen, ich versuche diesen
- 25:01Sachverhalt, den ich mir gerade vorstelle, diese Funktion
- 25:04schreibe ich erstmal runter und wenn es erstmal 2 vorschleifen
- 25:06sind so und dann kann ich das ganze ja hinterher immer noch
- 25:10einmal. Optimieren, verbessern, ne
- 25:14andere Möglichkeit nehmen im optimalen.
- 25:16Im Optimalfall hat man Tests dazu, die dir sagen, Ey das
- 25:19funktioniert auch, du kannst jetzt refatern wie du.
- 25:20Willst und dann kannst du es ja und.
- 25:22Manchmal hilft es auch einfach, was ich mitgekriegt hab, weil
- 25:25ich auch schon mit Leuten gearbeitet habe, die sozusagen
- 25:28in der Ausbildung waren. Wenn man es so nennen möchte,
- 25:31habe ich gemerkt, dass es auch diesen Leuten einfach hilft fürs
- 25:34Verständnis, dass man das erstmal auf diese Art und Weise
- 25:36macht, weil. Es bringt dich im Team, sage ich
- 25:39jetzt mal, mit diesen 2 Leuten, mit denen du dann arbeitest,
- 25:42auch direkt weiter, wenn du die andere Person auf deinem Level
- 25:47sozusagen abgeholt hast. Dass du weißt, weißt du, wo wir
- 25:49hin wollen, ja, weiß ich, und dann kannst du viel besser auch
- 25:51mit der Person arbeiten, als wenn du sagst, Pass auf, wir
- 25:55machen das jetzt so und so, und dann ist die Person schon raus
- 25:57und denkt sich okay ich weiß gerade gar nicht, was hier
- 25:59passiert und im Worst case kann diese Person, das traut sich
- 26:03nicht zu sagen, dass sie da nicht hinterher kommt oder so,
- 26:06also. Solche Sachen.
- 26:07Also einfach mal ein paar Facetten, wo ich mir denke.
- 26:10Ich finde es absolut valide zu sagen, klar geht das meistens
- 26:13besser als einfach 2 vorschleifen ineinander zu
- 26:15verschachteln. Aber fang doch erst mal so an.
- 26:19Ist doch ne einfache Möglichkeit, dann kann man das
- 26:21immer noch besser machen oder verschönern.
- 26:25Ja, also es ist halt auch extrem sprachenabhängig da ne, also du
- 26:28hast ja dann irgendwie so Best practices in jeder Sprache wie
- 26:31man sowas lösen kann, weil du ja schon meintest, dann filterst du
- 26:35oder keine Ahnung, rufst irgendeine Flat Funktion auf um
- 26:38erstmal diese. Diese Dimension da rauszukriegen
- 26:41oder wie auch immer ne, das ist ja dann wirklich
- 26:43sprachenspezifisch und wahrscheinlich gibt es da auch
- 26:47schönere Lösungen. Dann und da ist halt der Trade
- 26:49Off, ist die Lösung schöner im Sinne von.
- 26:53Weniger Code und immer noch super verständlich.
- 26:56Ne oder was was man ja auch öfter schon gesehen hat ist,
- 27:01dass irgendwie ne wilde Kombination an irgendwelchen
- 27:03Funktionen aufgerufen werden. Es funktioniert, das Ergebnis
- 27:06stimmt, aber eigentlich hängst du jetzt da und guckst dir diese
- 27:10Verschachtelung an okay was ist der Input von dieser Funktion?
- 27:13Das okay, aber der Input ist wiederum eine Funktion, ein
- 27:16Ergebnis, eine andere Funktion und dann guckst du erstmal was
- 27:19kommt da raus, was kommt denn da raus, wo du so richtig deep Dive
- 27:23in der Sprache drin sein muss um das sofort zu verstehen und das
- 27:26ist dann so wie du meinst. So für neue die ins Projekt
- 27:28kommen, die vielleicht erstmalig mit dem Framework oder der
- 27:31Sprache arbeiten, dann halt auch nicht mehr so einfach und das
- 27:35ist halt immer dieser Trade Off am Ende.
- 27:37Ich fand das super lustig. Und deswegen finde ich.
- 27:39Erstmal was du findest, sorry. Also deswegen finde ich, dass
- 27:44man dieses Kiss Prinzip genauso wie auch das Dry Prinzip einfach
- 27:48immer so ein bisschen im Hinterkopf haben sollte, dass
- 27:50man da ruhig mal auf seine erste.
- 27:53Auch mal hören kann. Und selbst wenn die 2
- 27:55Vorschleifen sind, die verschachtelt sind, dann mach es
- 27:58erstmal. Warum nicht klar, wenn du jetzt
- 28:00natürlich im Kopf schon hast, weil du dich wirklich vielleicht
- 28:02gut in der Sprache auskennst, dass du es eleganter lösen
- 28:04kannst und es trotzdem noch verständlich ist, dann kannst du
- 28:07natürlich auch das machen, das ist jetzt nicht gesagt, ich muss
- 28:09erst mal den Simpelsten weg gehen, sozusagen.
- 28:14Aber ich finde es im Hinterkopf zu behalten ist halt schon.
- 28:18Sehr essentiell und verbessert auch die Codequalität würde ich
- 28:21schon sagen. Und was ich, was ich eben noch
- 28:23sagen wollte, ich hatte das mal mit, als ich angefangen habe mit
- 28:26Kotlin, da hatte ich ein Projekt, da sind wir von Java
- 28:29auf Kotelett umgestiegen und Kotelett hat mir einen sehr
- 28:32hohen Anteil oder eine Möglichkeit, funktional zu
- 28:35programmieren, und das haben wir dann auch so gemacht.
- 28:39Dann waren wir aber manchmal an einem Punkt, dass dann auch
- 28:43jemand, ich weiß gar nicht mehr, ich krieg es nicht mehr 100%
- 28:45zusammen, aber ich glaube, es kam dann jemand ins Team, der
- 28:47sich auch noch besser mit Content aus.
- 28:49Das auch schon länger gemacht hat, der hat damit gearbeitet
- 28:51hat und hat dann zum Beispiel auch.
- 28:53Also du musst dir vorstellen, das war ne Menge von, also ne
- 28:56Menge viele Verarbeitungsschritte in einer
- 28:59Funktion, das heißt du hast zum Beispiel dir deine Liste Set
- 29:02map, Objekt was auch immer ne hast du genommen und hast dann
- 29:06immer aufgerufen Map Filter mach dies Punkt mach das Punkt und so
- 29:10weiter das heißt du hast so Verarbeitungsschritte gehabt die
- 29:13man dann auch sieht an sich eine schöne Sache.
- 29:16Witzigerweise wurde dann einmal so das Ganze auseinander
- 29:19genommen und an einigen Stellen hieß es so ja okay.
- 29:22Also das hier ist zum Beispiel völlig, also bringt nichts.
- 29:25Also du könntest zum Beispiel diese 3 Sachen auch weglassen,
- 29:27einfach nur das machen, also eine andere Funktion an die
- 29:31Stelle einsetzen und das ist dann auch so ein bisschen so
- 29:33eine Limitierung wieder, weil wenn du dich damit nicht
- 29:36auskennst, ist es vielleicht ganz schön und es sieht
- 29:38vielleicht ganz gut aus, aber auf der anderen Seite hast du
- 29:41vielleicht völligen Overhead, weil du einfach dir denkst.
- 29:44Und jetzt haue ich noch die Funktion oben drauf und dann
- 29:46kommt noch die Funktion. Und dies.
- 29:48Konnten auch ne Funktion. Und das war das.
- 29:50Und dann wieder zurück zum Anfang und wieder von.
- 29:52Das war dann manchmal, also gerade am Anfang, auch bei bei
- 29:55Kotlin auch sehr interessant und?
- 29:59Ja, ja, das ist doch n klassischer Fall von Over
- 30:01Engineering am Ende. Du versuchst halt, denn so
- 30:04krampfhaft das geil zu machen, war blöd gesagt.
- 30:08Also du denkst ja, ich will jetzt so richtig geilen Code
- 30:09schreiben und wir haben die Funktion und die verwenden wir
- 30:12jetzt auch und dann kommt jemand und sagt Na ja Leute aber also
- 30:15wenn ihr das schon machen wollt, dann habt ihr.
- 30:18Über um 5 Ecken gedacht, macht es doch einfach so und so und
- 30:22das ist ja auch wieder cool. Dann von dieser Erfahrung zu
- 30:24profitieren und da merkt man dann wieder Keep it simple.
- 30:30Warum? Warum bin ich überhaupt in
- 30:32diesen weggegangen? So ne, das ist doch eigentlich
- 30:34völlig unnötig. Gewesen.
- 30:35Aber natürlich hat man auch immer noch mal natürlich das
- 30:38auch zu Challengen und zu sagen, ja gut, Keep it simple, so weit
- 30:41wie es halt eben geht, was natürlich auch definitiv ein
- 30:45Punkt ist, ist, dass es natürlich auch öfter mal, das
- 30:48kennen wir ja selber, man hat eine Aufgabe, sagt okay wir
- 30:51nehmen jetzt erstmal eine einfache Lösung und es fallen
- 30:54einem dann aber trotzdem immer noch weitere Edge Cases ein.
- 30:57Du denkst dir so ja okay, aber was ist denn in der Situation
- 31:00und in der. Und dann?
- 31:02Dann ist es ja schon manchmal so, dass sozusagen, wenn man
- 31:05jetzt davon ausgeht und sagt, Nimm doch einfach die erstbeste
- 31:08Lösung, die dir einfällt. OK, ist bestimmt erstmal n
- 31:13Ansatz, aber es kann durchaus sein, dass die der
- 31:15Funktionsumfang dann wenn man n bisschen länger über bestimmte
- 31:19Sachen nachdenkt oder über n Feature in der Software oder so,
- 31:23dass es dann durchaus sein kann, dass.
- 31:25Der erste Ansatz, vielleicht auch einige Punkte
- 31:28vernachlässigen würde, die dann runterfallen würden.
- 31:33Dass er die Challenge dann am Ende ne.
- 31:35Also wenn ich jetzt sehr engstirnig dieses Prinzip
- 31:38durchsetze und mir wirklich denke, so das erste was in
- 31:41meinen Sinn kommt, das ist die Lösung und dann habe ich aber
- 31:45halt nur sozusagen den Happy Pass berücksichtigt, der
- 31:48funktioniert dann auch, aber wie du so schön sagst, dann kommen
- 31:50die Edge Cases dazu und dann wird zwangsläufig die
- 31:53Komplexität steigen müssen. Und dann fährst du halt mit dem
- 31:58Kiss Prinzip, wenn du es so richtig Straight durchziehst
- 32:00auch nicht mehr gut am Ende, sondern wirst Gefahr laufen,
- 32:04dann sozusagen an den Anforderungen vorbei zu
- 32:06implementieren, weil du halt gewisse Fälle nicht betrachtest.
- 32:10Dann mit deiner Lösung oder nicht abhängst.
- 32:12Obwohl man ja natürlich, und da können wir noch mal sozusagen
- 32:15auf die anfängliche Definition zurückgehen, es geht ja darum,
- 32:18sozusagen unnötige Komplexität zu vermeiden.
- 32:22Da muss man halt dann einfach gucken, dass man sozusagen den
- 32:24Blick fürs Wesentlichen. Nicht verliert, weil wenn man
- 32:29sagt, ich mach es jetzt ganz einfach, könnte es natürlich
- 32:31dazu kommen, dass man eben solche Edge Cases außer 8 lässt,
- 32:35die ja aber eigentlich sozusagen ne notwendige Komplexität haben
- 32:41um das Feature zu erfüllen. Genau, ganz genau.
- 32:46Weil deswegen steht da ja, also deswegen sagt man ja unnötig,
- 32:49weil an der Stelle ist es dann notwendig, wie du so schön
- 32:52gesagt hast, aber das ist die Gefahr, wenn ich jetzt so
- 32:57richtig straight in dieses Prinzip gehe, dass ich sowas
- 32:59dann übersehe und mir nicht denke, nee, es ist schon
- 33:02notwendig an der Stelle diese Komplexität zu erhöhen, sondern
- 33:06mir denke, Nein, Komplexität ist schlecht, es muss alles ganz
- 33:09einfach sein, und das ist ja, das ist halt diese Balance dann
- 33:14einfach. Zwischen dieser Einfachheit und
- 33:17Komplexität, das zu schaffen, also quasi richtig zu
- 33:21entscheiden, was es nötig und was ist unnötig, und das ist
- 33:24nicht einfach, das würde ich jetzt mich auch nicht
- 33:26hinstellen. In erster logischen Fall A ist
- 33:29es so nötig. Im Fall B ist es notwendig, so
- 33:32dass, so ist es ja nicht, aber wenn man es im Hinterkopf
- 33:35behält, dann Challenge man zumindestens die Entscheidung
- 33:37und das ist ja ne der wichtige Punkt dabei.
- 33:40Aber da spielen natürlich auch ne Menge Anforderungen wieder
- 33:42mit rein. Haben wir übrigens, liebe
- 33:44Zuhörer, lieber Zuhörer, wenn dich das auch interessiert und
- 33:47du vielleicht auch mal die ein oder andere Challenge mit
- 33:50Anforderungen in deinem. Software Entwicklungsleben
- 33:54hattest, dann hör dir gerne die Folge über Anforderungen an.
- 33:58Auf jeden Fall ja auch ein sehr spannendes Thema.
- 34:03Ja, aber magst du es noch mal n bisschen zusammenfassen?
- 34:05Also wir haben ja jetzt ne Menge Vorteile, aber auch
- 34:09Herausforderungen dabei beleuchtet auch mal so n
- 34:11bisschen. Ja, persönliche Erfahrung dazu
- 34:15gegeben. Magst du das noch mal jetzt so
- 34:17on Point zusammenfassen für unsere Zuhörerinnen und
- 34:21Besucher? Als Tino Ich versuche es.
- 34:24Aber schön einfach und keine unnötige Komplexität ist.
- 34:27OKOKOK jetzt ist aber ganz viel Druck auf mir.
- 34:31Nein, also. Das Kiss Prinzip soll dafür
- 34:35sorgen, oder? Das kann man im Hinterkopf
- 34:37behalten, um einfache, verständliche Lösungen zu
- 34:40generieren, die am Ende natürlich auch ne wartbare
- 34:44Software ermöglichen. Und.
- 34:48Da soll man halt einfach drauf achten.
- 34:50Natürlich das einfach zu gestalten, aber so einfach oder
- 34:54die Komplexität soweit zu vermeiden, wie es auch überhaupt
- 34:58funktioniert, das heißt, da ist diese diese schmale
- 35:00Gratwanderung, die wir gerade beschrieben haben, wichtig zu
- 35:03sagen, man versucht den Code möglichst einfach zu halten,
- 35:07klar, aber muss im Hinterkopf auch behalten, dass man
- 35:10sozusagen nicht aus Versehen den Wald vor lauter Bäumen nicht
- 35:13mehr sieht und sagt, jetzt vergesse ich aber auch noch
- 35:15verschiedene andere Edge Cases oder Rationalisier die Weg.
- 35:19Wäre ja zu komplex, weil wenn diese Komplexität wichtig ist
- 35:22und notwendig ist für einen einen Funktionalität, dann muss
- 35:27man die natürlich auch mit reinnehmen.
- 35:29So würd ich das jetzt zusammenfassen.
- 35:31Ja, das find ich ja. Hast du sehr gut auf den Punkt
- 35:34gebracht, unnötig, nicht unnötig komplex so.
- 35:39Vielen Dank dafür. Ich würd sagen, wir haben es
- 35:41doch, es ist ja n relativ kleines Prinzip, aber wo man
- 35:44sehr lange drüber reden kann. Ich würd aber jetzt sagen, dass
- 35:46wir es ausführlich besprochen haben, deswegen würd ich jetzt
- 35:48die Folge an der Stelle beenden, ist dann heut mal ne etwas
- 35:51kürzere Folge, wenn das für dich in Ordnung ist.
- 35:53So, ansonsten machen wir noch 30 Minuten off topic jetzt, da
- 35:57fällt uns schon was ein. Alle noch mal dran denken zögert
- 36:00nicht einfach mal die ersten Ideen niederzuschreiben und auch
- 36:04wenn das Ganze noch nicht optimiert ist oder was auch
- 36:07immer, erste Idee einfach mal in Anführungsstrichen Blatt Papier
- 36:11bringen und dann gucken wie sich das Ganze noch weiterentwickelt,
- 36:15aber damit auf jeden Fall erst mal anfangen, weil das auch
- 36:17gerade am Anfang wenn man anfängt mit der
- 36:19Softwareentwicklung finde ich auch hilft.
- 36:22Bevor man sich irgendwie keine Ahnung da total rein denkt und
- 36:26den Kopf zerfrisst einfach mal starten mit einer einfachen
- 36:28Lösung und dann kann sich das Ganze weiterentwickeln und das
- 36:33hilft für Starter, aber auch für Advanced Softwareentwickler und
- 36:36Entwicklerin. Auf jeden Fall, weil du ja denn
- 36:38in das Problem reinwächst sind die Aufgabenstellung und dann
- 36:41dir quasi on the Fly bei der Entwicklung dann die weiteren
- 36:46Lösungen oder Optimierungen einfallen.
- 36:48Aber du musst halt erstmal einen Fuß.
- 36:50In die Tür kriegen oder sowieso? Ist doch so eine Richtung, oder?
- 36:53Das war auf jeden Fall das, was mir auch zum Beispiel früher
- 36:56nicht früher auch stark limitiert hat.
- 36:58Deswegen wollt ich das gern noch mal.
- 37:00Ja, als Tipp mit n sehr wichtiger Punkt.
- 37:04Ja, dann würde ich sagen, bleibt mir auch nichts anderes übrig,
- 37:07als diese wunderschöne Folge abzumoderieren.
- 37:10Also liebe zuhören, liebe Zuhörer, falls dir die Folge
- 37:12gefallen hat und du oder oder Feedback hast, auch sehr
- 37:15wichtig. Unsere Podcast Mail findest du
- 37:18in den Shownotes. Meld dich sehr gerne bei uns,
- 37:20lass uns Feedback zukommen, allgemein zum Podcast zu diesem
- 37:24Thema wie du das Kiss Prinzip betrachtest, ob du es cool oder
- 37:27eher nicht so cool findest, vielleicht hast du auch
- 37:29Vorschläge für andere Themen, wir sind da echt offen, kommen
- 37:32Austausch mit uns oder schaut den anderen Plattformen von uns
- 37:34vorbei, die Links dazu findest du auch in den Shownotes
- 37:38empfiehlt gerne den Podcast weiter, wenn er dir gefällt, das
- 37:40hilft uns auch und würde uns super freuen.
- 37:43Du findest auch einen Link zu einer spendenseite, falls du dir
- 37:47denkst, hey Mensch Leute, ihr macht das richtig cool.
- 37:49Ich würde euch gerne unterstützen, dann schon mal
- 37:51jetzt vielen vielen Dank dafür. Ansonsten Liebe geht raus.
- 37:56Genau, vielen Dank fürs Zuhören. Ich würde sagen, in diesem Sinne
- 38:01der Folge Keep it simple und bis zum nächsten Mal deine Coding
- 38:05Buddies gemeinsam besser. Was?