Best practices í code review
Leiðbeiningar um hvernig á að framkvæma gagnlega og uppbyggilega kóðarýni.
Kóðarýni (code review) er mikilvægur hluti af þróunarferli sem tryggir að kóðinn sé skiljanlegur, öruggur og vel skrifaður. Rýnir ber ábyrgð á því að hjálpa til við að bæta gæði kóðans áður en hann er sameinaður aðalgreininni.
Af hverju er kóðarýni mikilvæg?
Tryggir gæði kóðans – Hjálpar til við að finna villur og betrum bæta lausnir.
Deiling þekkingar – Nýir liðsmenn læra af betri kóðunaraðferðum.
Tryggir samræmi – Gæti að verkefnið fylgi stöðluðum forritunarvenjum.
Hlutverk rýnanda
Fara yfir breytingarnar í smáatriðum
Ekki samþykkja PR í blindni – Vertu viss um að skilja kóðann
Óska eftir útskýringum ef nauðsynlegt er
Keyra kóðann sjálfur og prófa virkni
Vera uppbyggilegur í athugasemdum
Nota inline comments fyrir skýra tilvísun í kóða
Nota
suggestion
virknina til að leggja fram breytingar án þess að skrifa yfir kóða beintEf kóðinn virkar ekki eins og til er ætlast, sýna skjáskot af villunni eða óvæntri hegðun
Hvað á að skoða í kóðarýni?
1️⃣ Skiljanleiki og læsileiki
Er kóðinn auðlesanlegur og vel skipulagður?
Nota nafngiftir skýrt og lýsandi heiti?
Hefur verið forðast óþarfa flækjur og hringtengingar?
2️⃣ Villuleit og stöðugleiki
Getur þessi kóði leitt til óvæntra villna?
Hafa verið prófanir fyrir breytingarnar?
Er kóðinn þolinn fyrir röngum inntökum?
3️⃣ Fylgni við verkefnastöðlun
Fylgir kóðinn kóðastíl verkefnisins?
Passar breytingin við arkitektúr verkefnisins?
4️⃣ Afköst og skilvirkni
Er kóðinn of flókinn fyrir einfaldan tilgang?
Hefði verið betra að nota aðra nálgun sem er hraðvirkari?
Hvernig á að gefa góða endurgjöf?
Dæmi um góð og slæm endurgjöf
✅ Góð endurgjöf
Mjög flott útfærsla! Hins vegar, gætirðu notað `map()` hér í stað `for` lykkju til að einfalda kóðann?
Þetta virkar vel, en mér finnst skýrleikinn betri ef við skiptum þessu í minni aðgerðir. Gætirðu búið til fall fyrir þessa útreikninga?
Sjá skjáskot hér að neðan – úttakið er ekki eins og til er ætlast. Gætirðu athugað hvað veldur þessu?

❌ Slæm endurgjöf
Mjög flott, virkar.
Þetta er ekki gott. Lagaðu þetta.
Ég skil ekki kóðann.
Nota inline comments og suggestion
suggestion
Í GitHub PR er hægt að gera athugasemdir við einstakar línur með inline comments. Einnig er hægt að nota suggestion
til að sýna tillögur á breytingum:
```suggestion
for item in list_of_items:
process(item)
```
Ef um Markdown skjal er að ræða, er hægt að nota suggestion
til að lagfæra kóðablokkir:
````suggestion
```python
# Endurbætt útgáfa
for item in list_of_items:
process(item)
```
````
Þetta gerir það auðveldara fyrir forritara að taka tillit til breytinga án þess að rýnir breyti beint í kóðann.
Samþykki, synjun og beiðni um breytingar
Í kóðarýni er hægt að:
Samþykkja PR – Þegar kóðinn uppfyllir allar kröfur.
Óska eftir breytingum – Þegar þarf að laga hluti áður en hægt er að samþykkja.
Setja athugasemdir án þess að hindra PR – Til að gefa uppbyggilega endurgjöf án þess að krefjast breytinga.
Reglur fyrir PR samþykktir
Í opinberum GitHub geymslum er hægt að stilla reglur:
Að lágmarki tveir rýnendur þurfa að samþykkja PR.
PR má ekki sameina ef óleyst samtöl eru til staðar.
Aðeins notendur með tiltekin réttindi geta samþykkt breytingar í aðalgrein.
Góð kóðarýni er ekki bara um að leita að villum, heldur einnig um að hjálpa teyminu að skrifa betri kóða! 🚀
Last updated