tillbaka till startsidan

5. Code reviews

Lyssna på Spotify lyssna! Lyssna på iTunes

I det här avsnittet grottar vi ner oss i code reviews! Hur jobbar vi med kodgranskning? Gillar vi det? Är det ens värt det? Dessutom om att skriva bra och dåliga kommentarer i pull requests, att släppa på ägandeskapet kring sin kod och att försöka undvika ovälkomnande jargong i sin kommunikation.

Om du gillar podden blir vi väldigt glada för en liten recension i iTunes eller en prenumeration på Spotify. Följ oss och säg hej på @asdfpodden på Instagram eller Twitter (Anton, Therése) <3

Länkar

Transkribering
Transkriberingen är gjord av nån "AI-grej". Du kan förbättra den genom att klicka precis här :)
00:00:00
Jag börjar inte, du får börja.
00:00:02
Okej.
00:00:03
Välkomna till ett nytt avsnitt av ASTF.
00:00:06
Vår nya grej är att säga vem är det som börjar och börjar inte.
00:00:10
Det är ju oklart.
00:00:12
Har ju inte sett det i halsen än.
00:00:14
Alltså den som börjar är den som egentligen slipper börja.
00:00:18
Exakt. En jävla bra deal.
00:00:20
Vi är så jävla dåliga på att komma igång och spela in de avsnitten annars.
00:00:23
Ja, men det är svårt.
00:00:25
Jag håller med.
00:00:26
Idag har vi faktiskt ett typ av ämne.
00:00:28
Alltså vi har inte preppat något.
00:00:30
Nej, nej.
00:00:32
Men vi har ändå ett ämne.
00:00:34
Men hur kan det vara så att vi inte har haft ett ämne de andra då?
00:00:36
Ja, men, ja, de har ju varit, jag tänker, jo okej.
00:00:38
Så vi har precis lika mycket ämne den här gången som vi har haft de andra gångerna?
00:00:46
Ja, kanske.
00:00:48
Jag tänkte lite mer den här gången.
00:00:50
Nu var det ändå så här, okej, vi pratar Code Reviews.
00:00:54
Okej.
00:00:56
Här har vi ändå bestämt ämnet kanske två dagar innan.
00:00:59
De andra bestämde väl liksom ämnet fem minuter innan?
00:01:03
Jo, fast det var ju också att vi skulle ha poddat för två dagar sedan.
00:01:06
Ja, det är sant.
00:01:07
Så jag ser inga stora skillnader om jag ska vara helt ärlig.
00:01:11
Men absolut.
00:01:12
Det är faktiskt sant.
00:01:13
Jo, men vi tänkte snacka lite kurdreviews, eller vad vi tycker om kurdreviews.
00:01:16
Vi får se vart vi landar. Som vanligt, vår avsnitt är lite spretiga.
00:01:19
Ja, som vanligt inte ett helt supertydligt ämne.
00:01:23
Nej, exakt.
00:01:25
Vad tycker du om Code Reviews? Eller så här, är det för eller emot Code Reviews? Ja eller nej?
00:01:31
För.
00:01:32
Jag älskar att jag säger för eller emot, sen ja eller nej.
00:01:35
För, ja.
00:01:38
Ja exakt. Ja, det skulle jag säga.
00:01:41
Fast jag är lite, vi kan återkomma till det här, men jag är lite kluven, för det beror lite på hur man jobbar.
00:01:48
Jag har ju suttit ett år, fram tills ganska nyligen, så jag har suttit typ ett år utan Code Reviews.
00:01:54
Ja, men då har du ju mobbprogrammerat.
00:01:56
Exakt.
00:01:58
Men vi kan ju prata vidare.
00:02:00
Hur jobbar du med code reviews idag?
00:02:02
Ska vi säga code reviews eller säger vi kodgranskning?
00:02:05
Nej, code reviews.
00:02:07
Om det är någonting som är konsekvent så är det väl svängelskan, tänker jag.
00:02:12
Just idag så finns det ingen tydlig rutin utan man ska lägga upp en PR och sen så har man tur så kanske någon kollar på den.
00:02:21
kolla på den men det kan också ta lång tid och det är lite kaosigt.
00:02:25
Och om ingen kollar på den får du mercha den hur du vill då eller?
00:02:29
Det finns nog ingenting uttalat så men jag skulle ju säga nej egentligen.
00:02:35
Däremot har det väl varit väldigt små då man kanske skickar över till någon
00:02:39
så här "Hej kan du approva den här så att jag kan mercha den" och då är det saker som
00:02:43
kanske en import som varit fel så att bygget inte har kört och sådana här små fixar.
00:02:49
Men generellt sett så är väl jag av den åsikten att jag vill gärna att folk tittar på det för att de kan sitta
00:02:56
dels på mycket domänkunskap som jag inte sitter på, sen är jag ju allmänt lite ängslig över att jag har bytt något dåligt
00:03:04
så att jag föredrar ju att folk kollar på det.
00:03:08
Men då är processen typ, okej, gör dina ändringar, skicka en PR, be någon kolla på det?
00:03:14
Ja, eller typ jag tror processen är att göra en PR och sen requesta reviewers.
00:03:20
Men nu kör vi Agit, antar jag.
00:03:23
Ja, precis. Hur ser din process ut?
00:03:26
Alltså i dagsläget är det väldigt lik skulle jag säga. Sedan code reviewar jag inte, eller så här,
00:03:33
jo, jag gör någonting lite lite större, väldigt arbeträr skala.
00:03:38
Då ber jag oftast någon kolla på det. Men annars så är det typ jag som gör. Men sen är det också lite speciellt att det sitter ju väldigt lite team. Jag är typ den enda som jobbar med den grejen jag gör liksom.
00:03:51
Men sen har det varit speciellt för jag började ju posta den här kunden typ åtta veckor sedan eller något. Sex veckor sedan. Så i början var det mycket mer så här, jag lägger upp en PR, vad gör ni?
00:04:03
"Vad gör du nu?"
00:04:05
Så då började jag skicka till folk som jag visste inte hade suttit med den här delen av sajten innan.
00:04:11
"Kan du kolla på den här?"
00:04:13
Och ofta får jag ju faktiskt feedback också.
00:04:16
Så det är ju positivt att folk kollar på det.
00:04:19
Men många grejer är ju att jag lägger upp och så merjar jag själv.
00:04:22
Men sen är det ofta väldigt pyttesmå saker också.
00:04:25
Och sen på något sätt blir det ju att när det är någonting som är jätteriktigt
00:04:31
Och det har varit så här, de har jobbat innan, att man behöver inte code reviewa allt, utan vi code reviewar om det är lite större grejer.
00:04:36
Då är det väldigt lätt att bara följa med i det.
00:04:40
Även om jag kanske hade föredragit att allting code reviewades samtidigt, som jag tycker att code reviews kan ta så jävla lång tid.
00:04:50
Alltså, processen i sig kan liksom dra så mycket tid.
00:04:56
Ja, jag tycker det blir ett problem när man inte har en uttalad grej
00:05:01
att reviewandet ingår och att du ska ta dig tid att göra det.
00:05:05
Där håller jag med.
00:05:09
I början hos en kund så vill jag gärna att allting reviewas mycket
00:05:13
för att jag ska hitta min plats i vad kör de för style här,
00:05:18
hur vill de ha saker gjort, följer min kod, deras standard.
00:05:22
Det är mycket sån input man kan få i början också.
00:05:25
Sen kanske det släpper sig väldigt små saker, det kanske inte är behövligt.
00:05:29
Sen blir det ibland en falsk trygghet för att du kan fortfarande få ut problem
00:05:35
fast det är fler personer som har kollat på det.
00:05:37
Men hur som helst just det här att man inte har en fast grej som vi har nu.
00:05:40
Det är så här, folk ska reviua.
00:05:42
Okej, men det finns ingen tydlighet i vem som ska reviua vad, om de älskar göra det.
00:05:49
Ibland säger några så här, vi har inte tid att reviua så ni får sköta det själva i frontend-delarna då.
00:05:55
Och då är det så här, ja absolut, men det betyder ju kanske inte att folk reviewar.
00:06:02
Alltså jag skjuter ju gärna själv också på det om jag sitter mitt uppe i en grej med någonting.
00:06:07
Då går inte jag automatiskt in och kollar code review-listan för att se om det finns något jag kan göra samtidigt och context switcha mig själv med.
00:06:15
Men jag tror jag var på ett annat ställe och sen kunde det vara väldigt tydlig, i alla fall när jag började var det en jävligt tydlig process ändå, för då satt vi i Teams.
00:06:24
Hela fronten-teamet hade en väldigt tydlig process, så vi satt utdelade på olika.
00:06:29
Men anledningen till att du... Anledningen? Det var helt för lågt.
00:06:34
Du fick ut en PR när du hade fått två tummar.
00:06:39
Så två personer behövde alltid kolla på din PR.
00:06:42
Då var det i GitLab.
00:06:44
Så att du tummade.
00:06:47
Vi pratade ganska mycket om det och påminner mycket om det hela tiden.
00:06:53
Ja, föra efter lunch kanske när du ändå har ryckt dig ur vad du sitter med att passa på att ta en review.
00:07:00
Gör det på morgonen när du börjar och kanske innan du går hem.
00:07:05
Så att inte att du behöver göra det mitt i när du sitter med saker men när det kommer naturliga pauser så kan du lika gärna köra en context switch där då.
00:07:11
För att vi är beroende av att alla hjälps åt att reviewa för att det är två personer på varje code review eller på varje PR.
00:07:19
Och där var det stället där jag lärde mig Code Reviews och att det är en bra sak.
00:07:26
För det var väldigt strukturerat och det gav mig otroligt mycket.
00:07:29
Ja, det där låter väldigt likt hur jag hade det också innan jag började programmera.
00:07:33
För då var det också väldigt mycket att vi ville ha två personer som godkände.
00:07:39
Vi satt i Azure DevOps då, som funkar på samma sätt som alla andra i stort sett.
00:07:47
Men då kände jag lite mer ägandeskap över det, för då var jag också med och satt upp hela processen.
00:07:55
Jag var med och drev igenom att vi flyttade till Git från, vad heter det, Visual Studio VS...
00:08:05
Ja, det är den här gamla varianten. Sån typ.
00:08:09
Jag kommer inte ihåg vad den heter. Visual Studio Version Control. VSVC kanske.
00:08:15
Ja, någonting sånt. Väldigt, väldigt gammalt, som vi körde innan. Så vi flyttade dit och då kände jag lite ansvar för att man skulle sätta upp en bra process där vi kör CodeReviews.
00:08:26
Det var också lite annorlunda i det att det teamet jag satt i var blandat, att vi förvaltade gamla applikationer, att vi nyutvecklade nya grejer.
00:08:35
så man hade liksom en väldigt stor flora av applikationer vi tog hand om.
00:08:40
Vilket gjorde att det var lite svårt att ha en överblick över allting.
00:08:45
Men när vi då körde igång med pull request så funkade det ändå väldigt mycket bättre.
00:08:49
Men det är ju som du säger, vi hade en bokning i alla skalender som låg efter lunch tror jag.
00:08:54
På "Kolla lite Code Rebuse, om det finns".
00:08:58
Och sen såg vi till att man kunde se enkelt vad som finns där.
00:09:03
Eller man kunde överrequesta där, "kan du kolla på det här?"
00:09:06
Men det funkar ändå väldigt bra.
00:09:09
Men sen när jag började mobbprogrammera så saknar det inte överhuvudtaget.
00:09:13
För då sker det ju live.
00:09:16
Och just den typen av code review, att den sker live,
00:09:20
han verkar sakna den.
00:09:22
Man behöver liksom inte vänta på att en PR blir godkänd.
00:09:27
Det är bara att pusha, allting kan gå ut direkt, allting är klart.
00:09:30
När koden kommittas, då är den codereviewad.
00:09:33
Och det är ju en dröm.
00:09:36
Jag tycker att det funkar så sjukt, sjukt bra.
00:09:39
Men, ja, jag vet inte.
00:09:42
Ja, det är väl samma sak om man parprogrammerar.
00:09:46
Har man kört på ögonen så tycker man att man kan trycka ut den direkt.
00:09:52
Men med allting så kan man fortfarande missa saker, helt klart.
00:09:56
Du kan missa saker i en code review, du kan missa saker i en mobb eller en par programmering.
00:10:02
Men ingenting är ju perfekt så.
00:10:06
Och om man inte sitter i mobb och har en sån kultur, då tycker jag ändå att code reviews är väldigt värt det.
00:10:13
Sen är inte det heller min favoritdel i jobbet.
00:10:18
Det är ju inte alltid superkul att sitta och code reviewa, men jag tycker det är någonting som ska göras.
00:10:24
Ja, precis. Jag håller med.
00:10:27
Tittar man hur det är nu så är det väldigt också så här, det går väldigt snabbt.
00:10:31
Vi är väldigt snabbfotade i att behöver jag någonting som kunde bevisa oss så kan jag be någon göra det
00:10:35
och så blir det gjort direkt i stort sett. Inte direkt, direkt kanske, men ändå en resonabel tid.
00:10:40
Och samma sak, vi har ju också väldigt lätt att släppa till produktion, då släpper vi till produktion.
00:10:45
Och det gör ju också att om det upptäcks buggar, då kan vi bara släppa en fix väldigt snabbt.
00:10:50
Så det tycker jag också är en stor förutsättning för att man ska kunna ha det sådär.
00:10:54
Nu kommer man in på att prata agilt och grejer, men att bara kunna släppa till produktion väldigt ofta och enkelt är ju fruktansvärt värt.
00:11:03
Ja, jag menar det är väl… Shit, jag vet inte, jag skulle nog inte kunna jobba så här. Jag har alltid jobbat så.
00:11:13
är det barnvid och vet hur man gör.
00:11:17
Alltså om jag skulle börja jobba med ställen som Big Bangs och sånt,
00:11:21
jag vet inte hur jag skulle hantera det.
00:11:23
Ja, men det är också lite så här hur ofta är ofta också.
00:11:26
Alltså så här, tittar man på de ställen jag har varit på så är det kanske så här,
00:11:29
okej, vi hade något ställe där vi hade kanske,
00:11:32
vi kunde släppa varannan vartid i dag beroende på hur mycket vi hade gjort
00:11:35
för att det behövde ändå så här QA godkännas innan.
00:11:38
Vi hade något ställe vi släppte efter varje sprint,
00:11:41
Så det tog liksom två veckor mellan varje.
00:11:43
Eller nu till exempel när man sitter och kan släppa exakt när man vill.
00:11:47
Ja, jag är ju mest suttit och kan släppa exakt när jag vill.
00:11:51
Ja, jag tycker att det är ju det sättet man ska sträva efter.
00:11:55
För att du får ut mycket mer värde av det.
00:11:57
Och sen, visst, det kanske blir lite fler buggar i produktion.
00:12:01
Men du fixar ju också buggarna väldigt mycket snabbare.
00:12:03
Ja. Och du får ju följa med flödet och hålla koll på din sak hela vägen på något sätt.
00:12:09
sen när du releaserar, då vill du ju testa att det funkar i produktion.
00:12:12
Så att man har ju kanske mer, man får följa med och ha mer ägandeskap hela vägen.
00:12:17
Jag vet inte riktigt.
00:12:18
Ja, alltså det är väldigt lätt annars om man släpper varannan vecka till exempel,
00:12:20
att bara så här, "Ja, vad har vi släppt den här gången då?"
00:12:23
Ja, precis.
00:12:24
När man ska lina upp en så här tidslinje på, "Vad har vi gjort de här senaste två veckorna?"
00:12:29
"Jag vet typ vad jag gjorde förra timman, men sen är det blank liksom."
00:12:34
Så att den slipper man ju.
00:12:36
Men gå tillbaka lite grann till Code Review. En annan grej som jag verkligen, verkligen föredrar med att göra live, typ i mobb eller par, är ju att man får diskussionen som blir, jag tycker, mycket, mycket bättre offline, om man fanar det uttrycket, än vad det blir om man kommenterar kod.
00:12:58
Det är ju en ganska stor kommunikativ utmaning att kritisera eller feedbacka, snarare är det rätt ord, annans kod.
00:13:10
Och sen gäller det att man uppfattar det på rätt sätt, det gäller att man tar det konstruktivt, det gäller att man inte tar det personligt,
00:13:17
det gäller att man inte missuppfattar, alltså det gäller att man inte låter som att du har gjort fel.
00:13:22
Det finns så mycket nyanser som man måste tänka på.
00:13:27
Ja, det finns sådana otroliga utmaningar med det som du säger.
00:13:32
Jag finner det där väldigt intressant också, för det finns ju olika synsätt på det där.
00:13:40
Jag vet till exempel att jag och min sambo, som också är utvecklare,
00:13:44
vi har haft ganska många diskussioner kring hur man uttrycker sig i Codeviews,
00:13:49
Vilket är lite kul för att när jag har pratat med andra personer som också kanske är i ett par där båda är utvecklare,
00:13:58
har kanske haft liknande diskussioner och liknande åsikter.
00:14:02
Det har hänt med kanske två, tre andra personer som jag har pratat med, att de har haft samma diskussioner.
00:14:08
Det är mycket den här att, okej, vissa tycker kanske att det ska vara tekniken som talar, det ska vara torrt.
00:14:19
Alltså inga utsvävningar, inga emojis, inga extra tillägg av ord som inte behövs.
00:14:26
Det här är vad vi vill uppnå, det här är det jag undrar över, det här är det jag finner något som borde ändras på.
00:14:33
Det ska vara torrt, strikt, tydligt.
00:14:36
Ja, jag är ju stark emoji-förespråkare.
00:14:39
Precis, för jag är mycket mer den här, jag uttrycker mig kanske mycket mer mesigt i kompis.
00:14:47
Men jag går in med den här "jag frågar hellre"-saker.
00:14:50
Jag är mycket så här "should this be here because I think this could happen here"
00:14:55
Och så kanske lägger jag till en smiley på slutet.
00:14:58
För att jag är mer av den åsikten att om jag uttrycker mig så,
00:15:03
visst det kanske låter lite mesigt, men det kanske får mottagaren att må lite bättre.
00:15:08
Jag står helt på samma tida.
00:15:11
Jag håller helt med. Hellre "har du tänkt på det här?"-frågor än "det ska vara så här".
00:15:20
Det tycker jag verkligen är mycket mer positivt att ha i en co-review.
00:15:27
Jag har ju väldigt mycket så här att jag kan gå in i en co-review och se så här "ja, men det är ingenting som behöver ändras".
00:15:32
Då kan jag skriva en kommentar så här "fan vad bra, nice". Bara för att.
00:15:38
Jag tycker att det kan vara värt att, jag vet själv att jag uppskattar sådana kommentarer väldigt mycket.
00:15:43
Vilket gör att då skriver jag dem, för jag tänker att andra kanske också gör det.
00:15:47
Och samma sak om jag ser en snygg lösning på någonting, då kan jag liksom kommentera den raden.
00:15:51
Man kan ju liksom kommentera inlines, varför ska jag inte göra det?
00:15:53
Jag hade ju förmodligen gjort det om jag hade suttit bredvid personen och skrivit en radenkod.
00:15:57
Ja, det är intressant. Jag är jävligt dålig på det faktiskt.
00:16:00
Jag är jättedålig på att ens komma på bra, alltså sådär positiv feedback.
00:16:05
Jag bara kör liksom, skiljlapparna på.
00:16:08
Men det är väldigt sant, man borde göra det mer.
00:16:10
För det är ju jäkligt peppt att få sådana kommentarer också.
00:16:15
"Det här känns bra, du får en bra känsla i magen, du kan möjlisgöra den och vara lite glad resten av dagen."
00:16:20
Och det är också extra bra att göra i en pull request-kommentar.
00:16:26
För att när man får, tänk att du får ett mail.
00:16:28
Du har fått en kommentar på din PR och man bara "ÄÄÄH" och så kommer du in och så står det bara "Good job!" Fan vad glad man blir.
00:16:36
Ja jävlar får du en "ÄÄÄH" varje gång du får en, asså jag får kommentarer på mina PRs alltid, jag blir mer såhär "Jag fick en approve utan en kommentar, what?!" Är det sant?
00:16:48
Nej, jag får väl inte. Det är inte så att jag sätter hjärtat i halsgropen varje gång jag får en kommentar.
00:16:54
Men kanske när jag var ny så var det nog mer så att man fick en kommentar och man bara "Oj, vad händer nu? Vad är det som händer?"
00:17:02
Ja, jag var absolut sådan förut. När jag tränade mig på att jobba med Code Reviews, det var ju skitjobbigt.
00:17:11
För jag är verkligen så här, som nämnts förut, jag vill inte misslyckas med saker, jag vill inte göra dåligt ifrån mig.
00:17:17
Det skapade en sån ångest, jag var, nu måste jag exponera min kod här.
00:17:22
Som på något sätt i förlängningen blev att exponera min hjärna, eller hur jag tänker, min kunskap, min kompetens.
00:17:31
Det är skitjobbigt, det är därför man pratar så mycket om det här, att du är inte din kod.
00:17:35
Koden är ju opersonlig, den bara är där för att det kan vara väldigt sårbart.
00:17:44
Ja, precis. Det är ju oerhört sårbart.
00:17:46
Det är väldigt lätt att knyta sig an till den koden man skriver och så här,
00:17:52
"Vad fan är det här?" Särskilt om man har jobbat på någonting i flera steg.
00:17:56
Jag har suttit med den här featuren i massor av olika steg, vi kanske har släppt lite varianter av den.
00:18:02
Och sen så liksom ska man släppa någon mer och så helt plötsligt börjar man få en massa kommentarer.
00:18:05
Och man bara "Va? Nej men det är ju min kod."
00:18:08
Samma sak när någon annan skickar pull requests på samma kod.
00:18:13
Då kan man vara lite extra kritisk istället.
00:18:15
Utan att man tänker på det då såklart.
00:18:17
Men liksom att "Det här är ju min kod, jag kan den här koden utan att jag innan..."
00:18:20
"Den här ändringen gillar jag inte."
00:18:23
"Så det här hade inte jag gjort det."
00:18:24
Ja, ägandeskapet blir för stort liksom.
00:18:26
Exakt.
00:18:27
Men det är ju mycket så att man knyter an till de där bitarna.
00:18:30
Det blir så himla märkligt ibland.
00:18:32
Ja, nej det är...
00:18:35
Jag tappar det verkligen.
00:18:37
Det är sånt som händer ibland.
00:18:40
Nej, men jag håller med.
00:18:42
Det är liksom så här, jag har nog väldigt lätt att knyta an till den koden jag skriver.
00:18:46
Jag är mycket, mycket duktigare på det idag än vad jag var för några år sedan på att liksom så här,
00:18:50
okej, det här kändes för att jag har knyttet an till koden,
00:18:54
men jag släpper det direkt.
00:18:57
Till skillnad från tidigare när jag la en massa värde i det jag skrev sen efteråt.
00:19:01
Alltså så här att det blev en reaktion. Det blir det inte längre.
00:19:03
Nej, alltså det där har jag också fått träna på jättemycket.
00:19:06
Däremot det som svider mest nu för tiden är typ om...
00:19:10
Jag byggde någonting för att någon sa till mig att så här ska det byggas.
00:19:14
Speciellt när jag var på väg någonstans.
00:19:17
Så kommer någon och säger "Nej, du borde göra det så här"
00:19:19
Så lägger jag upp en kod och då kommer en tredje person och säger "Varför gör du inte så här istället?"
00:19:22
Och det var så man gjorde från början. Då blir det bara så här...
00:19:24
Jag vill inte vara med längre.
00:19:28
Nej, som sagt, lite den här kommunikativa utmaningen.
00:19:32
Det får man såklart också släppa, men det kan ju bli väldigt jobbigt i stunden.
00:19:37
Jag kan ju också reagera på vad jag finner är ett otrevliga kommentarer.
00:19:43
Och det sätter sig hos mig, för jag har ju tränat väldigt mycket på den här konstruktiva saken.
00:19:49
Absolut, om någon frågar "Är det så här det borde vara?" eller "Jag ser att det här händer i gubbit när det här sker" och sånt.
00:19:55
Men när det kommer väldigt hårda kommentarer, typ som "Det här är fel", då blir jag sur.
00:20:02
Ja.
00:20:02
Jag blir tjurig, liksom.
00:20:04
Ja.
00:20:06
Nej, alltså, de få gånger när jag skriver "Det här är fel", då blir det också ofta en emoji på slutet.
00:20:11
Jag tänker, jag vet inte om det gör det bättre eller mycket sämre.
00:20:14
Men liksom, jag försöker alltid spela ner det. Jag tror inte att det är så ofta jag gör det.
00:20:21
Men om det skulle hända någon gång. Jag håller ju med dig att jag har också väldigt svårt för onödigt,
00:20:30
hårda, nästan lite aggressiva kommentarer.
00:20:34
Ja, också lite överskitta kommentarer.
00:20:37
Till exempel som en sån här "Nej men titta där, du fick ju ner de här raderna k till det här istället"
00:20:45
Då vill jag så här "Ja, det kanske inte lät så här i den personens huvud men det låter ju som, det låter extremt nedvärderande för mig"
00:20:54
Det är förmodligen så där alla mina komplimanger låter.
00:20:57
Nu kommer jag sluta skriva komplimanger.
00:21:00
Nu blir det inget mer. Det är här mitt fel allihopa om Anton slutar skriva komplimanger i PR.
00:21:07
Exakt. Nej men precis. Jag tycker det är väldigt, väldigt svårt att skriva bra pullergestkommentarer.
00:21:16
Jag har också problemet att jag går in lite i lösningsmode.
00:21:22
att jag ser att det här är ett problem, jag har ingen lösning på rak arm.
00:21:27
Så istället för att skriva
00:21:29
"har du tänkt på att det här skulle kunna vara ett problem?"
00:21:32
"jag vet inte vad lösningen är, men"
00:21:34
Då kan jag säga "hur skulle man lösa det här?"
00:21:38
Och så börjar jag researcha, så här kanske man skulle göra
00:21:40
och så blir det istället att jag löser problemet.
00:21:42
Vilket kanske inte riktigt är
00:21:44
mitt ansvar.
00:21:47
Det är inget negativt med det här egentligen.
00:21:50
Men egentligen så skulle jag lika gärna kunna skriva den korta kommentaren eller den korta varianten och bara så här "Okej, lämna det här".
00:21:56
Men då jag tror att jag liksom lutar lite åt att så här "Det kanske är lite otrevligt om jag erbjuder en lösning också".
00:22:04
Då, då tas det positivt istället.
00:22:07
Det är jätteroligt för jag kan göra samma sak, inte för att "Ah, men hur kan jag göra det här positivt?"
00:22:12
utan mer så här "Fan, ska jag kommentera på det här? Är det verkligen ett problem? Finns det en bättre lösning?
00:22:17
Jag måste ta reda på om det finns en bättre lösning om jag ska kommentera på det här.
00:22:21
Och så gör jag research och så hittar jag kanske en alternativ lösning för att jag ska våga kommentera.
00:22:27
Du tänker mer för att du inte ska få kritik på din feedback.
00:22:34
Ja, för att jag är dum.
00:22:35
Exakt.
00:22:36
Det där har jag också fått jobba jättemycket med och släppa.
00:22:39
Just i början var det jättemycket såhär "jag måste hitta fel med den här PRen".
00:22:44
Du måste inte bevisa att du är en bra kodare så därför kan du hitta fel i andras kod.
00:22:51
Nej, gå igenom den, kolla, se om du tycker att det finns saker som potentiellt kan bli ett problem.
00:22:57
Släpp små saker.
00:22:59
I början var det mycket mer att vi, på det första stället jag var på,
00:23:03
vi la oss i detaljerna jättemycket för att upprätthålla någon typ av kodstandard.
00:23:11
men då var vi väldigt få.
00:23:13
Och ju fler vi blev, ju fler team vi blev,
00:23:15
så fick vi ju släppa på det där
00:23:17
och vi drog in i prettier och sådana grejer.
00:23:19
Så då har man ju fått lära sig att
00:23:21
det behöver inte sitta och nytt
00:23:23
picka på allting.
00:23:25
Ja, jag håller verkligen med.
00:23:27
Jag tycker typ
00:23:29
stilen,
00:23:31
stylingen i koden,
00:23:33
hur du formaterar koden, allting sånt.
00:23:35
Är det inte totalt
00:23:37
kaos så tycker inte jag att det har
00:23:39
i en kurv att göra.
00:23:41
Och det var ju jättemycket i våra första kurvor.
00:23:45
För liksom så här, någon kommenterade, "Ah, du kanske borde ha ett mellanslag innan det här parentesen."
00:23:50
Man bara, "Va? Va fan?"
00:23:53
Prettier har ju läst väldigt mycket för frontend, eller för JavaScript i alla fall.
00:23:57
Och det är ju magiskt bra.
00:23:59
Men liksom, alla ställen där det går, borde man sätta upp en liksom automatisk lint
00:24:04
som bara ser till att det är formaterad rätt.
00:24:06
Ja, för den där orkar man inte stanna kvar på.
00:24:09
Men det var mer namngivningar, det var så många diskussioner om vi skulle ha avslutande JSX-taggen på Nyrad.
00:24:19
Vi hade möten av de här grejerna. Det var ändå på något sätt charmigt på sitt sätt.
00:24:25
Jag kan ändå sakna dem lite, så jag var nästan lite anti-prettier i början.
00:24:29
Svunnen tid.
00:24:31
Ja, det finns en skärm ändå av folk som försöker verkligen fighta sina åsikter.
00:24:37
Men "Prettier" är magiskt. Jag älskar "Prettier".
00:24:40
Jag undrar om det var nån som var på Spotify, tror jag.
00:24:44
Jag ska leta upp länken om jag hittar den.
00:24:46
Men så släppte de nåt som heter "Betterer".
00:24:50
Antagligen är namnet "Prettier" inspirerat.
00:24:53
Det verkar vara ett ganska najs verktyg. Det är väldigt mycket silspår.
00:24:57
Det var att säga att du vill sluta använda moment.js och gå över till date functions biblioteket som är en modernare variant för att jobba med datum.
00:25:09
Då kan den här Betterer lägga in en lintregel som säger att du inte får lägga till några nya moment, men de gamla kan vara kvar.
00:25:19
Och då får man liksom så här, så att om man lägger in någonting ny i Moment, då föreslår den, ja, använd Date Functions istället.
00:25:26
Det såg ganska nice ut faktiskt. Särskilt om man liksom sitter med något i gamla tals och bestämmer, okej, men nu går vi över till Date Functions.
00:25:33
Då vill man ju gärna slippa liksom att, okej, vi ska migrera alla som använder Moment till Date Functions.
00:25:39
Så då kunde den där göra det. Och jag tror även att den föreslog typ så här att, det fanns en massa inställningar, men
00:25:44
Om man ändrade i en fil som använder moment, då gav den en warning kanske, att du borde ändra från moment till date functions nu när du ändrar.
00:25:54
Ja, det är nice alltså. Men hur ofta gör man det egentligen?
00:25:59
Nej, jag vet inte heller. Men jag tänkte bara på det.
00:26:02
Vi gjorde det, jag undrar om jag bytte från just moment till date functions på vissa ställen på mitt förra kund.
00:26:12
Då fanns inte det här då. Så där la ju folk in Moment ändå, så det är skitsamma.
00:26:18
Men ändå så bara så här, "Ja men fan, ganska bra idé. Jag kommer bara tänka på den nu när vi pratar Linting."
00:26:26
Det är totalt tidsspår.
00:26:28
Fan, är Moment-eran över alltså?
00:26:30
Ja, men det kanske är det. Alltså det finns väl nån Moment-combo eller nån modern variant också nu.
00:26:35
För problemet förut var att man inte kunde codesplitta den, eller tree shake, eller vad fan det nu heter.
00:26:39
Jaha.
00:26:40
Och grejer.
00:26:41
Jag har inte suttit så mycket i 3jk såhär, men moment är ju ändå en klassiker.
00:26:46
Det har varit robust sånt.
00:26:48
Ja, det är det. Date functions är ju typ lightweight moment.
00:26:52
Skillnaden är väl att jag tror inte man skapar upp objekt i date functions.
00:26:57
Det är bara funktioner för att jobba med native JavaScript datum.
00:27:01
Det går att jobba med native JavaScript datum också.
00:27:03
Det är ju mer när man ska in.
00:27:05
Nu sidosparade jag ännu mer.
00:27:07
Det är sånt som händer.
00:27:09
Men jag tycker att sådana verktyg är väldigt bra för att ta bort så mycket friktion från möjligt, från när man gör en kulv.
00:27:18
Absolut. Det är så himla tråkigt att hålla på. Jag vet att du fastnar på importordningar och sånt, men varför då?
00:27:25
Det är så himla onödigt. Sen förstår jag att man vill ha saker som ser kohysivt ut. Vad heter det?
00:27:33
Ja, likadant.
00:27:35
Det här är bara "why" svängelska happens in i podd.
00:27:41
Nej, så det förstår jag ju absolut, men som du säger, dra in verktyg, man tjänar så jävla mycket på att göra det.
00:27:48
Ja, jag tycker allt sånt här ska in i Linters eller något annat som man kan göra automatiskt på.
00:27:54
Ja, det som jag känner i biten om man ska prata release och sånt från Pears också är det jag har lite svårt för, asymmetric release.
00:28:03
Alltså versioneringen liksom?
00:28:05
Precis, att man gör det via något lib som går på hur du har döpt dina commits.
00:28:12
Det är ofta, det som vi kör nu är att du ska stå fit och så slutparentes och kolon.
00:28:20
Och då förstår den att det är en minor.
00:28:22
Och kör du istället en fix så förstår den att det ska vara en patch.
00:28:26
Och sen tydligen, om det skulle vara en major då måste man lägga in en breaking changes flagga
00:28:32
Jag förstår grejen, men det känns ändå som att det skapar...
00:28:39
Många commits är så här, jag mödrade master och så råkar det bli en commit kanske, då måste jag ändå göra den här grejen.
00:28:45
Jag har ju bara gjort en refactor, så valde man refactor, men då blev det inte en release för det var inte dels semantikreleasen.
00:28:54
Absolut att man kan läsa dokumentationen, någonting som jag behöver jobba på i livet.
00:29:00
Men jag tycker kanske ändå att man måste fundera lika mycket på vad det är man vill ha
00:29:07
som att man skulle göra om man skulle bumpa en miner eller en patch.
00:29:11
Ja, jag fattar.
00:29:12
Så jag tycker det lägger på ett extra lager som känns betydligt mer komplext egentligen.
00:29:17
Ja, det är väl liksom så mycket annat. Jobba bort så mycket friktion som möjligt.
00:29:23
Och känner man att verktygen ger mer än de tar, då behåller man väl dem.
00:29:30
Men blir det liksom att man känner att "Okej, men nu ger jag inte det här lika mycket längre",
00:29:33
då kanske man ska liksom göra väg att kasta bort det, eller hitta ett bättre sätt att göra det.
00:29:37
- Ja. - Så att ja, det är väldigt svårt.
00:29:40
Men en sista grej bara innan vi rundar av, som jag verkligen vill slå ett slag för,
00:29:45
är ju att det är väldigt lätt om man sitter och gör pull request och kommenterar,
00:29:49
att man hamnar i en lång kedja, särskilt om två personer inte är överens.
00:29:54
Så hamnar man liksom att "Okej, men jag tycker så här, någon annan svarar"
00:29:57
och så svarar man själv.
00:29:58
Släpp det så snabbt som möjligt och gå och prata med personen.
00:30:01
Alltså det är f*n natt och dag i skillnad hur snabbt man löser problemet.
00:30:07
Ja, absolut. Eller bara för att den skulle ta det över slack istället.
00:30:12
Ja, gud ja.
00:30:13
Eller ta ett videosamtal. Alltså det går så mycket fortare.
00:30:16
Jag gillar spårbarheten, att man kan skriva den här frågan här i, och sen så tar man ändå slacken.
00:30:21
Bara för att påvisa att jag tyckte någonting om den här raden.
00:30:25
Nej, men det håller jag helt med om.
00:30:27
För min del så är det väl ofta om man har någonting som behöver diskuteras, man känner direkt.
00:30:31
Eller om man märker att det här håller på att spåra ur.
00:30:34
Och jag tycker också inte att man ska vara rädd att lägga sig i när andra gör det.
00:30:38
Alltså om två personer håller på och kommenterar en PR och säger att det var som i våra tidigare fall,
00:30:43
när man skulle ha två personer som godkänner.
00:30:45
Om man själv då är en tredje person i det här fallet,
00:30:48
var liksom inte rädd för att skriva en kommentar i den här tråden
00:30:52
och bara, ni kanske ska snacka med varandra,
00:30:54
eller ni kanske ska tala över slack,
00:30:55
eller ni kanske ska ta ett videosamtal.
00:30:57
För att det är väldigt lätt när man själv är där
00:31:00
att fastna liksom i tänket att jag ska bara svara här.
00:31:03
Ja, men det där är jag, alltså det där tränar man också upp på något sätt.
00:31:07
Jag vet att när jag satt på kunden innan den här,
00:31:09
innan den här, då fick jag ofta mycket kommentarer på mina peers för att jag var peers och jag visste inte vad jag höll på med.
00:31:17
Så det var verkligen någonting som jag ville ha, men då blev det mycket så att jag förstår inte vad du säger så då vände jag mig bara till personen
00:31:23
och så frågade jag, kan vi ta det här istället? Eller kan vi gå igenom det här tillsammans?
00:31:27
Och som du säger, det sparar så mycket tid och det ger så otroligt mycket mer.
00:31:32
Men jag skulle vilja ta en sista grej också som jag faktiskt har inte snackat om en gång
00:31:38
och som är så värt att tänka på, det är den här "community" och "inclusion" i det.
00:31:43
Och om man har "peers" som är "peers" eller "issues" för den delen, som är "open source"
00:31:50
eller som andra ser, även om du kanske har en jargong i ditt team
00:31:56
så betyder inte det att någon som läser det utifrån förstår det
00:32:00
och det kan bli väldigt ovälkomnande om man drar till exempel hårda skämt eller sådana här saker.
00:32:06
Så det kan ju verkligen vara någonting att tänka på ur den aspekten också.
00:32:09
Bara för att till exempel att du och jag skulle ha en skämsamtorn och kunna kommentera på våra PRs på det sättet.
00:32:14
Tänk att det kommer in en ny person då och kollar igenom den och blir liksom totalt avskräckt över att lägga upp PRs
00:32:21
för att den vill inte ha den behandlingen liksom.
00:32:23
Nej men verkligen, alltså man får försöka hålla ner det lite grann.
00:32:27
Alltså den jarongen man bygger upp. För att jag tycker ju att, alltså så här, man ska inte döda kulturen i teamet.
00:32:34
Absolut inte. Men just i pull requests, eller i dokumentation, i nedskrivet material så kan man försöka hålla det nere.
00:32:43
Alltså så här, jag såg något exempel, när du säger det så går jag på att jag såg något exempel, jag kommer inte alls ihåg vilket projekt det var.
00:32:48
och det var ganska länge sedan, på någon open source-projekt
00:32:55
där det blev en diskussion om just det här för att det teamet som jobbade med det,
00:32:59
någon hade skrivit att någon var en loser, typ.
00:33:02
Alltså, inte superaggressivt, utan jag fattade nog att det var på skämt,
00:33:06
men det var inte helt oklart.
00:33:09
Och han kommenterade någonting och så blev det bara en superkort råd
00:33:14
och sen så den som reviewade bara så här "ah, du är en sådan loser"
00:33:18
Det var ju hundra procent på skämt och förmodligen i den skärgången de hade det
00:33:22
och jag tror inte att den som hade lägt upp PR-en bryddes nog inte
00:33:26
Men sen blev det liksom en diskussion inom issue tror jag
00:33:29
om så här "är det så här vi ska göra?"
00:33:31
Och det känns ju superoskyldigt kan det nog kännas för dem
00:33:35
men utifrån som du säger, helt annan grej
00:33:39
Ja, jag tror i stunden så sker det nog
00:33:41
Jag är en mästare på att dra opassande skämt också. Jag har inte avslutat än i stunden men det är alltid bra att ha i bakhuvudet.
00:33:51
Det var kanske ämnet för dagen.
00:33:56
Jag tycker vi rinner av där. Som vanligt, vill man ha oss så finns vi på Twitter. Jag heter avnton med ett W efter A1.
00:34:02
Jag heter tkongstadius.
00:34:04
Vi är väldigt glada om ni feedbackar på den på ett konstruktivt sätt.
00:34:08
Många emojis.
00:34:10
Vi fattar att ni är snälla.
00:34:12
Och annars lämna gärna en recension i iTunes, det hjälper skitmycket.
00:34:16
Det var det där då.
00:34:18
-Okej, hejdå! -Bye bye!
00:34:20
Bye bye!
00:34:21
*outro*
Tillbaka upp