Latest / Coding Buddies | Tech & Dev-Mindset / Clean Code #4 - Immer diese Kommentare
Transcript
- 0:00Im aktuellen Projekt war wie reingeschaut, wieviel to dos wir
- 0:03da drin haben und ich. Muss sagen super. 0.
- 0:09Coating Boys Dein Podcast rund um Softwareentwicklung und
- 0:12aktueller Technews herzlich willkommen.
- 0:19Was? Einen wunderschönen guten Tag.
- 0:28Herzlich Willkommen. Schön, dass du wieder
- 0:30eingeschaltet hast. Zur neuen Folge deines
- 0:32Lieblingspodcasts, was wir natürlich hoffen, der Coding
- 0:35Buddies und zwar an meiner Seite natürlich wieder der
- 0:37fantastische Fabi Moin Fabi. Morgen Kino genau und ich bin
- 0:42auch dabei der Tino. Und ja fabi, ich hab Bock auf
- 0:48diese Folge, aber erstmal möchte ich natürlich wissen, wie geht
- 0:52es dir? Ja.
- 0:56Bisschen müde irgendwie, würde ich sagen, aber sonst eigentlich
- 1:00ganz gut. Okay also bist du bereit oder
- 1:03oder wollen wir einfach jetzt hier abbrechen und dann andere
- 1:06mal weitermachen oder oder sagst du so, ich bin zwar müde, aber
- 1:09verdammt noch mal, lass uns diese Folge aufnehmen.
- 1:12Ich bin müde, aber verdammt noch mal das kleine Schläfchen.
- 1:17Denn ich habe ein geiles Thema mitgebracht.
- 1:19Ich habe ein geiles Thema okay bis zur Wartung sind da.
- 1:23Ja ich hoffe bei dir, liebe zuhören, liebe Zuhörer auch, und
- 1:27zwar ist es heute mal wieder eine.
- 1:30Cleancode Folge, Oh, das ist geil.
- 1:33Kurz sacken lassen, kurz sagen, aber das geht halt mal wieder um
- 1:37cleancode Nein, das ist ein Teil unserer cleancode Reihe
- 1:40natürlich. Und zwar soll es heute um.
- 1:45Wie sag ich es am besten, ohne gleich kritisch zu werden?
- 1:49Um die Does und dont s in Sachen Kommentare innerhalb der
- 1:53Programmierung gehen? OK, das ist das ist das relativ
- 1:57neutral ausgedrückt, ja. Find ich gut.
- 2:00Ja OK, dann lass uns das so machen, weil ich find das ist n
- 2:03sehr spannendes Thema. Tatsächlich n Thema, was mich
- 2:08selbst und dich glaub ich auch immer noch verfolgt und wirklich
- 2:10auch verfolgt beziehungsweise heimsucht.
- 2:15Weil das klingt immer alles so trivial in der Theorie, aber man
- 2:18erwischt sich ja dann doch auch öfter mal auf der dont Seite.
- 2:24Ja, und das würde ich gerne mal mit dir diskutieren.
- 2:26Vielleicht hast du auch ein paar coole Beispiele oder was du da
- 2:28so an Erfahrung gesammelt hast, dass wir das einfach mal so ein
- 2:31bisschen beleuchten können. Ja, auf jeden Fall.
- 2:34Bist du dabei oder steigst du jetzt an dieser Stelle aus?
- 2:38Wann bin ich jemals hier ausgestiegen?
- 2:40An. Dieser Stelle, das wird aber
- 2:41durchgezogen. Deswegen würde ich sagen, lass
- 2:45uns das ruhig mal so ein bisschen in Dose Don't
- 2:48unterteilen und ich hoffe, dass wir auch ein paar Do s finden,
- 2:52weil ich weiß ja von dir, dass du es sehr ähnlich handhabst wie
- 2:58ich und wir gar nicht so die Fans von Kommentaren sind.
- 3:01Das können wir auch mal erläutern, aber wer halt cool,
- 3:03wenn wir vielleicht auch ein 2 Beispiele finden, auf der du
- 3:05Seite ja klar. Aber lass uns das mal mit der
- 3:08Linie dont Seite starten. Konzentrieren wir uns erstmal
- 3:12auf die dont Seite. Ja, dann hau doch mal einen
- 3:14Don't raus. Was ist so für dich n riesen
- 3:17Punkt wo du sagst, bitte dafür keine Kommentare.
- 3:21Da hatten wir letztens ja, da hatten wir letztens auch drüber
- 3:24ganz kurz mal gesprochen und das möcht ich jetzt auch direkt
- 3:27anbringen, weil ich da auch im Nachgang auf jeden Fall noch n
- 3:31super Beispiel zu hab, was mir auch mal sag ich mal
- 3:34untergekommen ist. Nicht von mir an der Stelle.
- 3:38Sehr. Also ne Ausnahme natürlich.
- 3:43Nein, aber. Zu dem Beispiel kommen wir
- 3:45später. Und zwar geht es darum, dass man
- 3:47zum Beispiel codeblöcke auskommentiert, also dass man
- 3:49zum Beispiel sagt, Man hat n bestimmten Code, teil ne.
- 3:53Und man kommentiert den Aus und sagt einfach.
- 3:57Magst du kurz erklären, was das bedeutet?
- 3:59Weil wir haben ja auch n paar Zuhörerinnen und Zuhörer, die
- 4:02vielleicht noch am Anfang der Softwareentwicklung stehen und
- 4:05vielleicht jetzt nicht so wirklich wissen, was du mit
- 4:07Auskommentieren meinst. Also wenn du jetzt zum Beispiel
- 4:09genau, also wenn du jetzt zum Beispiel sagst, du hast, sagen
- 4:13wir mal, nimm ein einfaches Beispiel, du hast ein IF und ein
- 4:16Else, also ein iffels Konstrukt. Und du sagst jetzt zum Beispiel
- 4:21Ok, im Iffall möchte ich etwas Bestimmtes ausführen und im L 2
- 4:24möchte ich etwas anderes bestimmtes ausführen.
- 4:27Das heißt zum Beispiel, sagen wir mal, du möchtest.
- 4:33Einen Zug regeln der soll eine bestimmte Geschwindigkeit haben
- 4:36und wenn er jetzt ist, natürlich jetzt ein blödes Beispiel im
- 4:39Sinne von ein sehr simples. Beispiel Mach weiter.
- 4:42Aber im Sinne von Regelung bei Regelung ist natürlich sehr
- 4:44komplex. Aber was ich meine ist
- 4:46angenommen du hast jetzt zum Beispiel deine Geschwindigkeit
- 4:48ist zu gering, dann möchtest du die sozusagen in einem
- 4:51bestimmten Fall erhöhen. Ne, also keine Ahnung.
- 4:54Du fährst kleiner 50 also im Iffall wenn du kleiner 50
- 4:59fährst, dann betätige quasi das Gaspedal sozusagen im Zug
- 5:04fiktiv. Ansonsten betätige bitte die
- 5:06Bremse nur mal als ganz kleines Beispiel, was man sich
- 5:08vielleicht jetzt so ganz schnell mal irgendwie vorstellen kann.
- 5:13Und du sagst jetzt zum Beispiel, ah, na ich will es noch mal ganz
- 5:16kurz was ausprobieren und ich packe jetzt zum Beispiel den
- 5:19Else Fall weg, ne. Also Bremsen soll eigentlich gar
- 5:21nicht stattfinden, du möchtest eigentlich nur in dem Fall nur
- 5:24schneller werden, weil du willst irgendwas ausprobieren, bremsen
- 5:27ist jetzt egal, keine Ahnung, so ist vielleicht eine Simulation.
- 5:31Und dann bleibt das aber zum Beispiel auskommentiert, dass du
- 5:35zum Beispiel einfach vergisst, das wieder Einzukommentieren
- 5:38eine Möglichkeit, oder vielleicht hast du auch eine
- 5:41andere Möglichkeit und zwar den Use Case, dass du vielleicht
- 5:43sagst, du hast vielleicht noch mal ein anderes Beispiel, du
- 5:46hast vielleicht einen Switch Case und sagst keine Ahnung.
- 5:50In in in dem Fall zum Beispiel. Du hast jetzt irgendwie
- 5:53bestimmte Personen, die irgendwo eintritt brauchen und keine
- 5:58Ahnung, es geht um nen bestimmten Alterswert.
- 6:00Du hast zum Beispiel Jugendliche, du hast Erwachsene,
- 6:03du hast Rentner, was auch immer. Und anhand von dieser
- 6:07Alterskategorie wird vielleicht irgendein Preis für den Eintritt
- 6:10berechnet. Ne?
- 6:11Ja. Und.
- 6:14Aus welchen Gründen auch immer, wird zum Beispiel der Rabatt
- 6:18für. Kinder oder Rentner mal
- 6:23weggenommen, muss mal weggenommen werden und dann wird
- 6:25das einfach auskommentiert und bleibt aber so im Code stehen.
- 6:30OK, da würde ich aber gerne noch was zu ergänzen dazu, um das
- 6:34gleich noch mal n bisschen zu erklären, was eigentlich
- 6:37Auskommentieren an sich bedeutet.
- 6:40Es geht ja allgemein in unserer Folge darum, Kommentare in den
- 6:44Programmcode einzupflegen. Und Kommentare in dem Sinne,
- 6:48dass zum Beispiel der Compiler oder der Interpreter diese
- 6:51Zeilen ignoriert. Also das ist nicht Teil des
- 6:54Programms ist. Und was du ja mit
- 6:56Auskommentieren meinst. Und was denk ich mal vielen
- 6:59klar, ist aber vielleicht nicht allen, deswegen möchte ich das
- 7:01noch mal kurz erwähnen ist Kommentare sind, dass man quasi
- 7:04diesen Programmcode, den du meinst innerhalb eines
- 7:09Kommentars verpackt und dadurch quasi vom Interpreter oder vom
- 7:12Compiler nicht mit berücksichtigt wird für das
- 7:15Programm, weil es als Kommentar gilt und dadurch kann man quasi.
- 7:20So n bisschen Bad Practice, sag ich mal.
- 7:23Deswegen gehen wir darauf ein, Programmteile oder Codezeilen
- 7:28ignorieren im Programm. So da, um das noch mal so
- 7:32vielleicht für diejenigen, die nicht genau wissen, was das
- 7:34bedeutet, das noch mal klarzustellen.
- 7:36Also im Prinzip nimmt man nen Code teil und verpackt ihn als
- 7:40Kommentar kurzzeitig, damit er einfach nicht Teil des Programms
- 7:43ist. Und das ist ja so im Wortlaut
- 7:46immer dieses ja kommentiert Mal den Code aus, weil ja jeder weiß
- 7:49was zu tun ist. An der Stelle, aber was das
- 7:51eigentlich bedeutet, dass da einfach nochmal kurz an der
- 7:53Stelle erklärt und ja, du hast halt schon einen sehr geilen
- 7:57Punkt gebracht, an der Stelle ist.
- 8:01Wie verhält sich das Ganze? Ich kommentiere das aus, ja,
- 8:05läuft ganz gut, machen wir erstmal weiter so und dann hast
- 8:08du halt aus kommentierten Code, dann hast du halt diesen
- 8:10Kommentar Blog in deinen Programmcode drin, der
- 8:14eigentlich Code beinhaltet, der nicht mehr mitlaufen soll
- 8:17sozusagen. Und das ist halt absolut Bad
- 8:20Practice. Warum?
- 8:24Die Frage ist oder sagen wir mal so was ist n Argument dafür das
- 8:28zu tun? Ich kenne ein Argument was mir
- 8:31sehr oft da begegnet ist ist na ja, vielleicht brauch ich den
- 8:34Code noch. Ja ne, also vielleicht soll er
- 8:37irgendwann wieder Teil meines Programms sein und deswegen er
- 8:40ist erstmal nicht mehr aktiv Teil des Programms, aber ich
- 8:43habe ihn noch, ich kann ihn jederzeit dieses sogenannte ein
- 8:46Kommentieren, das heißt ich entferne einfach den
- 8:48Kommentarblock da drum und dann ist es wieder Teil des Codes.
- 8:51So, und da frag ich dich jetzt oder ich weiß, du wirst
- 8:54wahrscheinlich mir das Ganze bestätigen, aber wieso sollte
- 8:57ich das tun, gerade in Hinsicht dahin, dass ich ja sehr, sehr
- 9:02wahrscheinlich heutzutage innerhalb eines Repositories
- 9:06arbeite und quasi eine Versionsverwaltung habe?
- 9:09Das heißt, dieser Programmteil, der ich also, den ich da aus
- 9:15kommentiere, der ist ja versioniert, den kann ich ja
- 9:17jederzeit wiederherstellen. Also angenommen du hast ihn
- 9:20einmal committed. Ja, davon gehe ich jetzt mal.
- 9:23Aus. Genau.
- 9:24Aber sonst gehe ich da natürlich mit.
- 9:26Das ist natürlich genau der Punkt was, was ich ganz
- 9:30interessant finde bei der ganzen Sache ist und das passiert glaub
- 9:33ich vielen zumindest mir auf jeden Fall ganz gerne, wenn man
- 9:37jetzt zum Beispiel angenommen, du hast einen frischen Stand, es
- 9:39wurde gerade irgendwas committed, du hast dir neu was
- 9:41gepullt wie das Ganze mit Versionsverwaltung funktioniert,
- 9:45da haben wir auch schon mal eine kleine Podcast folge drüber
- 9:47gemacht, deswegen stelle ich das einfach mal aus, deswegen stelle
- 9:51ich das jetzt einfach mal so hin, dass wir quasi auf diesem
- 9:54Level reden. Und.
- 10:00Wenn du jetzt zum Beispiel ne gerade frisch gepullt hast und
- 10:04irgendwie n was einbauen möchtest und vielleicht du
- 10:08programmierst was du sagst, OK, dann könnte vielleicht so n
- 10:10Effekt, dass du etwas und sagst OK, jetzt kann ich das hier
- 10:13vielleicht mal kurz wegnehmen, dann wird vielleicht irgendwie
- 10:15dann ne kenn ich ganz gerne selber, dass man irgendwie
- 10:18erstmal was auskommentiert anstatt wirklich den
- 10:21Programmenteil, den man dort hat, einfach zu löschen.
- 10:25Auch obwohl wir gerade noch, also wirklich gerade noch so
- 10:27produktiv sind. Bevor wir einchecken, gucken wir
- 10:29natürlich noch mal alles durch und entfernen dann diese
- 10:31Kommentare. Angenommen man hat noch was
- 10:33Auskommentiertes drin. Aber trotzdem erwische ich mich
- 10:39manchmal, dass ich dann die Sachen nicht einfach weglösche,
- 10:40sondern erstmal aus kommentieren.
- 10:42Und das ist halt interessant, weil rein theoretisch, gerade
- 10:44weil du es ja auch gesagt hattest.
- 10:46Die Versionsverwaltung zeigte er an, Moment hier zum Beispiel ist
- 10:51das hast du weggelöscht, das heißt, wenn man jetzt gucken
- 10:53möchte, wie vielleicht dieser Code, den man irgendwie aus
- 10:55kommentiert hat, aussah, weil man vielleicht an diese Logik
- 10:58herankommen möchte, weil man vielleicht diese Logik noch mal
- 11:02im Auge haben möchte oder irgendwie noch mal betrachten
- 11:04möchte, dann kann man sie sich ja wieder angucken, einfach nur,
- 11:06indem man sozusagen. Einen Diff macht zu dem was man
- 11:10vorher hatte. Ne, das ist halt super spannend
- 11:13weil ich kenn also dieses Verhalten kenn ich auch, ich
- 11:16glaub das ist auch irgendwie noch so geschuldet aus
- 11:18vergangenen Tagen wo man halt noch nicht so.
- 11:21Vielleicht so routiniert war in der ganzen Versionsverwaltung
- 11:24zum Beispiel mit Git zu arbeiten oder vielleicht wirklich in
- 11:28kleineren Projekten gar kein Repository hatte und dann gesagt
- 11:31hat, OKH nee, das will ich jetzt behalten, erstmal.
- 11:35Aber wenn man ganz ehrlich ist, was er dafür spricht, den Code
- 11:39einfach zu löschen, was also, was ist denn jetzt wesentlich
- 11:43schneller den Code wieder mit einem Shortcut einzukommentieren
- 11:47oder einfach n Reward schnell zu machen in der IDI, die dir das
- 11:50ja anbietet um dir einfach kurz mal den Code wieder zu zeigen
- 11:53oder wiederherzustellen? Also eigentlich ist es ja nicht
- 11:56mal ein extremes Zeitersparnis zu sagen, ich kommentiere das
- 12:00aus, weil dann kann ich es schneller wiederherstellen, also
- 12:02moderne Ideas haben ja Song Support für Repositories, dass
- 12:06du es ja einfach super schnell wiederherstellen kannst.
- 12:08Alles ja genau. Aber wie gesagt, das sind halt
- 12:11Sachen, die vielleicht durchaus mal auftreten können, aber ich
- 12:16finde es ist halt auch immer die Sache so, gerade wenn du daran
- 12:19arbeitest und Code aus kommentiert und vielleicht viel
- 12:22Code aus kommentiert hast anstatt ihn zu löschen, wird es
- 12:25halt auch irgendwann sehr sehr unübersichtlich und du verlierst
- 12:27dich vielleicht in alten Gedanken, gerade wenn du etwas
- 12:30neu machen möchtest. Aber wie gesagt, diese diese Art
- 12:35und Weise Code Blöcke. Auszukommentieren es ist ja wie
- 12:38gesagt, dass das ist jetzt ne Sache, wo wir an dem Punkt sind,
- 12:41wo wir sagen, OK, vielleicht haben wir das noch nicht
- 12:43kommentiert, vielleicht arbeiten wir gerade daran, kommentiert.
- 12:50Vielleicht arbeiten wir gerade daran, aber was ich mal
- 12:53anbringen möchte, ist das Beispiel, was ich vorhin genannt
- 12:56hab, weil das find ich auch sehr spannend.
- 12:58Ich hab mal an einem Projekt gearbeitet, ist schon n bisschen
- 13:00länger her. Da gab es nen Code und es gab so
- 13:05ne Art Tag an dem etwas vorgestellt wurde.
- 13:09Ne und? Darf also jetzt neue Stände des
- 13:14der Software oder was meinst ja mehr oder weniger genau.
- 13:17Also du hast quasi Software geschrieben und es wurde quasi
- 13:21diese Software wurde sozusagen vorgestellt, ne.
- 13:25Jetzt nicht direkt die Software, sondern das was die Software
- 13:28tut. Und dann?
- 13:33Keine Ahnung, dieser vorstellungstag, sag ich jetzt
- 13:36mal, war vorbei. Es gab einen bestimmten Commit
- 13:39und ich habe an der Software weitergearbeitet.
- 13:42Und ich war nicht der Einzige, der an dieser Software
- 13:44gearbeitet hat und hab dann geguckt, OK, irgendwie lief was
- 13:50nicht, was ich mir was eigentlich hätte laufen sollen,
- 13:54meiner Meinung nach und. Dazu muss man sagen, es gab
- 13:58keine Tests an dieser Stelle. Ja, nicht schön.
- 14:05Würde ich auf jeden Fall auch vermeiden.
- 14:07Zu haben und was ich super interessant fand war.
- 14:12Dass ich irgendwann bei der Recherche, wieso das nicht
- 14:14funktioniert hat, wo ich der Meinung war, dass es hätte
- 14:17funktionieren müssen. Hab ich geguckt und da stand.
- 14:22Es war ein Codeblock auskommentiert, der war
- 14:24eingecheckt, so auskommentiert wie er, ne wie er da drin war
- 14:28und da drüber stand. Ich sag mal sinngemäß.
- 14:33Auskommentiert wegen diesem Vorstellungstag.
- 14:37So also quasi hat sich jemand gesagt, OK, warte mal, es gibt
- 14:43jetzt vielleicht n bestimmten Fall dieser Codeblock den wir da
- 14:46haben, den brauchen wir jetzt nicht für diesen
- 14:49Vorstellungstag, also quasi wieso ne Art vielleicht, ich sag
- 14:53mal vielleicht eine Art Workaround vielleicht.
- 14:57Irgendwas, was vielleicht, wo gerade gerade dran gearbeitet
- 15:00wurde oder vielleicht auch ein neues Feature oder sowas,
- 15:02vielleicht neues Feature, vielleicht irgendwas.
- 15:04Ich weiß es auch nicht mehr genau, ich weiß jedenfalls nur
- 15:06noch, dass quasi eine bestimmte Sache entfernt wurde, aber noch
- 15:11im Code war und mit dem Kommentar wegen diesem
- 15:14Vorstellungstag nenne ich es jetzt mal.
- 15:17Bis das jetzt auskommentiert worden wurde, danach aber auch
- 15:20nicht wieder ein kommentiert und da sieht man eigentlich schon
- 15:22mal, dass es halt ist. Also das war halt wirklich ein
- 15:24absoluter, wie sagt man Paint. Weil du halt wirklich mehr oder
- 15:32weniger an dieser Stelle wurde, diese Software, ich sag mal
- 15:36kaputt gemacht ne und nicht wieder repariert und das war
- 15:40schon echt ein bisschen krass. Also das war für mich n
- 15:43Beispiel, wo ich mir dachte, OK auskommentierter Code
- 15:45eingecheckt mit einem Kommentar, der heißt OK, das hab ich
- 15:50auskommentiert nur für diesen einen Use Case sozusagen
- 15:53temporär, was nicht wieder einkommentiert wurde das das war
- 15:56auf jeden Fall. In diesem Punkt.
- 15:58Glaub ich das krasseste was ich je gesehen hab.
- 16:01Ja, also man muss natürlich fairerweise sagen, dass
- 16:05zumindestens der Wille da war ranzuschreiben warum das Ganze
- 16:09passiert ist, weil noch schlimmer wär ja, wenn das
- 16:11einfach, also dann hätte es ja nicht mal n Anhaltspunkt warum
- 16:13da jetzt auskommentierter Code ist.
- 16:15Ne, aber um das Ganze diesen Punkt auch mal abzurunden
- 16:20würdest du sagen das Don't an der Stelle ist ja nicht mal
- 16:23unbedingt auf der Arbeitsbasis, also während ich daran arbeite
- 16:28Sachen Auszukommentieren vielleicht um kurz mal was zu
- 16:30testen sondern. Don't dahinter ist ja eigentlich
- 16:33aus kommentierten Code einzuchecken.
- 16:36Am Ende also zu sagen, das ist jetzt mein Stand, auf dem weiter
- 16:40gearbeitet wird und da sind auskommentierte Code Elemente
- 16:43drin. Genau.
- 16:44Also ich würde sowas zum Beispiel vermeiden, indem ich
- 16:47bevor ich etwas committe mir alle changes die ich gemacht
- 16:52habe noch mal durchgucke. Also noch mal n Review machst.
- 16:55N Review machen und wenn es nun kurzes Review ist, um einmal zu
- 16:59gucken, OK, habe ich jetzt irgendwie.
- 17:03Grobe Patzer drin, ne, also angenommen weil wir haben ja
- 17:07schon öfter mal gesagt, dass wir auch zum Beispiel gerne ein Pair
- 17:09programming arbeiten, da muss man nicht ein so intensives Code
- 17:12Review machen am Ende als wenn man jetzt zum Beispiel alleine
- 17:15Code bearbeitet und dann vielleicht noch mal mit wem
- 17:17anders das Reviewed aber Fakt ist auf jeden Fall, gerade in
- 17:20solchen Punkten, wo du schon sehr viel Code zusammen
- 17:23betrachtet hast, ist es immerhin noch mal interessant zu sagen
- 17:26okay habe ich noch irgendwelche Konsolenausgaben drin, die
- 17:29eigentlich nicht sein sollten oder habe ich irgendwie zum
- 17:31Beispiel aus kommentierten Code an der Stelle, das würde ich so
- 17:34würde ich versuchen dem entgegenzuwirken, auf jeden Fall
- 17:37aber. Man ja auch ehrlicherweise
- 17:38sagen, wenn wir jetzt zum Beispiel im Pair arbeiten und
- 17:41danach so n Review noch machen. Ist ja nicht so, als wenn das
- 17:46nur so. Prozesshalber ist, sondern wir
- 17:49finden ja trotzdem Sachen ne, weil du meinst, das kann ja
- 17:52kürzer sein, das stimmt, aber ich find es trotzdem gut und es
- 17:55hat sich schon oft bewährt, dass wir es trotzdem machen und nicht
- 17:58sagen, so ey. Na komm, wir gucken die ganze
- 17:59Zeit zusammen drauf, dass es safe das Ding ja genau weil
- 18:02genau so ne Sache wie du meinst, so Konsolenausgaben oder
- 18:04vielleicht dann doch noch mal was aus Kommentiertes wo du
- 18:06denkst, hey, das brauchen wir gar nicht mehr so nach dem
- 18:09Motto, Weil es halt irgendwas neues war bleibt es drin, bleibt
- 18:12es nicht drin, weißt du wie es halt so ist.
- 18:16Und da finde ich halt, das Review ist dann immer super
- 18:20hilfreich. Okay fand ich auf jeden Fall ein
- 18:23sehr starker erster Punkt ist auch einer der Keypoints in
- 18:27meinen Augen, wo man Kommentare halt blöd gesagt missbrauchen
- 18:31kann für. Hau mal nächsten raus.
- 18:37Was noch ein Punkt ist. Ja, den können wir vielleicht
- 18:42relativ schneller mal so, jetzt mal n bisschen schneller
- 18:44abhandeln. Ist natürlich.
- 18:47Kommentare dafür zu nutzen, den Code zu erklären, das heißt ich
- 18:52schreib ne Funktion und hab dann innerhalb dieser Funktion zum
- 18:57Beispiel ein paar Zeilen Kommentare.
- 19:01Jetzt passiert das und das oder falls.
- 19:05Mal Eintritt, führe das und das aus, mal so vereinfacht gesagt
- 19:09und bewusst habe ich jetzt schon sowas gesagt wie Falz das und
- 19:13das ist, weil das klingt ja jetzt schon ganz stark nach
- 19:15einer If Bedingung. Das ist nämlich genau mein
- 19:20Klemma, die ich damit hab und deswegen ist das für mich jetzt
- 19:22auch n dont den sagen wir mal 90% der Fälle.
- 19:26Wir können ja auch mal vielleicht die anderen 10% dazu
- 19:28noch mal ansprechen, aber es ist n Hinweis darauf, dass man
- 19:33vielleicht nicht ganz so sauber gecodet hat, wenn es wirklich
- 19:37wirklich notwendig ist, Kommentare ranzumachen, die
- 19:40erklären was innerhalb dieser Funktion passiert und da hatte
- 19:44ich, das hatte ich glaube ich auch schon mal im Podcast
- 19:46erzählt, dass ich mal ein Projekt hatte, wo der
- 19:48Projektleiter sehr stark darauf bestanden hat, dass Code
- 19:51kommentiert werden musste, weil der Prozess das wahrscheinlich
- 19:54irgendwie verlangt hat. Also ich weiß nicht, was ihn da
- 19:57getriggert hat oder getrieben hat.
- 20:00Aber das war eine Belastung und keine Hilfe, weil du denkst, du
- 20:04so, warum muss ich denn jetzt diese eine Zeile kommentieren?
- 20:08Also da steht doch da was, da passiert was für mich wieder ein
- 20:12Zeichen war, dass ich es ja eigentlich ganz geil gecoded
- 20:14habe, weil es gab keinen Klärungsbedarf an der Stelle und
- 20:18trotzdem sollten der Kommentar rein und das ist halt für mich
- 20:20ein absolutes Notebook. Und ein dont auf der Seite.
- 20:23Ich würde das Ganze vielleicht unter redundante Kommentare
- 20:27vielleicht mal benennen, weil im Endeffekt geht es ja darum, dass
- 20:30du sozusagen mit Kommentaren redundant erklärst, was
- 20:35eigentlich der Code im optimalen Fall selbsterklärend.
- 20:40Zeigen soll. Ja, das ist ein guter Punkt,
- 20:43finde ich gut. Ja, was ich halt.
- 20:45Was auf jeden Fall auch noch ein Punkt ist, also was darüber noch
- 20:48hinausgeht, ist ja, dass wenn du dir überlegst, okay im
- 20:51Normalfall das kennt, glaube ich kennen viele, ist ja Code, ist
- 20:57ja sehr lebendig, nenne ich das jetzt mal.
- 20:59Also er verändert sich häufig und angenommen du hast zum
- 21:04Beispiel die Anforderungen, warum auch immer, dass dir
- 21:07jemand sagt, KOMMENTIERE bitte jede Zeile Code.
- 21:11Was für einen unglaublichen Overhead generiert man, wenn man
- 21:14sozusagen sagt, ich verändere jetzt den Code?
- 21:19Weil jede Zeile, die du änderst, musst du nicht nur umschreiben,
- 21:22sondern du musst auch noch zusätzlich den Kommentar
- 21:24verändern. Und das ist halt genau das da.
- 21:27Da kommt ja beim Refactoring kommt das zum Beispiel dazu, ne,
- 21:30wenn du jetzt wirklich, das musst du ja auch echt auf jeden
- 21:32Fall an die Kommentare denken. Genau, und da hat keiner Lust
- 21:35drauf. Da hat gar keiner wacht, auf
- 21:37keinen Sinn. Genau dann hast du nachher den
- 21:41worst case, dass du Kommentare hast, die gar nicht mehr zu dem
- 21:43Code passen. Das heißt, sie sind nicht nur
- 21:45überflüssig, sondern auch noch falsch.
- 21:47Genau, ja, das ist n cooler Punkt auf jeden Fall.
- 21:53Absolutes Dont in meinen Augen. Gibt es Fälle, wo du dir
- 21:57vorstellen kannst, dass es denn so Richtung du wandert, um da
- 22:00mal was zu benennen? Ja, also schon.
- 22:04Also es kann halt durchaus sein, dass du vielleicht irgendwie,
- 22:07sagen wir mal domainspezifische Informationen vielleicht
- 22:10mitgeben musst. Also angenommen, du hast zum
- 22:13Beispiel eine bestimmte Berechnung, die in einem ganz
- 22:16bestimmten Sektor stattfindet, zum Beispiel, sagen wir mal, in
- 22:20einem Finanzbereich oder in irgendeiner Physik Engine, um
- 22:25mal 2 komplett verschiedene Bereiche zu benennen, wo du
- 22:28vielleicht bestimmte Konstanten hast, die dir eventuell.
- 22:34Also die vielen Leuten vielleicht unbekannt sind.
- 22:37Weißt du, dass du sagst okay, warum wird jetzt vielleicht
- 22:40genau etwas? Rechnet.
- 22:42Warum wird diese Berechnung an dieser Stelle angestellt?
- 22:46Dann ist es vielleicht durchaus hilfreich, Kommentare für eine
- 22:50sage ich mal, Anreicherung von Informationen, die halt eben
- 22:54genau in dieser Domainspezifisch sind, dem.
- 22:57Nachfolger oder der Nachfolgerin in diesem Code teil eben zu
- 23:00helfen, ne also Hinweise zu geben um eben ein besseres
- 23:04Verständnis zu generieren, was theoretisch nicht einfach
- 23:08ersichtlich ist. Also gerade wenn jetzt ich ich
- 23:11versuch mal. Beispiel zu generieren.
- 23:13Gerade wenn du sagst. Vielleicht weiß zum Beispiel.
- 23:19Vielleicht wissen viele, wie man zum Beispiel keine Ahnung eine.
- 23:23Berechnung von einer Geschwindigkeit, Beschleunigung
- 23:26auf keine Ahnung der Erde berechnet und wenn man es nicht
- 23:30weiß, kann man relativ schnell nachgucken, ob diese Berechnung
- 23:33tatsächlich richtig angestellt wurde.
- 23:34Im Code ist vielleicht nicht unbedingt kommentierungswürdig
- 23:38würde ich sagen, ne wenn es jetzt zum Beispiel um eine
- 23:40Funktion geht, die eine Beschleunigung berechnet, aber
- 23:42angenommen du hast sagen wir mal ein Spiel.
- 23:46Wo du auf eine Beschleunigung für einen keine Ahnung ganz
- 23:50bestimmten Bereich, der vielleicht verzaubert ist und
- 23:53irgendwas Spezielles darauf einfällt.
- 23:57Vielleicht speziell darauf einwirkt.
- 23:58Weißt du, dass sich zum Beispiel jemand hinstellt und sagt Häää
- 24:01Beschleunigung, was ist das für ein Quatsch, das stimmt doch
- 24:03vorne und hinten nicht, weil halt eben die Berechnung
- 24:06deutlich abweicht von dem, wie man es vielleicht ursprünglich
- 24:10kennt, aber du halte dich in einem ganz bestimmten Bereich,
- 24:13Aufhältst an dieser Stelle des Codes, der Halt eben genau einem
- 24:18mögliche einen möglichen Fehler, den man vielleicht erkennen
- 24:23könnte, eigentlich wirklich aber so gewonnen.
- 24:27Wie es ist. Und da könnte vielleicht dann
- 24:29zum Beispiel ein Kommentar helfen zu sagen, OK, an dieser
- 24:31Stelle wird es wirklich so gemacht, weil ne unter
- 24:34bestimmten, also wegen besagtem. Nerv erwähnen besagtem ja.
- 24:39Ja find ich, ist n auf jeden Fall n guter Punkt, wenn halt
- 24:42zum Beispiel so Konstanten einfach nicht so gängig sind.
- 24:45Beispielsweise find ich auf jeden Fall sehr cool, wo mir das
- 24:49auch. Oft begegnet ist, und das ist so
- 24:51n bisschen, da bin ich n bisschen, ja, ich sag mal hin
- 24:55und hergerissen war damals in dem Embedded Projekt.
- 25:01Dass man ja quasi auf der Hardware.
- 25:06Quasi die Register beschreibt, das heißt, an gewissen
- 25:09speicheradressen Werte setzt, um dann die Register, quasi die
- 25:14einzelnen Bits zu aktivieren, um so Konfigurationen herzustellen,
- 25:17um mal das Mal ganz kurz zu erklären.
- 25:19So ne, also du schreibst zum Beispiel eine 1 rein, dann ist
- 25:22das erste Bit gesetzt und dadurch wird halt die Hardware
- 25:25umkonfiguriert. Hat denn zum Beispiel eine
- 25:27Funktionalität an oder aus, so kann man sich das vorstellen und
- 25:31so bit. Region.
- 25:34Um zum Beispiel gezielt Bits anzumachen, um Masken dabei zu
- 25:39verwenden, um Shift Operation, was es denn halt alles so gibt,
- 25:42was man da denn verwendet, will ich jetzt nicht zu detailliert
- 25:45eingehen, aber vielleicht merkt man schon, das ist vielleicht
- 25:48auf den ersten Blick dann gar nicht mehr so trivial zu
- 25:51erkennen, was da passiert und warum man das macht.
- 25:55Da kann man Kommentare verwenden.
- 26:00Ja, ich bringe mal irgendein Beispiel.
- 26:02Sowas wie ja, aktiviere mal den watchdog jetzt da drauf, dass du
- 26:06so eine gewisse Überwachungsfunktion auf der
- 26:07Hardware anschaltet. Dafür musst du im Register a das
- 26:12vierte Bit ansetzen und um gewissen Modus davon noch zu
- 26:15machen, muss auch noch das zweite Bild an sein.
- 26:18So das heißt du Shift ist entweder die Zahlen da rein oder
- 26:21setzt mit einer Maske dann die Werte da drin.
- 26:23Wie auch immer, du hast halt eine Funktion die das Macht
- 26:26valide zu sagen ich mach mal einen Kommentar an sowas wie
- 26:30enable watchdog. Irgendwas, so eine Möglichkeit
- 26:35würde ich sagen, ist OK, weil man ja aus dem Kopf nicht
- 26:38unbedingt weiß, wie man das einstellt auf der Hardware, da
- 26:43ja valider Punkt besser wäre, aber noch, weil wir auch diese
- 26:48Funktionsfolge schon dazu gemacht haben, ist diesen Code
- 26:50einfach noch mal in der Funktion auszulagern, die heißt Enable
- 26:54watchdog und dann vielleicht noch setmode und dann kannst du
- 26:58es eigentlich schon wieder schaffen, dass der Code sich
- 27:00selbst erklärt, also kann man es schon wieder.
- 27:02Dieses Argument so ein bisschen aushebeln, aber das ist trotzdem
- 27:05ein Punkt wo ich sage ist ok. Da n Kommentar ranmachst aber
- 27:08wär vielleicht schöner, wenn du das noch so mit den Funktionen
- 27:10beschreiben könntest. Ja, ich verstehe worauf du
- 27:14hinaus willst. Es ist ja vielleicht doch
- 27:17interessant, an der Stelle selbst wenn du zum Beispiel
- 27:20sagst Enable Watch Dog, ist es ja vielleicht.
- 27:22Also selbst wenn du ne Funktion erstellst, könnte man ja
- 27:25vielleicht trotzdem noch dazu schreiben.
- 27:26OK, es ist das vierte Bit, ne, weil es könnte ja auch zum
- 27:29Beispiel sein, dass jemand angenommen, keine Ahnung.
- 27:33Sich sagt Okay welches ist es denn jetzt?
- 27:35Das ist das wohl das Dritte. Obwohl es das Vierte ist.
- 27:39Und da ist vielleicht ein Fehler drin oder was auch immer.
- 27:41Ne also. Aber so könntest du es
- 27:44zumindestens Kapseln, dass quasi Leute, die von außen drauf
- 27:47gucken sich denken, OK der watchdog wird enabled ja so ja
- 27:51beispielsweise genau genau. Ja, was haben wir noch so für
- 27:57Punkte? Ich hatte noch einen, lass mich
- 27:59kurz überlegen, ja kurz überlegen, ich könnte.
- 28:02Vielleicht. Wenn.
- 28:04Es jetzt eigentlich ja, ja, mir ist das eingefallen, bevor sie
- 28:06da weg ist, hatten wir auch schon mal thematisiert, und zwar
- 28:11to do. Kommentare ist auch ein sehr
- 28:13spannender Bereich. Sehr schön wollte.
- 28:15Ich auch gerade anbringen, das gibt's ja nicht.
- 28:17Ja, dann ist ja gut, dann lass doch darüber reden.
- 28:21Kurze Erklärung dazu für diejenigen, die es nicht wissen.
- 28:23To do Kommentare sind oftmals dafür verwendet, wie es schon
- 28:27heißt, to do, also wie eine aufgabenliste, dass man sagt
- 28:30Okay hier an dem Code, da passt was nicht oder da fehlt
- 28:33vielleicht noch Funktionalität, kann ich jetzt aus gründen, ich
- 28:38weiß man also es ist immer schwer zu sagen was ist ein
- 28:40valider Grund das jetzt nichts zu tun, das hatten wir auch
- 28:42schon mal thematisiert. Aber dass man sagt, ich kann es
- 28:46jetzt nicht tun, ich mache mir einen Kommentar an schreibe.
- 28:50To do und dann was noch zu tun ist und tatsächlich, viele IDES
- 28:56unterstützen das ja schon seit langem, dass es ne Art
- 28:58highlighting gibt dafür, dass du zum Beispiel sagen kannst, wenn
- 29:01ich jetzt to do als Keyword davor schreibe, wird mir das
- 29:04farblich markiert. Der Kommentar, dass es sich
- 29:06abhebt, ich kann denn im ganzen Projekt super schnell nach to do
- 29:10s suchen, kann mir Aufgabenlisten erstellen, das
- 29:12wird ja alles unterstützt. Ja, feine Sache.
- 29:16Ist denn das Problem bei to dos noch mal kurz zusammengefasst?
- 29:20Ja, also ich, ich würd es n bisschen aufteilen, weil
- 29:25prinzipiell bin ich auch kein Fender von to do s
- 29:27ranzuschreiben. Und gleichzeitig muss man sagen,
- 29:31passiert es einem, dann ist auch wieder die Frage OK, ist es denn
- 29:36wirklich absolut schlimm und n absolutes No go to dos
- 29:39ranzuschreiben. Ich weiß nicht, ich würde sagen,
- 29:43es ist jetzt nicht unbedingt n absolutes No go zu sagen, OK,
- 29:47ich schreibe ein to do dran, ich glaube das Problem bei Todo s
- 29:52entsteht darin. Wenn zum Beispiel to do
- 29:57Kommentare nicht aktiv verwaltet werden und das hab ich zum
- 30:00Beispiel auch schon sehr, sehr oft mitgekriegt, dass du zum
- 30:03Beispiel. To dos dran schreibst oder
- 30:07jemand anders hat n to do dran geschrieben und entweder du
- 30:10entdeckst deinen eigenen to do Kommentar oder von jemand
- 30:13anderem und. So OK.
- 30:17Also ja stimmt, müsste man mal machen.
- 30:22Von wann ist der von vor 2 Monaten wurde also seit 2
- 30:26Monaten nicht gemacht. Und dann ist die Frage OK, macht
- 30:30man es jetzt oder vielleicht guckt man sich es wieder in 2
- 30:33Monaten an. Das ist halt immer die Frage und
- 30:35dann ist auch gleichzeitig wieder die Frage, wenn etwas 2
- 30:38Monate als to do drin steht, wie wichtig war dann dieser Todo?
- 30:43War dieser Punkt. Also das ist halt genauso dieser
- 30:46Trade off, weil im Endeffekt würde ich sagen, sind to do
- 30:49Kommentare okay möglich und nicht absolutes No go Logo
- 30:55entsteht darin, wenn man einfach nur to do Kommentare dran
- 30:58schreiben, die aber nie macht und nie umsetzt.
- 31:01Ja. So würd ich.
- 31:06Ja, also ich find das Thema ist echt schwierig, weil wie du
- 31:09schon meintest, du erwischt dich selbst dabei.
- 31:13Ich erwisch dich auch sehr oft dabei.
- 31:16Nee, aber das ist wirklich n Punkt, wo ich auch selbst super
- 31:20mit struggle, dass ich da wirklich ein Thema mit hab, weil
- 31:23ich weiß, es ist nicht cool. Ich kenne mich selbst.
- 31:26Ich weiß genau was du meinst. Dann sind die 2 Monate alt und
- 31:30wie wahrscheinlich ist denn bitte noch, dass das umgesetzt
- 31:33wird? Also es ist ja wesentlich
- 31:35wahrscheinlicher, dass diese Liste gefüllt wird und nie
- 31:38abgearbeitet wird, dass du dann immer diese Kommentare hast.
- 31:41Dann kommst du irgendwann an diesem Codeteil vorbei, liest
- 31:44den Kommentar. Ah ja, ja, Ach ja, verdammt
- 31:49anderen. Und ich hab mir mal den Spaß
- 31:52gemacht und hab in unserem aktuellen Projekt war wie
- 31:55reingeschaut. Wieviel to do s wir da drin
- 31:57haben und super. 0. Der Hammer.
- 32:06Nein, also ich hab es schlimmer erwartet, aber ich wusste
- 32:09natürlich, dass es welche gibt, weil wie ich gerade schon
- 32:11meinte. Man kommt ja ab und zu mal dran
- 32:14vorbei und liest sie dann. Tatsächlich sind es 8 Stück, nur
- 32:19das geht und ich finde das geht, das ist in Ordnung und das auf
- 32:2220 Zeilen Code ist okay ich meine immerhin haben wir jetzt
- 32:26schon 3 Funktionen geschrieben. Nee, aber da war Chapeau an uns,
- 32:33aber gleichzeitig auch nochmal die Mahnung jetzt hier.
- 32:36Alle haben es jetzt gehört, wir müssen aber noch mal ein
- 32:39bisschen dran arbeiten. Ein guter Punkt.
- 32:45Das ist halt wirklich und ich glaub liebe zuhören lieber
- 32:47Zuhörer, falls dir das so ähnlich geht, dann lass dir
- 32:50gesagt sein, du bist nicht allein damit die, also es ist
- 32:54sehr verführend to do's zu verwenden, weil was es mir in
- 32:58dem Moment gibt und deswegen ist es glaube ich der Grund warum
- 33:01ich es öfter mal verwende ist einfach es nimmt in dem Moment
- 33:05dir den Druck. Sich darum kümmern zu müssen,
- 33:08weil du hast das Gefühl, es ist abgehakt, also so.
- 33:12Ja ich hab n Toodura angeschrieben, es ist
- 33:15berücksichtigt, es wird noch gemacht, ich bin erstmal fein
- 33:18damit. Obwohl vielleicht im Hinterkopf
- 33:20schon irgendwo sitzt, so nach dem Motto, Es wird niemals
- 33:22passieren, niemals weißt du. Aber in dem Moment denkst du dir
- 33:27erstmal OK, grüner Haken dran ist n to do Kommentar da die
- 33:31Frage, das ist eigentlich ne uncoole Sache.
- 33:33Die Frage an der Stelle ist ja OK, angenommen du sagst ey ich
- 33:36bin jetzt an einem Punkt im Code, ich sehe etwas was zu tun
- 33:40ist. Und jetzt hab ich im Hinterkopf,
- 33:44ich soll kein to do ran schreiben.
- 33:46Was tu ich dann? Also nach der Theorie im Best
- 33:52Case oder was Real. Passiert in der Theorie im Best
- 33:56Case. Was würde man denn?
- 33:57Naja, das hatten wir mit der Later Equity Never Folge kümmer
- 34:02dich sofort drum, sonst wird es nicht passieren.
- 34:04Genau. Aber die.
- 34:07Ist ja wahrscheinlich n bisschen ne andere.
- 34:09Also ich kenn es zum Beispiel, was ich auch aus meiner sag ich
- 34:13mal Erfahrung her sagen kann, was an sich ganz gut
- 34:18funktioniert hat, war der Punkt, dass man auf to do Kommentare
- 34:22verzichtet hat und dann zum Beispiel.
- 34:26Sich ein, ich sag mal, wenn man ein schönes Ticket System hat
- 34:31für das Team ein Ticket beziehungsweise ein Shore
- 34:35anlegt. Das hieß bei uns damals Tor,
- 34:36also quasi eine keine keine User Story die User Mehrwert bringt
- 34:41in dem Sinne, sondern sozusagen kein User Value liefert, aber.
- 34:47Sozusagen den Code verbessert eventuell.
- 34:51Das könnte ein to do sein, dass man sagt, hier ich muss noch mal
- 34:54das und das noch mal umbauen oder was auch immer oder
- 34:57vielleicht noch mal vielleicht irgendwie in möglichen
- 35:01Fehlerfall abfangen, was man vielleicht gar nicht als User
- 35:03mitkriegt, aber sozusagen den Coachuner macht.
- 35:05Es lief dann unter Chors. Und die haben wir dann angelegt
- 35:09im Team. Und haben die dann sozusagen
- 35:14auch versucht, zeitnah zu bearbeiten?
- 35:16Ne, hier wieder der Fokus auf oder man betone versucht hat
- 35:22nicht immer funktioniert, aber es war auf jeden Fall so, dass
- 35:24quasi keine To do Kommentare im Code standen, die einen
- 35:27irgendwie so nach dem Motto Jetzt muss man, das müsste man
- 35:31ja auch noch machen ja stimmt. Aber es war immer sowas, wenn
- 35:35man mal Zeit hatte, konnte man sozusagen in die Chorkiste
- 35:39greifen und da was abarbeiten das.
- 35:43Ja, das ist sehr spannend. Das heißt, Ihr habt euch das
- 35:47dann selbständig aus dieser short Kiste, wie du es gerade so
- 35:50schön genannt hast, gezogen oder wurde das jetzt?
- 35:53Es war ja auch im agilen Umfeld, soweit ich das jetzt Änderungen
- 35:56hab oder wurde das aktiv mit eingeplant, zum Beispiel im
- 36:00nächsten Sprint in der nächsten Iteration Nene, also das
- 36:03manchmal schon manchmal nicht, es war immer so, das wäre ja an
- 36:06sich ein super cooler Umgang damit ja also es war ein
- 36:09bisschen on demand, also es gab schon Punkte die tatsächlich mit
- 36:14eingeplant wurden. Es gab aber auch andere Punkte,
- 36:17die einfach so ein bisschen als Art.
- 36:22Backlog da waren gedient haben, sagt man das so?
- 36:28Wo man also, bei dem man sich dann halt einfach bedienen
- 36:31konnte. Angenommen, man hat zum
- 36:33Beispiel. Kam auch vor mal keine neuen
- 36:38User Stories gehabt. Ja, selten, oder?
- 36:44Tatsächlich war das nicht immer selten.
- 36:46Also es kam durchaus ab und an vor.
- 36:49Und dann hat das ganz gut funktioniert.
- 36:51Ja, dann ist so ne Grabbelkiste natürlich nicht schlecht, ne,
- 36:54also wo du noch mal sagen kannst genau, ich hab gar keine Lust
- 36:57reinzugreifen mich darum zu kümmern, aber es muss ja jetzt
- 36:59passieren. Aber es setzt natürlich voraus,
- 37:02dass man irgendwie ne gewisse Velocity hat, die das zulässt
- 37:06und auch. Also du hast nen input, du hast
- 37:09nen Output und wenn aber der Input generell größer ist als
- 37:12der Output, was ja durchaus vorkommen kann, dann ist es
- 37:15natürlich nicht unbedingt hilfreich, dann sollte man es
- 37:19mit einplanen, wahrscheinlich. Aber das war eine übliche
- 37:23Herangehensweise, um to do s sozusagen.
- 37:27Zu umgehen. Also muss ich sagen, gefällt mir
- 37:31sehr gut, habe ich so noch nicht gelebt, könnten wir ja für uns,
- 37:35für unsere 8 to lose auch mal in Erwägung ziehen, weil es dann
- 37:40halt einfach die Wahrscheinlichkeit wieder
- 37:42drastisch erhöht, dass es umgesetzt wird, es sei denn, du
- 37:45hast natürlich wieder ein total zugemülltes Backblock mit
- 37:47Tausende Tickets und findest da denn nicht mehr, aber du hast ja
- 37:51als Prämisse gesetzt, dass man ein gutes System dahinter hat,
- 37:54was aufgeräumt ist. Sehr, sehr cooler Punkt.
- 37:58Fabi hat mir den fand ich wirklich cool, danke, dass du es
- 38:01mit mir und den Zuhörern geteilt hast.
- 38:04Du, ich würde es sagen, einen letzten hätt ich noch OK.
- 38:08Dann hau mal raus. Vielleicht hab ich auch noch
- 38:10einen kurzen aber. Weil das ist eine Sache, da habe
- 38:14ich auch so meine Erfahrungen mitgemacht.
- 38:18Und zwar geht es darum, wie erkläre ich das, dass du eine
- 38:23gewisse Art von Dokumentation und Information.
- 38:29Den den Code über Kommentare, Verpackst und die aber gewollt
- 38:35sind und vor allem langfristig sind.
- 38:39Ich bring mal n Beispiel, es gibt 2 verschiedene Beispiele,
- 38:44bring ich mal die mir da sehr oft begegnet sind und die ich
- 38:46irgendwie nie cool fand. Das eine sind so was wie.
- 38:55Changelogs in Files ich weiß nicht ob du sowas kennst.
- 38:59Ja. Wenn wenn du zum Beispiel dann
- 39:02oben ne Art Header hast, wo dann drin steht, wer war der Autor,
- 39:07wer war der letzte, der es geändert hat und dann halt auch
- 39:10so eine Art Versionierung im Kommentar.
- 39:14Dass es eine Version gibt und drin steht.
- 39:18Wer was geändert hat? Und.
- 39:20Wann? Mag sein, dass da gewisse
- 39:25Automatisierungstools dahinter stecken, Stichwort automatische
- 39:29Code, Generierung wie Doxygen mal so als toolbeispiel, dass du
- 39:33halt verschiedene Dokumentationen dann aus dem
- 39:37Code generieren kannst, hat seine Daseinsberechtigung, aber
- 39:41ich stehe manchmal echt ein bisschen auf Kriegsfuß damit,
- 39:43weil es kann also was einem klar sein muss und deswegen möchte
- 39:49ich diesen Punkt ansprechen ist dass diese Information.
- 39:53Echt super schwer sind aktuell zu halten, weil das hatten wir
- 39:57vorhin ja auch schon bei den Kommentaren innerhalb der
- 39:59Funktion, an der du aber aktiv arbeitest.
- 40:03Und jetzt stell dir vor, du musst jetzt noch so ein
- 40:04Changelog oben in jedem Fall was du geändert hast pflegen ja das
- 40:08weil das irgendwie Anforderungen im Projekt ist, dass du rein
- 40:11schreibst. Wir haben keine Ahnung den 2512
- 40:17und Tino hat jetzt in dieser Funktion die Funktion sowieso
- 40:20geändert, weil die Berechnung falsch war oder so.
- 40:24Ich frage mich halt immer, an welcher Stelle sowas dann
- 40:26wirklich wertvoll ist, weil du hast dafür ja auch, wie wir es
- 40:30schon angesprochen haben, eine Sanierung ganz genau.
- 40:34Du hast ja einen Commit, der dahinter steht.
- 40:36Commit Messages ist auch so ein Thema, kann man auch mal eine
- 40:39Folge drüber machen, aber hoffentlich wird ja die Commit
- 40:43Message aussagekräftig genug sein um schon zu erklären was da
- 40:47passiert ist und dem Vorteil den du dabei hast.
- 40:49Du hast es noch commitübergreifend, also nicht
- 40:51commitübergreifend, sondern. In dem in dem Scope deines
- 40:55Commits, das heißt, Wenn du mehrere Files angerührt hast,
- 40:58siehst du gleich, was sich alles bezüglich Deines Commits
- 41:00geändert hat und nicht nur in diesem einen File.
- 41:06Du bist verpflichtet, dass er automatisch aktuell zu halten,
- 41:09in dem Moment, wenn du was eincheckst und committest jetzt
- 41:11bei Git beispielsweise musst du ja einen Kommentar anschreiben
- 41:14oder solltest du, also du wirst auf jeden Fall aktiv darauf
- 41:17hingewiesen und so ein Header in File spätestens bei der 2.3.
- 41:22Änderung wirst du vergessen, ist meine Meinung dazu.
- 41:26Genau das war das eine Beispiel und ganz kurz das andere.
- 41:28Noch, weil das in die ähnliche Richtung geht, weil ich jetzt
- 41:31Dogs schon angesprochen habe ist, dass du so eine Art Header.
- 41:36Kommentare machst gerade in der C Welt hatten wir das auch viel
- 41:41gemacht, also in verschiedenen Projekten.
- 41:43Ich hatte ja so mehrere Embedded Projekte damals und es war halt
- 41:46überall, also es ist nicht nur, dass es so in einem Projekt war,
- 41:49sondern sehr verbreitet, dass du dann zum Beispiel.
- 41:52In der C Welt in dein Header Files, wo die Deklaration der
- 41:55Funktion drin ist, dann sowas reinschreibst wie Input ist das
- 41:59Output ist das Return ist das und ne Erklärung was die
- 42:03Funktion macht. Klar du kannst jetzt mit zum
- 42:05Beispiel Doxygen ne automatische Code Code Generierung eine Doku
- 42:08Generierung machen und kriegst halt hoffentlich eine ganz coole
- 42:12Übersicht über deine Software raus, aber es muss einem einfach
- 42:16klar sein wie schnell dann diese Dokumentation fehlerhaft ist,
- 42:20weil du und benennst die Variablen da drin um, dann passt
- 42:25es schon nicht mehr gefühlt. Ja.
- 42:28Ich finde, und damit hab ich halt irgendwie auch n clever.
- 42:30Das ist für mich eigentlich auch n dont.
- 42:32Ich find doch immer die Frage von Dokumentation ist auch immer
- 42:36die Frage, für wen wird dokumentiert an dieser Stelle.
- 42:40Weil du natürlich Dokumentation auf verschiedenen Ebenen haben
- 42:43kannst. Für Entwickler und
- 42:45Entwicklerinnen beziehungsweise das Entwicklerteam für User,
- 42:48für. Einen bestimmten Fachbereich,
- 42:52das Management, was auch immer. Also es gibt ja verschiedene
- 42:55Level von Dokumentationen, guter Punkt, ja und wenn du jetzt zum
- 42:59Beispiel. Sagst OK, du hast vielleicht ne
- 43:03API, die du vielleicht kommentierst für Entwickler, ne
- 43:08für das Entwicklerteam, dass du dann zum Beispiel sagst, OK, da
- 43:11wird dann zum Beispiel die API beschrieben durch Kommentare an
- 43:15der Stelle. Kann man vielleicht machen und
- 43:18da wäre ich aber auch nur an der Stelle soweit, dass man, dass
- 43:21ich sagen würde, kann man machen, wenn es genau um diese
- 43:24spezifischen Domain Informationen geht, die da
- 43:28vielleicht benötigt werden an der Stelle oder wenn wirklich,
- 43:31vielleicht irgendwie ein komplexer Algorithmus dahinter
- 43:34steht, was wir ja schon mal gesagt hatten, das ist im
- 43:36Endeffekt genau das, aber sonst würde ich beispielsweise sagen,
- 43:41dass man gerade solche API. Auf Entwicklerebene.
- 43:48Durch Tests dokumentieren sollte beispielsweise.
- 43:53Wenn wir jetzt gerade noch mal bei Dokumentationen sind,
- 43:55einfach nur. Noch also, wie gesagt, da gehe
- 43:57ich auch mit. Wenn du jetzt natürlich sage ich
- 43:59mal, eine öffentliche Schnittstelle anbietet, dann
- 44:02muss die dokumentiert sein, damit die Leute dagegen
- 44:04entwickeln können, keine Frage, und wenn du das aus dem Code
- 44:07heraus automatisiert, sage ich mal, generierst auch absolut in
- 44:11Ordnung, ich sage ja auch so Tools wie Doxy gen haben ja ihre
- 44:14Daseinsberechtigung und sind auch sehr flexibel und
- 44:17vielseitig und gut kontinuierlich konfigurierbar,
- 44:19das ist nämlich ein guter Punkt, die müssen halt auch gut
- 44:22konfiguriert sein, weil du kannst sehr schnell Doku
- 44:24generieren, die nichts aussagt. Aber was da halt einfach ganz
- 44:30klar gesagt werden muss ist, dass es ne Menge Arbeit ist, die
- 44:33aktuell zu halten und das muss einem klar sein an der Stelle.
- 44:36Das ist nicht so n so n einmalding und dann läuft das
- 44:39sozusagen, sondern da steckt auch ne Menge.
- 44:42Wartung dann dahinter sag ich mal.
- 44:44Codedokumentation auch vielleicht noch mal ne eigene
- 44:48Folge wert, je nachdem. Absolut.
- 44:50Hast du recht darüber? Kann man echt ne Menge reden,
- 44:53aber ich glaube wir haben jetzt auch echt eigentlich alles
- 44:56soweit abgearbeitet. In verschiedenen Ebenen also
- 45:01ausreichend kommentiert. Der war gut.
- 45:06Nee, aber weiß ich nicht so alles, was ich so im Kopf hatte,
- 45:09wurde entweder. Direkt angesprochen oder im
- 45:13Nebensatz erwähnt, auf jeden Fall sehr interessant.
- 45:17Vielen Dank dafür Tino erstmal für die fürs nette Gespräch über
- 45:20Kommentare. Es hat auf jeden Fall wieder ne
- 45:24Menge Spaß gemacht, Fabi ja, auf jeden Fall.
- 45:26Nimm das noch mal n bisschen zusammenzufassen.
- 45:28Also ich. Also Kommentare sind
- 45:33erfahrungsgemäß immer mal wieder im Code drin.
- 45:38Man sollte sie aber möglichst vermeiden.
- 45:41Und was meinen wir damit mit vermeiden?
- 45:44Also es kann ja durch durchaus vorkommen, dass Kommentare im
- 45:48Code entstehen und das ist auch vielleicht durchaus sinnvoll,
- 45:50dass Kommentare im Code sind, man sollte aber glaube ich immer
- 45:53ein großen. Leitsatz oder einen großen
- 45:57Leitstern haben, wenn es um Sachen Kommentare geht.
- 46:00Und zwar sollte man sich immer Fragen, bringt dieser Kommentar
- 46:03Mehrwert. Und wenn er keinen Mehrwert
- 46:07bringt, dann lass ihn bitte weg. Also quasi, dass du sagst, es
- 46:15ist. Die letzte Instanz nenn ich es
- 46:20mal genau, also wenn ich es wirklich nicht schaffe über ne
- 46:23saubere Namensgebung abzubilden über vielleicht ja ne bessere an
- 46:29besseren Aufbau an Funktion, wenn ich halt einfach denn
- 46:31irgendwann nicht mehr schaffe, ist wirklich eindeutig zu
- 46:33erklären, dass man auf letzter Ebene sagt Okay, jetzt muss ich
- 46:37wirklich mal nen Kommentar ranmachen, weil es sonst nicht
- 46:39selbsterklärend ist. Beispielsweise also, wenn man
- 46:41sich jetzt ein sehr guter Punkt, wenn man sich jetzt zum Beispiel
- 46:43sagt, okay, ich muss jetzt irgendwie eine Information zum
- 46:47Code dazu packen sollte. Vielleicht im Vorfeld einmal
- 46:51überlegen, gibt es eine andere Möglichkeit.
- 46:54Diesen Kommentar sozusagen nicht dorthin zu schreiben, vielleicht
- 46:58doch einen Mechanismus, wie ich ihn vorhin einmal genannt habe,
- 47:02um to dos zum Beispiel zu vermeiden, solche Sachen einfach
- 47:05zu sagen. Gibt es eine Alternative zu
- 47:07diesem Kommentar, wenn die Antwort dann wirklich nach einer
- 47:10gewissen Überlegung nein heißt, dann schreibt diesen Kommentar
- 47:13rein, so, das würde ich halt sagen, also wirklich sozusagen
- 47:16die äußerste Instanz zu sagen, Kommentare okay aber wirklich
- 47:20mit Bedacht und da kann man, das kann man sich so ein bisschen
- 47:24als. Leitstern nehmen würde.
- 47:27Ich sagen ja. Und ein sehr guter Leitsatz.
- 47:30Und in dem Sinne würde ich auch die Folge abschließen.
- 47:33Uns würde es auf jeden Fall super interessieren.
- 47:36Liebe Zuhörerin, liebe Zuhörer. Wie?
- 47:42Paarung ist bezüglich Kommentare wie ihr das wie du das selber
- 47:47handhabst wie du. Auch sowas erlebt hast oder was
- 47:54du schon immer, vielleicht gerade als angenommen du bist
- 47:57ein Anfänger oder Anfängerin, wie du schon immer über
- 48:00vielleicht über Kommentare gedacht hast.
- 48:04Wäre auf jeden Fall super interessant und deswegen.
- 48:07Auf jeden Fall gerne bei Instagram.
- 48:09Auf unserer Podcast Mail. Deine Erfahrungen, deine Ideen,
- 48:12deine. Anekdoten, die du dazu erlebt
- 48:17hast. Genau, und die ganzen Links,
- 48:20also zu Instagram, unser Podcast, Mail und auch zu allen
- 48:24anderen Plattformen, die wir bespielen, findest du in den
- 48:26Shownotes und in diesem Sinne würde ich sagen, wünschen wir
- 48:30euch, wünschen wir dir noch einen wunderschönen Tag.
- 48:34Schön, dass du wieder mit dabei warst, dass du zugehört hast und
- 48:37ich hoffe, dass du auch was gelernt hast.
- 48:39In dem Sinne bis zur nächsten Folge Deine Coding Buddies
- 48:42gemeinsam besser. Was?
- 48:48Was?