Bütün yazılar

Kod Keyfiyyəti Nədir? Mentorların Baxdığı 6 Əsas Meyar

Kodunuz işləyir, amma rəydə 'keyfiyyət zəifdir' deyirlər? Kod keyfiyyətinin nə olduğunu və necə ölçüldüyünü nümunələrlə izah edirik.

Fərid Mustafayev6 dəq oxu

Code review şərhləri olan kod redaktoru ekranı

Kodunuz işləyir. Testdən keçir, istifadəçi düyməni basanda istənilən nəticə çıxır. Amma code review-da mentor yazır: "İşləyir, amma keyfiyyət zəifdir." Bəs "keyfiyyət" nə deməkdir, əgər kod artıq işləyirsə? Bu yazıda kod keyfiyyəti nədir, hansı meyarlarla ölçülür, mentorlar və texniki rəhbərlər koda baxanda nəyi görür və öz kodunuzu necə yoxlaya biləcəyinizi sadə dillə izah edirik.

Kod keyfiyyəti nədir?

Kod keyfiyyəti — kodun düzgün işləməsindən əlavə, onun oxunması, dəyişdirilməsi, test edilməsi və etibarlı işləməsinin nə dərəcədə asan olduğudur. Yüksək keyfiyyətli kodu başqa developer tez başa düşür, yeni xüsusiyyəti onu sındırmadan əlavə edə bilir və gözlənilməz vəziyyətlərdə proqram çökmür. Qısaca: işləyən kod — başlanğıcdır, keyfiyyətli kod — peşəkarlıqdır.

Niyə "işləyir" kifayət deyil?

Real layihədə yazdığınız kodu sizdən sonra başqaları — bəzən aylar sonra siz özünüz — oxuyacaq, dəyişəcək və genişləndirəcək. Kodun çox hissəsi bir dəfə yazılır, amma dəfələrlə oxunur. Google-un açıq code review təcrübələri də code review-un əsas məqsədini kod bazasının ümumi sağlamlığını zamanla yaxşılaşdırmaq kimi təsvir edir. Yəni keyfiyyət estetika yox, komandanın gələcək sürətidir.

Kod keyfiyyəti necə ölçülür? 6 əsas meyar

1. Düzgünlük

Kod tələbləri tam yerinə yetirirmi — o cümlədən kənar hallarda? Boş siyahı, səhv giriş, şəbəkə xətası, çox böyük data.

2. Oxunaqlılıq

Dəyişən və funksiya adları nə etdiyini deyirmi? Funksiyalar qısa və tək məsuliyyətlidirmi? Başqa developer kodu izahsız başa düşə bilərmi?

Zəif: function d(x) { ... } Güclü: function calculateLateFee(daysOverdue) { ... }

3. Struktur

Məsuliyyətlər ayrılıbmı? Məsələn, backend-də controller sorğunu qəbul edir, service biznes məntiqini aparır, repository bazaya yazır. Hər şeyi bir yerə yığmaq dəyişikliyi və testi çətinləşdirir.

4. Etibarlılıq və xəta idarəsi

Xəta baş verəndə nə olur? İstifadəçi aydın mesaj görürmü? Sistem uyğunsuz vəziyyətdə qalmırmı (məsələn, tranzaksiya yarımçıq qalmırmı)?

5. Test olunma

Əsas axınlar üçün testlər varmı? Kod test etməyə uyğun yazılıbmı?

6. Təhlükəsizlik və performans

Parollar açıq saxlanılmırmı? İcazə yoxlaması serverdədirmi? Lazımsız təkrar sorğular varmı?

Devlab-da iş necə qiymətləndirilir?

Devlab-da hər tapşırıq sahə mütəxəssisi olan mentor tərəfindən code review olunur və üç meyar üzrə qiymətləndirilir:

MeyarNəyə baxırNümunə rəy
Texniki dərinlikHəll nə qədər düzgün və əsaslıdır; qərarlar başa düşülübmü"Keşləmə düzgün qurulub, amma etibarsızlaşdırma (invalidation) düşünülməyib"
İcra keyfiyyətiKod oxunaqlıdırmı, test olunubmu, xətalar idarə olunurmu"Validasiyanı ayrıca funksiyaya çıxar — oxunaqlılıq artacaq. Xəta hallarını da test et."
MəsuliyyətTapşırıq vaxtında və tam təhvil verilibmi; rəyə görə düzəliş edilibmi"Bütün tələblər yerinə yetirilib və vaxtında təhvil verilib"

