Yandex Metrica
SOLID Yazılım Prensipleri - Yasin Sunmaz

Yasin Sunmaz

Kodladıkça değişen bir dünya...

SOLID Yazılım Prensipleri

26.11.2022 yasinsunmaz 834 0

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.

Diğer Yazılar

RedisConnectionException Hatası ve Çözümü: AbortOnConnectFail=false

31.07.2023 yasinsunmaz 782 0

Redis, popüler bir açık kaynaklı veri yapısı sunucusudur ve günümüzde birçok uygulama tarafından kullanılmaktadır. Ancak, bu tür veri tabanla...

ASP.NET Core Web API'de Parametre Bağlama Yöntemleri: FromQuery, FromBody ve FromRoute

12.07.2023 yasinsunmaz 1264 0

ASP.NET Core web API projeleri, istemcilerden gelen verileri API metotlarıyla etkileşimde bulunmak için kullanılır. Bu verileri doğru bir şekilde almak ve işlemek içi...

Deployment Stratejileri (Blue Green, Rolling Update/Rollback) Nedir?

23.06.2023 yasinsunmaz 638 0

Yazılım geliştirme sürecinde, uygulamaları güncellemek ve yeni sürümleri piyasaya sürmek önemli bir adımdır. Ancak, kullanıcıların kesintisiz hizmet a...

SonarQube Kurulumu: Adım Adım Kılavuz

18.06.2023 yasinsunmaz 1252 0

SonarQube, açık kaynaklı bir statik kod analizi platformudur ve geliştiricilere kod kalitesini, güvenliğini ve performansını iyileştirmeleri için yardımcı olur. ...

Active Directory LDAP İle Kullanıcı Kimlik Doğrulama .NET

05.12.2022 yasinsunmaz 2462 0

Active Directory LDAP ile kullanıcıyı belirli bir filtre üzerinde arama veya kullanıcının kimliğini doğrulama işlemleri yapabilmekteyiz. Bu LDAP protokolünde DirectorySer...

Visual Studio Kullanırken Hızınıza Hız Katacak Kısayollar

06.11.2022 yasinsunmaz 2211 0

Visual Studio kullanırken işlemlerimizi fare ile yapmak ister istemez bir zaman kaybına neden olabiliyor. Hızlı ve efektif kullanabilmek adına Visual Studio'da kullanabileceğiz...

YouTube ve Website Videolarındaki Yazıları Kopyalama

14.09.2022 yasinsunmaz 14322 0

Öncesinde paylaştığım fakat blog yazımda bahsetmediğim işinize yarayacak çok güzel iki eklentiyi sizinle paylaşmak istiyorum. YouTube veya Udemy gibi platformlarda...

Yazılımcılar İçin Faydalı API'ler

08.09.2022 yasinsunmaz 17208 0

Günümüz teknolojilerinde hemen hemen birçok işlemde API kullanıyoruz. Farklı platformlar veya teknolojilerden kaynaklı olarak API'lere ihtiyaç duya...

Geliştiriciler İçin En İyi 13 Online JSON Araçları

19.06.2022 yasinsunmaz 1123 0

Geliştiriciler için JSON veri tepi sıkça kullanılmakta. Durum böyle olunca zaman zaman hem görsel hem de daha düzgün görünmesi iç...

Regex, Regular Expressions Genel Kullanımı

03.08.2022 yasinsunmaz 2016 0

Bir çok yazılım dilinde bazı kontroller için Regex ifadeler ihtiyaç duyabiliyoruz. Bunların en başında e-posta, telefon ve web site geliyor. Bunların doğruluğu...

Visual Studio'da Aynı Anda Birden Çok Proje Çalıştırma

21.05.2022 yasinsunmaz 3096 0

Katmanlı mimari projelerimizde ya da bir web sitenin kullanıcı arayüzü ve admin dediğimiz yönetici ekranları aynı uygulama içerisinde geliştirebiliyoruz. Admi...