SOLID yazılım prensipleri Robert C. Martin tarafından 2000 yılında yayımlanan Tasarım İlkeleri ve Tasarım Modelleri makalesinde tanıtılan ilkelerin bir alt kümesi olarak tanıtılmıştır. Solid prensipleri, yazılım geliştirme alanında temel prensipleri belirlemek için oluşturulmuştur.
Tüm yazılımcıların mutlaka bilmesi gereken SOLID yazılım geliştirmenin en önemli parçalarından biridir. SOLID yazılım prensiplerine uyarak daha anlaşılabilir kod yazmayı, kod tekrarını önlemeyi, sürdürülebilir ve gelecek teknolojilere uyum sağlayabilecek esnek bir proje yapısı kurmak amaçlanır.
SOLID Yazılım Geliştirme Prensiplerine Uymanın Avantajları
SOLID prensiplerine uymak karmaşıklığı önlemek ve “İyi Kod” yazmayı sağlar. Bu sayede geliştirilen projenin herkes tarafından müdahale edilebilir olmasını sağlar. Her yazılımcının bu prensiplere uyması geliştirilen projenin sürdürelebilir ve anlaşılabilir bir şekilde geliştirmesine olanak sağlar. Geliştirilen yazılımın gelecekteki teknolojilere uyumlu olmasını ve kolay entegre edilebilmesini sağlar.
Kod tekrarını önleyerek projede gelecekte yapılacak güncellemelerde kolaylık sağlar. Örneğin bir hesaplama işlemi yapan fonksiyonu birden fazla yerde kullanırsak bu hesaplama işleminde bir değişiklik olduğunda birden fazla yerde değiştirmek zorunda kalacağız. Bu durumu önlemek için bu prensiplere uymamız gerekir.
SOLID Prensipleri Nelerdir ?
SOLID kelimesinde her harf bir prensibi belirler. Bunlar;
- Single-Responsibility Principle
- Open-Closed Principle
- Liskov Substitution Principle
- Interface Segregation Principle
- Dependency Inversion Principle
Single-Responsibility Principle: Bu prensibi “Tek Sorumluluk İlkesi” olarak kısaca tanımlayabiliriz. Bu duruma göre bir birimin (nesne, sınıf vb.) sadece bir iş yapması anlamına gelmektedir. Bir birime iki tane sorumluluk vermemeliyiz.
Open-Closed Principle: Bu prensibe göre bir sınıfın veya fonksiyonun halihazırda var olan özelliğini koruması gerekir. Bir güncelleme işlemi olduğunda sınıf eski davranışını korumalı sadece yeni davranışlar eklenmesi gerekmektedir.
Liskov Substitution Principle: Open/Closed prensibinin (OCP) bir uzantısı olarak, alt sınıfların üst sınıfların yerine geçebilmesi gerektiğini belirtir. Yani, bir üst sınıfın nesnesi yerine alt sınıfın nesnesi kullanıldığında programın beklenen şekilde çalışması gerekmelidir.
Interface Segregation Principle: Oluşturduğumuz arayüzleri tek bir arayüze tanımlamak yerine daha özelleştirilmiş birden fazla arayüz oluşturmalıyız. Bu şekilde sürdürülebilirliği ve okunabilirliği arttırırız.
Dependency Inversion Principle: Yüksek seviye mödüllerin düşük seviye mödüllere bağımlı olmaması durumudur. Örneğin bir üst sınıf bir alt sınıfa bağımlı olmamalıdır. Her ikisi de soyuta bir arayüz üzerinden bağımlı olmalıdır ve ayrıca detaylar soyutlamalara bağlı olmalıdır.
Sonuç olarak proje geliştirirken SOLID prensiplerine uymamız çok önemlidr. Bu prensipleri iyi bir şekilde öğrenip uygulamalıyız.
Bu ve benzeri içerikler için Techinday’i takipte kalın!