Ana içeriğe atla

SOLID Object Oriented Programing Principles

SOLID program yazarken (ideal program) kullanmamız gereken bazı kuralların ya da tasarımların baş harflerinin kısaltmasıdır.5 adet standart kuralımız vardır.Bu arada tasarımın tanımını daha önceden yapmıştık ancak hatırlatmada fayda var.Tasarımla seneler boyunca bir çok programcının karşısına çıkan sorunların çözümlenmiş şekilde en ideal olarak sunulmuş halidir.Bizimde Amerikayı tekrardan keşfetmemize tabiki gerek yok.Üstadlarımızın tavsiyelerine , oluşturdukları prensiplere ve kurallara uyarak gayet düzgün programlar yazabiliriz ve bunları testable şekilde sunarız.Uzun lafın kısası konumuza geri dönüyorum.

Single Responsibility - Her kullanılan modülün tek bir işlevi olmalı ve olası bir değişiklikte tek bir nedene dayanmalıdır.

Open/Closed - Kodumuz geliştirmeye açık yeniden yapılanmaya kapalı olmalıdır.Refactoring ve ya metodun tekrardan yazılması gibi bir durum söz konusu olmamalıdır.

Liskov's Substitution - Türeyen sınıf üyeleri ile temel sınıfın üyelerinin aralarında değişimi mümkün olmalıdır.Bu aynı zamanda Design Patternlerden Design by Contract  yapısıyla aynı işlevdedir.

Interface Segregation - Kullanıcan interfaceler mümkün oldukça birbirinden ayrı yazılmalıdır.Bir interface bir çok iş için kullanılabilir.Ancak gereksiz metod yüklemesine neden oluyor ise bu durumda birden fazla interface oluşturmak daha mantıklı olacaktır.

Dependency Inversion - High level classlar , low level classlara direkt olarak bağımlı olmamalıdır.Böyle bir durumda classlar arası düzenleme gerektiğinden birden fazla sorunla karşı karşıya kalınabilir.Arada bir abstract yada interface (duruma göre hangisi gerekiyorsa) kullanılmalıdır.

Yorumlar

Bu blogdaki popüler yayınlar

What is design pattern ?

Tasarım desenleri tam olarak Türkçe karşılığı olmasa da bu şekilde ifade edilir.Genelde yazılımın tasarım sürecinde karşımıza çıkan sorunlara , tecrübeler doğrultusunda kaliteli çözümler üretilen kalıplardır.Bu kalıpları kullanarak daha ileride karşımıza çıkacak sorunlara yada updatelere esnek çözümler bulabiliriz.Bu sayede hem kodlarımız daha anlaşılır olur hemde değişiklikler rahatlıkla uygulanabilir. Var olan bir problem üzerinde çalışan programcı bulunan çözümü paternleri bildiği için hemen anlayacak ve nasıl bir yol izleyeceğini bilecektir. Creator Design Patterns Abstract Factory Builder  Prototype Singleton Verdiğimiz bilgileri örnekle açıklamak gerekirse; ihtiyacımız olan bütün sistemin kullanabileceği ancak sadece bir tane oluşturulabilen bir class tasarlamak.Biz bunu yukarıda da isimlerinden anlaşılacağı gibi zaten bu yapıyı başkalarıda kullanmış ve en stabil duruma getirilip adı Singleton Design Pattern koyulmuş tasarımı kullanabiliriz. Abstract Factory , B...

What is Exception ?

Exception Türkçeye "istisna" olarak çevrilebilir.Ben java üzerinden sizlere bu konuda bilgi vereceğim.Java exceptionlara karşı çok sert davranır.Yazılan bir programda çalışmasına fırsat bırakmadan exception oluşma  ihtimali varsa compiler edilmeden hata verecektir.Genelde programcılar arasında bu durum pek hoş karşılanmaz.En azından deneyimi olmayanlar arasında...Bir exception varsa ben düzeltirim diyerek programın çalıştırılmasını en azından compiler edilmesini isterler.Ancak bu sıkı tutum büyük projelerde bulunmaz nimettir.Çünkü program ilk başta hata vermeyebilir. 10 bin satırlık programınız olduğunu düşünün ve birde bakmışız ki programda bir açık var ve bu açığı deneyen kullanıcı programın çökmesine neden oluyor.İşte bu şekilde büyük programlarda açığı kapatmak için yeniden yazmak bile gerekebilir.Biz bunu ufak parçalarda çıkabilecek sorunları o an düşünüp çözmezsek söylediğim örnekte olduğu gibi büyük problemler ortaya çıkabilir.Ufaktan exceptionların ne tür sebeplerden ...

Kod Yazmak

Kod yazmanın önemi ve bir çok okulda yeteri kadar üzerine düşülmediğini anlatan , ilham alabileceğimiz bir video.