All entries by this author

SOLID

Ara 30th, 2011 | By Özcan Acar | Category: Haberler, Tasarım Prensipleri

SOLID (Single responsibility, Open-closed, Liskov substitution, Interface segregation ve Dependency inversion) yazılım tasarım prensipleri için kullanılan bir kısaltmadır. Yazılım yaparken SOLID uygulandığı taktirde bakımı ve geliştirilmesi kolay yazılım sistemleri oluşturmak mümkündür. En verimli hali test güdümlü yazılım ile uygulanır.



Parametrik Konstruktör (Parameterize Constructor)

Ara 29th, 2011 | By Özcan Acar | Category: Refactoring

Bir sınıf konstruktörü bünyesinde oluşturulan nesne, bu sınıfın test edilmesini zorlaştırır. Bunun bir örneğini EmployeeManager sınıfında görmekteyiz. Sınıf değişkeni olan dao konstruktör bünyesinde oluşturulmaktadır.



Metot Düzenleme (Compose Method)

Eki 29th, 2011 | By Özcan Acar | Category: Eğitim Videoları



Yeni Sınıf Oluşturma (Extract Class)

Eki 29th, 2011 | By Özcan Acar | Category: Refactoring

Bir sınıfın yüzlerce ya da binlerce satırdan oluşmasının ana sebeplerinden birisi bu sınıfa birden fazla sorumluluğun yüklenmiş olmasıdır. Single Repsonsiblity (SRP) prensibinden de bildigimiz gibi her sınıfın sadece ve sadece bir sorumluluk alanı olmalıdır yani sınıf sadece bir iş yapmalıdır ve bu işlemi iyi yapmalıdır. Aşağıda yer alan Order sınıfı SRP ile uyumlu değildir. Yeni Sınıf Oluşturma (Extract Class) refactoring metodunu kullanarak bu sınıfı SRP’ye uygun hale getirebiliriz.



Stable Abstractions Principle (SAP) – Stabil Soyutluk Prensibi

Eki 26th, 2011 | By Özcan Acar | Category: Tasarım Prensipleri

Bu yazıyı PDF olarak edinebilirsiniz.



Stable Dependencies Principle (SDP) – Stabil Bağımlılıklar Prensibi

Eki 26th, 2011 | By Özcan Acar | Category: Tasarım Prensipleri

Bu yazıyı PDF olarak edinebilirsiniz.



Acyclic Dependency Principle (ADP) – Çevrimsiz Bağımlılık Prensibi

Eki 26th, 2011 | By Özcan Acar | Category: Tasarım Prensipleri

Bu yazıyı PDF olarak edinebilirsiniz.



Common Closure Principle (CCP) – Ortak Kapama Prensibi

Eki 26th, 2011 | By Özcan Acar | Category: Tasarım Prensipleri

Yazılım sistemi müşteri gereksinimleri doğrultusunda zaman içinde değişikliğe uğrar. Meydana gelen değişiklerin sistemde bulunan birçok paketi etkilemesi, sistemin bakılabilirliğini negatif etkiler. CCP’ye göre yapılan değişikliklerin sistemin büyük bir bölümünü etkilemesini önlemek için, aynı sebepten dolayı değişikliğe uğrayabilecek sınıfların aynı paket içinde yer alması gerekir. CCP daha önce incelediğimiz, sınıflar için uygulanan Single Responsibility (SRP) prensibinin paketler için uygulanan halidir. Her paketin değişmek için sadece bir sebebi olmalıdır. CCP uygulandığı taktirde sistemin bakılabilirliği artırılır ve test ve yeni sürüm için harcanan zaman ve emek azaltılır.



Koşullu Mantığın Komut İle Değiştirilmesi (Replace Conditional Dispatcher With Command)

Eki 26th, 2011 | By Özcan Acar | Category: Eğitim Videoları, Refactoring

Strateji tasarım şablonu için bakınız…

Open Closed Principle tasarım prensibi için bakınız…



Metodu Metot Nesnesine Dönüştürme (Replace Method with Method Object)

Eki 24th, 2011 | By Özcan Acar | Category: Refactoring

Metodu Metot Nesnesine Dönüştürme (Replace Method with Method Object) refactoring metodu aşağıdaki durumlarda kullanılabilir:

  • Çok sayıda lokal değişken Yeni Metot Oluşturma (Extract Method) refactoring metodunun kullanımını engelliyor.
  • Uzun bir metot bünyesinde tanımlanan lokal değişkenlerin kapsama alanı (scope) geniş yani lokal değişkenler metodun sonuna kadar kullanılıyor.
  • Metot SRP tasarım prensibi ile uyumlu degil yani refactor etmek istediğimiz metot, bünyesinde bulunduğu sınıfa yeni bir sorumluluk yüklüyor.