Jak děláte code review?

Jak děláte code review?
« kdy: Dnes v 07:35:48 »
Ahoj.

Zejména (ale nejen) v souvislosti s nástupem LLM generátorů kódu mi vrtá hlavou, jak přistupovat ke code review. Jak je děláte u Vás?

Je to jenom formalita, kdy to bezmyšlenkovitě odbouchnete?
Procházíte každý řádek změněného kódu a zamýšlíte se nad tím, jako byste to psali sami?

V našem týmu se to bere spíš jako formalita vynucovaná architekty, takže si to většinou bez čtení schválíme a jdem dál. Je to norma?

Máte nějaký metody jak si code review zefektivnit či zrychlit?


Re:Jak děláte code review?
« Odpověď #1 kdy: Dnes v 08:15:28 »
Procházím to a hledám v tom principiální chyby nebo věci, které by mohly ohrozit výkon aplikace.

oss

  • ****
  • 264
    • Zobrazit profil
    • E-mail
Re:Jak děláte code review?
« Odpověď #2 kdy: Dnes v 08:29:15 »
Co si vsimam, tak ludia co robia cez LLM si nechavaju aj code review robit cez LLM a po tyzdni sa do kodu uz vobec nepozru (a to nazyvaju sami seba programatormi).

Ink

  • *****
  • 704
    • Zobrazit profil
    • E-mail
Re:Jak děláte code review?
« Odpověď #3 kdy: Dnes v 08:36:51 »
U LLM, ale i non-LLM kódu je potřeba hlavně pochopit, jak daný commit řeší zadaný problém. Dělá to, co má? Nedělá to něco navíc, co nebylo v zadání (pochopil pisatel kódu zadání, bylo jasné, co má dělat)? Nedělá to moc složitě (z výpočetního hlediska, struktury)? Drží to guidelines pro psaní kódu? Je kód srozumitelný, dobře okomentovaný, používá smysluplné identifikátory?

Některý commit lze schválit "formálně", když člověk na první dobrou vidí, že je vše v pořádku. Jindy je třeba se na to podívat pořádně. V dnešní době by ale každopádně měl první kolo code review dělat nějaký LLM, odhalí toho docela dost a rychle.

Re:Jak děláte code review?
« Odpověď #4 kdy: Dnes v 09:51:07 »
..mňa by skôr zaujímalo, či vznikajú aj "názorové konflikty" medzi programátormi, ktorí CodeReview vykonávajú. V praxi čo sledujem, CodeReview vykonávajú aspoň viac než dvaja programátori. Nebavíme sa o malých commitoch. Vždy ma hlavné slovo jeden z programátorov ? Leader ? Máte aj takú skúsenosť, že CedeReview programátori boli menej skúsení od Vás a prišlo k "ťažkej" výmene názorov ?


Re:Jak děláte code review?
« Odpověď #5 kdy: Dnes v 11:01:29 »
Procházím to a hledám v tom principiální chyby nebo věci, které by mohly ohrozit výkon aplikace.
Takže neřešíte třeba až tak úplně business logiku, jenom jestli tam nejsou nějaký úplně strašný a nebezpečný prasárny?

Co si vsimam, tak ludia co robia cez LLM si nechavaju aj code review robit cez LLM a po tyzdni sa do kodu uz vobec nepozru (a to nazyvaju sami seba programatormi).
Což je ovšem naprosto pochopitelný - jenom kontrolovat cizí kód je nevděčná práce a troufnu si tvrdit, že přinejlepším vědomí a svědomí málokdo dokáže jenom čtením porozumět cizímu kódu tak dobře, jako by ho psal sám.

Ale u části projektů vlastně na kvalitě kódu nesejde - Hlavně že to dělá, co to dělat má.

U LLM, ale i non-LLM kódu je potřeba hlavně pochopit, jak daný commit řeší zadaný problém. Dělá to, co má? Nedělá to něco navíc, co nebylo v zadání (pochopil pisatel kódu zadání, bylo jasné, co má dělat)? Nedělá to moc složitě (z výpočetního hlediska, struktury)? Drží to guidelines pro psaní kódu? Je kód srozumitelný, dobře okomentovaný, používá smysluplné identifikátory?
To zní, jakože na tom review musíte strávit snad stejně času jako původní řešitel, ne?

Některý commit lze schválit "formálně", když člověk na první dobrou vidí, že je vše v pořádku.
Jak tohle jste schopen posoudit na první dobrou? Nebo to je myšleno spíš v kontextu triviálních změn?

V dnešní době by ale každopádně měl první kolo code review dělat nějaký LLM, odhalí toho docela dost a rychle.
JJ, na tohle jsou ty plechovky super. U vygenerovanýho kódu jim pořád úplně nevěřím, ale review je možnost napáchat škody minimální, ale většinou něco odchytí.

Zopper

  • *****
  • 998
    • Zobrazit profil
