Bütün yazılara qayıt
MƏQALƏ

Backend development nədir? Bir klikdən etibarlı sistemə

Backend-in necə işlədiyini anla, Java ilə ilk layihənin yolunu qur və alqoritmlərdən sistem dizaynına doğru irəlilə.

9 dəq. oxu
-
Brauzerdəki klikdən serverlərə və verilənlər bazasına uzanan bənövşəyi məlumat axını, ön planda təhlükəsizlik qalxanı.

Bir klikdən sonra nə baş verir?

On­layn ma­ğa­za­da sonuncu qulaqlığı səbətə əlavə edirsiniz. “Si­fa­ri­şi təsdiqlə” düyməsinə toxunursunuz və bir neçə sa­ni­yə sonra si­fa­riş 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əh­su­lu si­fa­riş etsə, nə baş verər?

Sis­tem məh­su­lun kimə ayrıldığını müəyyənləşdirməli, qiyməti yoxlamalı, si­fa­ri­şi sax­la­ma­lı və hər iki istifadəçiyə düz­gün cavab verməlidir. Backend development bu qərarları verən və mə­lu­ma­tın etibarlılığını qoruyan server tərəfinin hazırlanmasıdır.

Backend proqramçısı biz­nes qaydaları, verilənlər bazası və API-lər üzə­rin­də işləyir; komanda ilə birlikdə tət­bi­qin sü­rət­li, da­ya­nıq­lı və təh­lü­kə­siz işləməsinə cavabdeh olur. İşi yaxşı görmək üçün kodun nə et­di­yi­ni anlamaqla ya­na­şı, hansı hal­lar­da səhv nə­ti­cə verə bi­lə­cə­yi­ni də düşünmək la­zım­dı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­ğu­nun serverdəki yolunu anlayacaq, ilk layihəniz üçün plan quracaq və maaş rəqəmlərini daha düz­gün şərh edə biləcəksiniz.

İNTERAKTİV NÜMUNƏ

Bir klik. Üç dayanacaq.

Sifarişin ekrandan bazaya gedən yolunu özün izlə.

Brauzerİstifadəçinin ekranı
01
mağaza.az
Simsiz qulaqlıq1 ədəd · 89 AZN
Səbət sifarişə hazırdır
BackendQaydalar və qərarlar
02
POST /api/orders
İstifadəçi və icazə
Məhsul və say
Qiymət və stok
Sorğu gözlənilir
Verilənlər bazasıEtibarlı məlumat
03
Məhsul#42
Stok1ədəd
SifarişYaradılmayıb
Stok + sifariş: bir tranzaksiya
00/ 06
Hazırdır

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.

Öz tempində izlə

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­ğu­la­rı emal edir, mə­lu­ma­tı sax­la­yır və əmə­liy­ya­tın qaydalara uyğunluğunu yoxlayır.

Mağaza nümunəsində frontend məh­sul kartını gös­tə­rir, say seçməyə imkan verir və nəticəni ekrana çıxarır. Backend məh­su­lun möv­cud­lu­ğu­nu və istifadəçinin bu əmə­liy­ya­ta 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 eti­bar­lı mə­lu­mat­dan hesablamalıdır.

İki tərəf API (tətbiqlərin mü­əy­yən qaydalarla mə­lu­mat mübadiləsi apardığı interfeys) va­si­tə­si­lə danışır. Eyni backend həm vebsayta, həm də mobil tətbiqə xidmət edə bilər. Beləcə, sifarişin qaydaları müx­tə­lif ekranlarda vahid qalır.

Frontend və backend necə əməkdaşlıq edir?
İstifadəçinin hərəkətiFrontend-in işiBackend-in işi
Məhsula baxırKartı və qiyməti gös­tə­rirMəh­sul məlumatını qaytarır
Si­fa­riş verirSeçimi serverə gön­də­rirQiyməti və stoku yoxlayır
Si­fa­ri­şi izləyirStatusu ekrana çıxarırİcazəni yoxlayıb statusu qaytarır

