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

Merge-Sort için güzel bir video

Bilgisayar Mühendisliğine Giriş

Öncelikle Bilgisayar Mühendisliği alanına yeni başlamış biri olarak sadece gözlemlerimi ve edindiklerimi yazacağımı söylemem lazım.Konularla alakalı daha bilgili olan arkadaşlarımız varsa mailden yada aşağıdan yorum yaparak bana ulaşabilirler.Bende bilgi alışverişinde bulunmaktan memnun olurum :) . Şimdi İstanbul üniversitesi Bilgisayar Mühendisliği 1. sınıf güz yarıyılında alınan dersler; İntroduction to Algorithm Discrete Mathematics Calculus 1 Fizik 1 BMG Seçmeli dersleri saymıyorum çünkü onlar konuyla alakasız ve her üniversite 1. sınıf öğrencisine verilen ortak derslerdir.Şimdi burada benim kişisel görüşüm olarak en önemli ve zor olan ders Algoritmalar.Algoritmalara bilmeyenler için bir yazılımın genel tablosu olarak söylenebilir.Bu derste özellikle 1 tane proglama diline yönelinmez genel olarak hepsinde mantığın kavranması için verilir.Ama uygulama dersinde eski ama her daim kullanılan C dilince örneklemeler yapılıyor.(En azından İÜ'de böyle)Ders ingilizce anlatılıyo...

Yazılımda Başarıya Ulaşmayı Engelleyen Faktörler

İşte Yazılımda Başarıya Ulaşmadaki Engellerden 10′u Kendi Görüşlerimle Anlatmaya Çalıştım; İşte O Engeller Sosyal Medya, Online Oyunlar, İstikrarsızlık, Üretememezlik, Aile Baskısı, Sosyal Çevre, Ağır Dersler, Çabuk Pes Etme, Sabırsızlık… 1)Sosyal Medya; Zamanımızın büyük çoğunluğunu facebook,twitter,instagram vb yerlerde geçiriyoruz bu da bizim çalışmamıza engel olup bir şeyler üretmemizin önüne geçiyor 2)Online Oyunlar; Yazılımcıların en büyük düşmanı sadece yazılımcılar değil tüm insanların en büyük düşmanı zamanın nasıl geçtiğini fark etmezsin bile.. 3)İstikrarsızlık; Tam bir fikir üretirsin yazamaya başlarsın gider gider ve devamı gelmez… 4)Üretememezlik; Acayip kodlama yapmak istersin ama bir fikir olmaz üretecek bir şeyin olmaz ve boşlukta kalırsın 5)Aile Baskısı; Kafanda proje olur yazmak istersin ama ailen bilgisayar başında çok zaman geçirdiğinden dolayı rahatsız olur bu durum senide üzer bunun en iyi ilacı  ÜNİVERSİTE  ! 6)Sosyal Çevre; Yine bi...