Uygulama geliştirirken nasıl parçalara bölünür?

Selamlar. Günlerdir araştırıyorum ama bir sonuç yok.
Aşağıda örneğini verdiğim bir arkadaşın çat uygulamasının parçaları bunu nasıl bölüyorsunuz yani nereden biliyorsunuz böyle parçalardan ibaret olacağını?
Ve her parçanın sınıfı(class) ve metodları neler olacak bunu nasıl belirliyorsunuz ve nereden öğrendiniz? Nasıl öğrendiniz? Çok rica ediyorum yardımcı olmanız için. Bu alanın ismi nedir? Bu konuyu öğrenebileceğim kitap online kurs vb. varmı?

Bir kitap buldum acaba bumu aradığım?
“Tasarım Desenleri ve Mimarileri”

Programi birbiriyle konusan parcalara bolmen lazım. Mesela:

  • mesaj girilen yer
  • resim secilen yer
  • konusmanin gosterildigi alan
  • mesajlari byte silsilesine ceviren encoder
  • mesaj byte’larini sunucuya yollayan parca
  • mesaj byte’larini sunucudan alan parca
  • byte silsilelerini mesajlara ceviren decoder

https://python-istihza.yazbel.com/
Sıfırdan İleri Seviye Python Programlama
https://www.w3schools.com/

Deneyim.

Mesaj girilen yerler yaptikca, resim secilen yerler kullandikca, konusmalar gosterdikce bunlarin ayri parcalar olmasi gerektigini goruyorsun.

Fonksiyonlari ihtiyac oldukca yaziyorsun ve her seferinde hangi sinifa ait, kimlerin yaninda daha dogru duruyor sorularini sorup cevaba gore yerlestirebiliyorsun.

Zaten fonksiyonlar ilk koydugun yerde duracak, siniflar ilk boldugun gibi olacak diye bir sey yok. Yazdikca goruyorsun. Bu yazdigim parcalar da kotu bir ayrimdir belki. Isi yapmaya calisana kadar emin olamazsin.

Mimari ve dizayn pattern’larini kitaplardan ogrenebilirsin ve cok isine yarar, fakat hic bir kitap “bu programi kac/hangi parcaya ayirmaliyim” sorusunu cevaplayamaz. Ileri mimari yazilarinda “memory share eden parcalari ayni sinifa koy” veya “stream halinde iletisen iki kisim var ise consumer’lari bir araya bir parcaya, producer’lari bir araya baska parcaya koy” gibi yuksek seviyeli genel tavsiyeler alabilirsin belki fakat hic bir kaynak sana parcalari tam olarak nasil ayirip duzenleyecegini soylemez. Soyleyemez; tasarimin temel ozelliklerinden biri bu.

Kitap aradigin surede 1-2 basit chat uygulamasinin koduna bakabilirsin mesela.
O kitabi okuyana kadar ayni chat uygulamasini 3 degisik sekilde:

  • Parcalara ayirmakla ugrasmadan, “bi sekilde olsun da” diyerek
  • Bu yazdigim parcalara ayirarak
  • Kendi kafana gore parcalara ayirarak

yazabilirsin mesela. Daha once -atiyorum- 5 tane uygulama yazmadiysan daha faydali olacaktir.


Unutma ki “desen” (pattern—“oruntu” daha iyi bir ceviri olabilir) kendini tekrar eden, duzenli olarak karsina cikan bir sey. Tekrarlari gorecek kadar buyuk bir kumasin yoksa (ayni seylere ihtiyac duyacak kadar cok program tasarlamadiysan) desen olmaktan cikiyor.


“Kitap okuma” demiyorum ama program yazmiyorsan program yazma hakkinda kitap okumak pek isine yaramaz.

Bu arada bunu genel, yapmak–yapmak hakkinda bilgi almak dengesini biraz kaybetmis insanlara hitaben yaziyorum. Sahsi durusun/durumun hakkinda bilgim yok (ama yazarsan olabilir de tabi ki).

Ogrenme ugrasiniza saygi duyuyorum ve ne kadar zor oldugunu hatirlamaya calisiyorum. Arada ufak yonlendirmeler cok yardimci olabiliyor; bu da bunlardan biri. Yazin, yazdikca kendiniz gorun.

7 Beğeni

Yazarini (veya ISBN’ini) de yazman lazim. Okumadim; icerigine goz atabilecegimiz bir yer var mi?

Sunlar saglam oruntu/mimari/tasarim kitaplari:

https://martinfowler.com/books/eaa.html

1 Beğeni

Çok çok teşekkür ederim hocam. Bir şeyler öğrenmiş oldum