Bu ballar həftə-həftə toplanır və inkişaf yolunuzu göstərir: hansı meyarda güclüsünüz, harada geri qalırsınız. Proqramı bitirdikdən sonra isə bu göstəricilər şirkətlərə təqdim olunan profilinizin əsasını təşkil edir — çünki işəgötürən də məhz bu suallara cavab axtarır.

Biznes üçün faydası: niyə şirkətlər kod keyfiyyətinə önəm verir?

  • Sürət: oxunaqlı kodda yeni xüsusiyyət daha tez əlavə olunur
  • Daha az xəta: testlər problemi istifadəçidən əvvəl tutur
  • Onboarding: yeni developer layihəyə daha tez qoşulur
  • Risk: təhlükəsizlik boşluqları daha az olur

Junior namizəd üçün bu o deməkdir: keyfiyyətli kod yazan junior komandaya nəzarət yükü yox, töhfə gətirir — və işəgötürən bunu ilk texniki tapşırıqda görür.

Real nümunə: eyni funksiya, iki versiya

Tutaq ki, kitabxana sistemində kitab götürmə funksiyası yazılır.

Birinci versiya işləyir: kitab statusunu "götürülüb" edir və istifadəçiyə yazır. Amma: eyni kitabı eyni anda iki nəfər götürə bilər; istifadəçi bloklanıbsa da götürə bilir; xəta olanda status dəyişir, qeyd isə yazılmır; heç bir test yoxdur.

İkinci versiya: əvvəlcə istifadəçinin hüququ yoxlanılır, sonra əməliyyat tranzaksiya daxilində aparılır ki, ya hamısı, ya heç biri baş versin; eyni anda götürmə halı nəzərə alınıb; uğursuz halda istifadəçiyə aydın mesaj qaytarılır; əsas ssenarilər üçün testlər var.

Hər iki versiya "işləyir". Yalnız ikincisi production-a hazırdır.

Öz kodunuzu necə yoxlamalı? Yoxlama siyahısı

Təhvil verməzdən əvvəl:

  • Bütün tələblər yerinə yetirilib
  • Kənar hallar (boş, səhv, böyük giriş) yoxlanılıb
  • Adlar nə etdiyini deyir
  • Heç bir funksiya bir neçə müxtəlif iş görmür
  • Xətalar tutulur və aydın mesaj qaytarılır
  • Əsas axınlar üçün test var
  • Parol və gizli açarlar kodda yoxdur
  • README layihəni necə işə salmağı izah edir
  • Commit-lər məntiqli hissələrə bölünüb

Kimə lazımdır?

Kod keyfiyyəti hər kəsə lazımdır, amma xüsusilə:

  • İşə hazırlaşan juniorlara — texniki tapşırıqda ilk baxılan şeydir
  • Tək öyrənənlərə — rəysiz keyfiyyət problemləri görünmür; bu barədə proqramlaşdırmanı özbaşına öyrənmək yazımıza baxın
  • Portfolio quranlara — layihənin keyfiyyəti sayından vacibdir

Kod keyfiyyətini necə inkişaf etdirməli?

  1. Kodunuza mütəmadi rəy alın. Keyfiyyət problemlərini özünüz görmək çətindir.
  2. Başqalarının kodunu oxuyun. Açıq mənbə layihələri yaxşı nümunədir.
  3. Test yazmağı vərdişə çevirin. Test yazmaq çətindirsə, kodun strukturu adətən problemlidir.
  4. Təkrarlanan rəyləri qeyd edin. Onlar sizin əsas inkişaf zonanızdır — ətraflı: öyrənirəm amma irəliləmirəm.
  5. Kodu yazdıqdan sonra bir dəfə də oxuyun — başqasının gözü ilə.

Ən çox rast gəlinən 6 keyfiyyət problemi