Sifarişin server daxilindəki yolu

Tə­səv­vür edək ki, ödə­ni­şi ayrıca mərhələdə aparılan sadə mağaza qururuq. Si­fa­riş sorğusunun yolu belə ola bilər:

  1. Sorğu gəlir. Tət­biq məh­su­lun iden­ti­fi­ka­to­ru­nu və sayını gön­də­rir.
  2. Mə­lu­mat yoxlanılır. Say müsbətdirmi, məh­sul mövcuddurmu, is­ti­fa­də­çi tanınırmı?
  3. Biz­nes qaydası tət­biq edilir. Cari qiymət hesablanır, endirim şərtləri və anbar qalığı yoxlanılır.
  4. Dəyişiklik saxlanılır. Məh­su­lun ayrılması və sifarişin yaradılması bir-bi­ri­nə uyğun şə­kil­də ta­mam­la­nır.
  5. Cavab qaytarılır. Ekranda si­fa­riş nömrəsi və status görünür. Təs­diq 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ə­liy­ya­tı­nı lokal baza tranzaksiyası av­to­ma­tik geri qaytarmır. Real məhsullarda belə sərhədləri başa düşmək kodun özünü yazmaq qədər va­cib­dir.

Backend proqramçısının əsas bacarıqları

Backend-də irəliləyişi bildiyiniz alətlərin sayı ilə ölçməyin. Daha fay­da­lı meyar budur: qarşılaşdığınız prob­le­mi izah edib həllinizin düz­gün işlədiyini gös­tə­rə bilirsinizmi? Gündəlik işdə bu bacarıqlar önə çıxır:

  • Proq­ram­laş­dır­ma və məntiq: si­fa­riş hansı şərtlərdə qəbul edil­mə­li­dir? Səhv girişə necə cavab ve­ril­mə­li­dir?
  • Mə­lu­mat modeli: is­ti­fa­də­çi, məh­sul və si­fa­riş ara­sın­da hansı əlaqələr var? Hansı mə­lu­mat təkrarlanmamalıdır?
  • API di­zay­nı: digər proqramçı ca­va­bın mənasını rahat anlaya bilirmi? Uğur­lu və uğur­suz nə­ti­cə­lər aydındırmı?
  • Təhlükəsizlik: is­ti­fa­də­çi yal­nı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ə­lu­mat varmı?

Autentifikasiya istifadəçinin kimliyini, avtorizasiya isə hansı əmə­liy­ya­ta icazəsi ol­du­ğu­nu mü­əy­yən­ləş­di­rir. 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 la­zım­dı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 et­di­yi­ni 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əh­sul kataloqu hazırlayın: məh­sul əlavə edin, ada görə axtarın, qiymətə görə sıralayın. Sonra bu mə­lu­ma­tı verilənlər bazası və SQL mövzuları ilə əlaqələndirin.

