Əsas məzmuna keç
DevScallix
← Advanced Java BackendPlanlaşdırılır

Advanced Java Backend: Modullar

Proqramın məqsədi junior səviyyədən real servisi müstəqil aparan developer səviyyəsinə keçidi dəstəkləməkdir. Əsas diqqət JVM-in və yaddaşın necə işlədiyini başa düşməyə, concurrency və verilənlər bazası ilə işi düzgün qurmağa və problemi production-a bənzər mühitdə diaqnoz etməyə yönəlir. Code review həm müəllif, həm rəyçi kimi məşq olunur.

  1. 01

    JVM və yaddaş

    JVM-in kod və yaddaşı necə idarə etdiyini öyrənir, yaddaşla bağlı problemləri ölçü ilə araşdırırıq.

    • Heap, stack, metaspace və obyektin ömrü
    • Garbage collector-lar (G1, ZGC) və pauza anlayışı
    • Class loading və JIT kompilyasiyası
    • Heap dump və GC log oxumaq
    • Memory leak-in tipik mənbələri (cache, listener, ThreadLocal)

    Laboratoriya: Qəsdən yaddaş sızıntısı olan servisi heap dump ilə analiz edib sızıntının mənbəyini tapmaq və düzəltmək.

  2. 02

    Concurrency və virtual thread

    Java Memory Model-dən virtual thread-lərə qədər düzgün və təhlükəsiz paralel kod yazmağı öyrənirik.

    • Java Memory Model, happens-before və visibility
    • synchronized, Lock, atomic və concurrent kolleksiyalar
    • ExecutorService, CompletableFuture və structured concurrency
    • Virtual thread-lər: nə vaxt faydalıdır, pinning problemi
    • Deadlock, livelock və starvation diaqnozu
    • Thread dump oxumaq

    Laboratoriya: Paylaşılan hesaba eyni vaxtda yazan kodda race condition yaradıb testlə təkrarlamaq, sonra iki fərqli yolla düzəldib müqayisə etmək.

  3. 03

    JPA və Hibernate dərinliyi

    Persistence context-in, flush-un və lazy loading-in necə işlədiyini bilmədən JPA ilə güvənli iş mümkün deyil.

    • Persistence context, dirty checking və flush rejimləri
    • Lazy/eager loading və N+1 problemi
    • Fetch join, entity graph və projection
    • Batch insert/update və optimistic locking
    • Transaction sərhədləri və LazyInitializationException səbəbləri

    Laboratoriya: N+1 problemi olan endpoint-i SQL log-ları ilə ölçüb üç fərqli üsulla düzəltmək və sorğu sayını müqayisə etmək.

  4. 04

    SQL və sorğu performansı

    Sorğunun niyə yavaş olduğunu plan əsasında müəyyən etməyi və düzgün index seçməyi öyrənirik.

    • EXPLAIN / EXPLAIN ANALYZE oxumaq
    • B-tree index, composite index və sütun sırası
    • Covering index və selectivity
    • Pagination: offset və keyset yanaşması
    • Isolation səviyyələri və lock davranışı

    Laboratoriya: Böyük cədvəldə yavaş sorğunu plan ilə analiz edib index əlavə etmək, əvvəl/sonra ölçüsünü yazılı qeyddə göstərmək.

  5. 05

    Test strategiyası

    Nəyi hansı səviyyədə test etməyin ucuz və etibarlı olduğunu müəyyən edirik.

    • Test piramidası və onun məhdudiyyətləri
    • JUnit 5, Mockito və mock-un həddindən artıq istifadəsi
    • Testcontainers ilə real verilənlər bazasında integration test
    • Slice testlər (@DataJpaTest, @WebMvcTest)
    • Flaky testlərin səbəbləri və aradan qaldırılması

    Laboratoriya: Mövcud servis üçün test strategiyası sənədi yazıb kritik axın üçün Testcontainers ilə integration test əlavə etmək.

  6. 06

    Böyüyən kod bazasında təmiz kod

    Kod bazası böyüdükcə strukturu, adlandırmanı və asılılıqları idarə etməyi məşq edirik.

    • Paket strukturu və qatlar arası asılılıq qaydaları
    • Domain modelinin servis kodundan ayrılması
    • Refactoring texnikaları və testlə qorunan dəyişiklik
    • Exception və error modeli dizaynı
    • Texniki borcun görünən edilməsi

    Laboratoriya: Mürəkkəb servis sinfini testləri qoruyaraq kiçik, aydın məsuliyyətli hissələrə bölmək.

  7. 07

    Production-a bənzər problemlərin diaqnozu

    Yavaşlıq, yaddaş artımı və nəzərə çarpmayan xətaları sistemli üsulla araşdırırıq.

    • Structured logging və correlation ID
    • Micrometer metrikaları və əsas siqnallar
    • Profiler və flame graph oxumaq
    • Connection pool tükənməsi və thread pool doyması
    • Hipotezlə işləyən diaqnoz metodu

    Laboratoriya: Məqsədli şəkildə pozulmuş servisi (pool tükənməsi, yavaş sorğu) yalnız log, metrik və profiler ilə diaqnoz edib yazılı postmortem hazırlamaq.

  8. 08

    Code review təcrübəsi

    Review həm bacarıq, həm də komanda vərdişidir; hər iki tərəfdən məşq edirik.

    • Kiçik və izah olunan Pull Request hazırlamaq
    • Review checklist: düzgünlük, oxunaqlılıq, test, risk
    • Konstruktiv rəy yazmaq və rəyə cavab vermək
    • Review-da təhlükəsizlik və performans siqnalları

    Laboratoriya: Verilmiş Pull Request-i review edib yazılı rəy hazırlamaq, sonra öz Pull Request-inə gələn rəyləri əsaslandırılmış şəkildə cavablandırmaq.

Proqram səhifəsinə qayıtPlan haqqında sual ver