Ələddin Biyabangərd
YazılarProqram mühəndisliyi

Tələb gələndə mən əvvəl kod yazmıram

Müəllif:Ələddin BiyabangərdDərc edilib:4 dəq oxunuş

Software engineering mənim üçün ilk növbədə Java, Spring Boot və ya hansısa başqa texnologiyanı seçmək deyil.

Məncə, əsas məsələ əvvəlcə nəyi həll etdiyini başa düşməkdir. Kod isə bundan sonra gəlir.

İşdə və layihələrdə tez-tez belə bir tələb görə bilərsən: “Java-dır, Spring Boot-dur, belə bir sistem lazımdır.”

Əslində isə bu, problemin özü deyil. Sadəcə istifadə olunacaq texnologiyadır.

Mənim üçün əsas suallar bundan sonra başlayır.

  • Bu sistem nə etməlidir?
  • Bu proses real həyatda necə işləyir?
  • Hansı qaydalar var?
  • Nə dəyişə bilər, nə dəyişə bilməz?
  • Bir şey səhv gedəndə nə baş verməlidir?

Çünki bunları başa düşmədən kod yazmağa başlasan, çox gözəl kod yaza bilərsən. Sadəcə səhv problemi həll etmiş olarsan.

Tələb sadəcə ticket deyil

Ticket-də çox vaxt ekranı görürük: düymə, forma, siyahı, yeni endpoint və s.

Amma arxasında bir biznes prosesi olur.

Məsələn, hansısa məlumatın dəyişdirilməsi üçün sadəcə update yazmaq kifayət etmir. Əvvəl bilmək lazımdır:

  • Bu məlumatı kim dəyişə bilər?
  • Hansı vəziyyətdə dəyişə bilər?
  • Əvvəlki dəyər niyə vacibdir?
  • Əməliyyat uğursuz olsa nə baş verməlidir?
  • Bu dəyişiklik başqa hansı proseslərə təsir edir?

Bəzən bunların heç biri ticket-də yazılmır. Amma sistemin düzgün işləməsi məhz bu detallardan asılı olur.

Ona görə mən tələb gələndə birbaşa IDE-ni açıb kod yazmağa çalışmaqdansa, əvvəl prosesi başa düşməyə çalışıram.

Stack sonra gəlir

Java və Spring Boot ilə işləməyi sevirəm. Çünki biznes qaydalarını kodda aydın şəkildə ifadə etmək və test etmək mümkündür.

Amma texnologiya mənim üçün məqsəd deyil.

Frontend lazımdırsa frontend yazılır. AI lazımdırsa AI istifadə olunur. Başqa texnologiya daha uyğun gəlirsə, ona da baxmaq olar.

Əsas məsələ budur ki, seçdiyin texnologiya həll etdiyin problemi düzgün həll etməyə kömək etsin.

Xüsusilə bank sistemlərində bunun fərqini daha çox hiss edirsən. Kiçik görünən bir səhv sadəcə “bug” olaraq qalmaya bilər. Yanlış məbləğ, yanlış status və ya səhv biznes qaydası real nəticə yarada bilər.

Amma əslində bu yanaşma təkcə bank üçün keçərli deyil.

İstənilən sistemdə proqramın etibarlı olması vacibdir.

Mənim üçün yaxşı software engineer nə edir?

Məncə, yaxşı software engineer sadəcə kodu işlədən adam deyil.

Problemi başa düşür, biznes qaydalarını tapır, onları düzgün şəkildə kodlaşdırır və sabah özü həmin otaqda olmasa belə sistemin düzgün işləməsini düşünür.

Kod əlbəttə ki, vacibdir.

Amma tələbi başa düşmədən yazılan yaxşı kod belə səhv həll ola bilər.

Ona görə mənim üçün proses çox sadədir:

  • Əvvəl problemi başa düş.
  • Sonra qaydaları müəyyən et.
  • Daha sonra texnologiyanı seç və kod yaz.

Məncə, software engineering-in əsas hissəsi məhz burada başlayır.