SOLID PRENSİPLERİ

Loading

SOLID prensipleri Nesne Yönelimli Programlamanın(OOP) temelini oluşturur. Robert C. Martin  namı diğer Bob Amca tarafından tanımlanan bu prensipler yazılım dünyasında önem arzetmektedir. Nasıl ki bir bina yapılacağı zaman temel sağlamlığı , ışıklandırma , yalıtım , kolonlar vs gibi temel planlamalar üzerine kuruluyorsa yazılımda da küçük yada büyük bir proje yapılırken ihtiyaç ölçüsünde bu prensiplere uyulması;

=> Eklenecek yeni özellikleri projeye dahil edebilmede

=> Min. kod değişikliği ile geliştirme yapmada

=> Bakımının kolay olmasında

=> Rahat Test edilebilir olmasında

=> En az hata ve en az performans kaybı ile gelişimine devam etmesinde vb. önemli katkılar sağlayacaktır

Aslında çoğu programlamacı bu özellikleri bilir fakat doğru bir şekilde uygulayan az olduğu kanaatindeyim. Zaten yazılım dediğimiz olayda uygulama sahasında bunları kullanabiliyor olmaktır. Dolayısıyla basit ve temiz kod yazmak oldukça önemlidir.

Bu SOLID prensipleri herhangi bir nesne yönelimli programlama dilinde kullanılabilir. Ben şimdilik özet olarak bunları anlatacağım ama bir sonraki makalede tek tek detaya gireceğim.

1. Single Responsibility Principle (Tek Sorumluluk Prensibi) :  Her sınıfın yada modül bir tek sorumluluğa sahip olması gerekir. Bu, sınıfların yada modüllerin değiştirilmesi durumunda tek ve sade bir nedenle değişebilir. Böylece anlaşılması ve bakımı kolay olacaktır. Örneğin, bir sınıf yada modül tek amaca hizmet edecek şekilde geliştirilmelidir. Bir sınıfın birden çok iş yapması sürdürülebilirlik açısından yanlış bir uygulama olacaktır.

2. Open/Closed Principle (Açık/Kapalı Prensibi): Gelişime açık fakat değişime kapalı olmalıdır. Yazdığımız modül yada sınıfların değiştirilmemesi şartıyla genişletilebilir yada geliştirilebilir olmalıdır. Örneğin, bir ürünün ödeme yöntemi eklenirken kodların değiştirilmeden genişletilebilir olmalıdır.

3. Liskov Substitution Principle (Liskov Değiştirme Prensibi): Alt sınıflar, üst sınıfların yerine kullanılabilecek şekilde tasarlanmalıdır. Yani yer değiştirildiklerinde üst sınıf gibi davranabilmelidirler. Yani bir şeyin genel özelliklerinin özeldede olması gibi. Örneğin, yazma eylemi kaleme ait ama alt sınıflarda kalem çeşitleri yazılabilir.

4. Interface Segregation Principle (Arayüz Ayırımı Prensibi): Interface’ lerin(arayüzlerin) mümkün olduğu kadar birbirlerinden ayrıştırılması gerektiğini belirtir. Yani işlerin hepsini tek bir arayüze toplamak yerine ona özel birden fazla arayüz oluşturulmalıdır. Örneğin bir ürünün genel özellikleri değilde o ürüne ait özellikleri tanımlanmalıdır.

5. Dependency Inversion Principle (Bağımlılık Prensibi): Tanımlama soyutlamalara bağımlı olmalıdır, somut tanıma bağımlı olmamalıdır. Üst düzey sınıfın alt düzey sınıfa bağımlı olmaması gerektiğini, ancak soyutlamalara bağımlı olması gerektiğini belirtir. Yani her iki tür sınıfında soyutlamalara bağımlı olmalıdır. Bu prensip, bağımlılıkların daha esnek ve sürdürülebilir olmasını sağlar. Örneğin bir ürünün genel özelliklerini soyutlayarak tanımlarız ve ürünler değiştiğinde o soyut tanımlama ve diğer ürünler etkilenmezler.

detaylarda görüşmek üzere sağlıcakla kalın….

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Mesut Yiğit

Kaliteli bilgilerin bulunduğu, paylaşımcı ve her daim geliştirici bir öğrenimin benimsendiği Teknik ve diğer konularda kendime ve geleceğe notlar