Bir klikdən sonra nə baş verir?
Onlayn mağazada sonuncu qulaqlığı səbətə əlavə edirsiniz. “Sifarişi təsdiqlə” düyməsinə toxunursunuz və bir neçə saniyə sonra sifariş nömrəsi görünür. Ekranda hər şey sadədir. Amma həmin anda başqa bir alıcı da eyni məhsulu sifariş etsə, nə baş verər?
Sistem məhsulun kimə ayrıldığını müəyyənləşdirməli, qiyməti yoxlamalı, sifarişi saxlamalı və hər iki istifadəçiyə düzgün cavab verməlidir. Backend development bu qərarları verən və məlumatın etibarlılığını qoruyan server tərəfinin hazırlanmasıdır.
Backend proqramçısı biznes qaydaları, verilənlər bazası və API-lər üzərində işləyir; komanda ilə birlikdə tətbiqin sürətli, dayanıqlı və təhlükəsiz işləməsinə cavabdeh olur. İşi yaxşı görmək üçün kodun nə etdiyini anlamaqla yanaşı, hansı hallarda səhv nəticə verə biləcəyini də düşünmək lazımdır. Test yazmaq, nasazlığın səbəbini tapmaq və qərarları komanda ilə müzakirə etmək bu işin gündəlik hissəsidir.
Bu yazıdan nə qazanacaqsınız? Bir sorğunun serverdəki yolunu anlayacaq, ilk layihəniz üçün plan quracaq və maaş rəqəmlərini daha düzgün şərh edə biləcəksiniz.
Bir klik. Üç dayanacaq.
Sifarişin ekrandan bazaya gedən yolunu özün izlə.
Bir kliklə başla. Məhsulun nömrəsi və sayı brauzerdən serverə gedəcək, nəticə isə eyni yolla geri qayıdacaq.
Frontend və backend necə əməkdaşlıq edir?
Frontend istifadəçinin gördüyü ekranı və qarşılıqlı əlaqəni qurur. Backend isə gələn sorğuları emal edir, məlumatı saxlayır və əməliyyatın qaydalara uyğunluğunu yoxlayır.
Mağaza nümunəsində frontend məhsul kartını göstərir, say seçməyə imkan verir və nəticəni ekrana çıxarır. Backend məhsulun mövcudluğunu və istifadəçinin bu əməliyyata icazəsini yoxlayır. Brauzerdən gələn qiymətə kor-koranə etibar etmək olmaz: yekun məbləği server özündəki etibarlı məlumatdan hesablamalıdır.
İki tərəf API (tətbiqlərin müəyyən qaydalarla məlumat mübadiləsi apardığı interfeys) vasitəsilə danışır. Eyni backend həm vebsayta, həm də mobil tətbiqə xidmət edə bilər. Beləcə, sifarişin qaydaları müxtəlif ekranlarda vahid qalır.
| İstifadəçinin hərəkəti | Frontend-in işi | Backend-in işi |
|---|---|---|
| Məhsula baxır | Kartı və qiyməti göstərir | Məhsul məlumatını qaytarır |
| Sifariş verir | Seçimi serverə göndərir | Qiyməti və stoku yoxlayır |
| Sifarişi izləyir | Statusu ekrana çıxarır | İcazəni yoxlayıb statusu qaytarır |
Sifarişin server daxilindəki yolu
Təsəvvür edək ki, ödənişi ayrıca mərhələdə aparılan sadə mağaza qururuq. Sifariş sorğusunun yolu belə ola bilər:
- Sorğu gəlir. Tətbiq məhsulun identifikatorunu və sayını göndərir.
- Məlumat yoxlanılır. Say müsbətdirmi, məhsul mövcuddurmu, istifadəçi tanınırmı?
- Biznes qaydası tətbiq edilir. Cari qiymət hesablanır, endirim şərtləri və anbar qalığı yoxlanılır.
- Dəyişiklik saxlanılır. Məhsulun ayrılması və sifarişin yaradılması bir-birinə uyğun şəkildə tamamlanır.
- Cavab qaytarılır. Ekranda sifariş nömrəsi və status görünür. Təsdiq məktubu ayrıca göndərilə bilər.
Buradakı maraqlı detal dördüncü addımdır. İki sorğu eyni anda “bir ədəd qalıb” cavabını oxuyarsa, sadə yoxlama kifayət etməz. Stokun yoxlanması və azaldılması paralel əməliyyatlara davamlı qurulmalıdır; sifarişin yazılması ilə birlikdə verilənlər bazası tranzaksiyasında idarə oluna bilər.
Tranzaksiya əlaqəli dəyişikliklərin bütöv tamamlanmasına və ya geri qaytarılmasına kömək edir. Xarici ödəniş xidməti isə ayrıca sistemdir: onun əməliyyatını lokal baza tranzaksiyası avtomatik geri qaytarmır. Real məhsullarda belə sərhədləri başa düşmək kodun özünü yazmaq qədər vacibdir.
Backend proqramçısının əsas bacarıqları
Backend-də irəliləyişi bildiyiniz alətlərin sayı ilə ölçməyin. Daha faydalı meyar budur: qarşılaşdığınız problemi izah edib həllinizin düzgün işlədiyini göstərə bilirsinizmi? Gündəlik işdə bu bacarıqlar önə çıxır:
- Proqramlaşdırma və məntiq: sifariş hansı şərtlərdə qəbul edilməlidir? Səhv girişə necə cavab verilməlidir?
- Məlumat modeli: istifadəçi, məhsul və sifariş arasında hansı əlaqələr var? Hansı məlumat təkrarlanmamalıdır?
- API dizaynı: digər proqramçı cavabın mənasını rahat anlaya bilirmi? Uğurlu və uğursuz nəticələr aydındırmı?
- Təhlükəsizlik: istifadəçi yalnız öz sifarişini görə bilirmi? Giriş məlumatları serverdə yoxlanılırmı?
- Test və diaqnostika: stok bitəndə nə olur? Xəta baş verəndə səbəbi tapmaq üçün kifayət qədər məlumat varmı?
Autentifikasiya istifadəçinin kimliyini, avtorizasiya isə hansı əməliyyata icazəsi olduğunu müəyyənləşdirir. Hesaba daxil olmaq başqa istifadəçinin sifarişinə baxmaq hüququ vermir. Bu fərqi layihənin əvvəlindən nəzərə almaq lazımdır.
Texnologiya seçimi: əvvəlcə anlayışlar
Bir dil seçin və onunla işləyən kiçik sistemi başdan sona qurun. Dilin sintaksisini öyrənərkən dəyişənlərin, obyektlərin, kolleksiyaların və xətaların proqramın davranışına necə təsir etdiyini anlamağa çalışın.
Bu yolu Java və proqramlaşdırma əsasları ilə başlaya bilərsiniz. Java-nı öyrənərkən sadə məhsul kataloqu hazırlayın: məhsul əlavə edin, ada görə axtarın, qiymətə görə sıralayın. Sonra bu məlumatı verilənlər bazası və SQL mövzuları ilə əlaqələndirin.
Framework sorğuları qəbul etmək və tətbiqi təşkil etmək üçün hazır imkanlar verir. Amma qiymətin haradan götürüləcəyi, stokun necə dəyişəcəyi və səhv girişə hansı cavabın veriləcəyi yenə sizin qərarınızdır. Dilin və bazanın əsasları aydınlaşdıqdan sonra Spring Boot və REST API ilə həmin kataloqu veb xidmətə çevirə bilərsiniz.
Yeni texnologiyanı konkret ehtiyac yarandıqda əlavə edin. Siyahı böyüyəndə səhifələməni düşünün. Sorğu yavaşlayanda səbəbini ölçün. Keşdən istifadə edəndə məlumatın nə vaxt köhnələcəyini və necə yenilənəcəyini müəyyənləşdirin. Aləti seçməzdən əvvəl həll etdiyiniz problemi bir cümlə ilə ifadə edin.
Öyrənmə yolunu nəticələrə bölün
Mövzuların çoxluğu başlanğıcda çaşdıra bilər. Java backend yol xəritəsində əsaslardan sistem dizaynına qədər mərhələləri görə bilərsiniz. Hər mərhələni işləyən bir nəticə ilə tamamlayın:
- Əsasları mənimsəyin. Bir dildə şərtlər, dövrlər, funksiyalar, kolleksiyalar və xəta emalı ilə kiçik proqramlar yazın. HTTP sorğusu ilə cavabının rolunu anlayın.
- Məlumatı saxlayın. Kiçik məhsul kataloqu yaradın. SQL ilə əlavə etmə, oxuma, yeniləmə və silmə əməliyyatlarını məşq edin.
- API hazırlayın. Kataloqu sorğular vasitəsilə əlçatan edin. Yanlış məhsul nömrəsinə və etibarsız girişə aydın cavab verin.
- İcazələri və testləri əlavə edin. Alıcı ilə idarəçinin səlahiyyətlərini ayırın. Uğursuz ssenariləri də yoxlayın.
- Layihəni işlədin və izah edin. Qurulma qaydasını yazın, dəyişiklikləri versiya nəzarətində saxlayın və tətbiqin xətalarını izləyin.
Bu, sabit müddətli kurs cədvəli deyil. Növbəti mərhələyə keçmək üçün hazırladığınız hissənin necə işlədiyini öz sözlərinizlə izah edə bilməyiniz yaxşı meyardır.
Alqoritmlər, LLD və HLD: bir layihəyə üç baxış
İlk API-ni yazdıqdan sonra suallar dəyişir: məlumat artanda kod necə davranacaq, yeni tələb gələndə neçə yeri dəyişmək lazım olacaq, xidmətlərdən biri işləməyəndə nə baş verəcək? Bu suallara üç istiqamət kömək edir.
- Alqoritmlər və data strukturları məlumatı necə saxlayacağınızı və emal edəcəyinizi düşünməyə kömək edir. Məhsulu siyahıda axtarmaq, təkrarlanan qeydləri tapmaq və nəticəni sıralamaq kimi işlərdə seçimin vaxt və yaddaş xərcini başa düşürsünüz.
- Low-Level Design - LLD kodun daxilindəki məsuliyyət bölgüsünə fokuslanır. Sifariş, anbar və qiymət hesablaması hansı siniflərdə olmalıdır? Yeni endirim qaydası əlavə edəndə mövcud kodu necə qorumaq olar? Məqsəd dəyişdirilməsi və yoxlanması rahat kod qurmaqdır.
- Sistem dizaynı - HLD bütöv sistemin quruluşuna baxır. Məlumat harada saxlanacaq, komponentlər necə əlaqə quracaq, yük artanda hansı hissə dar boğaza çevriləcək? Burada etibarlılıq, gecikmə və xərc birlikdə qiymətləndirilir.
Bu istiqamətləri eyni layihəyə tətbiq edin. Əvvəl sifariş axınını işlədin, sonra siniflərin məsuliyyətini ayırın, daha sonra sistemin yük və nasazlıq qarşısında davranışını araşdırın. Belə öyrənəndə hər anlayışın hansı problemi həll etdiyi görünür.
Portfolioluq layihə: kiçik sifariş sistemi
Bir layihəni mərhələlərlə dərinləşdirin: əvvəl məhsul kataloqu, sonra səbət, daha sonra sifariş və stok idarəetməsi. İlkin versiyada real ödəniş əvəzinə sınaq statuslarından istifadə edə bilərsiniz.
Layihəni təqdim edərkən ekran görüntüləri ilə yanaşı qərarlarınızı da göstərin: məlumat modeli, API nümunələri, testlərin işə salınması və məlum məhdudiyyətlər. Aşağıdakı ssenarilər yaxşı yoxlama nöqtələridir:
- Stokda olmayan məhsula sifariş qəbul edilmir.
- İki alıcı son məhsulu eyni anda sifariş edəndə stok mənfiyə düşmür.
- İstifadəçi başqasının sifarişini oxuya bilmir.
- Eyni sifariş sorğusunun təkrarlanması nəzarətsiz dublikat yaratmır.
- Bildirişin göndərilməməsi artıq saxlanmış sifarişi yox etmir.
Bu ssenarilər işləyən məhsulla sadə nümayiş layihəsi arasındakı mühəndislik qərarlarını üzə çıxarır. Hər birinin həllini və seçiminizin səbəbini izah etmək müsahibədə də faydalıdır.
Backend proqramçıları nə qədər qazanır?
Backend proqramçısının gəliri işlədiyi ölkə, təcrübəsi, şirkətin ölçüsü və üzərinə götürdüyü məsuliyyətə görə dəyişir. Eyni vəzifə adı müxtəlif komandalarda fərqli iş yükü və bacarıq səviyyəsi ifadə edə bilər.
Aşağıdakı cədvəl 2025-ci ilə aid ümumi maaş aralıqlarını göstərir. Aylıq ekvivalent illik məbləğin 12-yə bölünüb yuvarlaqlaşdırılmasıdır.
| Ölkə / şəhər | İllik maaş aralığı | Aylıq ekvivalent ≈ |
|---|---|---|
| ABŞ · USD | 100 000 – 150 000 | 8 333 – 12 500 |
| Böyük Britaniya · GBP | 50 000 – 80 000 | 4 167 – 6 667 |
| Dubay, BƏƏ · AED | 150 000 – 300 000 | 12 500 – 25 000 |
| Azərbaycan · AZN | 35 000 – 100 000 | 2 917 – 8 333 |
Hər sətirdə məbləğ həmin ölkənin göstərilən valyutasındadır. Mobil ekranda cədvəli yana sürüşdürə bilərsiniz.
Rəqəmləri necə oxumalı? Bu aralıqlar cari bazar ortalaması və ya junior başlanğıc maaşı deyil. Təcrübə səviyyəsi, hesablama metodologiyası və vergi statusu üzrə dəqiqləşdirilmədiyi üçün onları ümumi istiqamət kimi oxuyun. Konkret təklifi vəzifənin tələbləri və ödəniş şərtləri ilə birlikdə qiymətləndirin.
Maaşdan əlavə nəyə baxmalı?
Fərqli valyutalardakı rəqəmlər birbaşa müqayisə edilmir. Təklifi qiymətləndirərkən yaşayış xərclərini, vergi şərtlərini, bonusları, sığortanı və iş rejimini birlikdə nəzərdən keçirin. Aylıq ekvivalent faktiki olaraq hər ay alınacaq xalis ödəniş demək deyil.
Karyeranın əvvəlində mentorluq, kod baxışı və real layihədə məsuliyyət götürmək imkanı da dəyərlidir. Maaş söhbətinə hazırlaşarkən bacarıqlarınızı konkret nəticələrlə izah edin: hansı problemi həll etmisiniz, sistemin düzgün işlədiyini necə yoxlamısınız və texniki seçiminizi necə əsaslandırırsınız?
İlk addımı kiçik, məqsədi aydın saxlayın
Yaxşı backend proqramçısı yazdığı kodun davranışını izah edə bilir: məlumat haradan gəlir, hansı qaydadan keçir, harada saxlanır və nasazlıq zamanı nə baş verir? Bu suallara cavab vermək bacarığı hər tamamladığınız layihə ilə güclənir.
İlk məqsədiniz kiçik, amma etibarlı sistem olsun. Məhsul siyahısı hazırlayın, onu bazada saxlayın, sifariş yaratmağa imkan verin. Sonra eyni anda iki sorğu gəldiyini təsəvvür edin və həllinizi yenidən yoxlayın.
İlk layihənizə buradan başlayın.
Proqramlaşdırmaya yeni başlayırsınızsa, Java əsasları kursuna keçin. Artıq kod yazırsınızsa, backend yol xəritəsində növbəti mərhələnizi seçin. Öyrəndiyinizi sifariş layihəsinə tətbiq edin və hər yeni mövzu ilə onu bir addım təkmilləşdirin.
