Man redet immer davon. AI produziert Code und Boostet
die Entwickler. Ja alles sind jetzt ten x
developer, aber wie boosten wir jetzt unsere Reviews, dass wir
da drin nicht untergehen? Coding Buddies Dein Podcast rund
um Softwareentwicklung und aktueller Tech News.
Herzlich Willkommen. Halli Hallo und herzlich
Willkommen zur neuen Folge des Coding Buddies Podcast.
Schön, dass du wieder eingeschaltet hast.
Liebe Zora, Liebe Zora, deine Gastgeber für die aktuelle Folge
Wer soll's anders sein meine Wenigkeit, der Tino und der
absolut fantastische Fabi er guckt mich an, er gritzt mich
an, er ist verwundert, weil ich ihn anders ankündige als sonst.
Aber das war die Überraschung Fabi, was geht ab?
Du schmeichelst mit Tino sehr gerne.
Was geht, was geht? Ja, also ich sag mal so ja, also
es fröstelt immer noch stark. Ja, so n bisschen bisschen noch,
ja. Ich hör mich auf.
Irgendwie. Ich glaub wir sind ja jetzt.
In so ne Eiszeit eingetreten. Mhm, es soll locker der kälteste
Winter seit 30 Jahren ja. Auf jeden Fall also mindestens.
Irgendwie gefällt mir das nicht. Im Winter wird es jetzt kälter,
im Sommer wird es immer heißer, so weißt du, kann man nicht
irgendwie. Ich habe immer von 25 Grad das
ganze Jahr über geträumt. Weißt du, und was kriegen wir,
wirst du nicht kriegen, glaube ich, tut mir leid, es tut mir
leid, wahrscheinlich so ab März oder April auf einmal direkt
dann so weißt du 30. Grad ja, also so quasi mit einer
30 Grad Sonne sozusagen den Schnee noch schmelzen, ungefähr
so. Ja so stelle ich es mir vor, so
wird es kommen. Naja gut, was willst du machen?
Gott sei Dank sitzen wir ja in unserem warmen Kämmerlein und
nehmen eine neue Podcast Folge auf, also zumindest ich weiß
nicht ob es bei dir gerade kalt ist, aber du siehst eigentlich
ganz entspannt aus. Ich denke mal du meinst eher so
draußen okay wir haben ein ganz cooles Thema und ich glaube da
werden wir ein bisschen Zeit verbrauchen, deswegen komme ich
mal direkt auf den Punkt und zwar gab es ja mal von uns eine
Folge, das ist schon länger her. Zum Thema Code Reviews und die
kam ja auch cool an und wir haben gutes Feedback bekommen.
Aber auch die Nachfrage oder den Wunsch, dass wir das Thema noch
ein bisschen vertiefen beziehungsweise nicht unbedingt
Code Reviews an sich, sondern allgemein zum Thema Reviews in
Projekten wie sollte man reviewen und da dachten wir uns.
Lass uns das doch noch mal aufgreifen.
Den Wunsch, ja und gleichzeitig uns überlegen, in welche
Richtung könnten wir das lenken und heutzutage ist es ja so,
dass ja, ich sag es wieder und manche können es vielleicht
nicht mehr hören, aber AI. Ja, schon so als Heilsbringer
gebracht wird und im Sinne von ja, man wird super produktiv und
der Code ist super und man muss gar nicht mehr coden und das
hatten wir ja auch erst vor kurzem.
Braucht man überhaupt noch Junior devs und diese ganzen
Diskussionen darum ne und immer so diese die helle Seite sag ich
mal dahinter ne betrachtet wie toll das ja alles sein kann.
Aber lass uns heute mal über ne weitere Schattenseite reden und
zwar da jetzt auch der Bezug zu Code Reviews und zwar was
bedeutet das eigentlich für Entwickler oder für
Projektmitarbeiter? Wenn jetzt AI generierter Code
im Umlauf ist? Für die Reviews Mhm.
Ja, also ich weiß nicht, ob du das kennst oder wer das
sozusagen alles kennt, aber ich denke mittlerweile kommt man da
kaum gar. Also man kommt kaum noch drum
herum. Wenn nicht gar nicht, dass man
einfach nur noch dabei ist, Code zu reviewen ne und ich sag mal
so, ich glaube auch, dass wir in Zukunft immer mehr Code reviewen
müssen als Softwareentwickler oder softwareentwicklerinnen,
aber die Frage ist jetzt, worauf sollte man achten, wenn man halt
AI Code reviewt weil wie gesagt, ich glaube das ist eine Sache
die. Durchaus an der Tagesordnung in
Zukunft stehen wird, kommt man glaub ich gar nicht so
drumherum. Ja, verschiedene Art und weisen
auch ne. Ja ne, weil man redet immer
davon. AI produziert Code und Boostet
die Entwickler ja alles sind jetzt ten x developer, aber wie
boosten wir jetzt unsere Reviews, dass wir da drin nicht
untergehen? Genau, weil im Endeffekt, das
ist n guter Punkt ne ich meine klar man wird halt schneller
durch. Also ne es kommt immer drauf an
wie man das Ganze verwendet, da kommen wir auch noch mal drauf
zu zu sprechen aber im Großen und Ganzen kann ne EI nutzung
natürlich schon irgendwie boosten also die Entwicklung ne
das ist ja eigentlich sollte ist wahrscheinlich auch jedem klar
aber und da kommt man ja auch gar nicht drumherum, dass man.
Wie gesagt, sich das auch angucken muss, was da rauskommt
und da steht dann auch wiederum die Frage, wie stark kann man
das denn überhaupt boosten, wenn man es denn noch reviewen muss,
weil ich glaube, wir sind uns einig, dass man es sich schon
noch angucken sollte und nicht einfach so durchwinken.
Ja. Und ich habe mal so ein bisschen
überlegt, ja. Dass man ja eigentlich, also man
hat ja immer irgendwie Code reviewed, ne, also wenn wir
jetzt noch mal so n bisschen zurückgehen und sagen, so, wie
war das denn alles noch mal so vor unserem geliebten Cha
chipitti ne, bevor das losging, also bis heute, weißt du, also
weiß nicht, ob du dich noch dran erinnern kannst an die Uhrzeiten
damals vor Jahren. Weißt du, es ist mittlerweile so
lange her. Ne, in Coderjahren ist es doch
super lange her. Das stimmt ja.
Ja, aber ich meine, so weißt du so früher.
Weißt du, dieses du? Googelst ja du hast n Problem,
du googelst danach ja, du wühlst dich durch irgendwelche Stack
overflow Foren oder so und um den richtigen Beitrag zu finden.
Ich find das ist ja schon gar nicht mehr, also es ist ja schon
fast undenkbar, dass man das heute macht.
Also ich meine also ich guck auf jeden Fall tatsächlich wirklich
n ich weiß gar nicht, wenn ich das letzte Mal auf Stack
overflow irgendwas gesucht hab. Ja.
Ja klar. Also in dem Moment, wo natürlich
jetzt auch so LLMS quasi auch das Internet durchsuchen können,
sag ich mal. Und auch auf diese Lösung
treffen. Sozusagen ist es natürlich
einfach die schnellere Suchmaschine am Ende, so würd
ich es mal bezeichnen, also man sucht ja immer noch danach, nur
über ne andere Ebene sag ich mal und effizient, das ist halt n
riesen, also es ist halt schon. Das ist schon wirklich n
Mehrwert. Ja, also ich find es schon
angenehmer ne direkt das Problem zu schildern in Satzform wie in
einer Art Unterhaltung als wenn ich jemand direkt frage nur dass
ich halt logischerweise schreibe in dem Moment dann.
Das fühlt sich natürlich ja an und ich finde das Boostet auch
keine Frage ne wenn ich jetzt so Probleme hab aber so Stack
overflow. Was ich halt noch gerne mache,
und das haben wir auch im Livestream gemacht.
Ist halt wenn ich irgendwas neues mir angucke, dass ich halt
wirklich noch nach Tutorials suche oder nach ja so
medienbeiträge die das erklären. Das Thema mit Codebeispielen und
so, das finde ich halt immer noch mal angenehmer, weil ich
irgendwie auch da das Bedürfnis hab ist selbst zu.
Verifizieren ob das ne gültige Quelle ist.
Weißt du wie ich das mein? Also ich könnte das Gleiche
natürlich Church GPT fragen und wahrscheinlich Krieg ich
ähnliche Ergebnisse, aber es gibt halt ein großes Problem was
wir ja schon sehr oft da besprochen haben bei AI Code, da
werden wir 100 Pro später bei den Reviews auch dazu kommen
ist, dass es halt immer völlig eskaliert.
Ja und so n. Artikel oder n Tutorial was eine
reale Person geschrieben hat, also zumindest so ältere ne.
Es gibt natürlich auch AI generierte Tutorials,
logischerweise heutzutage ne bei den ganzen Texten, aber ich denk
mir halt immer so, diese Person hat ja auch keinen Bock 1000
Seiten zu schreiben um ne Kleinigkeit zu erklären, das
heißt es ist meistens gut auf den Punkt gebracht es ist nicht
zu viel drumherum, es geht wirklich um dieses eine Thema
und das ist irgendwie noch so. Menschliche Gedankengänge was n
bisschen überspitzt gesagt, aber ich finde, diese Tutorials kann
man einfach gut durcharbeiten, weißt du?
Ja, also ich weiß was du meinst. Ne, also du du du stellst ne
Frage bei in irgendeiner LLM und am Ende kriegst du halt zig
Eventualitäten, Vorschläge, Möglichkeiten und ich weiß noch
also wenn man wenn es jetzt um Review geht ne weil.
Früher ne um noch mal kurz den Bogen zurückzuschließen so
dieses du hast gegoogelt. Du hast dann bei in
verschiedenen Foren oft bei Stack Overflow irgendwas gesucht
und dein Problem versucht zu finden oder n annähernd
ähnliches Problem jedenfalls mir ging es und ich denke mal bei
dir war es ja auch so, am Ende hat man ja auch diesen Code
reviewed irgendwo mehr oder weniger und dann für sich
entschieden OK nehm ich den nehm ich n Teil davon hilft mir das
ne also. Dieses Reviewen von Code war ja
irgendwie immer noch irgend, also war ja immer da, irgendwie
ne. Es ist ja nicht so, dass das
jetzt irgendwie auf einmal neu ist.
Man musste vielleicht an der ein oder anderen Stelle noch mehr
mitdenken oder hat vielleicht das Gefühl gehabt, mehr
mitdenken zu müssen. Weil du ja.
Gucken musstest. Passt das überhaupt zu dem
Problem, was ich hab? Und irgendwann kam ja dann Chat
GPT mit rein ne also das war ja so das erste, ich sag mal.
Große Ding in Sachen LLM, mit dem man so richtig kommerziell
arbeiten konnte. Und da ging es dann halt auch
schon so in die Richtung, dass man dann halt so klein, so n
bisschen Code Snippets gerne sich hat generieren lassen.
Also bei mir war es auf jeden Fall so ne, ich hab jetzt nie
gesagt, ey, ich mach jetzt richtig viel, sondern ich hab
immer so kleine Prompts geschrieben zu kleinen
Problemen, das waren dann eher so ich sag mal so mini Logik
Dinge weißt du irgendwas wo man sich so denkt ey ich hab gerade
gar keinen Bock nachzudenken. Ich möchte jetzt aber gerne, ich
hab hier n Array aus Objekten und möchte die gefiltert haben.
Nach den nach den Namen und gleichzeitig dann noch
absteigend sortiert nach keine Ahnung der ID oder so weißt du
und sowas kannst du super konnte man ja auch super entspannt
prompten irgendwie ne und man hat dann einfach diese Logik
bekommen du brauchtest aber keinen Kontext zu deiner zu
deinem Code weil es irgendwie alles noch irgendwie in einem
Browser lief ne also du hast ja quasi du warst so entkoppelt ne
und? Das hat sich ja also.
Aber das Reviewen von Code mehr oder weniger war ja immer noch
da. So ne also war ja immer noch
irgendwie gegeben und ich finde das gibt immer so momentan so n
shift ne, dass du dann halt von ich sag mal googlen Stack
overflow zu Kleinigkeiten, die du in den Browser eingegeben
hast hinzu. Jetzt kam AI halt auch in die
IDE rein, du kannst es ja immer schön mit so rumprompten und so
weiter direkt auf der deiner Codebase natürlich auch ganz
cool. Um dann halt zu sagen, ey, du
kannst noch mehr Kontext reingeben und dann aber auch
größere größeren Code erstellen lassen.
So oder Komponenten vielleicht sogar.
Also ich persönlich mach das sogar auch wirklich ganz gerne
mittlerweile. Also ich glaub bei hör dir mal n
paar folgen früher an, hab ich gehasst.
Mittlerweile find ich es wirklich ganz hilfreich, aber
wir kommen ja jetzt auch schon dahin, dass wirklich halt AI sag
ich jetzt mal wirklich user Stories bearbeitet so agentisch
ne. Und das ist so n bisschen die
Entwicklung. Aber irgendwie gab es ja immer
dieses Reviewen von Code. Ne, du hast irgendwas gesuchtes
reviewed, du hast irgendwas bei irgend ne LLM im Browser
reingegeben hast es reviewed in deiner ITE gibst du da prompts
rein und reviewed das oder reviewed halt ganze User Stories
oder Bugfixes oder was auch immer das heißt, irgendwie ist
es immer noch da. Und ich find das ist so ne
krasse Entwicklung, wo man aber gefühlt trotzdem immer mehr Code
Review muss, weißt du? Ja, logisch, ja.
Also der der Shift ist halt da, gerade wenn die wie du ja
meintest, die Agents finde. Ich habe mir jetzt noch mal den
entscheidenden Impact gegeben für diesen Shift von ich Code
selbst. Hinzu ich review, das im besten
Falle ne, also das hatten wir jetzt mehrfach gesagt, an der
Stelle noch mal. Ja es muss gereviewt werden,
bitte bitte Leute review das. Weil jetzt bist du an dem Punkt,
dass du sagst, ich prompte das und ich lass mir so Lösungen
generieren, dann hau ich den Code rein und dann ja geht gut,
alles klar, Pull request und jetzt kann das jemand reviewen
und so ne und dann hast du auf der anderen Seite mal überspitzt
gesagt, ja arschkarte musst dir jetzt diesen AI generierten Code
angucken und feststellen ob der gut ist, ob er macht was er
soll, ob er keine Probleme mit sich bringt und ob er auch noch
sage ich mal nicht schon Instant Refector würdig ist.
Ja, und das ist halt n Riesenthema finde ich bei der
ganzen Nummer, weil es ist n riesen review Aufwand wenn ich
es ordentlich machen will und es ist in der Verantwortung eines
jeden Coders oder Coderin genau das sicherzustellen, dass diese
Punkte alle gegeben sind in der Codebasis, weil sonst ist das
Ganze schon wieder zum Scheitern verurteilt, weil das wird nicht
später gemacht, das muss gleich gemacht werden mit dem Pull
request. Wenn ich jetzt der Reviewer bin,
ne, dann muss ich das auch ernst nehmen und nicht vorhin schon
gar nicht so. Ja ist AI generiert, es
funktioniert, er wird schon stimmen wenn er sagt, also er
wird ja den Pull request oder sie wird ihn ja nur stellen wenn
es auch geht. Ja genau das ist es nicht und
ich find AI Code neigt dazu völlig aus dem ja aus dem Ruhr
zu laufen so so richtig zu eskalieren weißt du es ist sehr
viel für manchmal Dinge die man auch.
Leichter lösen kann. Ich will nicht unbedingt sagen
wesentlich besser ne, also besser ist ja immer so ne
definitionsfrage, es ist ja sag ich mal vom Stil oft nicht
schlecht was da rauskommt, oft sind ja auch Best practices
drin. Aber es ist manchmal einfach so.
Over the tops over Engineered weißt du, und das ist halt
richtig gefährlich und dann hast du halt so viel lines of Code,
sag ich mal so viel Code zu reviewen, dass sich die Leute
wieder im Projekt denken, Oh, wie können wir denn jetzt
mithalten? Ja, mit diesen erhöhten Zeilen
auf Code, die produktiv gelten, sozusagen da, wir sind ja viel
produktiver geworden, jetzt müssen wir auch noch produktiver
in den Reviews werden, also fange ich wieder an AI
unterstützt. Reviews zu machen, da gibt es ja
auch schon verschiedene Anbieter, die da Tools
verkaufen, die wo du richtig Geld bezahlen musst.
Ja weil sie sagen Leute mit unserem Tool nie wieder reviewen
ja das Ding macht richtig erstklassige Reviews na ja gut
klar wenn ich das genauso betrachte wie den AI Code den
ich schon generiere und ins Projekt Haue, dann werde ich
auch n Review dazu. Mir prompten oder generieren
lassen können. Was sagt ja natürlich super
gemacht, aber wo ist jetzt die Komponente die das noch
überwacht und sich denkt so ja warte mal, lass das mal kritisch
betrachten und nicht immer hier Friede, Freude, Eierkuchen weil
das ist AI am Ende da hab. Ich n Agent für die.
Idee? Super Idee, was du da vor hast.
Hier ist der perfekte Code dafür.
Ja, ist nicht perfekt, richtig, er ist nicht perfekt, lass mal
noch mal. Jetzt hast du hier den perfekten
Code und so stell dir jetzt mal Agents vor, der eine Codet und
der andere Reviewt das da wird sich ziemlich viel Honig ums
Maul geschmiert, aber ob das am Ende gut ist wage ich zu
bezweifeln. Ne was ich mir nur.
Vorstellen kann. Und ja, die Zeit wird es zeigen.
Ich find es auch gut, dass du ehrlich sagst, vor einem halben
Jahr oder so warst du noch wesentlich kritischer dem
gegenübergestellt, weil das geht mir auch so.
Ich bin immer noch kritisch, habe aber N-Weg für mich
zumindestens gefunden, ob das jetzt jeder so sieht oder nicht
sei ja mal dahingestellt, das ist ja ne persönliche Sache,
aber ich hab für mich N-Weg gefunden AI tools zu verwenden.
Nach meinen Vorstellungen der Softwareentwicklung, auch in
Sachen Qualität sag ich mal, wie sie mir helfen, effektiver zu
werden, sozusagen aber nicht einfach alles blind sozusagen zu
vertrauen. Ne, und ich find gerade beim
Reviewen ist das genau der gleiche Prozess, den man
durchmachen muss. Man kann versuchen das
unterstützt durchzuführen, dass du zum Beispiel was ich mir
jetzt so vorstellen kann, ist. Coding Guidelines ja gut, da
gibt es andere Tools, die es schon länger gibt.
Ja die du da automatisiert laufen lassen kannst.
Ob du da jetzt AI brauchst oder nicht, aber alles so Guidelines
Best Practices die in dem Team definiert sind ne was
eingehalten werden muss, irgendwelche wirklich
projektspezifischen Sachen, dass ja wenn du n Feature entwickelst
musst du an der und der Stelle aber da noch vielleicht Doku
schreiben oder weiß ich was irgendwas ne so ne Sache.
Aber automatisiert Code Reviews machen zu lassen finde ich halt
richtig schwierig das Thema. Ich finde immer ich.
Ich finde, wenn du das so sagst, dass du Code erstellen lässt von
AI und Code reviewen lässt. Von AI kennst du dieses Meme wo
Spiderman so voreinander steht, so und immer gegenseitig auf
sich zeigt. Und naja, gleich mir das, das
ist das Ding dann aber. Aber ich finde es auf jeden
Fall, weil du ja auch vorhin meintest, so, dass du noch gerne
zum Beispiel so, also so Beiträge liest wie zum Beispiel
von Medium oder was auch immer, können auch andere Plattformen
sein, weil es einfach ein bisschen konkreter manchmal ist.
Finde ich, verstehe ich auch. Ich finde auch zum Beispiel
sowas wie. Hier, so Dokus, weißt du auch,
wenn wir jetzt zum Beispiel bei Godo, da haben wir uns ja auch
so in ich, ich nenn, ich glaub es ist so das letzte Jahr auch
so eingearbeitet auf Twitch, weil wir ja auch da mal unsere
Programmierwettbewerbe momentan mit Godo die Spiele.
Da doch im Spiel. Genau.
Und ich find so ne Doku hilft halt manchmal.
Komischerweise, ich sag jetzt irgendwie einfach mal
komischerweise auch mehr als so n so n so n so ne Antwort von
irgendeiner LLM, weißt du? Dass du einfach mal an einem
bestimmten Punkt wirklich siehst.
OK, so und so ist es halt vom Framework selbst definiert und
so sollte es halt eben sein. Und wenn du das aber auch
teilweise dann bei bei der LLM Reingibst irgendwo, dann kommt
halt auch gerne mal sowas zurück wie ja du kannst es die so
machen, das und das und das, dann ist es vielleicht sogar
noch in der falschen Version, weil wir quasi gerade gar nicht
über die Version sprechen, über die richtige und dann musst du
noch mal nachschärfen. Aber ich find das ist auch n
guter Punkt, weil am Ende ist die Qualität von dem was
rauskommt auch sehr entscheidend von dem was du halt
reinpromptest. Aber ich find und das ist n
wichtiger Punkt, weil wir reden ja darüber, man kann es boosten,
man kann seine Entwicklung boosten durch eben.
A. I würd ich sagen, ja kann man
machen. Die Frage ist aber wieviel kommt
hinterher also was für n Rattenschwanz zieht das hinter
sich her weil und. Das ist halt unglaublich
wichtig, so, guck mal, früher hast du dir bestimmte Dinge
rausgesucht, das hat ne Zeit gedauert und hast es umgesetzt,
musst es selber sehr viel denken, es hat Zeit gedauert,
jetzt promptest du irgendwas rein was du brauchst und musst
dir angucken ob das passt. So je besser du promptest, desto
schneller kommst du zum Ziel, aber.
Meiner Erfahrung nach ist es, dass du trotzdem immer noch mal
nachschärfen musst. Ne und je mehr man nachschärfen
muss, desto mehr Code wird generiert.
Und wie wir, wie wir auch wissen, Code wird jetzt auch
nicht immer sehr deterministisch produziert, sondern auch immer
mal gerne so n bisschen anders ne und ich find das ist halt, es
ist halt interessant zu gucken OK wo wie weit, also man braucht
so n sweetspot finde ich zwischen wie gut kann man denn
prompton? Ohne dass man mega viel
nachschärfen muss und immer wieder den Code reviewen muss,
weißt du, weil ob du das jetzt zum Beispiel in deiner IDE
machst und irgendwie sagst, ey, ich möchte das und das und das
an meiner Anwendung verändern. So ne, wie können wir das
machen, so nach dem Motto Ne dann kommt irgendwas raus aha
ich hab was vergessen, es soll ja gar nicht so sein, also
machst du wieder irgendwas es prompt es wieder irgendwas nach
und du guckst ja wieder dir diesen Code an und du probierst
ihn vielleicht aus, also diese ganze Zeit die du dafür
brauchst. Muss man auch mal challengen
find ich. Wie also wie Boostet das?
Also Boostet das wirklich oder nicht weißt du und ich find das
ist wirklich n super interessanter Punkt und da ist
es wichtig gut zu pompen find ich und halt auch irgendwie n ne
gut n gutes Review hinzulegen von dem Code der produziert wird
ne. Ich find halt auch das Problem
ist, wenn du wenn du halt die ganze Zeit damit arbeitest.
Du kannst, du kannst es ja in eine Richtung lenken und wenn es
unbewusst ist, durch nicht konkrete Prompts.
Ne, das ist halt relativ schnell wegdriftet von deinem
eigentlichen Problem oder von deinem eigentlichen Wunsch.
Ja, also hinzu. Sagen wir mal du willst n
kleines Feature implementieren und hast im Kopf so in eine
Funktion irgendwie noch an ne Klasse hängen, so n paar Zeilen
Code ne und das noch integrieren in den Rest wo die Klasse
verwendet wird einfach jetzt mal so als Metabeispiel ja und dann
gibst du das rein und er sagt ja klar hier da und da und das und
das und hier und da und dann sind da so Zeilen drin und dann
reviewst du schon und denkst dir warum machst du das?
An der Stelle ist das wirklich notwendig.
Könnte man nicht so und so weißt du, und dann kommst du ja so in
diesen Review Prozess und ich meine Erfahrung ist, dass es
dann relativ schnell völlig eskaliert und er sagt ja gut,
dann müssen wir hier und dann müssen wir da und dann müssen
wir da und da überall noch was umbauen, weißt du, und dann hast
du es schon und wenn du dem ganzen blind vertraust, dann ist
das richtig, verdammt ne, weil ich finde zum Beispiel auch
weiß. Nicht.
Wie es bei dir ist, aber n Code Review ist ja nicht nur.
Ne wie ne Klassenarbeit korrigieren.
Ja, dass du sagst, also beziehungsweise das solltest,
das solltest halt auf gar keinen Fall sein, dass du irgendwas
bekommst von einem Kollegen oder einer Kollegin.
Du reviewst das und sagst 6 Sätzen ja, so weißt du, das ist
ja kein Review, das hat doch damit gar nichts zu tun.
Klar, deine Aufgabe ist es potenzielle Fehler oder
Schwachstellen zu finden, die man ankreiden kann, aber wovon
ein Code Review am Ende lebt, ist die Interaktion zwischen den
Projekt. Wie sagt man, wenn man ja die
also zwischen dem, der es entwickelt hat, und der Person,
die es quasi durchschaut und dann möchte ich doch in der Lage
sein, dieser Person, die es entwickelt hat, Rückfragen
stellen zu können? Okay pass auf, ich habe es mir
angeguckt an der und der Stelle, ich habe es nicht entwickelt,
aber mein Gefühl ist da und da hätte man das anders machen
müssen oder ich frage mich, warum hast du es so gemacht,
dann gehe ich doch in die Interaktion, das ist doch mit
das Wichtigste an dem Review zu finden.
Fragen, Wieso ist das so? Und dann kriege ich entweder in
der Diskussion ne Antwort die die mir zeigt verdammt OK, ja er
hat recht, er hat sich es ja viel mehr angeguckt und wir
müssen das und das eigentlich beachten und deswegen ist das so
oder man trifft n Konsens und sagt Hey ja wir überarbeiten das
noch mal. Es geht doch leichter oder aber
diese Interaktion sehe ich halt mit mit Chat GPT überhaupt
nicht, weil wenn ich das mache und sage warum hast du da diese
Zeile reingemacht kommt. Ja, stimmt, die brauchen wir ja
gar nicht. Weg damit.
Chau Kakao, so weißt du und kriegst ne neue Lösung, was
wieder ganz andere Zeilen sind. So und wo ist jetzt der Punkt,
ich sag mal überspitzt das Rückgrat des Entwicklers, der
auch mal für die Lösung einsteht, die er gemacht hat,
weil er sich ja was dabei gedacht hat, die gibt es ja
nicht, sondern es wird ja nach deinem Mund geredet.
Also ich muss ganz ehrlich sagen, und das ist auch wieder n
bisschen prompt Qualität nenn ich das jetzt mal ne, du kannst
natürlich mit Reinprompen und sagen ey.
Ich hab hier das und das gemacht.
Challenge mir mal bitte ob das gut ist oder nicht so nach dem
Motto Na ja, also das kannst du ja machen und dann kriegst du
wahrscheinlich auch oder zumindest meiner Erfahrung nach
kriegst du auch mehr ich nenn es mal ehrliches Feedback von der
AI zum Beispiel ne aber und das ist jetzt das große aber.
Ich hab letztens, wir sind ja so n bisschen dabei, gerade unsere
Website zu überarbeiten von Coding buddies ne und ich hab
letztens da auch ein bisschen entwickelt beziehungsweise mit
Unterstützung von AI eben ne und ich hab das zum Beispiel am
Rechner gemacht und ich hab das auch am Laptop gemacht so ne
also unterschiedlich. Also ne an unterschiedlichen
Orten so bedeutet also auch unterschiedliche IDIS und
unterschiedliche, also das gleiche Modell aber n
unterschiedlichen Kontext oder ne.
Also du hast ja machst dann n anderen Chat auf ne.
Ja, und dann hab ich zum Beispiel gesagt, ja, guck dir
das mal bitte an, das und das hab ich schon so und da bräuchte
ich noch mal n bisschen Feedback und so und witzigerweise hat
dann das, was vorher mir das gleiche Modell ja vorgeschlagen
hat, hat das andere Modell dann gesagt, also das gleiche Modell,
aber der andere Chat hat dann gesagt.
Ja, da, das ist schon ganz gut, aber da würde ich vielleicht
noch das und das n bisschen machen, weil da wird es zum
Beispiel noch mal n bisschen offensichtlicher, ne klarere
Abtrennung bla bla bla bla bla ne und du denkst dir so Mhm,
also ich hab es jetzt überarbeitet, damit du mir
sagst, dass das noch besser zu machen ist.
Ja, aber das ist ja genau der Punkt.
Du kannst einfach genau den gleichen prompt noch mal in den
gleichen Chat hauen, ja. Also wenn du nicht reinschreibst
so, ich habe es nach genau deinen Vorstellungen
überarbeitet. Sag mir mal was es noch zu
überarbeiten gibt, wenn du sowas promptest, dann kommt sowas wie
ja nee alles super so ist gut, weil du ihm ja gesagt hast, das
ist schon überarbeitet nach dem was er dir genannt hat.
Wenn du aber einfach wieder prompt es guckt, also du gibst
den neuen Code rein und sagst überarbeite mir den mal.
Ja. Dann wirst du wieder irgendwas
kriegen und ich hatte das. Bei irgendeinem Text, den ich
mal geschrieben hab, wo ich mir wirklich dachte, gar keine Lust,
den jetzt noch mal Korrektur zu lesen.
Das war auch nichts Wichtiges. Ja, also nichts relevantes,
super, Entscheidendes ja. Und trotzdem, du gibst den rein.
Ja, die und den Satz würde ich anders formulieren, dann habe
ich das 1 zu 1 mal so übernommen, hab den Text wieder
reingegeben lies den mal bitte Korrektur und sag mir was man
überarbeiten könnte und dann kam noch mal was und irgendwann war
ich an dem Buch, ich hab es einfach mal ne Weile gemacht,
dass er mir immer wieder ABAB vorgeschlagen hat und das aber
immer im nächsten Mal wieder kritisiert hat und genau das
meine ich mit nach dem Mund reden wenn du ihm sagst
überarbeite es. Dann ist sein Task sozusagen,
ich muss es überarbeiten. So wirkt es für mich.
Ja, das ist jetzt sehr subjektiv, jetzt kann jemand
sagen, ja, du musst das und das Prompton, also wenn ihr da
geile, liebe Zuhörer, liebe Zuhörer, wenn ihr für die ganze
Folge gilt, wenn ihr geile Erkenntnisse habt beim Prompton
oder so, teilt es gerne mit uns und der Community, weil das ich
bin mir sehr sicher, dass es sehr viele Leute betrifft, die
diese Erfahrung auch machen, die wir gemacht haben oder machen.
Und sich auch Fragen, wie kann ich das denn verbessern?
Und das gilt Ja für uns genauso. Ja, aber das ist halt das, was
ich immer wieder feststelle, dass man sich einfach in einem
Kreis dreht, ja. Durchaus.
Also es kann schnell vorkommen, also gerade wenn du jetzt bei
bei Tipps bist oder so. Also ich find eigentlich was,
was ja vielleicht ganz interessant ist, dass man, dass
wir vielleicht auch noch mal drüber reden, wie wir damit so
arbeiten und dann auch mit, ich sag mal, diesem Review umgehen.
Genau also. Weil im Endeffekt ich find ich
find das, das gehört halt mittlerweile zusammen, das Code
Review plus die Zusammenarbeit mit sag ich mal der AI absolut,
weil also zum Beispiel was ich ich kann einfach mal anfangen
und mal kurz schildern wie ich eigentlich ganz gut mit damit
arbeiten kann. Also was ich jetzt zum Beispiel
für Erfahrungen gemacht hab, wie es gut ganz gut funktioniert und
zwar ich meinte ja schon ich find es auf jeden Fall schon mal
sehr sehr gut die AI mittlerweile in die IDE.
Zu integrieren oder drin zu haben, dass man halt einfach mit
der Codebase sozusagen chatten kann, was ich super cool finde
ist, wenn du auf einem Git stand, auf einem sozusagen clean
Git stand arbeitest. Du hast keine Changes, alles ist
committed und gepusht, wie auch immer, aber du siehst halt
changes sofort ne und wenn ich dann zum Beispiel sage also
irgendwas machen möchte, dann hab ich auf jeden Fall schlechte
Erfahrungen gemacht, wenn man. N sehr großen Scope gibt ne,
also zumindest zu sagen. Ja ich will jetzt zum Beispiel
die Anwendung, das was ich habe möchte ich gerne nach den und
den Vorstellungen umbauen, wenn diese Vorstellung oder dieses,
dieser, dieser Gedanke der dir kommt eigentlich die ganze
Anwendung umfasst, dann kannst du es eigentlich direkt sein
lassen, weil dann. Hast du halt genau diesen Punkt.
Entweder es wird sehr sehr generisch es du kriegst sehr
sehr viele Infos, du musst dir sehr viel durchlesen und du
musst auch wahrscheinlich im Worst Case auch noch zusätzlich
sehr viel Code reviewen, der dir aber am Ende gar nichts bringt,
weil du es, weil du es gar nicht so spezifisch beschreiben
kannst, was du haben möchtest ne und?
Das heißt, meine ich, ich mach es gerne, dass ich dann so ne
kleine Komponente nehme, also irgendwie zum Beispiel n file
oder wenn du jetzt im Frontend bist so ne Komponente im Sinne
von HTMLCSS, type Script oder sowas in die Richtung ne und
dann wirklich sagst OK ich möchte folgendes machen ne ich
sag immer ganz gerne sowas wie er soll ehrliches Feedback geben
was gerade da ist und ich sage wo ich gerne hin will ne und
dass man das dann so n bisschen abgleicht, dass man sagt OK da
will ich hin. Was haben wir schon?
Sag mir, was ich verbessern kann und was ich halt gerne haben
möchte, auch ne und sozusagen dann von da nach dazu kommt ne
von das ist gerade da Feedback dazu, da würde ich gerne hin.
Passt das denn mit meiner Verbesserung oder hast du noch
andere Ideen zu einer Verbesserung?
Weißt du wie ich meine weil es kann ja auch sein, dass man das
mach ich auch ganz gerne so n bisschen brainstorm ne mit der
AI so. Zu sagen, ja, sowas geht gut.
Ja, genau, dass man irgendwie sagt EY ich, ich hab die und die
Idee, da würd ich gerne hin und meinst du das macht Sinn und
dann muss man natürlich aber auch wieder evaluieren ne das
ist find ich immer genau der.es ist nie so, dass ich mir denke
OK das was du mir jetzt gibst das das nehm ich 1 zu 1 sondern
man muss es natürlich irgendwie noch mal lesen und sagen Ah OK
versteh ich zum Beispiel manche Sachen bringen halt nichts ne wo
du denkst OK er schlägt jetzt etwas vor.
Ne wie zum Beispiel. Und dann könnten wir diese
Informationen da drauf packen. Du denkst dir so, aber diese
Informationen stimmen sogar nicht, eigentlich ist es n
bisschen anders, dann muss man noch mal nachschärfen.
Das was ich meine ne aber da kommst du manchmal gar nicht
drum herum. Das Gute ist, wenn du dann
einigermaßen in die richtige Richtung läufst, ne wo du hin
willst, dann nehm ich den Code erstmal komplett und kopier mir
den rein. Ne zum Beispiel HTMLCSS und Type
Script einfach mal in diesem Beispiel ne.
Und guck erst mal, wie das aussieht, wie sich das verhält.
Und dann mach ich halt weiter, dann kann ich halt überhaupt
erst mal evaluieren, passt es, geht es überhaupt in die
richtige Richtung, wo ich hin will oder nicht und dann kann
man das immer so weitermachen, ne, weil was ich auch gemerkt
hab, super anstrengend ist du promptest zum Beispiel ne halbe
Stunde, weil du irgendwas noch nachschärfst und hast dann
irgendwann so n Mischmasch aus 50 antworten ich weiß jetzt
nicht ob die Zahlen hinkommen, aber.
Du hast so n Mischmasch in deinem Code, weil du sagst, OK
das passt für mich, da muss ich noch n bisschen umstylen, da
möchte ich aber im HTML noch n bisschen was anderes haben.
Timescript hab ich noch n bisschen berefecterd und am Ende
weißt du gar nicht mehr, also wenn du doch irgendwo wieder hin
zurück willst, wo du hergekommen bist, weißt du gar nicht mehr so
richtig. OK, was hab ich denn jetzt
eigentlich für gut empfunden, weil sehr viel passiert ist,
kann man sich nicht merken und deswegen ist es gut finde ich
immer n bestimmten Scope abzustecken das zu prompten.
Das in den Code zu Gießen anzupassen.
Dabei musst du natürlich wieder reviewen, was da so los ist, um
dann zu sagen, OK, das ist jetzt erstmal n stand den ich hab den
Committee ich wieder so weißt du und dann kannst du weiter darauf
arbeiten, das ist so für mich n bewährter Workflow der
eigentlich ganz gut ist. Ja, gerade bei HTMLHTML und CSS
finde ich hat man, gerade wenn man von AI also Code bekommt,
immer ziemliche Auswirkungen. Also CSS find ich halt teilweise
richtig schlimm. Du willst erst mal irgendwelche
Kleinigkeiten und er haut dir da halt alle 1000 Attribute rein,
die er irgendwie setzen und denkst dir halt so Junge, das
guckt sich CSS ist eh schon so ne Sache, wer guckt gerne in CSS
Files von anderen rein? Ja ich glaub mal die witzige
Bezeichnung, dass dazu gehört, dass man es einmal schreibt und
danach ist es sozusagen ja so. Na read only mäßig, so weißt du
also das. Das das das da will keiner mehr
dran arbeiten. Wenn einer so n riesen Pfeil da
erzeugt hat sozusagen. Und was abändern ja und wenn man
überhaupt reinguckt gefühlt und da finde ich gerade wenn du
jetzt von GPT oder sowas kriegst das auch immer richtige
Ausrufung aber genau darum geht es ja wenn ich jetzt zum
Beispiel. Wir haben ja gesagt, wir wollen
über das Review sprechen dahinter, also ich prompte das
und so wie du das machst, mache ich es auch sehr gerne einfach
um es klein zu halten, um quasi dem der LM nicht die Chance zu
geben völlig zu eskalieren. Wenn ich jetzt aber den Code
kriege, ja du meintest ja, dann musst du den Durchgucken
anpassen in die Codebasis rein und dann machst du quasi ein
Commit dazu, weil du sagst ich habe jetzt einen kleinen Teil
davon umgesetzt. Das macht ja auch Sinn so n
kleinen Häppchen sozusagen zu arbeiten, sag ich mal.
Aber die Frage ist ja jetzt, wenn ich sage, ich muss das
Reviewen gibt es so Punkte, die man auf jeden Fall wieso ne Art
Checkliste vielleicht mal durchgucken könnte?
Ja, weil so für alle Zuhörerinnen und Zuhörer, die so
gerne Fakten hören wollen, ja denk ich mir, so was sind so
Punkte die man immer durcharbeitet dabei und der
Erste der mir dabei zum Beispiel einfällt, ja.
Den ich wirklich mache, weil da hab ich auch schlechte Erfahrung
mitgemacht ist. Ich schau mir an, wie wird mein
Projekt durch Third Party erweitert, beispielsweise weil
wenn ich 1 gelernt hab ist das AI sehr gerne sagt ja ist ja gar
kein Problem, hier ist der Code und dann denkst du dir so OK das
sind aber ne Menge Imports da oben was was zieh ich mir, was
hol ich mir denn jetzt alles ins Boot in meinem Projekt nur um
dieses kleine Feature gerade zu implementieren mit deinem
Codebeispiel. Und das ist finde ich ein riesen
Punkt. Einfach mal zu gucken, was ziehe
ich alles an, nur um jetzt diese Lösung zu verwenden.
Jetzt gibt es natürlich Leute die sagen, gerade wenn es eine
Idee ist Import ja was npm install ja klar los rein damit
ja und das finde ich es halt auch sehr gefährlich, dass man
auch mal wirklich überprüft, was ist Teil dieser Lösung und das
geht halt so bei bei. Dependency ist einfach schon
los. Das ist so für mich mit das
erste, was ich checke. Find ich auf jeden Fall richtig
gut, da auf jeden Fall nachzugucken, weil wir hatten
das glaub ich auch schon, dass wir also irgendwo auf Twitch
oder so, dass wir ne ne. Ne Library genutzt haben, obwohl
wir eigentlich nicht unbedingt ne Library hätte nutzen müssen.
Ne haben das dann auch wieder ausgebaut, weil wir dann einfach
gemerkt haben so OK es geht ja auch einfacher ne das ist aber
auch wirklich wichtig, dass man das halt dann auch wirklich
challenged, weil du dir halt einfach unglaublich viel
reinziehen kannst. Ne so dependency Blade mäßig ne.
Da muss man natürlich sagen, das war klassisches googeln und wir
haben halt n Treffer gefunden mit einer Lip die das Macht was
wir brauchen, ja. Und dann war natürlich die
Versuchung sehr groß zu sagen, Ach komm, dann gehen wir die
jetzt mit rein, so ne aber auch wichtig was du sagst das zu
challengen und genau das ist ja der Punkt dann auch im Review,
ne. Ja, finde ich halt, weil du auch
von diesem, also von CSS über Wucherung geredet hast.
Ne, ich muss sagen ich bin kein großer CSS Magier, so ne Man hat
SS Magier, Man hat halt so seine Tricks und Kniffe.
Und lernt ja auch immer mal n bisschen was dazu.
Aber wenn du dir wirklich mal so n Styling von einer LLM machen
lässt, a Jesus es eskaliert so hart, dass du dir denkst,
wieviel Code kann man in CSS ballern?
Und dann hatte ich zum Beispiel auch sowas wie ja OK, aber ich
möchte gerne, weil es dann zum Beispiel um Kacheln ging.
Ich sehe gerade, dass die Kacheln gar nicht gleich groß
sind, unter bestimmten Umständen.
Je nachdem wie der Screen ist. Ne.
Also ob du jetzt einen Desktop hast oder mobile oder was auch
immer und dann so ja ach so ja gar kein Problem, da kannst du
das und das und das machen ne so.
Wieder irgendwelche CSS Dinger hingeballert ne und da merk ich
dann manchmal auch, dass es einfach durchaus sinnvoll ist
erstmal seine eigenen Gedanken zu äußern anstatt einfach nur zu
sagen, ich möchte das so haben, weil wenn du sagst ich möchte
das so haben interpretiert die LLM ich kann machen was ich will
um dir das zu bringen was du willst und wenn du das willst.
Wir haben schon sehr viel Code und ich kann dir noch sehr sehr
viel mehr Code mit reinpacken ohne Probleme und das witzige
war, dass ich eigentlich dann. Weil ich mir dachte, so was
passiert denn hier gerade, was knallt der da jetzt rein, weil
der kommentiert ja dann auch immer die CSS Zeilen, ne die man
sich das ist auch n wichtiger Punkt generell beim Code Review
von RI Code. Lest euch mal wirklich die
ganzen Kommentare durch und. Prüft mal, ob das genau das ist.
Was ist eigentlich was, was man sich so vorstellt?
Weil dann bin ich zumindest relativ schnell zu dem
Entschluss gekommen zu sagen okay, du kriegst jetzt mal meine
Idee und zwar ist es nicht einfach sinnvoller zu sagen, Du
hast eine Maximalbreite für diese Kachel und sonst skaliert
es halt auf eine gewisse Prozentzahl.
So ist jetzt ein bisschen aus dem Kontext gerissen, aber am
Ende war es halt wirklich eine Sache, ein Attribut im CSS für
eine Klasse, die das ganze gefixt hat, anstatt.
Keine Ahnung. Gefühlt noch 3 Klassen und 5
HTML tags, die dann ineinander geschachtelt waren und dann
irgendwie mit Grid hier und Styling dort und so weiter ne,
also es hilft wirklich sich zu überlegen und anzugucken und das
gilt jetzt nicht für CSS Code sondern für allen Code.
Was passiert da und im Vorfeld bevor man promptet oder während
des prompt zu sagen das ist meine Idee.
Das finde ich immer sehr, sehr wichtig, weil dann hast du am
Ende quasi, wenn du das auch reviewst und dir dann auch
diesen ganzen, diese ganzen Kommentare durchliest, meistens
weniger zu tun, als wenn du erst sagst, ich will irgendwas haben,
mach mir mal irgendwas und dann kommt irgendwas raus und du dir
denkst, so OK, ich hab jetzt 10 Minuten den ganzen Code
reviewed, das möchte ich nicht. Und dann ist natürlich auch oft
die Sache, wenn also was? Ich auch schon erlebt hab ist
wenn jetzt so AI generierter Code kommt und der wird soll zum
Beispiel in die Codebasis fließen ne und du reviewst das
ist es ja auch oft so, dass Entwicklerinnen und Entwicklern
da dann auch verleitet sind keine Tests dazu zu haben.
Das klingt jetzt richtig schlimm, weil es ist richtig
schlimm das. Klingt jetzt richtig.
Und da denk ich mir auch so. Ja gut, wenn ich n Review
bekomme und ich seh nicht mal, dass Tests angepasst wurden,
bedeutet das ja in unserer Welt ja, das ist vielleicht jetzt
subjektiv, aber in unserer Welt bedeutet das, dass sich also
nichts geändert hat, würd ich halt schon sagen, so, ja nö,
noch mal oder anpassen. Weil ich finde, wenn ich ein
Feature entwickel, dann muss es neue Tests geben.
Wenn ich etwas fixe, muss es neue Tests geben, das hatten wir
ja auch erst wieder. Ja, ein Bug ist drin, der muss
gefixt werden, ja gut richtig, aber lass mal erstmal einen Test
schreiben, der zeigt, dass ein Bug drin ist und dass der auch
grün ist. Wenn wir es gefixt haben, sonst
stehen wir wieder in 5 Monaten an dieser Stelle, wenn da sich
was ändert und das sind ja Sachen die da irgendwie unter
den Tisch fallen finde ich und das finde ich ganz schlimm also
du kannst nicht. Auf.
Also du kannst ja nicht so viel Vertrauen da reingehen, weil ich
hab es geprompted ich hab generierten Code, der sieht gut
aus und der Macht doch was er soll.
Was soll ich denn da jetzt testen, wenn dieses Mindset da
ist hast du eh verloren ne und genauso schlimm finde ich es
auch zu sagen ja gut kriegst deine Tests ich prompte kurz,
schreib mir mal hier 4 Tests krieg 5 Tests hau die da rein
und da hier kannst du Review und da sind deine Tests.
Ja, so. Das ist auch keine Lösung.
Ja, wenn ich denn anfange alles AI driven zu machen, ja, dass
ich den Code generiere, die Tests schreibe und noch NAI
review hab. Wo soll das hinführen am Ende ne
also stand heute weil Tests die ich gesehen hab die generiert
sind sind nicht per se schlecht aber sie sind sehr sehr oft
absolut angepasst auf die generierte Lösung ne also du
kriegst generierten Code. Der Feature A umsetzt und zu
diesem genau diesen Code kriegst du jetzt noch 5 Tests mit so
happy Past Tests und n bisschen paar Edge Cases vielleicht noch
so eingabechecks oder sowas genau für diese Implementierung.
Wenn da einer was ändert sind die alle rot in der Regel sehr
oft. So, und das ist halt genau das
Problem und also was halt möglich wäre ist Tests zu
schreiben und zu sagen, das ist halt auch mal n ganz cooles
Experiment. Ich schreib die Tests und
Versuch so gute Tests zu schreiben, dass es schon wieder
ne Anforderung abbildet und dann sag ich ihnen jetzt bitte
erstell mir die Funktion die das und das machen soll und die
Tests erfüllt. Vielleicht so rum den Weg gehen,
aber aber sag ich mal alles durchgenerieren oder erst Code
haben und dann die Tests dazu und dann soll das Gereviewt
werden. Da hab ich halt gar kein
Vertrauen drin so ne weil ich finde wenn ich sowas review dann
sind ganz oft. Fälle nicht abgedeckt, die man
beachten muss. Und dann sagst du das einmal und
dann eskaliert es auch schon wieder direkt.
Weißt du, dann kriegst du wieder 5 andere Funktionen dazu.
Also diese ganzen Edge Cases und so weiter das ist ich find das
ist witzig, weil wenn du sagst ich möchte das und das haben,
ist meine Erfahrung, dass Edge Cases seltener betrachtet werden
im allgemeinen, sondern wirklich so der Happy Path, ne.
So, aber es hilft durchaus zu sagen, weil du ja meintest.
Schreib mal erstmal selber die Tests, ne Tests selber schreiben
nicht von AI und man kann ja die AI nutzen zu sagen Pass auf.
Ich hab folgenden Fall was könnte denn alles passieren, das
ist auf jeden Fall ne Sache, da hilft es wieder Brainstorming
gute Sache ne aber wenn du einfach nur sagst implementier
mir das ist meine Erfahrung, dass Edge Cases gerne mal unter
den Tisch gekehrt werden, außer du adressierst es wieder
explizit. Aber, und ich find da ist auch
wieder so. Ich sag mal der das allgemeine
der allgemeine Entwicklungsprozess nicht
verkehrt zu sagen ich überleg erst mal selber was es für Edge
Cases gibt. Brainstormer mit AI gieße das
dann in Tests und lass vielleicht dann die Tests wie du
meintest Halt implementieren. Das ist ne coole Sache, aber
selbst wenn es ums reine Review geht und es gibt Tests die von
der AI implementiert wurden. Dann finde ich, sollte man da
auf jeden Fall beim Review ein besonderes Augenmerk noch mal
drauflegen, weil gerade die Tests sind ja schon ein
wichtiger wichtiger Gesundheitszustand für deine
Software und demzufolge ist es halt einfach wichtig, dass das
Halt auch passt. So also Review auf jeden Fall da
noch mal genauer hingucken. Angenommen, es gibt halt
generierte Tests. Ja, das ist halt.
Das ist n Teufelskreis halt. Wenn ich dann anfange so Tests
generieren zu lassen, ja weil ich beispielsweise was ist so n
Gedanke dahinter, der oft auftritt ist sowas wie wir
müssen unsere Code coverage erhöhen, ja weil halt keine
Ahnung die und der Prozess sagen wir brauchen die und die Code
coverage. Ja gut, dann generier Tests
damit das Abgetestet ist. Oh jetzt haben wir ne Code
coverage von 98% mit irgendwelchen generierten Tests.
Am besten sage ich im prompt noch hey hier, das ist mein
Code, ich will ne hohe Code coverage, schreib mir tests dazu
oder so weißt du dann krieg ich halt Murks raus beziehungsweise
nicht zu 100% ich möchte das ja gar nicht voll und ganz
verteufeln. Ja wie gesagt so einfache Tests,
Input Checks oder sowas oder Check mal bitte ob da überhaupt
n wert da ist. Wenn nicht mach so n Early.
Return oder weiß ich was? Irgend?
Denk dir was aus. Ja, aber diese simplen Checks,
die jeder so auf den ersten Blick sieht und sagt, das muss
getestet werden, das kannst du gut generieren lassen, keine
Frage. Ja das ist ja, das ist auch
irgendwo dann schon nah an der Implementierung, ja, aber du
musst ja natürlich verhalten Abtesten am Ende und da finde
ich gibt es halt echt starke Limitierung und ich hatte es
auch schon mal so weit, dass meine Rückfrage kam.
Ich weiß nicht warum das drin ist, ja.
Das war jetzt nichts, sag ich mal.
Die AI oder was? Wichtiges ne, also nicht so
nicht so n Projekt wo du denkst Alter kannst du nicht machen.
Ja das war jetzt nicht so super wichtig, aber trotzdem fand ich
das schon beängstigend, aber nur mal ganz kurz also die du hast
du hast es nicht, du hast. Einen.
Du hast einen Menschen gefragt, warum es da drin ist und der
Code kam wahrscheinlich von AI und der Mensch konnte nicht
sagen warum so. Genau.
Ich sollte die backen und mithelfen und das kam dann.
Das wäre geil gewesen, wenn du die LI fragst.
Das ist da drin. Keine Ahnung, mich sind gleich
gefragt und dann, so fragt die Person, die ist die das
gepfromte Tag genau ja, und das ist.
Genau das Problem und oft neigt wie du ja auch meintest, dieser
AI generierte Code neigt sehr schnell zum Over Engineering.
Ja und da hatte ich zum Beispiel n Fall, das war aber so n
privates Projekt wo ich auch mir dachte Ach komm hier, das wird
sich schnell umsetzen, machen wir also machen wir zusammen im
Sinne von ich und ne LM ne in der IDI und das funktioniert
auch gut und deswegen hat sich meine Meinung dahingehend
zumindestens geändert, dass man. Tool unterstützt und das sagen
wir ja eigentlich auf allen Plattformen ständig.
Das ist für uns ein Tool und keine Ersetzung.
Ja, hat das gut funktioniert, aber man muss höllisch
aufpassen. Also eigentlich war ich nur
damit beschäftigt, quasi die. LLM wieder einzufangen,
überspitzt gesagt zu sagen Halt, tritt doch mal auf die Bremse,
das war nicht das, was ich von dir wollte, weil dann ja hier
klar feature a kein Problem. Ja gut, jetzt hast du aber
irgendwie noch 23 andere Features drin, wo ich nicht mal
weiß ob ich das überhaupt brauche in dem Projekt.
Wenn du dann noch so was promptest wie du meintest, sei
ehrlich, sei streng, sei achte auf das und das, dann kriegst du
vielleicht einmal zurück, so, na ja, aber das braucht man schon,
wenn man das und das machen will und dann denkst du dir so, ja,
aber das will ich doch gar nicht machen jetzt gerade, ich weiß
nicht mal, ob ich das in Zukunft überhaupt machen will, da werden
nur wieder irgendwelche Sachen angezogen, weißt du aus
irgendwelchen Quellen, dass es ja vielleicht sinnvoll wäre, das
irgendwann mal zu tun? Also bist du nur am Einfangen
und am Code wegschmeißen und am neu prompton zu sagen, Mach das
bitte nicht, mach nur das nur Kleinigkeiten und da hilft
natürlich extrem und das finde ich auch gut, dass du es
angesprochen hast zu sagen, ich versuche die Aufgabenpakete so
klein wie möglich zu machen, einfach nur in der Hoffnung,
dass keine. Kein over Engineering
stattfindet, dass quasi gar kein keine kleine Tür offen ist, um
da durchzugehen, um over Engineering zu betreiben.
Das ist ja eigentlich dein Ziel am Ende dahinter, wenn man mal
ehrlich ist. Aber ich finde, es gibt auch
noch die andere Seite der Medaille, und zwar so.
Ich nenn es mal under engineering ne also ich hab
schon erlebt, dass keine Ahnung du irgendwas promptest oder in
dem Fall ich irgendwas prompte und mir dann sage OK warte mal
hier werden irgendwelche unnötigen Pattern verwendet.
Das eine Beispiel over Engineering, kleines Beispiel ne
oder aber auch zum Beispiel sowas wie wieso würde es nicht
viel mehr Sinn machen an der Stelle zum Beispiel das und das
Pattern zu verwenden. Ja ja auf jeden Fall, das wäre
super, können wir ja machen und du denkst dir so ja OK du
brauchst also wieder das wissen ne in deinem Review um zu gucken
und das ist halt auch finde ich n wichtiger Punkt weil du over
Engineering angesprochen hast. Zu checken, OK, was wird denn
verwendet, also ob jetzt irgendwelche Pattern oder
irgendwelche Architekturentscheidungen
getroffen werden von der AI genau mal hingucken ist es
gerade notwendig macht es Sinn oder fehlt da vielleicht etwas?
Ne Wir haben ja auch ganz viele Pattern, zum Beispiel auch die
Pattern Reihe haben wir auch im Podcast hier es hilft zu wissen
was es gibt und wie man damit zum Beispiel arbeitet um genau
sowas vielleicht auch dann am Ende zu erkennen, ne?
Ja, genau. Genauso wie irgendwelche
Abstraktionen, die dann teilweise gemacht werden, obwohl
es vielleicht entweder nicht notwendig ist oder notwendig
wäre oder gut wäre an der Stelle.
Das finde ich, ist auch eine Sache, da sollte man unbedingt
noch mal beim Reviewen von genaues Auge drauf werfen.
Und ich finde, das ist eigentlich auch schon, dass der
perfekte Stichpunkt, um das Ganze auch noch mal ein bisschen
zusammenzufassen, Verständnis, Erfahrung und wissen, was man
tut, einfach. Und das gerade, weil ja diese
Angst halt wirklich allgegenwärtig ist.
Ne, Wir hatten ja auch auf Instagram ne Umfrage gemacht.
Gehen dir die Gedanken durch den Kopf, ob AI dich ersetzen
könnte? Ja, gerade bei Junior Deaths und
Middeaths ist das ja schon vertreten, weil das Ergebnis war
ja auch eindeutig, dass viele Leute jetzt nicht panische Angst
davor haben, aber die Frage einen beschäftigt ja und wir
haben ja auch folgen dazu gemacht und.
Das zeigt jetzt wieder und ich finde, darunter kann auch diese
ganze Folge stehen in Sachen Code Reviews vernünftige Code
Reviews, egal wie AI driven das Ganze ist, erfordert einfach
Verständnis und Erfahrung und das ist halt n wichtiger Punkt
dabei. Ja man braucht die Erfahrung zu
wissen was möchte ich eigentlich, was sind meine
Randbedingungen, was möchte ich nicht.
Ja wir haben jetzt auch ganz viel darüber gesprochen, was
möchte ich nicht und das muss ich ja im Review auch
durchsetzen ja ja. Also dieses fireinforget ich
brauch ne neue Seite mit einem Login Screen.
So bitte haste danke weiter geht es funktioniert vielleicht bei
einer Page, vielleicht noch bei der zweiten und dann kommst du
irgendwann wenn wir jetzt wieder beim Frontend sind in die
HTMLCSS Hölle und das war es ciao und das darf es halt auf
keinen Fall sein. Wichtig ist seine Erfahrung
dabei zu machen. Sowohl beim Wir haben auch über
das Code generieren gesprochen, sich dabei helfen zu lassen und
auch beim Review, das ist halt super wichtig, Erfahrung zu
sammeln und Best Practices für sich selbst heraus zu
kristallisieren, das muss beim anderen nicht funktionieren, wir
können hier nur an der Stelle gibt es kein richtig oder
falsch, wir können halt nur unsere Erfahrung mitgeben und
ich fand es auch wieder richtig cool, was du so gesagt hast,
weil das gibt mir auch wieder Input ja wie ich es nächste Mal
vielleicht auch besser hinbekommen kann.
Also vielen Dank dafür mal. Und es zeigt sich auch hier, es
steht und fällt alles mit der prompt Qualität.
Da hatten wir auch auf Twitch schon viele Diskussionen zu und
ich find es krass wie viele Leute oder sagen wir mal
andersrum wie einige Leute wieviel Zeit sie in Prompts
reinstecken wo ich mir denke dann kannst du es in der Zeit
doch eigentlich selbst Conen aber ganz so ist es nicht
fairerweise. Aber, so Guidelines, Richtwerte,
Bedingungen einfach so statisch mitzugeben.
Du hast ja die Möglichkeit Anweisungen mitzugeben, die dann
für jeden prompt gelten. Ja, du kannst ja auch bei sagen
wir mal, nehmen wir mal als Beispiel noch mal Chat GPT, du
kannst ja auch n Projekt machen ihm Files geben, Guidelines
geben und dann wird er die berücksichtigen und das
funktioniert wirklich ganz gut und da halt massiv Zeit
reinzustecken um das was wir alles gerade besprochen haben.
Zu optimieren ist dann halt auch n guter Weg.
Ne, das vielleicht auch noch mal so als Tipp, den wir auf Twitch
mal so mitbekommen haben von einem anderen Streamer fand ich
halt auch richtig cool, dieser Input ne deswegen hier noch mal
die Anmerkung, aber das sind halt alles Sachen die am Ende
unter dem gleichen Banner fallen, wissen und wissen was
man tut ja definitiv Stichwort noch mal ersetzen AI nee.
Ich fand es auch ganz cool. Da gab es letztens auch bei uns
auf dem Discord eine wirklich coole Beschreibung für einen
wirklich wichtigen Skill, den es heutzutage vielleicht, so kann
man das vielleicht zusammenfassen, das möchte ich
gerne auch noch mal teilen. Die Aussage war, dass man in der
Lage sein muss, möglichst schnell Software in einer
möglichst hohen Qualität zu liefern und ich finde, wenn du
das als Leitsatz nimmst. So als für deinen Skill.
Ne, wie schnell kann ich also ne, wie kann ich möglichst
schnell ne möglichst hohe Qualität liefern?
Ich finde das ist unglaublich wichtig, weil damit ist es quasi
egal ob du Junior bist mit Level senior oder was auch immer, egal
was du nutzt, ja. Wähl dein Toolset selber, wenn
du in der Lage bist, super schnell hohe Qualität zu
gewährleisten. Wenn du deinen Code mit einem
Stift auf Blatt Papier schreibst.
Völlig in Ordnung, wenn du da super schnell drin bist, ist das
geil. Wenn du dafür aber eine lm nutzt
Agentisch arbeitest, was auch immer auch in Ordnung, aber
wichtig ist und das ist hier wieder der Punkt, die
Codequalität muss hoch sein, ne nicht schnell Code liefern,
sondern mit einer hohen Qualität und da ist es dann wiederum
wichtig. Die richtigen prompt zu
schreiben, das richtige Review zu machen und das richtige
Verständnis zu haben, weil sonst kannst du das nicht sonst.
Kriegst du es nicht hin? Ne, und ich glaube das ist
wirklich NN sehr sehr wichtiger Punkt und der Rest ist
eigentlich sag ich jetzt mal egal beziehungsweise nicht egal,
sondern das das sollte ganz oben stehen und das Stand schon immer
ganz oben. Ne dieser dieser Anspruch,
dieser Skill ja ja. So weit, so gut.
Ich weiß gar nicht mehr, was ich dazu noch sagen soll.
Ja, das ist das ist es eigentlich am Ende ja.
Aber was ich auf jeden Fall super interessant finde und wie
du schon meintest, es gibt ja jeder, hat ja so seine eigenen
Ideen und Workflows, wie gearbeitet wird, wie man
heutzutage mit der AI arbeitet und ich glaube da kann jeder
noch von den anderen sozusagen lernen, das ist auch glaube ich
super interessant. Also ich finde es mega spannend
und deswegen. Liebe zürer, lieber zürer, wenn
du irgendwie einen geilen Workflow hast oder Tipps hast,
wie du zum Beispiel sagst, so arbeitet man richtig gut mit AI,
oder? Das sind meine Tipps für AI Code
Reviews, dann hau das immer mal raus, gerne auf einen Discord
kommen beispielsweise und das da auch einfach raushauen die die
Tipps und Ideen und Workflows. Dann kann man halt direkt
darüber sprechen und diskutieren.
Das ist halt immer das geilste, ne genau und.
Link zum Discord, aber auch zu allen anderen Plattformen sind
auf jeden Fall in den Shownotes verlinkt und uns würde auf jeden
Fall auch Mega interessieren, ob du das, was wir gerade
geschildert haben, auch kennst und ob das vielleicht auch
manchmal nervt, so AI Code zu reviewen, weil manchmal hat man
schon ein bisschen das Gefühl, dass man weniger vom Ich sag mal
Produzenten zum Konsumenten geworden ist.
Also dass man jetzt mehr reviewen muss als früher.
Mir geht es jedenfalls so. Und das wird uns natürlich mega
interessieren, ob das bei dir auch so ist oder nicht.
Ansonsten wenn du sagst, Ey Cooler Podcast hat mir wieder
gefallen, die Folge aber eine Bewertung habe ich noch nicht da
gelassen, dann mach das auf jeden Fall gerne, das wird uns
auf jeden Fall mega helfen und empfiehlt gerne auch den Podcast
2 Freunden oder Freundinnen weiter und wenn du völlig
überzeugt bist und sagst richtig coole Sache, dann findest du
noch einen kleinen Spenden Link in den Shownotes das wird uns
natürlich auch mega helfen. Nutzen wir natürlich immer die
Spenden, um halt unseren Content zu verbessern.
Ist doch klar. Ansonsten lasst einfach mal
Liebe da. Wir schicken auch ein bisschen
Liebe raus und in dem Sinne hören wir uns auf jeden Fall in
der nächsten Folge wieder deine Kollegen, weil es gemeinsam.
Besser ja, aber ich hätte das letztens bisschen geplant und da
waren da halt auch einfach gefühlt 5 Leibig sein und dann
eine klein drücken und dann eine klein.