Thread Starter
#0
Salam dostlar, Mast.az əhli!
Bu gün bir az o məşhur "Spagetti kod" bəlasından danışmaq istəyirəm. Hamımız yaşamışıq: bir kiçik düzəliş etmək istəyirsən, bütün sayt "404" və ya ağ səhifə verir. Bunun əsas səbəbi kodun təmiz olmaması, yəni proqramçı dili ilə desək "Code Smells" (Kodun iylənməsi) məsələsidir.
Gəlin real nümunələrlə baxaq, görün siz də hardasa bu səhvləri etmisinizmi?
PİS KOD (Dərdimizi kimə deyək?):
YAXŞI KOD (İnsan dili):
Fərqi görürsünüz? İkinci kodu 2 il sonra oxuyanda beyniniz yanmayacaq.
PİS KOD:
Burada sabah bir gün mail sistemini dəyişmək istəsəniz, bütün funksiyanı alt-üst etməli olacaqsınız. Hər işin öz funksiyası olmalıdır.
PİS KOD:
YAXŞI KOD (Early Return - Erkan Qayıdış):
Yəni, Təmiz Kod = Sürətli Sayt = SEO Dostu Struktur.
Gəlin müzakirə edək:
Bu gün bir az o məşhur "Spagetti kod" bəlasından danışmaq istəyirəm. Hamımız yaşamışıq: bir kiçik düzəliş etmək istəyirsən, bütün sayt "404" və ya ağ səhifə verir. Bunun əsas səbəbi kodun təmiz olmaması, yəni proqramçı dili ilə desək "Code Smells" (Kodun iylənməsi) məsələsidir.
Gəlin real nümunələrlə baxaq, görün siz də hardasa bu səhvləri etmisinizmi?
1. Dəyişən adları: "Nə idi bu x?"
Yeni başlayanda (hətta bəzən tənbəllik edəndə) dəyişənlərə mənasız adlar veririk. Amma 3 ay sonra həmin koda qayıdanda sanki başqasının koduna baxırıq.PİS KOD (Dərdimizi kimə deyək?):
CODE
123456789101112
// Bu nəyin endirimidir? Kim bilir...
function calc(p, d) {
return p - (p * (d / 100));
}
let res = calc(100, 10);
YAXŞI KOD (İnsan dili):
CODE
123456789101112
function calculateProductDiscount(price, discountPercentage) {
const discountAmount = price * (discountPercentage / 100);
return price - discountAmount;
}
let finalPrice = calculateProductDiscount(100, 10);
Fərqi görürsünüz? İkinci kodu 2 il sonra oxuyanda beyniniz yanmayacaq.
2. "İsveç bıçağı" funksiyalar
Bəzən bir funksiyaya o qədər yük yükləyirik ki, yazıq nə edəcəyini çaşır. Bir funksiya həm məlumatı hesablamalı, həm bazaya yazmalı, həm də mail göndərməli deyil.PİS KOD:
CODE
12345678910111213141516171819202122
function handleOrder($order) {
// Hesabla
$total = $order->price * $order->qty;
// Bazaya yaz
$db->query("INSERT INTO orders...");
// Mail göndər
mail($order->email, "Sifarişiniz alındı", "Mətn...");
// Ekrana yazdır
echo "Uğurlu əməliyyat!";
}
Burada sabah bir gün mail sistemini dəyişmək istəsəniz, bütün funksiyanı alt-üst etməli olacaqsınız. Hər işin öz funksiyası olmalıdır.
3. "If-Else" cəhənnəmi (Pyramid of Doom)
İç-içə yazılmış 5-6 dənə if şərti... Bax bu, həqiqi spagettidir. Google botları belə bu kodun içində azır (zarafat edirəm, amma performans cəhətdən həqiqətən ziyandır).PİS KOD:
CODE
12345678910111213141516
if (user) {
if (user.isActive) {
if (user.hasPermission) {
// Əməliyyat...
}
}
}
YAXŞI KOD (Early Return - Erkan Qayıdış):
CODE
123456
if (!user || !user.isActive || !user.hasPermission) return;
// Əməliyyat burda təmiz şəkildə davam edir...
Bu mövzunun SEO-ya nə dəxli var?
Dostlar, təmiz kod təkcə proqramçılar üçün deyil. Google-un Core Web Vitals alqoritmi saytın render sürətinə (LCP) və interaktivliyinə (FID) baxır. Şişirdilmiş, lazımsız dövrlərlə (loops) dolu JavaScript və ya ağır backend kodları serveri yorur. Server gec cavab verəndə isə Google sizi axtarış nəticələrində geriyə atır.Yəni, Təmiz Kod = Sürətli Sayt = SEO Dostu Struktur.
Gəlin müzakirə edək:
- Sizin də arxivinizdə "açmağa qorxduğunuz" o məşhur layihəniz varmı?
- Kod yazarkən ən çox hansı "pis vərdişiniz" var?
- Sizcə "Clean Code" kitabını oxumaq mütləqdir, yoxsa təcrübə hər şeydir?
● WEBMASTER ●
Həyatın mənası bir nöqtə-vergüldə gizlidir.
« every fix is a win »
#DevMood
Həyatın mənası bir nöqtə-vergüldə gizlidir.
« every fix is a win »
#DevMood