SOLID Prensipleri — Single Responsibility Principle
Yazılım geliştirme sürecim boyunca en çok duyduğum kavram “Clean Code” kavramı oldu. Bir yazılım geliştirici nasıl “Clean Code” yazabilir sorusuna hepimizin belli başlı cevapları vardır. Peki “Clean Code” yazabilmek için uymamız gereken prensipler nelerdir ?
SOLID yazılım prensipleri; geliştirilen yazılımın esnek, yeniden kullanılabilir, sürdürülebilir ve anlaşılır olmasını sağlayan, kod tekrarını önleyen ve Robert C. Martin tarafından Design Principles and Design Patterns kitabında öne sürülen prensipler bütünüdür.
Peki bu prensipler bütününün amaçları nelerdir ve bizlere neler sağlar;
- Yeni geliştirilen özellikleri kodda herhangi bir değişiklik yapmadan kolayca ekleyebilmek
- Geliştirilen yazılımın sürdürülebilir olmasını sağlamak ve kodda değişikliğe gerek kalmadan yeni özellikleri ekleyebilmek
- Herkes tarafından anlaşılabilir ve temiz bir tasarım sağlamak
Bu amaçlar doğrultusunda yazdığımız kodun daha anlaşılır olması ve “Clean Code” kavramına hitap ediyor olması beklenir.
Ben bu yazımda bu beş temel prensibin ilk maddesini oluşturan Single Responsibility Princible prensibini basit bir kod örneği ile açıklayacağım.
S — Single Responsibility Principle
Aslında Türkçe anlamını incelediğimizde bize bir fikir veriyor. Türkçe anlamına baktığımızda “Tek Sorumluluk Prensibi” olarak karşılaşırız. Anlatılmak istenen sorumluluk, bir sınıf (nesne) yalnızca bir amaç uğruna değiştirebilir. Bunu sağlamak için bir sınıfın yapması gereken yalnızca bir işi olması gereklidir. Bu prensibi bir örnek ile açıklamak istiyorum. Bir aşçı aynı anda, gelen siparişi hazırlama, malzemeleri belirlemek, malzemeleri doğramak ve pişirmeyi yapması beklenmez. Oluşturulan sınıf ne kadar fazla sorumluluk alırsa, o kadar fazla değişime uğramak zorunda kalır. Bu durum Single Responsibility Principle tanımına aykırıdır.
Şimdi bu prensibi Visual Studio üzerinde bir konsol uygulaması üzerinde basit bir örnek ile açıklamak istiyorum.
Bu kod örneğinde bir Personel isminde bir sınıf tanımlı ve bu sınıfa ait birden fazla sorumluluk var. Ve bu kod üzerinde yapılan bir değişiklik Personel sınıfını doğrudan etkileyecektir.
Burada bir Product sınıfı oluşturuluyor ve bu Product üzerine etki edebilecek değişiklikler farklı sınıflarda tanımlanmıştır. Böylelikle yazdığımız kodu düzenlemek istediğimizde büyük bir karmaşa ile karşılaşmayacağız. Kod üzerinde çok fazla bir değişiklik yapılamadan işlerimizi gerçekleştirme imkanımız olur.
Özetlemek gerekirse, SOLID prensipleri daha okunaklı, daha sürdürülebilir ve yeniden kullanılabilir kod yazmamızı sağlar. Bu prensipler Nesne Yönelimli Programlama (OOP) için önemlidir. SOLID prensiplerine uymak diğer yazılımcıların kodumuzu anlaması açısından ve temiz kod kavramı açısından oldukça önemlidir.
“A class should have only one reason to change.”
Not: Bir sonra ki yazım diğer prensipler üzerine , henüz bitmedi. İyi okumalar 😃