Latest / Coding Buddies | Tech & Dev-Mindset / Cleverer Code? Klingt gut, ist es aber nicht!
Transcript
- 0:00Und ich weiß nicht, ob du dich auch schon mal auf so ein
- 0:02Experiment eingelassen hast, wo man dann sagt, Ja, komm, wir
- 0:04probieren noch mal a. Eigentlich hast du recht,
- 0:06wirklich gute überzeugende Argumente, man probiert A ist
- 0:09irgendwann an einem Punkt wo man sagt und deswegen haben wir
- 0:12nicht a genommen. Coding Buddies Dein Podcast rund
- 0:17um Softwareentwicklung und aktueller Tech News herzlich
- 0:20Willkommen. Moin Moin und herzlich
- 0:33Willkommen zur neuen Folge des Coding Bodys Podcast.
- 0:36Schön, dass du wieder eingeschaltet hast, deine
- 0:38Gastgeber, du weißt es schon, aber wie soll es auch anders
- 0:40sein, meine Wenigkeit, der Tino und auch der fantastische Fabi,
- 0:43den ich begrüßen möchte, er guckt mich schon an, er grinst
- 0:46mich an, er freut sich, er hat einfach Bock auf diese Folge
- 0:49heute fabi was geht ab Hallo Tino.
- 0:55Das wäre so geil so, er lacht schon, er freut sich.
- 0:58Moin er. Ist eigentlich gar nicht.
- 1:02Da, nee, ja, hi grüß dich Tino, Lass uns mal grüße dich hier
- 1:06jetzt mal heute schön ne neue Podcast Folge aufnehmen.
- 1:09Ich freue mich auch auf jeden Fall schon aufs Thema, aber
- 1:12bevor wir richtig losstarten geht's dir denn gut?
- 1:15Ja mir geht's gut soweit, ich hatte ein sehr entspanntes
- 1:18Osterfest. Ich konnte mich echt mal so
- 1:20richtig entspannen über die Feiertage, das war richtig gut.
- 1:23Aber jetzt steht ja wieder was Aufregendes vor der Tür, und
- 1:25zwar unser Flappy Buddy Turnier. Da heißt es natürlich wieder
- 1:31Action und was wie werden die Bots abschneiden?
- 1:34Also ich bin auf jeden Fall schon wieder richtig gespannt
- 1:36fabi. Ja, ich bin auch gespannt.
- 1:37Ich bin wahrscheinlich wieder wie beim letzten Turnier auch
- 1:39schon gespannter als eigentlich die teilnehmenden Mal gucken.
- 1:44Ich find das auf jeden Fall mal cooles Event, das findet ja auch
- 1:46am 29.4. Statt, so ist es auf jeden Fall
- 1:49stand jetzt geplant, ich denke mal das ziehen wir auch so
- 1:51durch. Und ja, liebe Zurin, lieber
- 1:53zurer, schalt auf jeden Fall mal bei Twitch ein. 20:00 Uhr geht's
- 1:56los und also generell ne genau. Ja, und bis dahin können wir ja
- 2:03noch n Thema bequatschen. Fabi, ich hab n ganz cooles
- 2:06Thema mitgebracht und zwar ist es jetzt heute mal wieder so ne
- 2:10typenfrage beziehungsweise philosophisch fast schon, aber
- 2:16wir versuchen das natürlich auch unsere Sicht der Dinge dahinter
- 2:19fachlich zu begründen. Also auch wirklich Pros und Cons
- 2:23wieder anzubieten. Und zwar soll es heute um das
- 2:26Stichwort cleverer Code gehen, da gibt es auch so n paar
- 2:31Artikel dazu, das ist eigentlich n ganz spannendes Thema und zwar
- 2:35einfach mal sich zu überlegen, was ist jetzt eigentlich besser
- 2:38so n richtig schön cleverer Code wo sich der Entwickler denkt so
- 2:42ach das hab ich so richtig schön als Einzeiler gemacht.
- 2:44Das ist so richtig smart gelöst. Oder ist es vielleicht doch
- 2:48besser zu sagen, nee, ich schreib lieber n paar mehr
- 2:51Zeilen? Das Ganze ist verständlich und
- 2:53lesbar und genau das Thema möchte ich mit dir heute mal
- 2:57beleuchten. Ja, auf jeden Fall.
- 2:59Also mir fällt da immer direkt erstmal ein, da kann man, das
- 3:03kann man sich finde ich, so schön vorstellen, dass man und
- 3:06ich glaube, das kennen vielleicht viele, dass man sagt,
- 3:08so ey, ich mache jetzt mal wieder eine Aufgabe auf, zum
- 3:11Beispiel so, so Code Wars oder Lead Code, also weißt du, wo du
- 3:13so so kleine Aufgaben hast, mit denen du dich challengen kannst.
- 3:17Ne, und dann liest du dir so die Aufgabe durch und denkst dir so,
- 3:21ja, jetzt geht's los, weißt du, dein Kopf fängt an zu rattern,
- 3:23wie löse ich das Ganze? Und dann kommt man ja mal.
- 3:27Zumindest das ist ne Sache, da geht es mir so, da kommt man
- 3:30immer relativ schnell dann auf den Punkt, dass man sagt, ja,
- 3:34ja, ich will jetzt, ich lös das irgendwie.
- 3:36Na ja, ich hab n Algorithmus im Kopf, aber warte, warte warte
- 3:39ich, ich krieg das noch besser hin, ich ich das das das könnte
- 3:42n Onliner werden, ah wie braucht wie ist die Syntax dafür, dass
- 3:45ich den Onliner hinkriege, was muss ich da, welche Funktion
- 3:47gibt es? Ah dann ratter zweiter, Ratter
- 3:49zweiter und dann kommt also. Das ist ja dann so n so n
- 3:54Gefühl, dass man sich so denkt. Ich will mir nicht die Blöße
- 3:57geben, weil ich kann das besser, ich kann das in dem One Liner,
- 4:00weißt du und ja, ich find das, manchmal hat man dann auch
- 4:04direkt erstmal so, da überschlagen sich die Gedanken
- 4:09und man kommt eigentlich erstmal zu gar nichts, weil man sich
- 4:12erstens denkt, OK ich hab n Algorithmus im Kopf, du
- 4:14versuchst ihn direkt zu optimieren.
- 4:16Und hast noch nicht mal irgendwas hingeschrieben.
- 4:18Weißt du so dieses typische, wenn du jetzt wirklich nach Tdd
- 4:21zum Beispiel Codes sagst? Du schreibst einen Test.
- 4:23Du machst eine Implementierung und dann kannst du hinterher
- 4:25immer noch refact an alles cool, aber man versucht halt immer
- 4:29erstmal gleich, zumindest kenne ich das so je weniger Code desto
- 4:33besser One Liner, super clever und ob man es aber jetzt
- 4:37sozusagen dann schafft oder nicht, diese One Liner Lösung
- 4:41nenn ich es jetzt mal hinzukriegen sei mal
- 4:43dahingestellt, aber. Die Frage ist ja, wie du schon
- 4:48so schön eingeleitet hast. Ist es jetzt wirklich immer gut
- 4:51auch so ein One Liner zu haben? Weil klar es gilt als clever ne,
- 4:55aber es ist jetzt also da steckt ja zwangsläufig ne Menge
- 5:01Überlegung hinter, dass du das so komprimiert bekommst, ne?
- 5:05Ja. Ich find es halt auch spannend,
- 5:08wenn wenn wir jetzt noch mal das Thema Code Wars aufgreifen, weil
- 5:11in unseren Live Streams auf Twitch machen wir ja auch öfter
- 5:14mal Code Wars Aufgaben und lösen die so zusammen mit der
- 5:17Community, überlegen uns dann wie könnte man das lösen, was
- 5:20könnte man verbessern und da ist man ja auch immer so getrieben
- 5:25zu optimieren ne also wir versuchen ja auch wirklich gute
- 5:28Lösungen einzureichen, sie zu minimieren in Sachen Codezeilen
- 5:33auch mal ruhig n kleinen Kniff einzubauen.
- 5:37Aber sind trotzdem am Ende immer Verfechter davon, dass man sich
- 5:42diese Funktion anguckt und sie noch versteht, was da passiert?
- 5:45Und da ist nämlich genau auch wieder der Punkt, wenn ich zum
- 5:47Beispiel bei Codewars dann meine Lösung einreiche, sehe ich ja,
- 5:51und das finde ich auch sehr cool, an der Plattform die
- 5:54Einreichung der anderen ne und dann kann man die bewerten, dann
- 5:57gibt es ja clever glaube ich wirklich auch als Feld ne so
- 6:02kann kannst du Punkte vergeben. Und dann sind da manchmal
- 6:04Lösungen bei, die wirklich sehr kurz und knapp sind, aber die
- 6:09man dann einfach auch nicht mehr sofort versteht.
- 6:11Und genau da ist nämlich der Knackpunkt ne, so dass wir
- 6:14sagen, nein, wir wollen, dass man diese Funktionen, die wir
- 6:17geschrieben haben, noch verstehen kann, und das ist
- 6:21nämlich auch der große Unterschied, wenn ich ne Code
- 6:23Ross Aufgabe mache, dann guck ich mir eine Funktion an und
- 6:26versuch da denn halt mich so n bisschen auszutoben die
- 6:29hocheffizient zu machen oder oder super smart zu lösen.
- 6:33Aber es ist halt nur eine Funktion, ne und da müssen jetzt
- 6:35nicht andere Entwickler noch mit arbeiten oder es muss nicht
- 6:38eingebettet werden in ein großes Projekt und deswegen da ist halt
- 6:41wirklich die Frage. Da.
- 6:43Kannst du flexen, was genau? Da kannst du ruhig mal flexen,
- 6:47aber was für n Eindruck macht das auch gerade auf Junior
- 6:51Developer zum Beispiel. Und da möchte ich mal was mit
- 6:55dir bequatschen, weil das fand ich sehr witzig.
- 6:57Und vielleicht erkennt sich da der eine oder andere oder die
- 7:01andere wieder es. Gibt so gefühlt.
- 7:04Phasen im Entwicklerleben, die man so durchschreitet, und die
- 7:08habe ich auch an mir selbst zum Beispiel wahrgenommen.
- 7:12Auch jetzt, so rückblickend. Das heißt, wenn du so
- 7:14beispielsweise Junior dev bist und noch am Anfang deiner
- 7:17Karriere stehst. Dann codest du ja oft.
- 7:20Also dann ist dein Algorithmisches denken noch
- 7:22nicht so ausgeprägt beziehungsweise du hast halt
- 7:25einfach noch nicht so viel Erfahrung gesammelt und man
- 7:28codet meistens oder oft auch unabsichtlich kompliziert.
- 7:34Ne, gehst halt so Wege die du vielleicht kennst, die aber
- 7:37nicht so optimal sind, dafür vielleicht umständlich sind, ja
- 7:41zum Beispiel also sehr verschachtelter Code oder wie
- 7:45auch immer. Dann kommst du irgendwann in
- 7:47dieses Midlevel, dann bist du kein Junior Developer mehr, bist
- 7:50aber auch noch nicht so Senior Death, sondern du bist halt so
- 7:53normaler Developer. Aber normal jetzt nicht
- 7:55abwertend. Ne, du hast halt schon so n
- 7:57bisschen Erfahrung gesammelt und da war das bei mir zum Beispiel
- 8:00und das war auch gerade so meine Embedded Zeit in C, dass ich mir
- 8:04dachte, Na jetzt musst du ja zeigen, dass du es kannst, ne
- 8:08und dann fängst du halt an so. In Anführungsstrichen clever zu
- 8:12coden und dann hab ich da halt auch so Lip Funktionalitäten
- 8:15implementiert und das waren halt auch teilweise ein Zeiler so ne
- 8:19also oder hocheffizient einfach, aber so richtig verstehen konnt
- 8:24die keiner. Also dann kamen halt auch
- 8:25Kollegen an und meinten Ey ich wollt da irgendwie die Library
- 8:28erweitern aber irgendwie check ich die Funktion nicht.
- 8:31Und du denkst dir so in deinem Midlevel ja, weil sie halt super
- 8:35clever ist. Ne guckst selbst drauf nach
- 8:38Wochen und denkst dir oh warte mal.
- 8:39Jetzt muss ich aber selbst erst mal überlegen und das ist halt
- 8:42schon n richtig schlechtes Anzeichen zu sagen, ich muss
- 8:45jetzt selbst noch mal überlegen, was ich da gemacht hab, selbst
- 8:47rausgeritzt war. Ja richtig, so ne, es
- 8:50funktioniert zwar, aber ich check es halt nicht mehr und
- 8:53dann bist du irgendwann senior def und denkst dir so, oh mein
- 8:55Gott, das darf auf keinen Fall passieren, ich muss meinen Code
- 8:58mit Absicht so simpel wie möglich schreiben, nicht
- 9:01schlecht simpel bedeutet nicht schlecht ja sondern so nach dem
- 9:04Motto wenn er irgendwie langweilig aussieht als wenn da
- 9:07nichts Cooles passiert, dann ist das schon n gutes Indiz dafür,
- 9:10dass er auch gut ist. Ne, weil dann ist er klar
- 9:12strukturiert, einfach verständlich und.
- 9:16Wie soll ich sagen, er ist halt für alle zugänglich und das
- 9:19finde ich ist halt spannend, wenn man so diese 3 Level dann
- 9:22sich. Durchschaut sozusagen.
- 9:23Oder mal selbst überlegt, wie das bei einem war.
- 9:25Ich hab da mal so n Spruch gehört, den finde ich eigentlich
- 9:28ganz zutreffend und zwar wenn du sagst, du hast also du hast zum
- 9:33Beispiel n komplexes Problem und guter Code.
- 9:36Wenn du gut Code hast und dieses Problem dir anguckst, dann sieht
- 9:40es einfach aus. Also dass du dir denkst, Oh, der
- 9:43Code, das ist ja, da ist ja nichts Komplexes dran, das ist
- 9:45ja super easy und das finde ich, ist irgendwie spannend so, weil
- 9:49guter Code macht etwas komplexes einfach, weißt du.
- 9:56Ja, also. Er sieht einfach aus, aber
- 9:58covert ein komplexes Problem und sage ich mal cleverer Code, der
- 10:03sieht. Zwar sehr, also der, der ist
- 10:07halt schwer zu verstehen, sieht aber auch super esoterisch aus.
- 10:09Weißt du, so ganz schick und toll und so weißt du, das ist
- 10:13halt so so Code der Flex, so weißt du so nach dem Motto so ja
- 10:16toll, aber es bringt ja auch nix wenn du dann zum Beispiel
- 10:18wirklich mit deinem Kollegen irgendwie hingehst und der kommt
- 10:21zu dir und sagt ja. Ich verstehe das irgendwie nicht
- 10:24mehr ne und du sagst ja, das ist ja auch, lass mal gucken, wer
- 10:27hat das denn da hin geballert ne und dann weißt du so dieses
- 10:30typische gitblame ach ja, das war ich, das verstehe ich selber
- 10:34nicht mehr, weil ich ja ja genau, also ich fand das ganz
- 10:38schön, weil halt guter Code einfach ein komplexes Problem
- 10:41einfach aussehen lässt und ich finde das ist irgendwie eine
- 10:43ganz nette Beschreibung dafür. Ich hatte auch mal ein ganz
- 10:47cooles Motto gehört, so nach dem Motto.
- 10:53Am Anfang willst du viel Code schreiben, ne, du willst halt so
- 10:55den Code reinhacken und schön am Coden sein und später gerade so
- 11:00als Senior Death bist du froh, wenn du Code löschen kannst.
- 11:02Ne, weil da genau darum geht es, dass du es geht nicht darum viel
- 11:05zu schreiben, sondern den Halt effizient zu schreiben und
- 11:09trotzdem verständlich ne und wenn du dann den Moment hast,
- 11:12dass du sagst ha die Funktion brauch ich nicht mehr, das ist
- 11:15halt denn so später so n so n Erfolg weißt du das?
- 11:17Das fand ich halt auch ganz passend ja voll also definitiv.
- 11:22Und ich find da kann man halt auch n bisschen das so abgrenzen
- 11:26und sagen, OK, du hast es gibt cleveren Code ne so für die
- 11:30Folge jetzt und es gibt guten Code ne und manchmal also es es
- 11:34gibt sicherlich auch eine Schnittmenge zwischen cleverem
- 11:37Code und guten Code, das will man ja gar nicht hinstellen,
- 11:39dass man sagt das eine ist so und das andere ist so und es
- 11:41geht nur entweder das oder das ne, aber man muss halt eben
- 11:45gucken weil wie gesagt, es ist ja auch nicht, es ist ja auch
- 11:49nicht schlimm wenn du bei so einem bei so einer Plattform wie
- 11:52zum Beispiel Code Wars oder so, dann versuchst es möglich clever
- 11:56zu machen, ne, also das ist ja auch völlig valide, nur man muss
- 12:00halt immer gucken, das ist n abgekapselter Bereich, das hast
- 12:04du ja auch so schon so schön gesagt ne und ich fand übrigens
- 12:06den Begriff ganz lustig dazu, das heißt den hab ich vorher
- 12:09noch nie gehört jetzt so. Beim bei der Vorbereitung auf
- 12:12die Folge habe ich den Begriff Code Golfing gefunden und den
- 12:17kannte ich nicht. Aber es ist halt so witzig, weil
- 12:19du erst mal wie beim Golfen versuchst, du halt mit möglichst
- 12:22wenig Schlägen ins Loch zu treffen, ne den Ball und hier
- 12:25versuchst du halt mit möglichst wenig Lines auf Code deines
- 12:27Problem zu lösen. Die Tests mit Code Wars zu
- 12:29bestehen und dir das Licht zu kriegen, aber das fand ich
- 12:31irgendwie ganz lustig, weil ich weiß nicht liebe zorin lieber
- 12:34zoro, sag uns gerne ob du das schon vorher kanntest.
- 12:37Also mir war es erst mal ein neuer Begriff mir auch, aber ich
- 12:39finde den auch sehr witzig den Begriff.
- 12:41Aber wie gesagt, was ich noch sagen wollte ist also du hast
- 12:44ja, du hast ja auch gesagt, OK man muss gucken in welchem Scope
- 12:48man sich befindet, ne und ja Code wars ist n scope, da kannst
- 12:52du das ja machen weil dieser Code wird nirgendswo in dem
- 12:55Sinne verwendet, aber wenn du jetzt wirklich sagst OK man
- 12:59verwendet sowas in der Praxis oder zum Beispiel im sag ich mal
- 13:02wirtschaftlichen Kontext, dann kann es natürlich echt n
- 13:06bisschen schwierig werden ne wie zum Beispiel bei dem Beispiel
- 13:09was du eben gebracht hast mit deinem.
- 13:11Embedded Code? Ja, da können wir auch später
- 13:15noch mal drauf eingehen, weil es gibt natürlich Situationen, wo
- 13:20es nicht anders geht oder wo, wo es ja nicht mit Absicht so
- 13:24clever dargestellt wurde, sondern wirklich ein
- 13:26hochkomplexes Problem ist, was nicht mehr so einfach
- 13:28dargestellt werden kann. Und erinnere mich da noch mal
- 13:32dran, weil da ist Stichwort Library dann halt auch ein guter
- 13:35Ansatz. Aber ich möchte mal vorher noch
- 13:37mal kurz zu diesen One Line ankommen, also zu dem
- 13:40vermeintlich cleveren Code. Welche Probleme siehst du denn
- 13:44da drin? Also was für mich so ein
- 13:46Riesenproblem ist und das habe ich ja gerade schon angesprochen
- 13:49ist, wenn du später noch mal drauf guckst oder ein Kollege
- 13:51dich da was zu fragt, dann ist es einfach schwer zu debuggen,
- 13:55also wirklich ihn noch mal zu verstehen und Fehler da drin zu
- 14:00finden, am besten noch unter Zeitdruck weißt du die Software?
- 14:03Läuft nicht mehr, Tests sind rot und du sollst jetzt irgendwie
- 14:05schnell n fix finden und guckst dann genau auf so n Code.
- 14:08Denkst du so ey nee, bitte nicht, ja, da sind wir ja erst
- 14:10theoretisch im wirtschaftlichen Kontext, oder nicht?
- 14:12Ja, das ist ja, aber ich meine das, aber das ist so der das
- 14:15Problem, weswegen so n Code da quasi produktiv sag ich mal
- 14:20problematisch sein kann einfach was siehst n du dann noch was
- 14:24für mich so n bisschen problematisch sein könnte an der
- 14:26Stelle ist angenommen du bist jetzt zum Beispiel n Junior def
- 14:29ne und hast jetzt. Arbeitest halt so für für die,
- 14:34ich sag mal damit du ne bisschen Gehirnjogging betreibst, machst
- 14:38du sowas wie Code was und siehst halt immer so hochoptimierte
- 14:40Lösungen und denkst dann eventuell noch bevor du ins
- 14:44Arbeitsleben einsteigst. Also in diesen wirtschaftlichen
- 14:47Kontext ne hast du das Gefühl so wird programmiert, das ist diese
- 14:52Art von Programmierung die angestrebt wird, das ist
- 14:54unbedingt wichtig, dass ich das kann, ne und das ist vielleicht
- 14:59schon n bisschen problematisch, weil angenommen.
- 15:01Du drückst dir das so drauf, dass du alles immer komplett
- 15:04ausoptimierst, ne? Dann, dann hast du irgendwann
- 15:07tatsächlich n Problem in im wirtschaftlichen Kontext, weil
- 15:12dann kommt es nämlich genau zu diesem Problem, die du
- 15:14eigentlich gerade beschrieben hast.
- 15:15Du musstest die backen, du vielleicht schnalzt es nicht,
- 15:18was da genau passiert, also andere Schnallst nicht du
- 15:21vielleicht selber irgendwann auch nicht mehr nach einer
- 15:23gewissen Zeit und das ist halt einfach am Ende verbrennst du da
- 15:27ne Menge an Geld. Ne, wenn du diesen diesen
- 15:30zeitlichen Overhead hast, weil du erstmal angefangen hast.
- 15:33Clevere, also clevere Lösungen zu schaffen, ne, so wie gesagt
- 15:36ist ja nicht immer Schlimmes, hilft ja auch in diesen
- 15:39Plattformen das zu machen, einfach um sag ich mal zu
- 15:44trainieren um um überhaupt das Verständnis dafür zu kriegen,
- 15:47was ist denn möglich, was geht denn so heißt aber noch lange
- 15:50nicht, dass man dann auch wirklich unbedingt so coden muss
- 15:53um halt eben nen guten Code zu haben, der halt eben auch
- 15:55wartbar und verständlich ist. Ne?
- 15:58Weil oft ist das ganze ja auch so n bisschen ego getrieben ne
- 16:01und das finde ich halt auch schwierig.
- 16:03Angenommen du zeigst ne Lösung oder so und dann siehst du halt
- 16:08danach die Lösung zu One Liner oder so, dann denkst du so also
- 16:12erstmal kannst dich selbst so n bisschen runterziehen,
- 16:14vielleicht sogar n bisschen so das imposter Syndrom ankicken
- 16:17ja, aber andererseits denke ich mir so warum kommen Leute um die
- 16:21Ecke und sagen ja ich hab es aber in One Liner gemacht.
- 16:24Das ist ja irgendwie auch so n Ego getriebenes Ding, so nach
- 16:26dem Motto Ich kann das, ich kann damit beeindrucken ne also ich
- 16:29hab das geschrieben um Leute zu beeindrucken oder vermeintlich
- 16:33oder hoffentlich zu beeindrucken so das muss ja die Intention
- 16:35dahinter sein und kauf mir aber dadurch dieses Unverständnis,
- 16:40also im Team ein oder beziehungsweise auch das oftmals
- 16:44der Test sag ich schon, darauf will ich hinaus der Code.
- 16:48Schwer testbar wird ne, also so One Liner Abzutesten, die
- 16:52oftmals dann auch nicht mehr modular sind, dann weißt du gar
- 16:54nicht wie du die Testfälle dafür richtig erzeugen kannst.
- 16:57Wie du überhaupt es schaffst das vernünftig abzutesten.
- 16:59Ja, und das finde ich halt super problematisch dabei.
- 17:04Ich hatte also ich hatte auch n Fall, ich glaub das hatte ich
- 17:06auch mal in einer in einer Folge erwähnt.
- 17:08Da hat ein alter Kollege von mir auch ein Modul geschrieben im
- 17:13Frontend, da ging es um so Tabellen und in diese Tabellen
- 17:16konnten verschiedene Daten rein, also zum Beispiel ein String,
- 17:20also ein String. Jetzt aber zum Beispiel ein
- 17:22Datum oder so, also wirklich ein String oder ein Daten, die einen
- 17:27gewissen Kontext beinhalten, und da konntest du eine Menge
- 17:32Reinschmeißen und du konntest aber jede.
- 17:36Tabelle egal was für n Datentyp du für diese Spalte Reingegeben
- 17:40hast, konntest du sortieren nach Größe so und damit man das jetzt
- 17:45nicht tausendmal wieder machen muss und sagen muss, ja komm
- 17:48ich, wenn dieser Datentyp da ist, müssen wir es so sortieren,
- 17:51wenn dieser Datentyp da ist, müssen wir es so sortieren,
- 17:53wurde halt ne sehr sehr allgemeine Komponente
- 17:55geschrieben die egal was reinkam es irgendwie geschafft hat das
- 17:59zu sortieren, so wie es gewünscht war.
- 18:03Und an sich ist das ja auch erstmal gut.
- 18:05Also es ist ja, klingt ja auch erstmal sinnvoll, das zu machen,
- 18:08weil es ja auch dann, du kannst halt alles reinschmeißen, du
- 18:12kannst es super entspannt verwenden, diese Komponente nur
- 18:14wie ich meinte, es wird irgendwie sortiert, das war halt
- 18:18tatsächlich so, es wurde irgendwie keine Ahnung, ich
- 18:20wusste nicht wie, also wir mussten das dann erweitern und
- 18:23da kam es dann zum Problem, habe ich mit einem anderen Kollegen
- 18:26haben wir zu zweit versucht das zu erweitern oder anzupassen,
- 18:30diese Komponente und das war. Echt richtig, richtig schwierig
- 18:34also da haben wir glaub ich erstmal ne schon ne große Zeit
- 18:38rein investiert um zu verstehen was da passiert um es dann
- 18:41hinterher anzupassen und das ist genau der Punkt so.
- 18:44Das ist ja bei manchen auch n Grund solchen Kurs zu schreiben.
- 18:48Ne, das hab ich auch schon öfter gehört, dass es ne Art
- 18:50jobsicherung ist und das find ich ist halt völlig der falsche
- 18:53Ansatz zu sagen ich schreib mit absichtlich so komplizierte
- 18:57Komponenten oder Module, damit nur ich als Autor dahinter.
- 19:02Das noch verstehe ja also, dass ich quasi nicht ersetzbar bin am
- 19:08Ende. Aber was ist, wenn du jetzt
- 19:10wochenlang daran nicht arbeitest und drauf guckst und einer von
- 19:12dem bist, der es nicht versteht, dann hast du ja dir zweimal ins
- 19:16Knie geschossen, aber wie sagt man also das ist ja einmalig
- 19:21gut, zweimal ins Knie schießen, auf gar keine, nicht gut, nicht
- 19:24gut. Weil also Fakt ist ja einfach,
- 19:27dass du halt, sag ich mal, in der Industrie, also wenn du
- 19:30wirklich produktive Software entwickelst oder professionelle,
- 19:34dann ist der Fokus immer auf Wartbarkeit, auf
- 19:37Verständlichkeit, ne und Skalierbarkeit.
- 19:40Das ist das sind so die Punkte die Gold wert sind am Ende und
- 19:44nicht ja die Software ist an sich nicht so geil, aber Modul
- 19:47XY der Teil da drin ist schon richtig clever geschrieben, das
- 19:51sieht doch am Ende der Kunde eh nicht meistens ja richtig.
- 19:55Ja, ich mein, bringt dir denn so n kryptischer Code gar nichts am
- 19:58Ende? Nee, dem musst du dann 1000
- 20:00Jahre lang eventuell noch debuggen, damit du verstehst ne,
- 20:03was wir gerade gesagt haben, dazu hatte ich auch mal n ganz
- 20:05lustiges Zitat gelesen und zwar von Brian Kerninghan und da geht
- 20:10es im Kern darum, dass den Code zu debuggen eigentlich doppelt
- 20:14so schwer ist oder doppelt so anstrengend, sag ich jetzt mal,
- 20:17als wenn man den Code schreibt. Wenn du jetzt n super cleveren
- 20:20Code schreibst, also wo du wirklich.
- 20:23Alles Rausgepresst hast aus deinem Hirn.
- 20:26Wie willst du diesen Code dann noch debuggen können, wenn es
- 20:28halt noch doppelt so schwer ist? Ne, also ist dann irgendwie
- 20:31nicht möglich, deswegen immer schön entspannten Code
- 20:34schreiben, den man zur Not auch noch mal debuggen kann, ne?
- 20:37Lassen somit die Backen. Nee, aber ich find das Zitat
- 20:39auch extrem passend, weil es ist einfach so, wenn du Wochen
- 20:43später denn drauf schaust, musst du halt gefühlt noch mehr
- 20:46Aufwand reinstecken um ihn die backen zu können, um ihn
- 20:49überhaupt wieder verstehen zu können und Fehler da drin zu
- 20:51finden als in dem Moment wo du ihn geschrieben hast.
- 20:53Also ich find das super zutreffend, ich mag das sehr,
- 20:55das Zitat vor. Allem find ich auch wenn man
- 20:58jetzt das Ganze noch mal n bisschen, wenn man jetzt da noch
- 21:00mal n bisschen weiter geht. Merkt man eigentlich auch, wie
- 21:03wichtig Code Reviews eigentlich sind, also was dahinter steckt
- 21:07weißt du, weil wenn du jetzt zum Beispiel also debacken ist für
- 21:11mich so n bisschen sowas wie ne du bist n kleiner Sheriff und du
- 21:15guckst was für Probleme da ne wo wo die wo die Crimes versteckt
- 21:21sind sozusagen. Und wenn du jetzt aber n Code
- 21:24Review machst machst du im Endeffekt so n bisschen sowas
- 21:27wie OK du hast so diese Prämisse, dass du sagst.
- 21:30Es ist jetzt vielleicht kein Bug an sich erstmal mehr drin, davon
- 21:34kann man vielleicht ausgehen. Ja, du checkst ja trotzdem, ob
- 21:37du irgendwas findest, was vielleicht nicht ganz hinhaut
- 21:40oder wo man vielleicht noch was optimieren kann und so, aber das
- 21:43halt ohne die Bagger und ohne dass du im Normalfall den Code
- 21:46ausführst. Ne.
- 21:46Also wenn du jetzt einfach nur sagst, ey lass mal über die Divs
- 21:49gucken, ne und deswegen ist es halt.
- 21:53Wirklich wichtig und auch ne wirklich ne spannende Aufgabe.
- 21:57Auch n richtiges Code Review zu machen und nicht einfach nur mal
- 22:00drüber zu fliegen und sagen ja passt schon passt schon, passt
- 22:01schon ne. Also das noch mal am Rande ja
- 22:03aber zu Code Reviews haben wir auch schon mal ne Folge gemacht
- 22:07also wer hat Interesse? N super wichtiges Thema, gerade
- 22:12weil du halt dadurch n Feedback kriegst, ob dein Code den du
- 22:16geschrieben hast, verständlich ist.
- 22:17Ne, weil wie heißt das so schön? Klarer Code muss kein
- 22:20Zufallsprodukt sein, du kannst gibt halt Methoden, Mittel und
- 22:23Wege einfach zu einem klaren Code und zu einer guten Software
- 22:28zu kommen und da 10 Reviews halt absolut mit rein, ne genauso wie
- 22:32ne gute Planung wie du am Anfang meintest.
- 22:35Ja wenn du jetzt natürlich. Sofort in die Richtung cleverer
- 22:38Code denkst und dir überlegst, wie du im im kleinsten Detail im
- 22:42wenigsten wenig Zeilen wie möglich irgendwie diesen Code
- 22:45schreiben möchtest, um so ein kleines Problem zu lösen, dann
- 22:48hat das Halt nicht viel mit Planung zu tun.
- 22:50Das ist halt einfach Perfektionismus am Ende im
- 22:53negativen Sinne meiner Meinung nach, sondern Planung, wie
- 22:56integriert sich das in die Gesamtsoftware ja, also wie
- 22:59sieht meine Struktur aus, ist die nachhaltig, muss ich was
- 23:02refactern das sind ja alles. Punkte, die dann als Ergebnis
- 23:07haben sauber zu coden. Ja, dass du halt sagst, ich
- 23:10Teile zum Beispiel in kleine, logisch getrennte Codeabschnitte
- 23:13oder Module auf ja Klassen von mir aus ja, wo auch immer wir
- 23:17uns gerade bewegen oder oder ich definiere wirklich ne saubere
- 23:20Schnittstelle zwischen Modulen, das sind alles so Punkte, die
- 23:24reichlich überlegt werden müssen und da sitzt nachher.
- 23:28Die eigentliche Cleverness sage ich mal zu sagen.
- 23:31Wenn du das gut meisterst, dass wie gesagt der Code am Ende
- 23:34langweilig aussieht, wie wir es ja eingangs erwähnt hatten, was
- 23:37quasi n Ziel ist, was man erreichen möchte, wenn der Code
- 23:40wirklich so auf den ersten Blick so, ja ist nichts Besonderes
- 23:44drin, dann ist es wahrscheinlich gut gecoded ja genau, und das
- 23:47ist das eigentliche Ziel dahinter, ne was man nie
- 23:50vergessen sollte, sind natürlich auch die Tests dahinter, die
- 23:54auch immer dafür sorgen, um auch zum Beispiel auch.
- 23:58Gutem Code mögliche Bugs vorzuenthalten, weil wie gesagt
- 24:02die Backen nervt, aber an der Stelle sei noch mal gesagt, dass
- 24:06es natürlich auch wichtig ist und dass es hier auch ne Sache,
- 24:10strukturplanung, vielleicht auch refactoring.
- 24:13Auch in puncto Tests, weil es ist natürlich auch wichtig, dass
- 24:16jetzt nicht zu viele Tests da sind, sondern halt wirklich
- 24:19fokussierte Tests, also die wichtigen Tests.
- 24:21Also du kannst so viele Tests schreiben, die am Ende belanglos
- 24:24sind oder nicht wirklich das Abtesten worum es geht, hat man
- 24:28auch selber schon erlebt, habe ich auch schon erlebt, habe auch
- 24:31schon mal ein Test geschrieben, wo ich mir irgendwann dachte, so
- 24:33eigentlich brauche ich den gar nicht, sondern dass man halt
- 24:36wirklich die Basisszenarien halt eben ab testet, testet und
- 24:40vielleicht dann noch die Edge Cases.
- 24:43Ja, genau, das ist ein sehr guter Punkt.
- 24:46Also es geht ja nicht nur darum, die die eigentliche Software,
- 24:49den eigentlichen Code sauber zu halten und auch zu refactern,
- 24:52sondern natürlich genauso dein Test Framework dahinter, was
- 24:55mindestens genauso viel Aufmerksamkeit braucht um
- 24:59einfach auch eine wirklich gute Testabdeckung am Ende bieten zu
- 25:02können, ganz klar, aber dann lass uns, wir haben es ja jetzt
- 25:06schon mal so ein bisschen gesagt, dass so.
- 25:09Klarer, verständlicher Code, kein Zufallsprodukt sein muss.
- 25:12Aber warum ist es denn am Ende aus deiner Sicht schwieriger,
- 25:17das zu erreichen und eigentlich erstrebenswert oder die
- 25:19Eigentliche, das eigentliche, was Applaus geben sollte, wenn
- 25:23jemand schafft wirklich seine Software klar strukturiert zu
- 25:26entwickeln und auch gut verständlich.
- 25:30Na ja, also du hattest ja auch schon mal gesagt, Planung
- 25:32beispielsweise, du musst das Ganze auch im Team normalerweise
- 25:36abstimmen, weil du ja auch oft halt eben im Team arbeitest.
- 25:39Und es kommt unter Umständen auch noch mal zu zusätzlicher
- 25:42Dokumentation. Das ist jetzt auch wieder so ein
- 25:45Punkt, ne, weil gerade jetzt, wenn es jetzt zum Beispiel um
- 25:47Doku geht, ist es halt immer eine Frage, auf welcher Ebene
- 25:50wird dokumentiert, was ich oder wo ich die Erfahrung gemacht
- 25:53habe, ist, dass es durchaus hilfreich ist.
- 25:56Manchmal also angenommen, du bist an einem bestimmten Punkt,
- 25:59wo du Code schreibst und du dir denkst, mache ich es jetzt auf
- 26:02die eine Weise oder mache ich es auf die andere Weise?
- 26:05Ich weiß es nicht genau, dann fängst du an mit vielleicht noch
- 26:08einem Kollegen oder einer Kollegin darüber zu diskutieren,
- 26:11wie wollen wir es denn jetzt genau machen, A oder b.
- 26:14Und dann entscheidet man sich im Normalfall irgendwann vielleicht
- 26:18noch nach einem Handel mit dem gesamten Team für sagen wir mal
- 26:21B. Und ich hab aber schon so oft
- 26:23gehabt, dass du irgendwann an den Punkt kommst.
- 26:25N halbes Jahr später, n Jahr später, wann auch immer, dass du
- 26:28dir denkst, warum haben wir b genommen, warum haben wir nicht
- 26:31a genommen, ich weiß, kennst du das, dass du dann sagst, so,
- 26:35also vielleicht ist es sogar alles wieder gechallend genau,
- 26:37vielleicht kommt n neuer Kollege rein oder was auch immer und
- 26:39dann klar, neuer Kollege, neue Kollegin, neuer Wind, absolut
- 26:45ne, man soll ja auch neue Ideen mit reinbringen, das ist ne
- 26:47klare Sache was ich meine ist, dass man auch durchaus in diesem
- 26:51Beispiel was ich gerade. Erwähnt habe auch oftmals an den
- 26:54Punkt kommt, dass irgendjemand das Challengen sagt.
- 26:56Wieso, wieso haben wir nicht a genommen, was war?
- 26:58NA jetzt das Problem, wir können doch mal A ausprobieren und ich
- 27:02weiß nicht ob du dich auch schon mal auf so n Experiment
- 27:04eingelassen hast, wo man dann sagt ja komm wir probieren noch
- 27:06mal a. Eigentlich hast du recht
- 27:07wirklich gute überzeugende Argumente, man probiert A ist
- 27:11irgendwann an dem Punkt wo man sagt und deswegen haben wir
- 27:14nicht a genommen so was ja. Und.
- 27:19Manchmal muss man durch den Paint noch mal durch und das ist
- 27:22halt so bescheuert und deswegen das mein ich mit Dokumentation,
- 27:25dass man sich an solchen Scheidewegen halt wirklich mal
- 27:27überlegt, welche also warum haben wir uns für B entschieden
- 27:31und das zu dokumentieren um hinterher wirklich noch mal
- 27:33schneller abrufen zu können, ohne diesen Exkurs noch mal zu a
- 27:37zu machen zu sagen, ja gut, das waren die Gründe und die
- 27:40Situation hat sich nicht mehr geändert, b bleibt so wie es
- 27:43ist. Ja, das ist n guter Punkt und
- 27:46auch genau der Richtige, oder? Der richtige Scope, um zu
- 27:50dokumentieren weil nehmen wir jetzt noch mal die Kehrseite,
- 27:54wenn ich quasi jede Zeile Code anfange zu dokumentieren, und
- 27:59das hatte ich auch schon in Projekten, wo es so von höherer
- 28:02Ebene quasi gewollt war zu sagen, Nein, ihr müsst euren
- 28:05Code dokumentieren, wo ich mir so denke, na warte mal.
- 28:08Aber wenn ich jede Zeile Code irgendwann dokumentiere, dann
- 28:11ist mein Code einfach nicht gut, das würde, da würde ich mir ja
- 28:13selbst eingestehen, dass ich es nicht gut programmiert habe,
- 28:16weil es ja anscheinend nicht verständlich ist.
- 28:18Und das ist halt auch n Thema. Warum klarer Code auch
- 28:22schwieriger ist, weil dein Ziel muss ja sein, dass jede Zeile
- 28:26Code so klar und nachvollziehbar ist.
- 28:29Ja, und so quasi wie hattest du mal gesagt, seine eigene
- 28:32Geschichte erzählt, dass du genau weißt.
- 28:34Diese Zeile macht das so. Ja, und das finde ich ist ja so
- 28:39n Punkt Lesbarkeit einfach. Der super entscheidend ist.
- 28:42Und wenn ich jetzt anfange meinen cleveren Code auszupacken
- 28:45und schreib da drüber hier in dieser Zeile passiert jetzt und
- 28:48dann hab ich so 10 Zeilen Kommentar, weil das halt so n
- 28:50One Liner ist, wo einfach 1000 Sachen passiert da, da wird sich
- 28:54nie jemand mit beschäftigen mit dem Code weißt du, dann ist das
- 28:56so blöd gesagt gottgegeben so ja also das ist ne Blackbox jetzt,
- 29:01diese eine Zeile ist schon ne Blackbox und die werd ich
- 29:03niemals anrühren ich werd jetzt einfach hinnehmen was da
- 29:06passiert und hoffen dass es funktioniert so.
- 29:09Ja, und das ist halt einfach nie n guter Weg um zu sagen, im Team
- 29:13wollen wir jetzt klar klaren Code schreiben, gute Software
- 29:16entwickeln, dann ist das auf jeden Fall nicht das Wahl der
- 29:20Mitte. Nee, das Mittel der Wahl so rum
- 29:21ne. Aber man weiß.
- 29:24Was ich meine, ich weiß es aber. Manchmal hast also manchmal hat
- 29:27man ja, also man kommt ja nicht immer drumherum, ne, also gerade
- 29:30wenn es jetzt um Dokumentationen über Kommentare geht, im Code
- 29:34beispielsweise, das war ja jetzt so n bisschen dein Beispiel,
- 29:37denn. Kommt man ja nicht.
- 29:38Vielleicht nicht immer drum rum, also komplett auf Kommentare zu
- 29:42verzichten und wie gesagt, manchmal ist es ja auch völlig
- 29:45in Ordnung, ne also wenn du jetzt irgendwas hast wo du sagst
- 29:48so Boah ey keine Ahnung, das ist halt einfach so, nimm es hin, es
- 29:54ist jetzt leider Anforderung was irgendwie sowas, dann kommt man
- 29:59ja auch nicht immer drumherum, dann ist es auch in Ordnung,
- 30:01ansonsten ist es natürlich immer schön wenn Code irgendwie
- 30:04selbsterklärend ist, vielleicht auch sogar noch mit.
- 30:09Ich sag mal der Unterstützung der Tests zum Beispiel.
- 30:12Das ist meine Erfahrung, dass das eine gute Sache sein kann.
- 30:15Das ist auch eine gute Überleitung, weil ich meinte, am
- 30:17Anfang erinnere mich noch mal dran.
- 30:18Jetzt habe ich mich so ein bisschen selbst gedanklich daran
- 30:20erinnert. Und zwar gibt es natürlich auch
- 30:22Fälle, wie Du meinst, wo man kommentieren muss und es gibt
- 30:24Fälle, wo auch einfach mal cleverer Code ich muss, man
- 30:29sieht die Anführungszeichen nicht mehr, aber so dieser
- 30:32clevere Code in Anführungszeichen auch mal
- 30:33notwendig ist. Ja, wo ich halt wirklich mal
- 30:35sage, ich muss jetzt richtig viel Hirn und.
- 30:37Schmalz in so n Algorithmus reinpacken und der ist einfach
- 30:40komplex. Das ist jetzt vielleicht auch
- 30:41irgendwas mathematisches, dass irgendwas kompliziertes
- 30:44berechnet wird, was einfach nicht jeder checkt, der da nicht
- 30:47drin steckt in diesem Thema. Ne und das ist ja auch völlig OK
- 30:50und manchmal passiert das einfach und dann gibt es halt so
- 30:54n paar Best practices würde ich sagen.
- 30:58Um einfach das gut in einer Gesamtsoftware oder in einem
- 31:01Projekt einzugliedern, sag ich mal, dass du quasi dir dessen
- 31:05bewusst bist, dass das jetzt so ne Art Code ist, sag ich mal und
- 31:10einfach kommentieren musst du nicht.
- 31:12Halt gucken, guck weg, ja genau, guck weg ja, aber Dokument also
- 31:16dokumentierung ist halt im Prinzip schon genau das
- 31:18Stichwort, ne wenn das notwendig ist, dann dokumentiere es gut,
- 31:23Versuch zu erklären was. Schnittstellen sind ja also,
- 31:27weil ich ja vorhin meinte, das war für ne Library, das ist auch
- 31:30im Prinzip so geblieben. Es war aufwendig, denn das zu
- 31:33debuggen oder oder zu erweitern, ja, aber diese Library wurde ja
- 31:37quasi auch dementsprechend verwendet und die Schnittstellen
- 31:40waren halt klar dokumentiert, was ist Input und Output?
- 31:43Ja, und das hilft ja den Entwicklern beim Verwenden, die
- 31:46Sagen ist mir egal wie der Algorithmus oder die Berechnung
- 31:49da drunter aussieht, ich brauch aber einfach diese Berechnung,
- 31:52ich brauch den Wert dahinter bei den und den Eingang und.
- 31:55Das ist halt genau der Punkt, dass du sagst, OK, wenn ich
- 31:58sowas mache, kann ich es Kapseln zum Beispiel mit einer klaren
- 32:02Schnittstelle, die gut dokumentiert ist, dann ist das
- 32:05legitim. Und was du meintest, da hab ich
- 32:07auch noch was Witziges gefunden, das kannte ich auch nicht.
- 32:10Es gibt so diesen Mythos, kann man es nicht sagen, aber so so n
- 32:13fast schon so n meme, dass man einen Kommentar hier be Dragons
- 32:18ranpackt und da hab ich mich fast totgelacht, weil ich das
- 32:20witzig finde, dass das so etabliert ist, dass man so
- 32:23sinngemäß. Ja, also so sinngemäß OK, pass
- 32:28auf das, was du dir hier anguckst ist gefährliches
- 32:31Gebiet. Ja, also hier können Drachen
- 32:32sein, so ne stell dir keine Fragen, nimm es am besten genau,
- 32:37stell keine Fragen, nimm es einfach so hin, wenn du den Weg
- 32:40gehst es verstehen zu wollen und ändern zu wollen, dann wird es
- 32:43hier richtig gefährlich so oder das ist so das Meme dahinter ja
- 32:48der hier be Dragons Kommentar fand ich auf jeden Fall super
- 32:51witzig, muss ich auch irgendwann mal einbauen, ich muss jetzt
- 32:53irgendwo so ne so ne. Codezeilen schreiben, nur damit
- 32:55ich diesen Kommentar setzen kann.
- 32:57Welches Level brauche ich um diese Drachen zu besiegen?
- 33:01Ja genau, ah das ist das ist echt witzig, also das kannte ich
- 33:04auch noch nicht, dann auf jeden Fall danke fürs Teilen, also
- 33:07Liebe zur lieber zurer sag uns mal ob du das kennst.
- 33:09Also das würde mich jetzt mal interessieren, weil wir immer
- 33:12Hass einen Kommentar schon mal verwenden genau also
- 33:16zusammengefasst wenn ich sowas mache.
- 33:18Versuchen das zu Kapseln, zum Beispiel in einer Bibliothek mit
- 33:21einem klaren Interface, was dokumentiert ist.
- 33:23Und dann halt der hier be Dragons Kommentar ran damit also
- 33:26im Code ne sobald einer da reinschaut sich denkt ah OK
- 33:29falsche Richtung hier ab umdrehen und zurück das ist
- 33:33natürlich das ganze gut abtesten ne wie du vorhin meintest man
- 33:36muss natürlich auch gewährleisten, dass es
- 33:38funktioniert, immer wichtig ja aber wenn wir jetzt mal also ne
- 33:42das sind ja jetzt so die ganzen Sachen die wir jetzt besprochen
- 33:45haben, da kann man natürlich sich jetzt hinstellen und sagen
- 33:47Boah. OK, angenommen ich bin jetzt
- 33:50irgendwie noch nicht so weit oder was auch immer.
- 33:53Wie was ist denn jetzt sozusagen der Weg um zu sagen, OK, was
- 33:56soll ich denn jetzt machen, soll ich jetzt mich hinstellen und
- 33:59bei Code wars beispielsweise einfach sagen, ja gut, dann
- 34:01programmier ich halt immer nur irgendwelche stumpfen
- 34:04Algorithmen, die sag ich jetzt mal einem sofort einfallen, ich
- 34:09brauch eigentlich gar nichts mehr zu optimieren, weil ist ja
- 34:13wahrscheinlich eh dann nur in Anführungsstrichen der clevere
- 34:15Code den ich mir hier aus den Fingern drücke.
- 34:18Sagt man so aus den Fingern, drückt also, wie geht man denn
- 34:22jetzt am schönsten damit um? Was weißt du, das ist doch jetzt
- 34:26eigentlich mal ne ganz gute Frage, um so langsam zum Ende zu
- 34:30kommen vielleicht. Also so noch n Take away oder
- 34:33was? Ja.
- 34:34Zum Beispiel. Also ich hatte jetzt so n
- 34:37bisschen daran gedacht, dass, wie wir auch schon gesagt haben,
- 34:40ne bei Code wars, es ist ja hilfreich auch mal sag ich jetzt
- 34:45mal diese. Challenge auf sich zu nehmen und
- 34:47zu sagen, ganz bewusst, jetzt versuche ich das ganze mal
- 34:50wirklich richtig hochoptimiert zu machen oder mit einem One
- 34:54Liner, so dass es halt möglichst wenig Code ist.
- 34:56Du kannst dir ja selber eigene Challenges setzen und zu sagen,
- 34:59ich versuche diese Aufgabe jetzt mal so oder so oder so zu
- 35:02machen, performant möglichst wenig Code heißt ja nicht immer,
- 35:05dass es gleich performant ist oder halt vielleicht auch
- 35:08einfach. Über eine ganz ausgefallene
- 35:10Variante, so was auch immer so Versuch mal einen anderen
- 35:13wegzunehmen als der, der dir sofort eingefallen ist.
- 35:15Irgendwie sowas, und das sind ja auch Sachen wo du was dazu
- 35:18lernst, wo du sagst, ey, das ist ja vielleicht noch mal, da habe
- 35:21ich noch mal eine neue Gehirnbindung dazu bekommen, so
- 35:24nach dem Motto und sowas hilft ja auch und gleichzeitig würde
- 35:28ich sagen zu gucken wo, wie schreibe ich denn zum Beispiel
- 35:35Code, sodass ich mir irgendwann mal.
- 35:38Also mit dem Gedanken, wenn ich mir das jetzt zum Beispiel in 3
- 35:41Wochen angucke, wenn ich mir das in einem Monat angucke oder wenn
- 35:44ich es mir in einem halben Jahr angucke, verstehe ich das immer
- 35:47noch so, vielleicht diesen Hintergedanken zu haben, dass du
- 35:51verschiedene Möglichkeiten hast, Code zu schreiben.
- 35:53Und gerade wenn du in einem produktiven Umfeld bist,
- 35:55wirklich zu sagen, okay, es muss nicht mega clever sein, es
- 35:59sollte guter Code sein, aber es sollte kein hochoptimierter Code
- 36:04sein, den man selber irgendwann nicht mehr versteht so.
- 36:07Das sind ja zum Beispiel so Mögliche.
- 36:09Also so könnte ich es mir vorstellen, dass man diese
- 36:13Herangehensweise nutzt, egal an welchem Level man ist.
- 36:16Zum Beispiel ne. Es ist ja auch n guter Punkt so
- 36:19ne Challenge zu machen und zu sagen, ich schreib jetzt so
- 36:22hochkomplexen Code oder komplex nicht mal unbedingt komplex,
- 36:25sondern so. Ja clever ist immer schon das
- 36:28richtige Wort ne und ich zwing mich das zu machen um einfach
- 36:32auch später wirklich erkennen zu können.
- 36:34Was ist jetzt einfach nur cleverer Code und so n bisschen
- 36:36ego gepusht oder was ist halt wirklich guter Code am Ende und
- 36:40das ist halt auch essentiell zu sagen ich muss auch die
- 36:43Erfahrung sammeln und versuchen sowas zu schreiben um später
- 36:45einfach erkennen zu können ob ich wieder in diese Richtung
- 36:48gerutscht bin oder vielleicht doch.
- 36:49Noch auf dem richtigen Weg bin und wie gesagt das Zitat was du
- 36:53vorhin meintest, das immer im Hinterkopf zu haben, ich muss
- 36:57eigentlich per Definition irgendwann diesen Code debuggen,
- 36:59irgendwann kommt der Tag wo ich mir das wieder angucken muss und
- 37:02dann wird es doppelt so schwer sein wie in dem Moment wo ich
- 37:05gerade locker flockig die Knöpfe drücke und den Code schreibe und
- 37:09deswegen ist Klarheit. Quasi nicht nice to have so.
- 37:14Naja, wäre schon cool, wenn man es so schnell verstehen könnte,
- 37:16sondern es ist halt Pflicht, einfach weil du wirst auch
- 37:18wieder in der Situation sein es verstehen zu müssen.
- 37:22Ja wie war das mal? Code wird von Maschinen
- 37:25ausgeführt, aber wird von Menschen gelesen so und deswegen
- 37:29muss der Code auch lesbar sein, so bitte da haben wir es doch so
- 37:33hätten wir doch die ganze Folge zusammenfassen können, direkt
- 37:36eingangs nee, aber was wäre ein Einzeiler?
- 37:41Genau. Aber was ich halt zum Beispiel
- 37:44auch noch ganz interessant find ist, dass man auch gerade um
- 37:48vielleicht auch guten Code zu schreiben, sich auch vielleicht
- 37:52mal sagen kann, ich nehm mir jetzt so ne Art, so ne Art
- 37:55guideline. Woran ich mich wirklich mal n
- 37:58lang hangel, die kann sich ja auch entwickeln, ne, aber dass
- 38:00man immer mal so n gewissen Abschnitt hat wo man sagt ich
- 38:02ich folge jetzt einem Guide den ich mir vielleicht selber
- 38:05auferlegt hab, nur mal als Beispiel also es geht jetzt um
- 38:07Übung ne um dann zum Beispiel zu sagen OK ich zieh das jetzt mal
- 38:10wirklich so durch und dann kann man ja auch mal evaluieren.
- 38:13Ist es n ne gute n guter Guide den ich mir da überlegt habe.
- 38:17Kannst dich auch austauschen mit anderen weißt du aber, dass du
- 38:19und das hab ich auch ehrlich gesagt noch nie so krass
- 38:21gemacht, dass ich wirklich mal gesagt hab, es gibt so ne
- 38:24richtigen so n richtigen Guideline, zum Beispiel sowas
- 38:26wie auch ey ich mach jetzt n Pfeil da, da kommen jetzt zum
- 38:29Beispiel nicht 500 Zeilen Code rein, sondern es ist auf jeden
- 38:32Fall, wenn es über die diese Anzahl von Lines of Code
- 38:36hinausgeht, dann muss irgendwie die Business Logik da getrennt
- 38:39werden oder so ne Sache weißt du.
- 38:41Dann so mit statischen Analysen. Nee, aber weißt du, dass man
- 38:45vielleicht auch so ein bisschen Erfahrung halt eben sammelt und
- 38:48genauso zum Beispiel auch, was immer hilft, ist, dass wirklich
- 38:51auch erfahrene Entwickler und Entwicklerinnen auch mal Reviews
- 38:55vom eigenen Code machen, also dass man irgendwie auch mal sich
- 38:57so was einholt und ich weiß nicht, da kann man sich auch mal
- 39:02überlegen, ob zum Beispiel lieber zurer, wenn du mal Code
- 39:05hast, wo man mal ein Feedback haben möchte, dann lass uns das
- 39:09gerne mal auch auf der Podcast Mail zukommen.
- 39:12Und wir können uns das zum Beispiel auch mal mit allen, die
- 39:14auch oft bei Twitch zum Beispiel dabei sind, auch insgesamt mal
- 39:17angucken. Dann können wir vielleicht ja
- 39:19auch mal ein gewisses Feedback darüber geben, um einfach mal
- 39:22auch ein Learning für dich zu generieren.
- 39:24Genau. Ansonsten haben wir ja das
- 39:25Rescue The Code Format noch, wo wir so freie Reviews in
- 39:29regelmäßigen Abständen verlosen und dann halt auch Reviewen und
- 39:33Feedback dazu geben, dass wir dann auch eine sehr gute
- 39:35Anlaufstelle dafür ja. Cooles Thema gewesen, liebe
- 39:41Zuhörer, liebe Zuhörer, du kannst ja auch dir mal ne
- 39:43Challenge stellen. Hast du denn schon mal versucht,
- 39:46deinen eigenen Code, wenn wir schon beim Thema sind oder den
- 39:49du uns vielleicht zukommen lassen möchtest, nach langer
- 39:51Zeit noch mal versucht zu lesen? Und wie waren da so deine
- 39:54Erfahrungen, hast du ihn noch verstanden, wenn nicht, dann
- 39:58willkommen im Club, das kennen wir, das Gefühl aber das ist auf
- 40:02jeden Fall immer n sehr cooles Experiment zu sagen, ey ich
- 40:05schau jetzt einfach mal so in alte.
- 40:07Programmierung von mir rein und guck mal was ich daraus ziehen
- 40:10kann. Ja und dann kommt man
- 40:12wahrscheinlich relativ schnell zu dem Code, zu dem Code genau,
- 40:15man kommt schnell zum Code, nein man kommt schnell zu richtig zu
- 40:17dem Schluss, dass es durchaus sinnvoll ist lesbaren Code ne
- 40:23höhere Priorität einzuräumen, als dass der Code jetzt
- 40:26unbedingt clever sein muss ne also selbst wenn du schon
- 40:29vielleicht auch schon fortgeschrittener bist in der
- 40:32Entwicklung und nicht gerade am Anfang stehst oder dir Code vom
- 40:34ganz am Anfang holst, sondern vielleicht auch Code von.
- 40:37Sag ich mal schon erfahren deinem erfahreneren ich so.
- 40:41Also ich kann mir vorstellen, dass ich mir auch mal Code
- 40:44nehme, wo ich mir denke, so aha, ich hab aber ganz toll dachte
- 40:46ich mir super Sache Fabian, da hast du aber richtig clever
- 40:49versucht einen drauf zu machen, so und dann versteht man ihn
- 40:53erstmal nicht mehr. Ja in dem Sinne würde ich sagen.
- 40:58War auf jeden Fall n guter Punkt.
- 41:00Hast du noch? Möchtest du noch was sagen zu
- 41:02diesem Thema, Tino dann mal raus, wir haben es glaube ich
- 41:04ausführlich besprochen, wir sind fertig und in dem Sinne würde
- 41:09ich sagen, wenn dir die Folge oder der Podcast gefällt, dann
- 41:12lass auf jeden Fall mal n like da beziehungsweise ne Bewertung
- 41:15das würde uns mega helfen auch und ansonsten wie gesagt.
- 41:22Schreib uns auf. Entweder der Podcast Mail oder
- 41:25auf unseren Social Media Kanälen kommen auch gerne in unseren
- 41:28Discord. Immer herzlich Willkommen auch
- 41:30für neue Gespräche und neue Anregungen und sonst würde ich
- 41:35sagen, wenn du sagst bevor wir uns jetzt hier verabschieden,
- 41:39den beiden möchte ich noch eine Kleine sagen wir mal etwas Gutes
- 41:42tun, dann kannst du auch eine kleine Spende auf den auf den
- 41:45Spenden Link uns schicken findest du alles alle Links die
- 41:48ich gerade genannt habe unten in den Shownotes.
- 41:50Und ansonsten hören wir uns in der nächsten Folge wieder deine
- 41:52Colling bollies. Gemeinsam besser.