allt
Företag
datavetenskap
design
utveckling
vår resa
Strategimönster
Tack! Din inlämning har mottagits!
Hoppsan! Något gick fel när du skickade in formuläret.
Tack! Din inlämning har mottagits!
Hoppsan! Något gick fel när du skickade in formuläret.
Alexandra Mendes
Rodrigo Ferreira

29 december 2023

Min läsning

Vad är Code Review och när ska du göra det?

Kodgranskning är en viktig del av mjukvaruutvecklingens livscykel. Det gör det möjligt för utvecklare att förbättra kodkvaliteten dramatiskt.

Processen är som att skriva en bok. Författaren skapar berättelsen, men redaktören granskar den, så det finns inga fel, som att förvirra ”du är” med ”din”. I det här fallet kodgranskning är handlingen att läsa och utvärdera andras kod. Syftet är att hitta förbättringsområden eller buggar i ett tidigt skede som annars skulle kunna gå obemärkt förbi. Kodgranskningsprocesserna sker vanligtvis innan de slås samman med kodbasen.

Vi kommer nu att diskutera Fördelar med kodgranskning och hur man gör det ordentligt. Och kom ihåg att när du skapar programvara är det viktigt att göra kodgranskningar, oavsett om det gäller små eller stora projekt.

Varför är Code Review viktigt?

Varje mjukvaruprodukt, webbplats, eller mobilapp, består av kod. Ju mer konsekvent denna kod är, desto bekvämare blir det att arbeta med den, till exempel om det finns ett behov av att ändra projektet.

En perfekt kod ska vara lätt att förstå, flexibel att ändra och läsbar. Men eftersom arbetet utvecklas snabbt kan det förbise dessa faktorer. Det är därför kodgranskningsförfaranden är nödvändiga för att förbättra dess kvalitet.

Som ett resultat påskyndar och effektiviserar kodgranskning mjukvaruutvecklingsprocessen.

Fördelar med Code Review

1. Säkerställer enhetlighet i design och implementering

Varje utvecklare har en unik programmeringsstil. Om utvecklare fortsätter att använda sin kodningsstil hindrar detta samarbete och försenar framstegen. Kodgranskning tvingar utvecklare att följa specifika kodningsmetoder. Med hjälp av detta tillvägagångssätt kommer alla utvecklare (inklusive nya) att förstå källkoden lättare.

Kodgranskning är också värdefull eftersom teammedlemmar förändras under ett projekt på lång sikt. Att upprätthålla ett konsekvent kodningsmönster kommer också att göra det möjligt för framtida utvecklare att spendera mindre tid på att analysera den befintliga koden och istället bygga nya funktioner.

2. Optimera kod för bättre prestanda

Även de mest erfarna utvecklarna kan förbise misstag i programmering på grund av dess monotona natur. Genom att bjuda in en ny uppsättning ögon att granska kodenheterna hjälper kodgranskningen att minska fel innan du går vidare.

3. Samarbeta och dela med sig av nya tekniker

Generellt arbetar utvecklare ensamma, och det är lätt att göra några misstag. Med vår kodgranskningstjänst, det finns en möjlighet att lära sig bättre tekniker för att skriva kod och eventuellt lära sig hur man gör det bättre. På så sätt kan utvecklare uppgradera sina färdigheter genom att lära sig om den senaste tekniken.

4. Spåra projektkrav och kvalitet

Projekten har tydligt definierade omfattningar och krav. Men vissa onödiga saker kan hända när ett projekt involverar flera utvecklare. Imaginary Cloud har ett nära samarbete med projektledare för att säkerställa att processerna stämmer överens med kundens behov.

Kodgranskning hanterar scenarier genom att jämföra utveckling med förväntningar. Det validerar utvecklade funktioner. Om du gör det snabbt löser du eventuella feltolkningar av omfattningen eller kraven. Det hjälper också till att se till att inte missa kritiska funktioner.

Även om kodrecensioner verkar som en annan rutinkontroll, de gör mycket mer än så. Kodgranskningar förbättrar samarbete, inlärning, snabb verifiering och strömlinjeformad utveckling.

blå pil till vänster
Imaginary Cloud-logotyp

När och vem gör granskningsprocesser

Kodgranskningar sker efter alla automatiseringskontroller och innan arbetsgrenen slås samman med huvudgrenen (källkod).

I kodgranskningsprocessen finns minst två roller närvarande. De som skriver kod och skapar Pull Requests är ”författare”, och de som undersöker koden är ”granskare”. Granskaren och författaren kan utarbeta mer djupgående med följande diagram:

Code Review Cycle.
Kodgranskningscykel
blå pil till vänster
Imaginary Cloud-logotyp

Var ska kodgranskning göras?

