KategorilerNesne Yönelimli ProgramlamaProgramlama PrensipleriYazılım Mimarisi

Dependency Inversion Prensibi Örnekli Anlatım

SOLID prensilerinin “D”si, Dependency Inversion Prensibi (DIP) yani Bağımlılıkları Tersine Çevirme Prensibi SOLID prensiplerinin sonuncusudur. Dependency Inversion Prensibi yüksek seviye modüllerin düşük seviye modüllere bağımlı olmaması gerektiğini, bunun yerine ikisinin de soyutlamalara(abstractions) bağlı olması gerektiğini söylüyor.

Bu prensip loose coupling(gevşek bağlılık) denen prensibe dayanıyor, bunu da yüksek seviye ve düşük seviye sınıflar arasında soyut bir katman oluşturarak yapıyor.

KategorilerNesne Yönelimli ProgramlamaProgramlama PrensipleriYazılım Mimarisi

Interface Segregation Prensibi Örnekli Anlatım

SOLID prensiplerinin “I”si, Interface Segregation Prensibi(ISP) yani Arayüz Ayırma Prensibi bir Interface’in(arayüzün) onu kullanan Class’ların(sınıfların) ihtiyaçlarına göre bölünmesi gerektiğini anlatan tasarım prensibidir. Prensibin amacı sınıfların ihtiyacı olmayan metotları içermek zorunda kalmamasıdır.

Daha basit bir şekilde ifade etmek gerekirse, Interface Segregation Prensibine göre bir Interface öyle bir şekilde tasarlanmalı ki bu Interface‘i kullanan sınıfların sadece ihtiyaçları olan metotları uygulamaları gereksin, ihtiyaçları olmayan metotları barındırmak zorunda olmasın.

KategorilerNesne Yönelimli ProgramlamaProgramlama PrensipleriYazılım Mimarisi

Liskov Substitution Prensibi Örnekli Anlatım

SOLID prensiplerinin “L”si olan Liskov Substitution Prensibi(LSP) yani Liskov Yerine Geçme Prensibi ilk olarak Barbara Liskov tarafından 1987 yılında bir konferansta tanıtıldı. Bu prensibe göre B sınıfı eğer A sınıfının alt sınıfıysa A sınıfının objeleri B sınıfının objeleriyle programın çalışmasında herhangi bir değişiklik yaratmadan yer değiştirebilir.

Biliyorum biraz karışık görünüyor bu şekilde anlatınca, daha basit bir şekilde söylemek gerekirse eğer iki sınıf arasında ebeveyn-çocuk ilişkisi yani bir kalıtım varsa ve biz çocuk sınıftan ürettiğimiz bir nesneyi ebeveyn sınıftan ürettiğimiz bir nesneyle değiştirebiliyor ve program çalışması beklendiği gibi sürdürülebiliyorsa, o zaman Liskov Substitution Prensibine uyuyor diyebiliriz.

KategorilerNesne Yönelimli ProgramlamaProgramlama PrensipleriYazılım Mimarisi

Open-Closed Prensibi Örnekli Anlatım

SOLID prensiplerinin “O”su Open-Closed Prensibi yani Açık-Kapalı prensibi bir sınıfın veya modülün geliştirme için açık ancak değiştirme için kapalı olması gerektiğini söyler.

Peki bu ne anlama geliyor?

Daha basit kelimelerle ifade etmek gerekirse bu prensip yazılımcıları var olan kodu güncellemeden yeni özellikler ve fonksiyonlar eklemeye imkan sağlayacak bir tasarım kullanmaya teşvik ediyor.

Geliştirmeye açık bir kod yapısı kurarak yeni gelen istekler için var olan kodları sürekli değiştirmektense yeni kodlar eklemeyerek bakımı daha kolay ve daha esnek yapılar kurmayı amaçlıyor.

KategorilerNesne Yönelimli ProgramlamaProgramlama PrensipleriYazılım Mimarisi

Single Responsibility Prensibi Örnekli Anlatım

SOLID prensiplerinin “S”si olan Single Responsibility Prensibi(SRP) yani Tek Sorumluluk Prensibi isminden de anlaşılacağı üzere bir modülün veya bir nesnenin tek bir sorumluluğu olması gerektiğini anlatır. Bu prensibin amacı kodların daha sürdürülebilir ve okunabilir bir yapıda yazılmasıdır.

SRP’nin Avantajları:

  • Her bir bileşenin tek bir sorumluluğunun olması kodun daha anlaşılır ve okunabilir olmasını sağlar.
  • Bir sorumluluğun değiştirilmesi gerektiğinde sadece ilgili sınıfı etkiler ve bu sayede esnek bir yapı sağlar.
  • Gelecekte de proje büyüdükçe her bileşenin tek sorumluluğu olması karmaşıklığı azaltarak bakım sürecini kolaylaştırır.
KategorilerNesne Yönelimli ProgramlamaProgramlama PrensipleriYazılım Mimarisi

SOLID nedir? SOLID Prensipleri Nelerdir?

SOLID nedir? Yazılım mülakatlarının vazgeçilmez sorusu. Birçoğunuzun da bildiği gibi SOLID nesne yönelimli tasarımı daha anlaşılır, esnek ve sürdürülebilir hale getirmek için ortaya çıkan 5 tasarım prensibinin isimlerinin baş harflerinden oluşturulan bir kısaltmadır.

Bu prensipler ilk olarak 2000 yılında “Design Principles and Design Patterns” isimli makale ile Amerikalı yazılım mühendisi ve eğitmen olan Robert C. Martin tarafından yazılım dünyasına tanıtılan tasarım prensiplerinin bir alt kümesidir.

SOLID kısaltması ise daha sonra 2004 yılında Michael Feathers tarafından ortaya atılmıştır.

Peki nedir bu prensipler?