Prensipler

Interface Segregation Principle (Arayüz Ayrımı Prensibi)

Okuma Süresi: 2 dk

Arayüz Ayrımı Prensibinin odak noktası; eğer bir sınıf implement ettiği interface’e ait tüm nesneleri kullanmıyor ya da o interface ilgili sınıf için eksik kalıyor ise tüm ihtiyaçların doğru şekilde belirlendiği yeni bir interface oluşturulmalı ve artık bu yeni interface kullanılmalıdır.

Devamını oku »

SoC (Separation Of Concerns)

Okuma Süresi: 3 dk

Endişelerin Ayrılması (Separation of Concerns) tasarım ilkesi düşük bağlılığa ve benzer sorumluluklara (cohesion) sahip bileşenler ile kümeler/kapsüller oluşturmamıza, sorumluluk sınırlarının net bir şekilde belirlenerek ayrılmasına odaklanır. SoC ile sürdürülebilir, geliştirilebilir ve tekrar kullanılabilir bilşenlerimiz ve bu bileşenler sayesinde projeler olur.

Devamını oku »

Liskov Substitution Principle (Liskov’un Yerine Geçme Prensibi)

Okuma Süresi: 3 dk

Bu prensibin odak noktası; alt seviyedeki nesnelerin, üst seviyedeki nesneler ile yer değiştirebilir olmasını sağlamaktır. Alt seviye bir sınıf, üst seviyesi olan sınıf ile aynı şekilde davranmalı ve üst sınıfın tüm özelliklerini kullanabilmelidir. Bu prensibi Open/Closed Principle (Açık Kapalı Prensibi) aklımızın bir köşesinde tutarak anlamaya çalışırsak kavramamız çok daha kolay olacaktır.

Devamını oku »

Inversion of Control (IoC)

Okuma Süresi: 3 dk

Yazılım çerçevelerinin (framework) gelen isteği karşılarken bizim kodlarımızı çalıştırıp sonrasında tekrar kontrolü ele almasıdır. Bir web uygulamasından örnek verecek olursak; HTTP isteğinin karşılanması esnasında routing, middleware gibi işlevler yazılım çerçeveleri (framework) tarafında yapılır ve istek günün sonunda bir middleware/controller seviyesine düşer. Ardından bizim kodlarımız çalıştırır ve gerekiyorsa oluşturduğumuz çıktıyı alıp yoluna devam eder. Yani ana...

Devamını oku »

Open/Closed Principle (Açık/Kapalı Prensibi)

Okuma Süresi: 2 dk

Yazdığımız kod gelişime açık fakat değişime kapalı olmalıdır. Örneğin yazdığımız bir sınıf içerisindeki metodların gövdesi mümkün mertebe değişmemelidir. Yine sınıf örneğinden devam edecek olursak; yeni bir özellik kolayca eklenebilmelidir. Mevcut kod yeniliklere açık, yani bloklayıcı durumda olmamalıdır. Yeni kod ekleyebilmek için mevcut kodda değişikliğe ihtiyaç duyulmamalıdır.

Devamını oku »