INJECTION PRINCIPLES & APPLYING SOLID PRINCIPLES EĞİTİMİ

Bağımlılıkları çözün, test edilebilir kod yazın

SOLID ilkeleri, IoC ve dependency injection ile gevşek bağlı, test edilebilir ve genişletilebilir kod tasarlayın.

Eğitim, bağımlılık enjeksiyonunu SOLID ilkeleri çerçevesinde ele alır. Constructor, setter ve method injection, IoC konteynerleri (Spring, Microsoft.Extensions.DependencyInjection), yaşam süreleri ve captive dependency hatası, Service Locator anti-pattern'i v…

3 gün Orta Seviye Online / Yüz Yüze / Hibrit Sertifikalı

Eğitim Hakkında

Üç günde SOLID, DI konteynerleri ve test edilebilir tasarım

Eğitim, bağımlılık enjeksiyonunu SOLID ilkeleri çerçevesinde ele alır. Constructor, setter ve method injection, IoC konteynerleri (Spring, Microsoft.Extensions.DependencyInjection), yaşam süreleri ve captive dependency hatası, Service Locator anti-pattern'i ve Composition Root işlenir. SRP, OCP, LSP, ISP ve DIP ihlallerini mevcut kodda bulup düzeltir; Strategy, Decorator ve Command gibi desenlerle DI'yi birleştirir, sahte bağımlılıklarla birim test yazarsınız.

Süre ve Format

3 Gün. Her gün dört modül; sabah ilke anlatımı ve kod kokusu analizi, öğleden sonra refactoring ve test egzersizi.

Seviye

Orta Seviye — Dependency Injection, IoC konteynerleri ve SOLID ilkelerinin refactoring ile uygulanması.

Öğrenme Metodu

Katılımcılar sıkı bağlı bir sipariş uygulamasını adım adım SOLID'e uygun hale getirir, konteyner ile bağımlılıkları enjekte eder ve mock ile test yazar.

Neden Bu Eğitim?

🔌Gevşek Bağlılık

Bağımlılıkları dışarıdan vererek sınıfları birbirinden bağımsız kılarsınız.

✅Test Edilebilirlik

Mock ve stub ile veritabanı veya ağ olmadan hızlı birim testler yazarsınız.

📐İlke Temelli Tasarım

SOLID ihlallerini kod kokusundan tanıyıp düzeltirsiniz.

Anahtar Konular

dependency injection eğitimiSOLID prensipleriIoC containerconstructor injectionspring DIdotnet dependency injectiontest edilebilir kodrefactoring SOLID
“Bağımlılığı kendiniz yaratmayın; ihtiyacınızı belirtin ve dışarıdan alın.”

Ön Koşullar

Eğitimden verim almak için faydalı olacak bilgi ve ortam gereksinimleri

1
OOP Bilgisi

Sınıf, arayüz ve kalıtım kavramlarına hâkimiyet.

2
Java veya C#

Orta düzey Java ya da C# kod yazma deneyimi.

3
Birim Test Temeli

JUnit veya xUnit ile basit test yazabilmek.

4
Geliştirme Ortamı

IDE ve Maven/Gradle ya da .NET SDK kurulu dizüstü bilgisayar.

Eğitim İçeriği

Programın gün gün akışı aşağıdadır. Bir güne tıklayarak o günün modüllerini ve içeriklerini görebilirsiniz.

Günün hedefiKatılımcı uyum ve bağlaşım ölçütleriyle sınıfları değerlendirir ve SOLID ihlallerini düzeltir.
Modül 1
OOP Tasarım Temelleri
  • Yüksek uyum (cohesion) ve düşük bağlaşım (coupling)
  • Law of Demeter ve 'Tell, Don't Ask' ilkesi
  • Sözleşmeyle tasarım: ön koşul, son koşul, değişmez
  • Değişmezlik ve yan etkisiz metotlar
  • Küçük arayüz, açık niyet: adlandırma ve API tasarımı
  • Basit sınıf diyagramı ile tasarımı iletme