Code review-da junior kodunda ən tez-tez görülən problemlər:

  1. Hər şey bir funksiyada: validasiya, biznes məntiqi, baza əməliyyatı və bildiriş bir yerdə
  2. Mənasız adlar: data, temp, x, handle2
  3. Xəta idarəsinin olmaması: "uğurlu ssenari" işləyir, qalan hər şey çökür
  4. Kopyalanmış kod: eyni məntiq üç yerdə, bir yerdə düzəldilib, ikisində yox
  5. Sehrli rəqəmlər: if (status === 3) — 3 nə deməkdir?
  6. Test yoxluğu: dəyişiklik edəndə nəyin sındığını bilmək mümkün deyil

Bu siyahını öz kodunuza tətbiq edin — çox güman ki, ən azı ikisini tapacaqsınız. Bu, normaldır; əsas olan onları görüb düzəltməkdir.

Kod keyfiyyəti və AI alətləri

AI kod köməkçiləri kod yazmağı sürətləndirir, amma keyfiyyət məsuliyyəti developerdə qalır. AI-nin yazdığı kodu da eyni meyarlarla yoxlamaq lazımdır: kənar hallar idarə olunurmu, adlar aydındırmı, təhlükəsizlik problemi varmı, test varmı? Kodu başa düşmədən qəbul etmək, sonradan onu düzəltməyi xeyli çətinləşdirir.

Kod keyfiyyəti müsahibədə necə görünür?

Texniki tapşırıqda rəhbər əvvəlcə README-yə, sonra struktura, sonra kənar hallara və testlərə baxır. Yəni yuxarıdakı yoxlama siyahısı həm də ev tapşırığını təhvil verməzdən əvvəl istifadə ediləcək siyahıdır — o, sizin işinizi "işləyir" səviyyəsindən "komandaya hazırdır" səviyyəsinə qaldırır.

Qısaca, kod keyfiyyəti vərdişdir: hər tapşırıqda eyni yoxlama siyahısını tətbiq etdikcə o, avtomatik olur və sonda heç düşünmədən keyfiyyətli kod yazmağa başlayırsınız.

Bu vərdiş həm müsahibədə, həm də komandadakı ilk aylarınızda sizi digər junior namizədlərdən fərqləndirəcək və etibar qazanmağı asanlaşdıracaq.

Nəticə

Kod keyfiyyəti — düzgünlük, oxunaqlılıq, struktur, etibarlılıq, test olunma və təhlükəsizliyin birləşməsidir. "İşləyir" başlanğıcdır; işəgötürən isə kodun başqaları tərəfindən oxunub dəyişdirilə biləcəyini görmək istəyir. Bu bacarıq ən sürətli müntəzəm code review və ölçülən rəylə inkişaf edir.

Kodunuzu sahə mütəxəssisinə yoxlatmaq və keyfiyyətinizi ölçmək istəyirsinizsə, pulsuz qeydiyyatdan keçin və real tapşırıq nümunələrinə baxın. Proqramlar haqqında ətraflı: proqramlar səhifəsi.

Tez-tez verilən suallar

Junior developerdən hansı səviyyədə kod keyfiyyəti gözlənilir?

Mükəmməllik yox, əsaslar: aydın adlar, kiçik funksiyalar, əsas xəta idarəsi, bir neçə test və README. Ən vacibi rəyə görə kodu təkmilləşdirə bilməkdir.

Linter və formatter kod keyfiyyətini təmin edirmi?

Qismən. Onlar üslub və bəzi tipik səhvləri tutur, amma struktur, düzgünlük və dizayn qərarlarını yoxlamır. Bunun üçün code review lazımdır.

Sürət yoxsa keyfiyyət?

Junior üçün əvvəlcə keyfiyyət vacibdir — sürət zamanla gəlir. Keyfiyyətsiz sürətli kod sonradan daha çox vaxt aparır.

Kod keyfiyyəti müsahibədə necə yoxlanılır?

Əsasən texniki tapşırıqda və layihə müzakirəsində: kodunuz oxunurmu, xətalar idarə olunurmu, test varmı, qərarlarınızı izah edə bilirsinizmi.

Bu mövzuda təcrübə proqramı