Processen kan ske på många ställen, som utvecklares maskiner, onlineplattformar etc. Följande punkter förklarar de bästa metoderna för granskningsprocesser.

  • Över axeln: Kodgranskningar över axeln sker vid en utvecklares skrivbord, där en erfaren teammedlem går igenom den nya koden och kommer med förslag. Detta tillvägagångssätt är det enklaste att använda och behöver inte fördefinierade strukturer.
  • E-post vidarebefordran: Koden skickas via e-post när den är klar. Även om e-post erbjuder ett mer passivt tillvägagångssätt för kodgranskning, kan innehåll kapslas i flera svar och vara svårt att hantera och söka. Ytterligare, det kan vara utmanande att avgöra när granskningen ska avslutas.
  • Parprogrammering: Med den här metoden kan många utvecklare vara närvarande på arbetsstationen, men bara en skriver kod, och den andra ger feedback och förslag i realtid.

Även om det kan fungera som ett användbart verktyg för team att inspektera koden och utbilda utvecklare, kan det visa sig ineffektivt på grund av dess tidskrävande karaktär. Denna process låser granskaren från att utföra något annat produktivt arbete under perioden.

  • Verktygsassisterad: En verktygsassisterad kodgranskningsprocess gör kodgranskningen enklare. Det kan vara öppen källkod eller betalt, som GitHub, BitBucket, etc. Idag föredrar de flesta det. Det hjälper i allmänhet med:
    • Organisera och visa de uppdaterade filerna.
    • Tillhandahålla en kommunikationskanal mellan granskare och utvecklare.
    • Mätning av effektiviteten i kodgranskningsprocessen.
blå pil till vänster
Imaginary Cloud-logotyp

Vilka är de bästa metoderna för kodgranskning?

1. Skapa checklista för kodgranskningar

Checklistan för kodgranskning är en strukturerad metod för att säkerställa kodkvalitet innan du accepterar den. Några av artiklarna är:

  • Funktionalitet: Uppför sig koden som PR/MR-författaren troligen avsåg? Uppför sig koden som användarna förväntar sig?
  • Läsbarhet: Koden ska vara självförklarande. Använd lämpliga namn för variabler, funktioner och klasser.
  • Säkerhet: Utsätter koden systemet för cyberattacker? Är det nödvändigt med fler tester?
  • Arkitektur: Är koden väl utformad och anpassad till den omgivande arkitekturen?
  • Återanvändbarhet: Använder koden återanvändbara komponenter, funktioner och tjänster? För vissa saker, till exempel struktur och logik, kan du automatisera kontroller (t.ex. statisk analys).
  • Tester: Har PR/MR korrekta och väldesignade automatiserade tester?
  • Kommentarer: Är kommentarerna tydliga och användbara?

Andra, som design och funktionalitet, kräver mänsklig granskning. Att granska kod med vissa frågor kan hjälpa dig att fokusera på rätt saker. Du kan till exempel testa kod för att svara:

  • Är det klart vad koden gör?
  • Fungerar det som förväntat?
  • Uppfyller denna kod lagstadgade krav?

När du tittar på kod kritiskt kommer du att se till att du letar efter rätt saker med frågor i åtanke. Det minskar testtiden.

2. Introducera mätvärden för kodgranskning

Utan mätvärden kan du inte korrigera kodkvaliteten. Mätning av objektiva mätvärden förbättrar dina recensioner, utvärderar effekten av processändringar och förutspår tiden för att slutföra en uppgift. Några vanliga granskningsmått inkluderar:

  • Inspektionsgrad: Den takt med vilken ditt team granskar en viss mängd kod, beräknad genom att dela kodrader med antalet inspektionstimmar. Det kan finnas läsbarhetsproblem om det tar lång tid att granska koden.
  • Defektfrekvens: Frekvensen för att identifiera en defekt dividerat med inspektionstiden. Mätvärdet hjälper dig att bestämma effektiviteten i dina testprocedurer. Till exempel, om din utvecklare är långsam att hitta buggar, kan du behöva bättre testverktyg.
  • Defektdensitet: Du kan beräkna det genom att dela defekträkningen med tusentals rader kod. Du kan sedan allokera mer resurser till de mest utsatta komponenterna. Anta att en av dina webbappar har betydligt fler defekter än andra i projektet. Mer erfarna utvecklare kan behöva arbeta med det.

3. Håll dina kodrecensioner under 60 minuter.

Det rekommenderas inte att granska koden längre än 60 minuter. Prestandan och uppmärksamheten på detaljer börjar sjunka efter den punkten. Det är bäst att göra kodgranskningar ofta (i korta sessioner) så att pauserna gör att din hjärna kan laddas. Sedan kan du granska det igen med nya ögon. Frekventa recensioner hjälper dig att förbättra kodbasens kvalitet.

4. Begränsa dina checkar till 400 rader per dag.

Att försöka granska mycket kod på en gång gör det svårare att hitta fel. Håll kodgranskningar till 400 rader eller mindre vardera. Gränser för kodlinjer är lika viktiga som tidsgränser. Det hjälper dig att upprätthålla den bästa kodbasen.