Modül 2
SOLID İlkeleri
  • SRP: değişim nedeni kavramı ve sorumlulukların ayrıştırılması
  • OCP: soyutlama ile genişleme, if-zincirlerinin temizlenmesi
  • LSP: sözleşmeyle tasarım ve Kare-Dikdörtgen ihlali
  • ISP: şişkin arayüzün rol arayüzlerine bölünmesi
  • DIP: yüksek seviyeli modülün soyutlamaya bağımlı kılınması
  • Kod kokularından SOLID ihlali tespiti ve düzeltme sırası
Modül 3
Yaratımsal Desenler
  • Singleton ve thread-safe lazy başlatma (double-checked locking, Java enum singleton, C# Lazy<T>)
  • Factory Method ile nesne üretiminin alt sınıfa devri
  • Abstract Factory ile ürün aileleri (tema seti, veritabanı sağlayıcısı)
  • Builder ve akıcı (fluent) arayüz ile çok parametreli nesne inşası
  • Prototype ile kopyalama: yüzeysel ve derin klon farkı
  • Singleton yerine DI konteyneri ve nesne havuzu (object pool) alternatifleri
Modül 4
Dependency Injection ve IoC
  • Constructor, setter ve method injection farkları ve tercih ölçütleri
  • Inversion of Control ile Dependency Inversion ilkesinin farkı
  • Spring ve Microsoft.Extensions.DependencyInjection konteyner kullanımı
  • Yaşam süreleri: transient, scoped, singleton ve captive dependency hatası
  • Service Locator'ın anti-pattern olarak değerlendirilmesi
  • Composition Root ve test için sahte (mock) bağımlılık enjeksiyonu
Günün hedefiKatılımcı Decorator, Strategy, Command ve State desenlerini DI ile birleştirerek genişletilebilir yapı kurar ve test edilebilirliği ölçer.
Modül 1
Adapter, Facade, Decorator ve Proxy
  • Adapter ile eski bir kütüphaneyi yeni arayüze uyarlama (nesne ve sınıf adaptörü)
  • Facade ile alt sistem karmaşıklığını tek giriş noktasında gizleme
  • Decorator ile çalışma zamanında davranış ekleme ve Java I/O stream zinciri
  • Decorator ile kalıtım patlamasının (subclass explosion) önlenmesi
  • Proxy türleri: sanal (lazy), koruma ve uzak (remote) vekil
  • Adapter, Decorator ve Proxy desenlerinin niyet farkları
Modül 2
Strategy, Observer ve Command
  • Strategy ile algoritma değişimi: indirim kuralları, sıralama ve ödeme yöntemleri
  • Observer ile olay yayını, push ve pull modelleri
  • Zayıf referanslar ve lapsed listener bellek sızıntısı
  • Command ile isteğin nesneleştirilmesi, undo/redo yığını
  • Komut kuyruğu ve makro komut (composite command)
  • C# delegate/event ve Java lambda ile desenlerin sadeleştirilmesi
Modül 3
State, Template Method ve Chain of Responsibility
  • State ile durum makinesi: sipariş ve belge yaşam döngüsü
  • switch/if-else yerine polimorfik durum sınıfları
  • Template Method ile algoritma iskeleti ve hook metotlar
  • Hollywood ilkesi: çerçeve çağırır, siz çağırmazsınız
  • Chain of Responsibility ile middleware ve filtre zincirleri
  • Servlet Filter ve ASP.NET Core pipeline ile karşılaştırma
Modül 4
Test Edilebilir Tasarım
  • Test edilebilirlik ve bağımlılık enjeksiyonu ilişkisi
  • Saf fonksiyon ve yan etkilerin sınırda toplanması
  • Zaman, rastgelelik ve I/O soyutlama (Clock, Random)
  • Test verisi oluşturma: Object Mother ve Test Data Builder
  • Test kokuları: kırılgan, yavaş, belirsiz (flaky) testler
  • Contract test ve entegrasyon testi sınırlarını belirleme
Günün hedefiKatılımcı kod kokularını giderir, TDD ile yeni özellik ekler ve desen kararlarını gerekçelendirir.
Modül 1
Anti-Pattern ve Kod Kokuları
  • God Object, Spaghetti Code ve Lava Flow anti-pattern'leri
  • Singleton'ın aşırı kullanımı ve gizli bağımlılık sorunu
  • Anemic Domain Model ve işlem betiği yığılması
  • Fowler kataloğundan Long Method, Feature Envy, Shotgun Surgery, Data Clumps
  • Golden Hammer ve resume-driven development eğilimleri
  • Her kokunun hangi refactoring veya desenle giderildiği
Modül 2
Refactoring ile Desene Geçiş
  • Extract Method, Extract Class ve Extract Interface adımları
  • Replace Conditional with Polymorphism ile Strategy/State'e geçiş
  • Replace Constructor with Factory Method ve Builder'a evrim
  • Introduce Parameter Object ve Null Object kullanımı
  • Kerievsky'nin 'Refactoring to Patterns' yaklaşımı
  • Her adımda birim testle davranışın korunması
Modül 3
Birim Test ve TDD
  • Test piramidi: birim, entegrasyon, uçtan uca
  • Red-Green-Refactor döngüsü
  • Arrange-Act-Assert ve test adlandırma
  • Test double türleri: dummy, stub, spy, mock, fake
  • JUnit/xUnit/NUnit ve parametrik testler
  • Kod kapsamı (coverage) ve mutasyon testine giriş
Modül 4
Desen Seçimi ve Takım Pratiği
  • Problemden desene eşleme tablosu hazırlama
  • MVC içinde Observer, Strategy ve Composite birlikteliği
  • Desenin maliyeti: ek soyutlama katmanı ve okunabilirlik
  • Kod incelemesinde desen kararını gerekçelendirme
  • Vaka çalışması: e-ticaret sipariş ve kampanya modülü
  • Takımda ortak desen sözlüğü ve ADR ile karar kaydı

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
OO Tasarım Sezgisi

Uyum ve bağlaşım ölçütleriyle sınıf tasarımınızı değerlendirip iyileştirebilirsiniz.

🔧
Nesne Üretimi

Factory, Builder ve Prototype desenleriyle nesne yaratımını istemci kodundan ayırabilirsiniz.

🧠
Bağımlılık Yönetimi

Constructor injection ile gevşek bağlı ve test edilebilir sınıflar tasarlayabilirsiniz.

📐
Davranış Desenleri

Strategy, Observer ve Command desenleriyle değişen davranışları esnek biçimde modelleyebilirsiniz.

🧩
Akış Kontrolü

State ve Chain of Responsibility ile koşul yığınlarını okunabilir sınıf yapılarına dönüştürebilirsiniz.

🛡️
Koku Tespiti

Kod kokularını ve anti-pattern'leri tanıyıp uygun refactoring yöntemini seçebilirsiniz.

📊
Güvenli Dönüşüm

Birim testlerle korunan küçük adımlarla mevcut kodu desene dönüştürebilirsiniz.

🚀
Karar Gerekçesi

Desen kararlarınızı maliyet ve fayda açısından gerekçelendirip takımla paylaşabilirsiniz.

Kimler İçin Uygundur?

  • Nesne yönelimli kod yazan
  • test edilebilir
  • bakımı kolay tasarımlar kurmak isteyen yazılım geliştiriciler

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Nesne yönelimli kod yazan, test edilebilir ve bakımı kolay tasarımlar kurmak isteyen yazılım geliştiriciler.
Eğitim sonunda sertifika verilir mi?
Eğitimi tamamlayan katılımcılara Digital Vizyon Akademi Katılım ve Başarı Sertifikası verilir.
Eğitim kaç gün sürer ve nasıl işlenir?
Eğitim 3 gündür; katılımcılar sıkı bağlı bir sipariş uygulamasını adım adım SOLID'e uygun hale getirir, konteyner ile bağımlılıkları enjekte eder ve mock ile test yazar.
DI konteyneri kullanmak zorunlu mu?
Hayır; önce elle (pure DI) enjeksiyon öğretilir, ardından konteynerin ne zaman fayda sağladığı gösterilir.
Spring ve .NET ayrı mı işlenir?
Kavramlar ortaktır; örnekler Spring (Java) ve Microsoft.Extensions.DependencyInjection (C#) üzerinden yan yana gösterilir.

Sertifikalandırma

Bu eğitim Digital Vizyon Akademi Başarı Sertifikası ile tamamlanır.

Eğitim başında “Ön Test”, bitiminde “Son Test” uygulanarak gelişim ölçümlenir. Değerlendirme formunu dolduran katılımcılar sertifikalarını alır. Sertifikanızın geçerliliğini Sertifika Sorgulama sayfasından doğrulayabilirsiniz.

Örnek Sertifika d Digital Vizyon AKADEMİ KATILIM SERTİFİKASI Bu sertifika [Katılımcı Adı Soyadı] adlı katılımcının aşağıdaki eğitim programını başarıyla tamamladığını belgeler. Injection Principles & Applying SOLID Principles Eğitimi Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre3 gün
SeviyeOrta Seviye
FormatOnline / Yüz Yüze / Hibrit
Sertifika✓ Var
Hemen Bilgi Al
İlgili Eğitimler

Bu Eğitimle Birlikte Tercih Edilenler

Yazılım Mimarisi ve Tasarım DesenleriObject-oriented Programming & Design Basics Eğitimi
Yazılım Geliştirme Eğitimleri

Object-oriented Programming & Design Basics Eğitimi

3 günTemelOnline / Yüz Yüze / Hibrit

OOP ve Design Basics eğitimi: sınıf, kalıtım, interface, SOLID, UML temelleri, temiz kod ve birim test. Java/C# ile temel seviye 3 gün.

Detayları Gör →
Yazılım Mimarisi ve Tasarım DesenleriOCUP UML Sertifikasyonu - UML Orta Düzey Sınavına Hazırlanma. Eğitimi
Yazılım Geliştirme Eğitimleri

OCUP UML Sertifikasyonu - UML Orta Düzey Sınavına Hazırlanma. Eğitimi

3 günİleriOnline / Yüz Yüze / Hibrit

OCUP UML orta düzey sınav hazırlık eğitimi: gelişmiş sınıf, bileşen, durum, etkinlik ve sıra diyagramı semantiği, deneme sınavı. Sınav ücreti ilgili kuruma aitt

Detayları Gör →
Yazılım Mimarisi ve Tasarım DesenleriOCUP UML Sertifikasyonu - UML Temel Sınav Hazırlığı Eğitimi
Yazılım Geliştirme Eğitimleri

OCUP UML Sertifikasyonu - UML Temel Sınav Hazırlığı Eğitimi

3 günTemelOnline / Yüz Yüze / Hibrit

OCUP UML temel sınav hazırlık eğitimi: sınıf, use case, sıra, durum, etkinlik diyagramları, çözümlü sorular ve deneme sınavı. Sınav ücreti ilgili kuruma aittir.

Detayları Gör →
Yazılım Mimarisi ve Tasarım DesenleriProgramming Fundamentals: Object-oriented Programming Eğitimi
Yazılım Geliştirme Eğitimleri

Programming Fundamentals: Object-oriented Programming Eğitimi

2 günBaşlangıçOnline / Yüz Yüze / Hibrit

Programming Fundamentals OOP eğitimi: değişken, kontrol yapıları, metot, sınıf, kalıtım, koleksiyon, istisna ve birim test. Başlangıç seviyesi 2 gün.

Detayları Gör →
Yazılım Mimarisi ve Tasarım DesenleriRefactoring ML/DL Algorithms: Techniques & Principles Eğitimi
Yazılım Geliştirme Eğitimleri

Refactoring ML/DL Algorithms: Techniques & Principles Eğitimi

3 günİleriOnline / Yüz Yüze / Hibrit

ML/DL refactoring eğitimi: notebook'tan pakete, pytest, Strategy/Factory desenleri, profiling, MLflow ve CI ile üretime hazır ML kodu, 3 gün uygulamalı.

Detayları Gör →
+90 (501) 369 40 14 WhatsApp [email protected] LinkedIn