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 — 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 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ı.
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ər | 15-30 dəqiqə | Yüksək — 90% qüsura qədər |
| 200-400 sətir | 30-60 dəqiqə | Orta — 70% qüsura qədər |
| 400-1000 sətir | 1-3 saat | Aşağı — 40% qüsurdan az |
| 1000 sətirdən çox | 3+ saat | Kritik aşağı — ~10% qüsur |
Şə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.
# 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)
# ```
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.
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.
Tez-tez verilən suallar
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.
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.
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.
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.
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ə
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.
Həm də oxuyun