Ələddin Biyabangərd
YazılarJava

Mənim üçün yaxşı backend kodu necə görünür?

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

Kodun gözəl görünməsi xoşdur. Təmiz class-lar, düzgün adlandırılmış method-lar, səliqəli package strukturu — bunların hamısı vacibdir.

Amma real sistem qurduqca başa düşürəm ki, yaxşı backend kodu yalnız bunlardan ibarət deyil.

Sabah oxuyacağın kod

Mənim üçün yaxşı kod sabah özüm və ya başqa developer tərəfindən açıldıqda nə etdiyini tez başa düşə bildiyimiz koddur.

  • Method-un adı nə etdiyini deməlidir.
  • Business qayda gizlənməməlidir.
  • Database əməliyyatının niyə edildiyi aydın olmalıdır.
  • Exception sadəcə “nəsə səhv oldu” deməməlidir.

Ən əsası isə kod sistemin davranışını gizlətməməlidir.

Hər şeyi abstraction etmək lazım deyil

Java ilə işlədikcə abstraction yaratmaq çox asandır.

  • Interface yaradırsan.
  • Implementation yaradırsan.
  • Factory əlavə edirsən.
  • Strategy əlavə edirsən.

Sonra sadə bir əməliyyat üçün beş class arasında gəzməli olursan.

Əgər abstraction real dəyişiklik ehtiyacından yaranmayıbsa, bəzən sadəcə kodu daha çətin oxunan edir.

Mən indi abstraction-a daha ehtiyatla yanaşıram. Əvvəl problem yaranır, sonra pattern. Əksinə yox.

Clean code mənim üçün başqa şeydir

Mənim üçün clean code sadəcə qısa method və ya az sətir demək deyil. Clean code business qaydanı gizlətməyən koddur.

Məsələn, rezervasiyanın niyə yaradıla bilmədiyini developer koddan başa düşə bilirsə, bu mənim üçün yaxşı design-dır.

Əgər bir əməliyyatın niyə uğursuz olduğunu tapmaq üçün beş fərqli layer-i izləmək lazımdırsa, kod texniki olaraq “clean” görünsə belə, mən orada problem görürəm.

Kod dəyişiklik üçün yazılır

Ən vacib dərslərimdən biri budur: kod yalnız bu gün işləmək üçün yazılmır.

  • Sabah yeni tələb gələcək.
  • Yeni field əlavə olunacaq.
  • Business qayda dəyişəcək.
  • Başqa servis qoşulacaq.
  • Başqa developer həmin kodu açacaq.

Ona görə mənim üçün yaxşı backend kodunun əsas xüsusiyyəti dəyişiklikdən qorxmamasıdır. Səliqəli görünməsi yaxşıdır. Amma sabah dəyişdirilə bilməsi daha vacibdir.