Reyv etmək — bu nədir, code review və PR yoxlaması necə işləyir

Müəllif: IT Sectr Dərc olunub: 2026-08-01 Oxuma vaxtı: 9 dəq

Code review — bir və ya bir neçə tərtibatçı tərəfindən kodun əsas layihə qoluna birləşdirilmədən əvvəl yoxlanılması prosesidir. Git və GitHub, GitLab və ya Bitbucket kimi platformalar kontekstində code review pull request vasitəsilə həyata keçirilir: müəllif PR yaradır, rəyçilər təyin edir və onlar dəyişiklikləri yoxlayır, şərhlər və düzəliş sorğuları qoyurlar. Google Engineering Practices (2026)-a görə, code review kodun keyfiyyətini yaxşılaşdırır, komandada bilikləri yayır və istehsalatdakı qüsurların sayını azaldır. Yaxşı review nəzarət deyil, inkişaf etdirici dialoq formatında əməkdaşlıqdır.

Əsas məqamlar

  • Code review — rəyçi tərəfindən kodun pull request vasitəsilə birləşdirilmədən əvvəl şərhlər və təsdiqlə yoxlanılması.
  • Review həcmi — bir dəfəyə 400 sətirdən çox olmamalıdır: aşma qüsurların aşkarlanması effektivliyini azaldır.
  • Review vaxtı — optimal olaraq PR yaradıldıqdan sonra 24 saat ərzində, əks halda kontekst itir.
  • Diqqət — məntiq, arxitektura, testlər, təhlükəsizlik. Stil və formatlama linterlər tərəfindən yoxlanılır.
  • Ünsiyyət tonu — konstruktiv, təsdiqlər əvəzinə suallar, şərhlərdə "niyə" izahı.

Code review nədir

Code review — kodun birləşdirilmədən əvvəl həmkarlar tərəfindən sistematik yoxlanılmasıdır. Git kontekstində bu o deməkdir: tərtibatçı dəyişikliklərlə pull request yaradır, rəyçilər təyin edir və onlar diff-i öyrənir, şərhlər qoyur və qərar çıxarır. Rəyçi dəyişiklik tələb edə (Request Changes), PR-i təsdiqləyə (Approve) və ya ümumi şərh qoya bilər.

Code review-in beş məqsədi var: kod keyfiyyətinin yüksəldilməsi (istehsalata düşməzdən əvvəl qüsurların aşkarlanması), biliklərin yayılması (rəyçi yeni yanaşmalar öyrənir, müəllif geribildirim alır), standartlara riayət (code style və arxitektura qərarlarına uyğunluq yoxlanışı), bus factor-un azaldılması (kodu tək tərtibatçı bilmir) və məsuliyyət mədəniyyətinin qurulması (müəllif kodun yoxlanılacağını bilərək daha diqqətli yazır).

Code review-in əksi blind commit-dir: tərtibatçı dəyişiklikləri review-siz ümumi qola ötürür. Bu yanaşma yalnız tək istifadəçili layihələrdə və ya təcili hotfix-lər üçün sonradan review ilə icazəlidir. Peşəkar komanda inkişafında code review hər hansı dəyişiklik üçün məcburi mərhələdir, o cümlədən sənədləşmə və konfiqurasiya düzəlişləri.

Code review-də nə yoxlanılır

Code review sistematik olmalıdır, xaotik yox. Təcrübəli rəyçilər kodu müəyyən ardıcıllıqla yoxlayır: əvvəlcə arxitektura və məntiq, sonra testlər, daha sonra təhlükəsizlik və performans, və yalnız sonda — stil və adlandırma. Bu ardıcıllıq kritik problemlərin rəyçi yorulmazdan əvvəl görünməsini təmin edir.

Arxitektura və məntiq: kod tapşırığı həll edirmi, lazımsız abstraksiyalar varmı, SOLID və DRY prinsiplərinə əməl olunurmu. İlk oxunuşda çətin başa düşülən mürəkkəb kod — refaktorinq tələb edən siqnaldır. Rəyçi kodun tapşırıqda göstərilən işi dəqiq yerinə yetirdiyinə və öz məsuliyyət sahəsindən kənar yan təsirlərin olmadığına əmin olmalıdır.

