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.
İ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.
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.
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.
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.
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.
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.
Çocukluğumdan beri arabalara olan ilgim babam sayesinde başlamıştır. Araba manyağı seviyesinde bir ilgim var ancak bunu her ortamda dile getirmem. Teknolojiye ve bilgisayara olan ilgim kendimi tanımaya başladım başlayalı oldu. Şimdi ise kendimce kod yazabilen bir bilgisayar mühendisi olarak çalışıyorum.
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
Apple sattığı cihazlardan para kazandığı kadar servisleri ile de para kazanan bir firma olmuştur. Son… Daha fazla oku
Elmadan haberler 3 içerisindeki gündem şu şekildedir: Apple TV Android Akıllı Cep Telefonu ve Tabletlere… Daha fazla oku
iPhone Güncelleme sonrası pil sağlığı neden düşer son derece fazla aldığım diğer bir sorudur. Bu… Daha fazla oku
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
iPhone modellerinde güvenlik için Touch ID teknolojisini de Face ID teknolojisini de kullandık. iPhone SE… Daha fazla oku
Bu web site kullanıcı deneyimini arttırmak amacı ile çerezleri kullanmaktadır