Arkadaşlar bu iki kavram hakkında okumalar yaptım çeşitli kaynaklardan. İçinizde profesyonel olarak yazılım geliştiren, tasarım deseni ve mimari kalıplara uyan birisi şu konuyu biraz açıklayabilirse çok sevinirim.
Bir çok kaynakta tasarım desenleri [1, 2] anlatılmış fakat çok soyut olduğu için aklımda pek bir şey canlandıramadım.
Bir de çeşitli kaynaklarda bahsedilen yazılım mimarileri var [1, 2].
Bir yazılım geliştirirken bu kalıplara uyduğumuzda bazı avantajlarımız oluyor. İki kavramı da okuduğumda şu sonuçlara varıyorum
- Projemizde oluşabilecek hatalara daha kolay müdahale edilebilir,
- Projemize başka kişiler daha kolay destek verebilir (Proje yapısının daha anlaşılır olması ve kod okunabilirliği açısından)
- Projemizde daha küçük ve kolay yönetilebilir yapılar meydana gelir (paketler, sınıflar, iletişim sağlayan aracı sınıflar vs.)
- İleriki süreçte projenin büyümesi ya da güncellenmesi gibi süreçler daha kolay yürütülebilir
vs. vs.
Mesela MVC, MVVM gibi mimariler var. Özellikle son zamanlarda Flutter/Dart ile mobil uygulama geliştirirken kullanılan BLoC deseni var. Bunlara baktığımda farkını tam olarak anlayamıyorum. Kaynaklarda BLoC Pattern diye geçiyor fakat tasarım desenlerine baktığımda içinde BLoC Pattern diye bir başlık göremiyorum. BLoC Pattern sanırım bir yazılım mimarisi. Yazılım mimarileri konularına baktığımda yine BLoC Pattern başlığını göremiyorum. Belki de yeni bir teknik olduğu için görünmüyordur.
Anlamak istediğim konu şu, tasarım deseni ile yazılım mimarisinin ilişkisi ne, farkı ne? Hangisi hangisini kapsar? Bu kalıplara göre yazılım geliştiren var mı içinizde? Biraz tecrübelerinizi paylaşır mısınız? Kirli kod yazmaya alışmak istemiyoruz.
Teşekkürler.
Düzenleme:
Yukarıdaki kavramlar haricinde bir de yazılım geliştirme modelleri isimli bir kavram daha mevcut. Bunun diğerlerine göre farkı net anlaşılıyor onun için sormadım.
Çalıştığı şirkette yazılım geliştirme modeli, tasarım deseni, yazılım mimarisi gibi çeşitli planları takip eden arkadaş varsa tüm bunlardan kısaca bahsederse sevinirim. Gerçek hayatta ne kadar uygulandığı ve gerekliliğini merak ediyorum.