Testlər: yeni testlər bütün ssenariləri əhatə edirmi — müsbət, mənfi, sərhəd halları. Mövcud testlər dəyişikliklərdən sonra keçirmi. Qeyri-sabit düşən flaky-testlər varmı. Təhlükəsizlik: SQL-inyeksiyalar, XSS, həssas məlumatların loglar və ya API cavabları vasitəsilə sızması. Performans: alqoritmlərin effektivliyi, lazımsız DB sorğuları, resurs sızmaları.

  • Arxitektura — həllin düzgünlüyü, SOLID-ə riayət, over-engineering-in olmaması.
  • Məntiq — bütün ssenarilərin idarə olunması, o cümlədən səhvlər və sərhəd halları.
  • Testlər — yeni dəyişikliklərin əhatəsi, köhnə testlərin sınmaması.
  • Təhlükəsizlik — inyeksiyalar, XSS, CSRF, loglar vasitəsilə məlumat sızması.
  • Performans — alqoritmlərin mürəkkəbliyi, N+1 sorğuları, yaddaş sızmaları.

Review ölçüsü: niyə 400 sətir maksimumdur

PR ölçüsünün məhdudlaşdırılması — code review effektivliyinin ən vacib metrikasıdır. Cisco (2015) tədqiqatı və SmartBear və Google-un sonrakı təcrübələri göstərdi: review həcmi 400 sətirdən çox olduqda rəyçinin qüsurları aşkarlama qabiliyyəti kəskin şəkildə azalır. PR 400 sətirdən çox olarsa, səhvlər təsadüfi ehtimaldan yüksək olmayaraq aşkarlanır.

Optimal ölçü: bir PR üçün 200-400 sətir. Bu həcm rəyçi tərəfindən 30-60 dəqiqə ərzində yoxlana bilər, konsentrasiyanı qoruyaraq. Google tam konsentrasiya ilə bir review raundu üçün 200 sətirdən çox olmamağı tövsiyə edir. Dəyişikliklər çox olarsa — tapşırıq bir neçə ardıcıl PR-a bölünməlidir, hər biri məntiqi tamamlanmış dəyişiklik gətirir.

Review vaxtı: PR yaradıldıqdan sonra 24 saat ərzində. Review bir neçə günə uzansa, tapşırığın konteksti itir və müəllif şərhlərə cavab verərkən konteksti bərpa etməyə vaxt itirir. Yüksək code review mədəniyyəti olan komandalar review üçün SLA müəyyən edir: məsələn, kritik dəyişikliklər üçün 4 saat, adi dəyişikliklər üçün 24 saat.

PR ölçüsüReview vaxtıEffektivlik
200 sətirə qədər15-30 dəqiqəYüksək — 90% qüsura qədər
200-400 sətir30-60 dəqiqəOrta — 70% qüsura qədər
400-1000 sətir1-3 saatAşağı — 40% qüsurdan az
1000 sətirdən çox3+ saatKritik aşağı — ~10% qüsur

Review-ə şərhləri necə düzgün yazmaq olar

Şərhlərin tonu — code review effektivliyi üçün kritik əhəmiyyət daşıyır. "Bu yanlışdır" şərhi müdafiə reaksiyası yaradır və müəllifə faydalı məlumat vermir. Ən yaxşı ifadə — sual-təklifdir: "Bu yanaşma haqqında nə düşünürsən?", "Burada NPE ola bilər, əgər user == nil. Bəlkə guard əlavə edək?". Suallar az təzyiq edir və müzakirəni stimullaşdırır.

Yaxşı şərhin strukturu üç hissədən ibarətdir: nəyin səhv olduğu, bunun niyə problem olduğu və necə düzəldiləcəyi. Nümunə: "Bu dövrədə iç-içə contains səbəbindən O(n²) istifadə olunur, bu 10k+ qeyddə yavaşlada bilər. O(1) axtarış üçün Set ilə əvəz etməyə çalış." Bu ifadə eyni zamanda problemi göstərir, onun əhəmiyyətini izah edir və həll təklif edir — müəllif düşünmək məcburiyyətində qalmır.

