Mikroservislerin Gizemi: Karmaşık Altyapı Sorunlarına Kolay Çözüm Günümüzde mikroservis tabanlı uygulamalar geliştirmek, teknolojik açıdan...
SOLID Yazılım Prensipleri
SOLID prensipleri yazılım geliştirmede başlarda anlayıp uygulaması zor olsa da buna uyarak kod geliştirmenin faydasını zamanla görebilirsiniz. Yazdığınız kodlarda sonradan yapacağınız geliştirmelerde mevcut yapıyı bozmadan hızlı ve basit şekilde entegre edebiliyor olacaksınız. Buna istinaden GitHub'da SOLID prensiplerini örnekler üzerinden açıklamaya çalıştım. Console projesi olarak hazırlamış olup, direk çalıştırabilir ve aynı sonucu vermesine rağmen arkada nasıl bir yapı olduğunu inceleyebilirsiniz. GitHub'da "solid-principles" deposundaki projeyi incelemek için tıklayın.
GitHub SOLID Prensipleri Projesi
Her proje içersinde "Inappropriate" adında klasör bulunur. Bu klasör sonunda da prensibin kısa adı yazar. Bu dizin altındaki kullanım o prensibe uygun olmayan hali ile yazılmış koddur. Aynı zamanda "Suitable" klasörü bulunur. Bu klasörün de sonunda prensibin kısa adı yazar. Bu dizin altındaki kullanım o prensibe uygun olan hali ile yazılmış koddur. Öncelikle uygun olmayan kodu inceleyip sonrasında uygun hali incelemenizi öneririm.
Hangi prensibi istiyorsanız o projeyi "Set as Startup Project" diyerek varsayılan yapıp çalıştırabilirsiniz. İki durum için de çalışacak şekilde hazırlandı. Program.cs içersinde her iki durum mevcut olup özet bilgiler sayfanın en altında kısmında yer alıyor. Aynı zamanda proje içerinde TODO'lar ile prensiplerin kullanımı ile ilgili mevcut durumlara inceleyebilirsiniz.
SRP - SingleResponsibilityPrinciple
Veritabanı ve kişi bilgisi getirme ile ilgili olarak SRP'ye uygun olan ve olmayan örnekler mevcut.
OCP - Open Closed Principle
Banka işlemlerine ait işlemler OCP'ye uygun olan ve olmayan örnekler mevcut.
LSP - Liskov Substitution Principle
Firma hizmetleri ile ilgili olarak LSP'ye uygun olan ve olmayan örnekler mevcut.
ISP - InterfaceSegregationPrinciple
Yazıcıların özelliklerine ait işlemler ISP'ye uygun olan ve olmayan örnekler mevcut.
DIP - Dependency Inversion Principle
Farklı mail sunucularından mail gönderimi ile ilgili olarak DIP'e uygun olan ve olmayan örnekler mevcut.
Genel olarak projeyi toparlayıp daha açıklayıcı ve düzenli bir yapı olacak şekilde hazırlamaya çalıştım. GitHub'da "solid-principles" deposundaki projeyi incelemek için tıklayın.
Umarım faydalı olur. İyi çalışmalar dilerim.
Kaynak: Gençay Yıldız Design Patterns adlı deposunu kullanarak düzenlemelerimi yaptım.
Yorum yapabilmek için giriş yapmalısınız. Giriş yapmak için tıklayınız.