Re:Jak děláte code review?
« Odpověď #6 kdy: Dnes v 11:37:11 »
U LLM, ale i non-LLM kódu je potřeba hlavně pochopit, jak daný commit řeší zadaný problém. Dělá to, co má? Nedělá to něco navíc, co nebylo v zadání (pochopil pisatel kódu zadání, bylo jasné, co má dělat)? Nedělá to moc složitě (z výpočetního hlediska, struktury)? Drží to guidelines pro psaní kódu? Je kód srozumitelný, dobře okomentovaný, používá smysluplné identifikátory?
To zní, jakože na tom review musíte strávit snad stejně času jako původní řešitel, ne?
Vůbec ne. U review nemusím vymýšlet, jak to celé poskládat, nemusím si projít těch 10 slepých cestiček, a tak dál. Pokud kód následuje mě známé vzorce, tak typicky nepřemýšlím řádek po řádku, ale po blocích. Podobně jako text nečtu slovo po slově, ale jako větu (dyslektici prominou). Například ohledně zmiňované výpočetní složitosti typicky budu chytat jen vnořené smyčky, častý opakovaný un-boxing při práci s jednoduchými typy, a takové věci. Ve většině případů ale nebudu řešit, jestli tohle je o 10% rychlejší, nebo pomalejší výpočet.

Některý commit lze schválit "formálně", když člověk na první dobrou vidí, že je vše v pořádku.
Jak tohle jste schopen posoudit na první dobrou? Nebo to je myšleno spíš v kontextu triviálních změn?
Za mě tohle jsou triviální změny (ale definuj triviálnost :D), nebo reviews, kde já jsem jen pro formální approval ("jo, může se použít tahle naše deprecated věc, protože to je jen přesun funkcionality z jedné třídy do druhé a existuje ticket na odstranění").

V dnešní době by ale každopádně měl první kolo code review dělat nějaký LLM, odhalí toho docela dost a rychle.
JJ, na tohle jsou ty plechovky super. U vygenerovanýho kódu jim pořád úplně nevěřím, ale review je možnost napáchat škody minimální, ale většinou něco odchytí.
+1, a z mojí zkušenosti mají větší šanci si všimnout chybějící změny, než člověk. Například přidal se nový volitelný field, to zahrnuje změnu 5 různých DTO, ale změnily se jen 4. Testy nepadají, protože se to taky přidalo jen do 4 testů z 5.

Re:Jak děláte code review?
« Odpověď #7 kdy: Dnes v 11:52:03 »
Co si vsimam, tak ludia co robia cez LLM si nechavaju aj code review robit cez LLM a po tyzdni sa do kodu uz vobec nepozru (a to nazyvaju sami seba programatormi).
Nevím, u nás děláme skoro jenom pomocí LLM, na code-review máme komplexní skills, ty rutinně používáme, ale stejně děláme code-review dost pečlivě i ručně. Takže to záleží. Není to žádné pravidlo. Vždycky platilo, že jsou lidé lepší a horší a bude to platit i dál. AI to neoslabuje, spíš naopak zesiluje.

..mňa by skôr zaujímalo, či vznikajú aj "názorové konflikty" medzi programátormi [...] Máte aj takú skúsenosť, že CedeReview programátori boli menej skúsení od Vás a prišlo k "ťažkej" výmene názorov ?
Naprosto. Za mě code-review velmi často totálně rozbíjí týmovou morálku. K tomu, aby to tak nebylo je třeba potkat fakt rozumné a neagresivní lidi. A takových je bohužel celkem málo.

Takže neřešíte třeba až tak úplně business logiku, jenom jestli tam nejsou nějaký úplně strašný a nebezpečný prasárny?
Záleží, na jaké úrovni myslíte. Na té nejnižší samozřejmě ano nebo pokud je tam nějaký zjevný problém. Na té vyšší ne. Napsat kód je 30 % práce vývojáře. Takže kdybych to měl řešit komplexně, vlastně budu tu práci dělat z velké části podruhé.

U LLM, ale i non-LLM kódu je potřeba hlavně pochopit, jak daný commit řeší zadaný problém. Dělá to, co má? Nedělá to něco navíc, co nebylo v zadání [...]
To zní, jakože na tom review musíte strávit snad stejně času jako původní řešitel, ne?
To má hlavně dělat ten, kdo tu AI vede a zadává ji práci.

Některý commit lze schválit "formálně", když člověk na první dobrou vidí, že je vše v pořádku.
Jak tohle jste schopen posoudit na první dobrou? Nebo to je myšleno spíš v kontextu triviálních změn?
Za mě třeba přesně tak.
« Poslední změna: Dnes v 11:57:08 od Martin Poljak »

Re:Jak děláte code review?
« Odpověď #8 kdy: Dnes v 14:50:24 »
Ahoj.

Zejména (ale nejen) v souvislosti s nástupem LLM generátorů kódu mi vrtá hlavou, jak přistupovat ke code review. Jak je děláte u Vás?

Je to jenom formalita, kdy to bezmyšlenkovitě odbouchnete?
Procházíte každý řádek změněného kódu a zamýšlíte se nad tím, jako byste to psali sami?

V našem týmu se to bere spíš jako formalita vynucovaná architekty, takže si to většinou bez čtení schválíme a jdem dál. Je to norma?

Máte nějaký metody jak si code review zefektivnit či zrychlit?

Záleží, k čemu se code review dělá. Jestli je to "jen" kvůli zajištění nějaké maintainability nebo i proto, aby se junioři něco nového naučili. U nás se snažím už jen o to první, protože předávání informací k juniorům přestalo (i "díky" LLM) být funkční a ani to asi není vyžadované. Takže: zapnuté všechny možné lintery s docela přísnými pravidly, definované agent.md s poměrně přesnou speckou, jak má kód vypadat, skills pro vývojáře, první nástřel kontroly je přes LLM a potom nastupuje ruční review, které je hodně časově náročná a vlastně i nevděčná činnost.