GitHub və GitLab suggestions-u dəstəkləyir — kod dəyişiklikləri üçün daxili təkliflər. Rəyçi yaza bilər: "```suggestion Emal etmədən əvvəl boş sətirləri filtrlə```" — və müəllif dəyişikliyi bir kliklə tətbiq edir. Bu kiçik düzəlişləri sürətləndirir və review raundlarının sayını azaldır. Böyük düzəlişlər üçün suggestion-da böyük bloklar qoymaqdansa, ümumi şərh yazmaq daha yaxşıdır.

bash
# Yaxşı code review şərhi üçün şablon

# PİS: "Bu kod yanlışdır"
# YAXŞI: "Boş cavabda məlumat itirə bilərik.
#         If response.data == nil, the guard returns nil,
#         and user sees empty screen without error.
#         Maybe add a fallback error message?"

# GitHub suggestion sintaksisi:
# ```suggestion
# let result = try? parse(response, fallback: .defaultValue)
# ```

Komandada code review workflow-u

Effektiv review workflow dörd mərhələyə əsaslanır. Birinci — müəllif PR hazırlayır: anlaşılan ad yazır (məs., "feat: add password reset screen"), dəyişikliklərin təsvirini, trekerdə tapşırığa keçidləri və test təlimatlarını əlavə edir. İkinci — müəllif auto-assign (CODEOWNERS əsasında) və ya əl ilə rəyçilər təyin edir.

Üçüncü mərhələ — rəyçi kodu yoxlayır və şərhlər qoyur. Dördüncü — müəllif düzəlişlər edir, şərhlərə cavab verir və təkrar review tələb edir. Dövr təsdiq alınana qədər təkrarlanır. Təsdiqdən sonra müəllif merge edir (və ya bot merge edir). Mergify və ya GitHub Auto-merge vasitəsilə avtomatlaşdırma son mərhələni sürətləndirir.

Workflow-un vacib elementi — stale PR idarəçiliyi. PR 3 gündən çox review-siz qalırsa, proses bloklanır. Həll yolları: rəyçilərin rotasiyası (təyin olunmuş rəyçi əlçatmazdırsa), Slack/Teams vasitəsilə bildirişlər, review vaxt limiti (SLA). Bəzi komandalarda 7 gündən çox review-siz PR avtomatik bağlanır və müəllif main ilə sinxronizasiyadan sonra yeni PR yaradır.

  • PR yaradılması — anlaşılan ad, təsvir, tapşırığa keçidlər, UI dəyişikliklərində ekran görüntüləri.
  • Təyin — CODEOWNERS vasitəsilə auto-assign və ya 1-2 rəyçinin əl ilə seçimi.
  • Review — ardıcıllıqla yoxlama: arxitektura → məntiq → testlər → təhlükəsizlik → stil.
  • Düzəlişlər — müəllif bütün şərhlərə cavab verir, blocking issue-ları düzəldir, re-review tələb edir.
  • Merge — təsdiq və yaşıl CI-dan sonra müəllif və ya bot birləşməni həyata keçirir.

Code review-in tipik səhvləri

Birinci səhv — səthi review. Rəyçi diff-ə səthi baxır, məntiqə dərindən girmir və Approve basır. Səbəblər: böyük PR, deadline, yorğunluq. Nəticələr: bug-lar istehsalata düşür. Həll: keyfiyyətli review-ə vaxt yoxdursa — formal təsdiq əvəzinə vicdanla "Bu gün yoxlaya bilmərəm, sabaha keçirin" yazın.

İkinci səhv — həddindən artıq tənqid (nitpicking). Rəyçi formatlama stili, dəyişən adlandırması, xırda detallarla bağlı onlarla şərh qoyur. Bu müəllifi motivasiyadan salır və review-i uzadır. Həll: StyleGuide və linterlər stili avtomatik yoxlamalıdır. Review-də insan məntiq, arxitektura və təhlükəsizliyi yoxlayır.