5. Ge användbar feedback

Istället för att vara kritisk, försök att vara konstruktiv. Det är lättare att göra detta genom att ställa frågor istället för att göra uttalanden. Se till att ge konstruktiv feedback och beröm. Att ge feedback personligen (eller till och med göra din recension) hjälper dig att kommunicera med rätt ton. Granskning är en inlärningsupplevelse som gynnar alla inblandade.

blå pil till vänster
Imaginary Cloud-logotyp

Hur genomför man granskningsprocesser?

Om du bestämmer dig för att köra en kodgranskning själv eller internt bör du följa dessa steg:

  • Vet vad du letar efter i en kodgranskning.
  • Förstå de olika sätten att genomföra en kodgranskning.
  • Håll regelbundna gruppmöten där deltagarna kan få feedback om sina specifika områden samtidigt som de får anteckningar om eventuella problem.
  • Gör kommentarer tydliga och specifika.
  • Var öppen för förbättring.
  • Var tillgänglig för diskussioner.
  • Börja med små förändringar och granska sedan mer komplexa.
  • Håll status för en commit uppdaterad.
blå pil till vänster
Imaginary Cloud-logotyp

Det agila fallet

I en agil miljö är det möjligt att genomföra kodgranskningar sömlöst.

Utgångspunkten är att anpassa sig till förändrade krav, svara snabbare på användarnas behov, effektivisera processer, förkorta utvecklingsterationer och möjliggöra högre produktivitet. Det innebär kontinuerlig uppmärksamhet på teknisk excellens och förmågan att reagera på förändringar samtidigt som en hög kvalitetsnivå upprätthålls.

Apple och Google är kända agila företag, och kvaliteten på deras produkter återspeglar denna ytterligare ansträngning.

Metoderna som nämns ovan för kodgranskningar är ett exempel på agila processer. De är billigare och effektiva för att minimera buggar och förbättra kvaliteten på källkoden.

Kodgranskning sparar ditt företag pengar

En kodgranskning låter dig fixa buggar, säkerställa efterlevnad och bekräfta att applikationen uppfyller specifikationerna innan den slutförs - när det skulle vara dyrare att göra dessa ändringar.

För att se var kodgranskningarnas tids- och kostnadsbesparingar kommer ifrån måste du titta på processen annorlunda.

Att fånga fel och buggar och fixa dem snabbt innebär att de inte kommer att orsaka problem i nästa utvecklingsfas. Om du inte fångar dem omedelbart kan tiden och kostnaderna för omarbetning multipliceras. IBMs Systems Sciences Institute rapporterar att fixar buggar vid implementering Kostar fem gånger mer än under design och arkitektur.


Ytterligare, korrigeringar i integrationstestfasen kan kosta tio gånger mer under betatestning, femton gånger mer och trettio gånger mer efter utgivningen.

blå pil till vänster
Imaginary Cloud-logotyp

Varför ska du anställa någon för att göra kodrecensioner?

Medan vi i den här artikeln diskuterar hur man genomför en kodgranskning, oftare än inte när det handlar om mer komplexa projekt, kan detta konsumera mycket tid och resurser.

Av denna anledning kan outsourcing av kodgranskning vara ett klokt drag eftersom:

  • Någon med ett nytt perspektiv bör granska koden.
  • Utvecklare som är involverade i projektet kan fortsätta arbeta med det och lägga till funktioner eller framsteg, vilket sparar värdefull tid.
  • Effektiv resursanvändning (använd interna experter i andra funktioner där de behövs mest).
  • Dessa företag har redan utvecklat väletablerade metoder, vilket gör processen mer effektiv.

Som vi kan se erbjuder denna tjänst flera fördelar. Av denna anledning, Imaginary Cloud utför kodgranskningar Vi vill förenkla människors liv.

Imaginary Cloud code audit

blå pil till vänster
Imaginary Cloud-logotyp
blå pil till vänster
Imaginary Cloud-logotyp
Alexandra Mendes
Alexandra Mendes

Alexandra Mendes är Senior Growth Specialist på Imaginary Cloud med 3+ års erfarenhet av att skriva om mjukvaruutveckling, AI och digital transformation. Efter att ha avslutat en frontend-utvecklingskurs tog Alexandra upp några praktiska kodningskunskaper och arbetar nu nära med tekniska team. Alexandra brinner för hur ny teknik formar affärer och samhälle och tycker om att förvandla komplexa ämnen till tydligt och användbart innehåll för beslutsfattare.

Linkedin

Läs fler inlägg av denna författare
Rodrigo Ferreira
Rodrigo Ferreira

Mjukvaruutvecklare som älskar backend-sidan, smidig och RoR-beroende. En fotbollsfans och en entusiast av cykling. Låt oss rida!

Läs fler inlägg av denna författare

Människor som läste det här inlägget tyckte också att dessa var intressanta:

pil vänster
pilen till höger
Dropdown caret icon