Framework sor­ğu­la­rı qəbul etmək və tət­bi­qi 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ı ca­va­bı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 is­ti­fa­də edəndə mə­lu­ma­tı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 et­di­yi­niz prob­le­mi 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 sis­tem 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ə­ti­cə ilə tamamlayın:

  1. Ə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.
  2. Mə­lu­ma­tı saxlayın. Kiçik məh­sul kataloqu yaradın. SQL ilə əlavə etmə, oxuma, yeniləmə və silmə əmə­liy­yat­la­rı­nı məşq edin.
  3. API hazırlayın. Kataloqu sor­ğu­lar va­si­tə­si­lə əlçatan edin. Yanlış məh­sul nömrəsinə və etibarsız girişə aydın cavab verin.
  4. İcazələri və testləri əlavə edin. Alıcı ilə idarəçinin səlahiyyətlərini ayırın. Uğur­suz ssenariləri də yoxlayın.
  5. Layihəni işlədin və izah edin. Qurulma qaydasını yazın, də­yi­şik­lik­lə­ri versiya nəzarətində saxlayın və tət­bi­qin xətalarını iz­lə­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ə­lu­mat 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ə­lu­ma­tı necə saxlayacağınızı və emal edəcəyinizi düşünməyə kömək edir. Məh­su­lu 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. Si­fa­riş, anbar və qiymət hesablaması hansı siniflərdə ol­ma­lı­dır? Yeni endirim qaydası əlavə edəndə möv­cud kodu necə qorumaq olar? Məq­səd dəyişdirilməsi və yoxlanması rahat kod qurmaqdır.
  • Sistem dizaynı - HLD bütöv sis­te­min quruluşuna baxır. Mə­lu­mat harada saxlanacaq, komponentlər necə əlaqə quracaq, yük artanda hansı hissə dar boğaza çevriləcək? Burada etibarlılıq, ge­cik­mə və xərc birlikdə qiymətləndirilir.

Bu istiqamətləri eyni layihəyə tət­biq edin. Əvvəl si­fa­riş axınını işlədin, sonra siniflərin məsuliyyətini ayırın, daha sonra sis­te­min yük və nasazlıq qarşısında davranışını araşdırın. Belə öyrənəndə hər anlayışın hansı prob­le­mi həll et­di­yi görünür.

Portfolioluq layihə: kiçik sifariş sistemi

Bir layihəni mərhələlərlə dərinləşdirin: əvvəl məh­sul kataloqu, sonra səbət, daha sonra si­fa­riş və stok idarəetməsi. İlkin versiyada real ödə­niş əvəzinə sınaq statuslarından is­ti­fa­də edə bilərsiniz.

Layihəni təqdim edər­kən ekran görüntüləri ilə ya­na­şı qərarlarınızı da göstərin: mə­lu­mat modeli, API nümunələri, testlərin işə salınması və məlum məh­du­diy­yət­lər. Aşağıdakı ssenarilər yaxşı yoxlama nöqtələridir:

  • Stok­da olmayan məhsula si­fa­riş qəbul edilmir.
  • İki alıcı son məh­su­lu eyni anda si­fa­riş edəndə stok mənfiyə düşmür.
  • İs­ti­fa­də­çi başqasının sifarişini oxuya bilmir.
  • Eyni si­fa­riş sorğusunun təkrarlanması nəzarətsiz dublikat yaratmır.
  • Bildirişin göndərilməməsi artıq saxlanmış si­fa­ri­ş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üx­tə­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ös­tə­rir. Aylıq ekvivalent illik məbləğin 12-yə bölünüb yuvarlaqlaşdırılmasıdır.

Backend proqramçıları nə qədər qazanır?
Ölkə / şəhərİllik maaş aralığıAylıq ekvivalent ≈
ABŞ · USD100 000 – 150 0008 333 – 12 500
Böyük Britaniya · GBP50 000 – 80 0004 167 – 6 667
Dubay, BƏƏ · AED150 000 – 300 00012 500 – 25 000
Azərbaycan · AZN35 000 – 100 0002 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ər­dən keçirin. Aylıq ekvivalent faktiki ola­raq 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ı prob­le­mi həll etmisiniz, sis­te­min düz­gün işlədiyini necə yoxlamısınız və tex­ni­ki 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ə­lu­mat haradan gəlir, hansı qaydadan keçir, harada saxlanır və nasazlıq za­ma­nı 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 eti­bar­lı sis­tem olsun. Məh­sul siyahısı hazırlayın, onu bazada saxlayın, si­fa­riş yaratmağa imkan verin. Sonra eyni anda iki sorğu gəldiyini tə­səv­vür edin və həllinizi ye­ni­də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 si­fa­riş layihəsinə tət­biq edin və hər yeni mövzu ilə onu bir addım təkmilləşdirin.