Üçüncü səhv — sualsız review. Rəyçi yalnız Request Changes və Approve qoyursa, lakin sual vermirsə, yeni bir şey öyrənmək fürsətini itirir. Code review sağlamlığının ən yaxşı göstəricisi — hər iki tərəfin yeni bir şey öyrəndiyi müzakirələrin olmasıdır. Review iştirakçılardan birinin monoloqudursa, proses pozulub.

  • Səthi review — dərinləşmədən Approve. Həll: vaxt yoxdursa, review etmə.
  • Nitpicking — linterlə yoxlanılan stilin tənqidi. Həll: style checks-i avtomatlaşdır.
  • Şəxsi qavrayış — "mən başqa cür yazardım". Həll: kod işlək olmalıdır, rəyçinin xoşuna gəlmək məcburiyyətində deyil.
  • Uzatma — 24 saatdan çox review. Həll: review üçün SLA, pozuntuda eskalasiya.
  • Kontekstin göz ardı edilməsi — tapşırığı anlamadan kod review. Həll: diff-dan əvvəl PR təsvirini oxu.

Tez-tez verilən suallar

Kodu reyv etmək nə deməkdir?

Reyv etmək — code review pull request aparmaq: dəyişiklikləri keyfiyyət standartlarına uyğunluq baxımından yoxlamaq, potensial səhvləri tapmaq, arxitekturanı qiymətləndirmək və konstruktiv şərhlər qoymaq. Uğurlu review-dən sonra rəyçi PR-i təsdiqləyir (Approve), hədəf qoluna birləşməyə icazə verir.

Code review üçün neçə sətir optimaldır?

200-400 sətir — bir PR üçün optimal həcm. Cisco (2015) və Google tədqiqatları göstərir ki, daha böyük həcmdə qüsurların aşkarlanma effektivliyi kəskin azalır. Dəyişikliklər çox olarsa — tapşırıq bir neçə məntiqi tamamlanmış PR-a bölünməlidir, hər biri 400 sətirdən çox olmamalıdır.

Code review zamanı ilk növbədə nə yoxlanılmalıdır?

Prioritet ardıcıllığında: arxitektura (düzgün həll seçilibmi), məntiq (düzgünlük, səhv idarəetməsi, sərhəd halları), testlər (yeni ssenarilərin əhatəsi), təhlükəsizlik (inyeksiyalar, məlumat sızmaları) və performans. Stil və formatlamanı linterlərə buraxın.

Code review-də hansı ünsiyyət tonu qəbul edilir?

Konstruktiv və hörmətli. "Bu yanlışdır" əvəzinə — "Bu yanaşma haqqında nə düşünürsən?". Təsdiqlər əvəzinə — suallar. Nə üçün müəyyən həllin problemli olduğunu izah edin, sadəcə ona işarə etməyin. Code review — həmkarların dialoqudur, imtahan deyil.

Code review nə qədər gözləməliyəm?

Tövsiyə olunan vaxt — 24 saat ərzində. Kritik dəyişikliklər üçün — 4 saata qədər. Rəyçi daha uzun cavab vermirsə — yenidən təyin üçün komanda liderinə müraciət edin. Review-in uzun gözləməsi inkişafı yavaşladır və müəllifi digər tapşırıqlara keçməyə məcbur edir, konteksti itirərək.

Nəticə

  • Code review — keyfiyyəti artırmaq və bilikləri yaymaq üçün pull request vasitəsilə kodun yoxlanılması prosesi.
  • Optimal PR ölçüsü — 200-400 sətir, rəyçiyə konsentrasiyanı qorumağa və 90% qüsura qədər aşkarlamağa imkan verir.
  • Yoxlama ardıcıllığı — arxitektura, məntiq, testlər, təhlükəsizlik, performans. Stil — linterlərlə.
  • Konstruktiv şərhlər — problemi, onun nəticələrini izah edir və sual formasında həll təklif edir.
  • Review SLA — adi PR üçün 24 saat, kritik üçün 4 saat, əks halda proses bloklanır.
  • Tipik səhvlər — səthi review, nitpicking, tapşırıq kontekstinin göz ardı edilməsi və şəxsi üstünlüklər.
  • Review mədəniyyəti — təhlükəsiz mühit, sualların xoş qarşılandığı və səhvlərin öyrənmə fürsəti kimi qəbul edildiyi.

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun