Əsas məzmuna keç
DevScallix

Necə öyrədirik

Öyrən. Qur. Review al. Müdafiə et. Təhvil ver.

Proqramlaşdırmanı video kimi izləmək olmur. Biz komandalarda necə işlənirsə, elə öyrədirik: kod yazılır, review olunur, qərarlar izah edilir və iş işlək halda təhvil verilir.

Metod

Video izləməklə yox, mühəndis kimi işləyərək öyrənirsiniz.

Hər mövzu eyni beş addımdan keçir. Nə qurduğunuz, review-da nəyi dəyişdiyiniz və qərarlarınızı necə izah etdiyiniz görünür — irəliləyiş təxmin edilmir, görünür.

  1. 01

    LearnÖyrən

    Mövzunu müəllimdən öyrənirsiniz: əvvəl “niyə”, sonra “necə”.

  2. 02

    BuildQur

    Öyrəndiyinizi dərhal işlək koda çevirirsiniz. Tapşırıqlar real tələblərə bənzəyir.

  3. 03

    Review

    Kodunuz Pull Request kimi review olunur. Konkret rəy alır, kodu yaxşılaşdırırsınız.

  4. 04

    DefendMüdafiə et

    Qərarlarınızı izah edirsiniz: niyə bu struktur, bu ad, bu yanaşma. Alternativləri müzakirə edirik.

  5. 05

    ShipTəhvil ver

    İşi bitmiş, test edilmiş və işlək halda təhvil verirsiniz — “demək olar hazırdır” yox.

Hər dövr növbətini gücləndirir. Uzun müddətdə bunun adı Scale-dir: daha böyük sistemlər, daha böyük məsuliyyət.

Code Review

Kodunuz necə review olunur

Real komandalarda kod “işləyir” deyə qəbul olunmur — oxunur, müzakirə olunur və yaxşılaşdırılır. Proqramda bu, hər tapşırığın bir hissəsidir.

  1. 01

    Pull Request ilə təhvil

    Tapşırıqları komandada olduğu kimi GitHub-da Pull Request kimi təqdim edirsiniz.

  2. 02

    Konkret rəy

    Adlandırma, struktur, testlər, xətaların idarəsi və dizayn üzrə izahlı şərhlər.

  3. 03

    Düzəliş

    Rəyə görə kodu yenidən işləyirsiniz — öyrənmənin ən güclü hissəsi budur.

  4. 04

    Müdafiə

    Nəyi niyə belə etdiyinizi izah edirsiniz. Alternativləri və trade-off-ları müzakirə edirik.

Mühəndislik nümunələri

Real mühəndislik belə görünür.

Üç qısa təlim nümunəsi: kodun review-u, mühəndis qərarı və kodun işlək vəziyyətə çatdırılması. Proqramda hər tapşırıq bu yoldan keçir.

PR #27 · Sifarişi id ilə tap

OrderService.java

public Order findOrder(Long id) {
Silinib: return repository.findById(id).get();

Mentor

`.get()` sifariş tapılmayanda NoSuchElementException atır və istifadəçi 500 xətası görür. Aydın xəta at ki, API 404 qaytarsın.

Əlavə edilib: return repository.findById(id)
Əlavə edilib: .orElseThrow(() -> new OrderNotFoundException(id));
}

OrderServiceTest.java

Əlavə edilib: @Test
Əlavə edilib: void throwsWhenOrderIsMissing() {
Əlavə edilib: assertThrows(OrderNotFoundException.class,
Əlavə edilib: () -> service.findOrder(42L));
Əlavə edilib: }

Mentor

Yaxşıdır. Bu test sabah kimsə bu metodu dəyişsə, davranışı qoruyacaq.

Niyə bu dəyişiklik tələb olundu

  1. İstifadəçi aydın cavab alır: 404, 500 yox.
  2. Xətanın adı problemi özü izah edir.
  3. Test bu davranışı gələcək dəyişikliklərdən qoruyur.

Təlim nümunəsi · real tələbə işi deyil

Tutorial və real mühəndislik

Tutorial “işləyirmi?” deyə soruşur. Mühəndis daha çoxunu soruşur.

Yeni başlayanları yükləmirik. Amma ilk gündən doğru sualları verməyi öyrədirik.

Tələblər
Tutorial: Addımları təkrarla
Real mühəndislik: Problemi anla, tələbləri dəqiqləşdir
Trade-off-lar
Tutorial: Bir düzgün cavab var
Real mühəndislik: Variantları müqayisə et, seçimini əsaslandır
Clean Code
Tutorial: İşləyirsə, bəsdir
Real mühəndislik: Başqası oxuya və dəyişə bilməlidir
Testlər
Tutorial: Əl ilə bir dəfə yoxla
Real mühəndislik: Davranışı avtomatik testlərlə qoru
Code Review
Tutorial: Heç kim baxmır
Real mühəndislik: Hər dəyişiklik oxunur və müzakirə olunur
Arxitektura
Tutorial: Hər şey bir faylda
Real mühəndislik: Məsuliyyətləri ayır, sərhədləri müəyyən et
Deployment
Tutorial: Mənim kompüterimdə işləyir
Real mühəndislik: Hər yerdə eyni cür işə düşür
Observability
Tutorial: Xəta olanda təxmin et
Real mühəndislik: Loglar və metriklərlə nə baş verdiyini gör

Learn. Build. Scale.

İlk Java Backend qrupuna müraciət edin.

İlk qrup kiçik olacaq və dərsləri təsisçi aparacaq. Müraciət etmək ödəniş öhdəliyi yaratmır.