Kategoriler: Yazılım Geliştirme

SOLID Kod Yapısı Nedir ve Faydaları Nedir ?

Yazılım sektörü gün geçtikçe ilerliyor. İlerleyen bu sektörde herkes kod yazmaya başlıyor ve yazılan kodlar bir birinden çok farklı yapılarda olabiliyor. Bu farklı yapıları okuyup anlamak ve geliştirmek gün geçtikçe yazılımcılar için zorlaşıyor. İşte bu zorluğu ortadan kaldırabilmek adına uluslar arası kapsamda bazı prensipler benimseniyor. Bu prensipler tam anlamı ile yazılımcılara işi kolaylaştırmak için yapılmaktadır. Bu yazıda bu prensiplerden birisi olan SOLID prensibini ele alacağım.

Solid Nedir?

İlk paragrafta kısaca bahsettiğim gibi kendisi bir kod yazma prensibidir. Amacı yazılan kodun okunabilirliğini arttırmak, güncellenmesini kolaylaştırmak ve esnek bir kod yapısı oluşturmaktır. Temelinde Object Oriented Programming yani nesne tabanlı programlama bulunmaktadır. Solid yapısında 5 adet kural bulunmaktadır. Şimdi bu kuralları sırası ile ele alalım.

Single Responsibility

Bu İngilizce kelime ikilisini Türkçe’ye çevirmemiz tek sorumluluk mümkündür. Her bir sınıfın değişmesinin sadece bir nedeni olmalıdır. Her bir metodun sadece bir görevi olmalıdır. Bir metot aynı anda birden fazla modelde değişiklik yapamaz. Uzun bir fonksiyon yazmak yerine parçalı yapıda bir kaç parça fonksiyon yazmak bizim için hedeftir. Tahmin edebileceğiniz gibi bu prensip sayesinde projede yapılan değişiklikler sonrası tahmin etmediğimiz durumların ortaya çıkması engellenmektedir.

Open / Closed

Oluşturduğumuz nesnelerin gelişmeye açık ancak değişime kapalı olması hedeflenmiştir. Bu prensibi bir örnek ile açıklarsam bence çok daha hızlı bir şekilde anlaşılacağım. Arabayı bir nesne olarak düşünelim ve bu nesnenin vaz geçilmez özellikleri vardır. 4 adet tekeri ve 1 adet direksiyonu olması gibi. Nesne değişime kapalı olduğu için bu özellikleri değiştiremeyiz ancak araba nesnemiz gelişmeye açık olduğundan dolayı arabamıza bir müzik seti takabiliriz. Nesnelerimiz gelişime, yeniliğe açıktır ancak değişime kesinlikle kapalıdır.

Liskov’s Substitution

Bu prensip miraslar ile alakalıdır. Miras sistemini kullanan sınıflar arasında bu prensip kullanılmalıdır. Herhangi bir sınıfın başka bir sınıftan miras aldığını düşünelim. Miras alan sınıf miras aldığı sınıfa ait yani bir üst nesil olan nesneye ait tüm özellikleri kullanmalıdır. Bir üst nesneyi değiştirmemelidir. Kendisine ait özellikleri olabilir ancak bir üst nesilden bu özel özellikler bağımsızdır. Yeri geldiğinde her 2 nesneyi de farklı birer modül gibi ayırabilmelisiniz.

Interface Segregation

Herhangi bir nesne kullanmadığı bir arayüzü kullanmaya maruz bırakılamaz. Herhangi bir nesne referans aldığı arayüzün her metodunu kullanmaya maruz bırakılamaz. Arayüzler her nesneye uyum sağlaması açısından bu arayüzü referans alan tüm nesnelerin kullanmadığı metotlar gereksiz yere eklenmemelidir.

Dependency Inversion

Miras alınan 2 nesneyi yeniden düşünelim. Bu 2 nesneden üst hiyerarşide olan alt seviye olana bağlı olmamalıdır. Alt sınıfta yapılan değişiklik üst seviyeyi etkilememelidir.

KAYNAK

Son Yazılar

2 Yeni Dolandırıcılık Sistemi ve iCloud Kilidi Nedir ?

Günümüz şartlarında neredeyse her Apple ürünü iCloud Etkinleştirme kilidi özelliğine sahiptir. Bu kilit bir çok… Daha fazla oku

23 saat önce

iCloud Öncesi Kullanılan Şu Anda Unutulanlar Apple Servisleri

Apple sattığı cihazlardan para kazandığı kadar servisleri ile de para kazanan bir firma olmuştur. Son… Daha fazla oku

2 gün önce

Elmadan Haberler 3 – iPhone SE 4 İptal Edildi – Üretim Vietnam’da

Elmadan haberler 3 içerisindeki gündem şu şekildedir: Apple TV Android Akıllı Cep Telefonu ve Tabletlere… Daha fazla oku

3 gün önce

iPhone Güncelleme Sonrası Pil Sağlığı Neden Düşer ?

iPhone Güncelleme sonrası pil sağlığı neden düşer son derece fazla aldığım diğer bir sorudur. Bu… Daha fazla oku

6 gün önce

iPhone iOS 16.2 İpuçları – Programsız Video İndirme ve Dahası

Bilinçli iPhone Kullanıcısı video serisi kapsamında iPhone iOS 16.2 ipuçları bu yazıda ele alacağım bir… Daha fazla oku

1 hafta önce

Face ID vs Touch ID ? Hangisi Daha Güvenilir Hangisi Daha Hızlı ?

iPhone modellerinde güvenlik için Touch ID teknolojisini de Face ID teknolojisini de kullandık. iPhone SE… Daha fazla oku

2 hafta önce

Bu web site kullanıcı deneyimini arttırmak amacı ile çerezleri kullanmaktadır