Tez-tez eşitdiyimiz, proqramlaşdırmanın fundamental biliklərindən biri olan "Clean Code" haqqında danışmağa çalışacağıq.
Dilimizə hərfi tərcümədə "Təmiz Kod", daha mənalı versiyada isə "Oxunaqlı Kod" kimi tərcümə etmək olar. Bəs nədir bu təmiz (oxunaqlı) kod?
Proqramlaşdırma sahəsində Təmiz Kod anlayışı Robert Cecil Martin tərəfindən yazılmış "Clean Code" kitabıyla dahada geniş fürsət aldı, və zamanla kitab bu mövzuda hər kəsin müraciət etdiyi mənbəyə çevrildi. Bu səbəbdən kitabı oxumağı, mövzuları təhlil etməyi və mümkün olduqca tətbiq etməyi məsləhət görürük.
Kodun təmiz olması, həmin kodun tərtibatçısından başqa digər komanda üzvləri tərəfindən də asanlıqla başa düşülməsi və üzərində dəyişiklik etdirilə bilməsi deməkdir.
Təmiz kodun bir neçə prinsipləri mövcuddur. Bəzilərinə aid misallara baxaq.
- KISS (Keep it simple, stupid)
KISS təmiz kodun təməl prinsiplərindən biridir. KISS prinsipi proqramçıları kodu mümkün qədər sadə yazmağa təşviq edir. Hamımızın bildiyi kimi, proqramlaşdırmada hansısa problemi həll etmək üçün müxtəlif yollar mövcuddur. Təmiz kod prinsipinə əməl edən proqramçı hər zaman müəyyən bir problemi həll etməyin daha asan yolunun olub-olmadığını sorğulamalı, mümkündürsə komandayla müzakirə aparmağı və nəticəyə uyğun qərar verməlidir.
- DRY (Don’t repeat yourself)
DRY prinsipi KISS-in daha spesifik versiyasıdır. DRY prinsipinə əsasən, koddakı hansısa əməliyyat ve ya əməliyyatlar toplusu yalnız bir funksiya tərəfindən təyin olunmalı və dəyişikliklər həmin funksiya üzərində aparılmalıdır. Məsələn aşağıdaki misala baxaq.
WET kod DRY kodun tam əksidir. Məsələn aşağıdakı misalda “username” ve “source” müxtəlif kodlarda iki dəfə ayrı ayrı çağırılıb.
WET kod
// Web login
// Mobile login
Yuxarıdakı misalın əvəzinə, funksiya təyin edib kodu aşağıdakı kimi ümumiləşdirmək olar.
DRY kod
// Web login
// Mobile login
- YAGNI (You aren’t gonna need it)
YAGNI təmiz kod prinsipi proqramçını yalnız lazım olduqda koda əlavə funksionallıq təqdim etməyə təşviq edir. YAGNI prinsipinə əsasən, development zamanı ümumi bir konsepsiyadan başlamaq və öncədən ilk əvvəldə lazım olmayan funksiyaları kodlamaq əvəzinə, proqram arxitekturasını kiçik addımlarla proqramlaşdırmalısınız.
- Readability over conciseness
Hər bir proqramçı "haqlı" olaraq deyə bilər ki, əslində vacib olan kodun işləməsi və onun yalnızca kodu icra edən maşın tərəfindən başa düşülməsidir. Bununla belə digər proqramçılarda kodu başa düşməlidirlər, xüsusən də birdən çox adamla bir layihə üzərində işləyirsinizsə. Buna görə də proqram təminatında kodun oxunaqlılığı həmişə onun yığcamlığından daha vacibdir. Əgər digər proqramçılar onu başa düşə bilmirlərsə, qısa kod yazmağın mənası yoxdur. Asağıdakı misala baxaq.
Proqram daxilində dəyişənin adı özünü izah etməlidir. Aşağıdakı dəyişən izahat olmadan başa düşülə bilməz:
əksinə olaraq isə, eyni dəyişən amma adı daha uzun və mənası daha anlayışlı:
Əlbəttəki clean code çox daha geniş mövzudu və bir blog postu ilə izah edilmesi qeyri mümkündü. Daha geniş izahlar və əlavə prinsiplər üçün yuxarıda qeyd olunan "Clean Code" kitabına müraciət etmək olar.
Məqalənin müəllifi: B. İsmayılov