CLEAN CODING TECHNIQUES: DEFENSIVE PROGRAMMING, MVC, & DDD EĞİTİMİ

Temiz, savunmacı ve alan odaklı kod yazın

SOLID, savunmacı programlama, MVC katman ayrımı, DDD kavramları ve tasarım desenleri ile temiz kod

Clean Coding eğitimi, temiz kod ilkelerini savunmacı programlama, MVC ve Domain-Driven Design ile birleştirir. 4 gün boyunca laboratuvar uygulamalarıyla işlenir; katılımcılara Digital Vizyon Akademi Katılım ve Başarı Sertifikası verilir.

4 gün İleri Seviye Online / Yüz Yüze / Hibrit Sertifikalı

Eğitim Hakkında

C# ile savunmacı kodlama: null güvenliği, doğrulama, hata stratejileri, loglama ve test

Clean Coding eğitimi, temiz kod ilkelerini savunmacı programlama, MVC ve Domain-Driven Design ile birleştirir. SOLID, guard clause, nullable güvenliği, girdi doğrulama, hata stratejileri, loglama, ince controller, aggregate ve value object, tasarım desenleri, repository ve unit of work, mutasyon testi ve statik analiz dört günde uygulanır.

Süre ve Format

4 Gün. Her gün dört modül; her modülde hatalı kodu bulma, düzeltme ve test yazma döngüsü işlenir.

Seviye

İleri Seviye — 16 uygulamalı modülde SOLID ve temiz kod, Hata stratejileri ve Kaynak ve ömür yönetimi gibi konuları kapsar.

Öğrenme Metodu

Hatalı örnek kod önce çalıştırılıp bozulduğu nokta gösterilir, ardından savunmacı teknikler uygulanarak düzeltilir; testler ve analyzer'larla kazanım ölçülür.

Neden Bu Eğitim?

🛡️Hatayı baştan önleme

Null, sınır değeri ve eşzamanlılık kaynaklı hataların üretime çıkmadan nasıl yakalanacağını kod üzerinde görürsünüz.

🔎Teşhis edilebilir sistemler

Yapılandırılmış loglama, correlation ID ve doğru istisna tasarımıyla sorunu dakikalar içinde bulmayı öğrenirsiniz.

✅Ölçülebilir kalite

Roslyn analyzer, nullable uyarıları ve mutasyon testiyle kod kalitenizi sayısal olarak izlersiniz.

Anahtar Konular

clean coding: defensive programming, mvc ve ddd eğitimidefensive coding c#savunmacı kodlamac# hata yönetiminullable reference typesclean code c#c# exception handlingc# unit testserilogfluentvalidation
“Hata kaçınılmazdır; savunmacı kod, hatanın sessizce büyümesini engelleyen koddur.”

Ön Koşullar

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

1
C# deneyimi

Sınıf, arayüz, LINQ ve istisna yönetimi konularında temel-orta düzey C#.

2
Birim test farkındalığı

xUnit veya NUnit ile basit test yazma deneyimi faydalıdır.

3
Kurulu ortam

Visual Studio 2022 ve güncel .NET SDK kurulu bilgisayar.

4
Gerçek proje kodu

Kendi projenizden örnek kod getirmek tartışmayı zenginleştirir (zorunlu değil).

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ı gün sonunda SOLID ve temiz kod, Koruma blokları ve sözleşmeyle tasarım, Null güvenliği ve Girdi doğrulama başlıklarını çalışan örnek kod üzerinde uygulayarak "SOLID, sözleşme, null ve doğrulama" konusunda bağımsız çalışabilir hale gelir.
Modül 1
SOLID ve temiz kod
  • Single Responsibility ve Open/Closed ilkelerinin C# örnekleriyle uygulanması
  • Liskov ve Interface Segregation ihlallerinin tespiti
  • Dependency Inversion ve Microsoft.Extensions.DependencyInjection ile kompozisyon kökü
  • Anlamlı isimlendirme, kısa metotlar ve yorum yerine ifade eden kod
  • Kod kokuları: Long Method, God Class, Feature Envy ve yeniden yapılandırma adımları
  • Strategy, Factory ve Decorator tasarım desenlerinin pratik kullanımı
Modül 2
Koruma blokları ve sözleşmeyle tasarım
  • Guard clause deseni ve erken çıkış ile iç içe if'lerin azaltılması
  • ArgumentNullException.ThrowIfNull ve ArgumentOutOfRangeException.ThrowIfNegative kullanımı
  • Ön koşul, son koşul ve değişmezlik (invariant) kavramları
  • Debug.Assert ile geliştirme zamanı doğrulama ve Release farkı
  • Metot sözleşmesini dokümante eden XML yorumları ve nitelikler
  • Public API sınırında doğrulama, iç kodda güven ilkesi
Modül 3
Null güvenliği
  • Nullable reference types ile NullReferenceException'ın derleme zamanında yakalanması
  • ?, !, ?., ??= operatörleri ve null-forgiving kullanımının riskleri
  • [NotNull], [MaybeNull], [NotNullWhen] gibi nullability öznitelikleri
  • Null Object deseni ve boş koleksiyon döndürme ilkesi
  • Nullable uyarılarını hata sayma (WarningsAsErrors) ve kademeli geçiş
  • Option/Maybe benzeri sarmalayıcılar ve TryGet kalıbı
Modül 4
Girdi doğrulama
  • TryParse kalıbı ve kültüre duyarlı sayı/tarih ayrıştırma
  • DataAnnotations ve FluentValidation ile kural tabanlı doğrulama
  • Beyaz liste yaklaşımı, uzunluk ve aralık kontrolleri
  • Regex timeout ve ReDoS riskinin azaltılması
  • checked bağlamı ile tamsayı taşmasını yakalama
  • SQL enjeksiyonu ve path traversal gibi girdi kaynaklı zafiyetlerden korunma
Günün hedefiKatılımcı gün sonunda Hata stratejileri, Loglama ve izlenebilirlik, MVC katmanında savunmacı yaklaşım ve ASP.NET Core MVC controller ve view başlıklarını çalışan örnek kod üzerinde uygulayarak "Hata, loglama ve MVC katmanı" konusunda bağımsız çalışabilir hale gelir.
Modül 1
Hata stratejileri
  • İstisna mı Result<T> mı: beklenen ve beklenmeyen hataların ayrımı
  • Fail-fast ilkesi ve hatayı gizlemenin maliyeti
  • Özel istisna hiyerarşisi tasarımı ve anlamlı mesajlar
  • Polly ile retry, timeout ve circuit breaker politikaları
  • İstisna filtreleri, catch-when ve yeniden fırlatma kuralları
  • Üst katmanda merkezi hata yakalama ve kullanıcıya güvenli mesaj
Modül 2
Loglama ve izlenebilirlik
  • ILogger<T> ve log seviyeleri (Trace–Critical)
  • Serilog ile yapılandırılmış (structured) loglama ve sink'ler
  • Correlation ID ile istekleri uçtan uca izleme
  • Hassas verinin loglara sızmasını önleme (maskeleme)
  • Exception.Data ve bağlam bilgisinin hata raporuna eklenmesi
  • Üretimde log analizi: Seq/ELK ile arama ve uyarı kuralları
Modül 3
MVC katmanında savunmacı yaklaşım
  • Controller'ları ince tutma ve iş mantığını servis katmanına taşıma
  • ViewModel ile domain modelini dışarıya sızdırmama
  • ModelState doğrulaması ve overposting'e karşı Bind/DTO kullanımı
  • Antiforgery token ve CSRF korunması
  • Merkezi hata filtresi ve özel hata sayfaları
  • Sunum katmanında ham hata mesajlarını gizleme
Modül 4
ASP.NET Core MVC controller ve view
  • Controller, IActionResult ve [ApiController] ile [Route] kullanımı
  • Conventional ve attribute routing, endpoint routing mantığı
  • Razor view'ları, _ViewImports, _ViewStart ve tag helper'lar
  • View component ile yeniden kullanılabilir arayüz parçaları
  • Model binding, [FromBody], [FromQuery] ve doğrulama
  • Filtre türleri: Authorization, Resource, Action, Exception, Result ve sıralama
Günün hedefiKatılımcı gün sonunda Savunmacı alan modeli ve DDD, Tasarım desenleri, EF ile uygulama entegrasyonu ve Birim test pratikleri başlıklarını çalışan örnek kod üzerinde uygulayarak "DDD, desenler, veri erişimi ve test" konusunda bağımsız çalışabilir hale gelir.
Modül 1
Savunmacı alan modeli ve DDD
  • Entity, Value Object ve Aggregate kavramları
  • Value object'lerde doğrulamayı yapıcıya gömme (Money, Email)
  • Aggregate root üzerinden değişmezlikleri koruma
  • Repository ve Unit of Work soyutlamaları
  • Domain event'ler ve yan etkilerin ayrıştırılması
  • Ortak dil (ubiquitous language) ve bounded context sınırları
Modül 2
Tasarım desenleri
  • Factory Method ve Abstract Factory ile nesne üretimi
  • Strategy ve State ile davranışı değiştirilebilir kılma
  • Decorator ve Adapter ile mevcut sınıfları sarmalama
  • Observer ve Mediator (MediatR) ile gevşek bağlılık
  • Repository ve Unit of Work desenleri
  • Singleton'ın tuzakları ve DI ile yaşam süresi yönetimi
Modül 3
EF ile uygulama entegrasyonu
  • Repository ve Unit of Work desenlerinin gerekliliği tartışması
  • DbContext'in DI ile scoped kaydı ve yaşam süresi
  • ASP.NET controller / servis katmanında EF kullanımı
  • Çoklu veritabanı ve çok kiracılı (multi-tenant) global query filter
  • Soft delete, denetim alanları (CreatedAt / UpdatedBy) ve SaveChanges interceptor
  • EF Core InMemory ve SQLite ile test stratejileri
Modül 4
Birim test pratikleri
  • xUnit ile [Fact], [Theory] ve [InlineData] kullanımı
  • Arrange-Act-Assert düzeni ve test adlandırma standartları
  • Moq ile bağımlılık taklidi: Setup, Returns, Verify
  • FluentAssertions ile okunabilir doğrulamalar
  • Test edilebilir tasarım: constructor injection ve arayüz çıkarma
  • Kod kapsama (coverlet) raporu ve anlamlı kapsama hedefi belirleme
Günün hedefiKatılımcı gün sonunda Savunmacı test teknikleri, Statik analiz ve kod kalitesi, Değişmezlik ve eşzamanlılık güvenliği ve Kaynak ve ömür yönetimi başlıklarını çalışan örnek kod üzerinde uygulayarak "Test, analiz, eşzamanlılık ve kaynak" konusunda bağımsız çalışabilir hale gelir.
Modül 1
Savunmacı test teknikleri
  • Sınır değer ve eşdeğerlik sınıfı analizi
  • Negatif testler: geçersiz girdi, null, boş koleksiyon, aşırı büyük değer
  • FsCheck ile özellik tabanlı (property-based) test
  • Stryker.NET ile mutasyon testi ve test kalitesinin ölçümü
  • Test çiftleri (fake, stub, mock) ile hata enjeksiyonu
  • Hata durumlarını yeniden üreten regresyon testleri
Modül 2
Statik analiz ve kod kalitesi
  • Roslyn analyzer'ları ve CA kuralları (CA1062, CA2000 vb.)
  • .editorconfig ile ekip genelinde kural şiddeti belirleme
  • SonarLint/SonarQube ile kod kokusu ve zafiyet taraması
  • StyleCop ile biçim tutarlılığı
  • CI hattında uyarıları hata sayarak derlemeyi durdurma
  • Kod inceleme (code review) kontrol listesi: savunmacı kodlama maddeleri
Modül 3
Değişmezlik ve eşzamanlılık güvenliği
  • readonly, init ve record ile değişmez nesneler
  • ImmutableList/ImmutableDictionary ve savunmacı kopya (defensive copy)
  • lock, Monitor ve Interlocked ile kritik bölge koruması
  • ConcurrentDictionary ve thread-safe koleksiyonlar
  • Race condition ve deadlock örneklerinin yeniden üretilmesi
  • Paylaşılan durumu en aza indirme: stateless servis tasarımı
Modül 4
Kaynak ve ömür yönetimi
  • using, await using ve IDisposable/IAsyncDisposable deseni
  • SafeHandle ve yönetilmeyen kaynakların güvenli sarılması
  • Bağlantı havuzu, HttpClient ömrü ve soket tükenmesi
  • Zaman aşımı ve CancellationToken ile asılı kalan işlemleri sonlandırma
  • Bellek sızıntısı kaynakları: olay aboneliği, statik referans
  • Zarif kapanış (graceful shutdown) ve IHostApplicationLifetime

Eğitim Kazanımları

Program sonunda katılımcılar:

📐
Sözleşme tasarımı

Guard clause ve ön koşullarla metot sınırlarını net tanımlayabilirsiniz.

🚫
Null güvenliği

Nullable reference types ile NullReferenceException'ı derleme aşamasında yakalayabilirsiniz.

🧾
Girdi doğrulama

TryParse, FluentValidation ve whitelist yaklaşımıyla güvenli girdi işleyebilirsiniz.

⚠️
Hata stratejisi

İstisna ile Result kalıbı arasında bilinçli seçim yapabilirsiniz.

📜
Loglama

ILogger ve Serilog ile üretimde işe yarayan loglar üretebilirsiniz.

🔒
Eşzamanlılık

Değişmezlik ve kilitleme tekniklerini kullanarak thread güvenli kod yazabilirsiniz.

🧪
Savunmacı test

Sınır değer, negatif ve özellik tabanlı testler tasarlayabilirsiniz.

🔧
Statik analiz

Analyzer ve .editorconfig ile ekip standardını otomatik zorlayabilirsiniz.

Kimler İçin Uygundur?

  • Orta ve ileri düzey C# geliştiricileri
  • takım liderleri
  • kod kalitesini artırmak isteyen mimarlar için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Orta ve ileri düzey C# geliştiricileri, takım liderleri ve kod kalitesini artırmak isteyen mimarlar için uygundur.
Savunmacı kodlama performansı düşürür mü?
Doğru uygulandığında etkisi ihmal edilebilir; hangi kontrolün sınırda, hangisinin iç kodda yapılacağı eğitimde tartışılır.
Hangi araçlar kullanılacak?
Visual Studio, Roslyn analyzer'lar, xUnit, Moq, FluentValidation ve Serilog kullanılır.
Mevcut projeme uygulayabilir miyim?
Evet; nullable'ı kademeli açma ve analyzer'ları ekleme yöntemleri mevcut kod tabanları için gösterilir.
Eğitim sonunda sertifika alacak mıyım?
Eğitimi tamamlayan katılımcılara Digital Vizyon Akademi Katılım ve Başarı Sertifikası verilir. Üçüncü taraf kurumların resmi sınavları (varsa) ayrı olup başvurusu ve ücreti ilgili kuruma aittir.

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. Clean Coding Techniques: Defensive Programming, MVC, & DDD E Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

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

Bu Eğitimle Birlikte Tercih Edilenler

C# ve .NETGelişmiş Blazor Eğitimi
Yazılım Geliştirme Eğitimleri

Gelişmiş Blazor Eğitimi

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

Gelişmiş Blazor eğitimi: Blazor render modları, gelişmiş bileşenler, SignalR, güvenlik, Hybrid ve performans. Uygulamalı 4 gün, Digital Vizyon Akademi.

Detayları Gör →
C# ve .NETGelişmiş C# Otomasyon Test Mühendisleri için Kurs Eğitimi
Yazılım Geliştirme Eğitimleri

Gelişmiş C# Otomasyon Test Mühendisleri için Kurs Eğitimi

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

Gelişmiş C# Test Otomasyonu eğitimi: Test mühendisleri için ileri C#, Selenium, API testi, test çerçevesi tasarımı ve CI entegrasyonu. 4 gün uygulamalı, DVA.

Detayları Gör →
C# ve .NETGetting Started with Programming in C# .Net Core for Non-Developers (TTCN10975) Eğitimi
Yazılım Geliştirme Eğitimleri

Getting Started with Programming in C# .Net Core for Non-Developers (TTCN10975) Eğitimi

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

Yazılımcı Olmayanlar için C# .NET Core eğitimi: Yazılımcı olmayanlar için C# ve .NET Core: algoritma, temel sözdizimi, sınıflar, koleksiyonlar ve dosya işleme.

Detayları Gör →
C# ve .NETGetting Started with REST & .NET Core Eğitimi
Yazılım Geliştirme Eğitimleri

Getting Started with REST & .NET Core Eğitimi

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

REST ve .NET Core'a Başlangıç eğitimi: REST ilkeleri, ASP.NET Core Web API, DI, HttpClient, JWT kimlik doğrulama, test ve yayınlama. 2 gün uygulamalı, DVA.

Detayları Gör →
C# ve .NETIntroduction to .NET Core for Web Services Eğitimi
Yazılım Geliştirme Eğitimleri

Introduction to .NET Core for Web Services Eğitimi

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

Web Servisleri için .NET Core Girişi eğitimi: SOAP, REST ve gRPC kavramları, ASP.NET Core servisleri, EF Core veri erişimi, kimlik doğrulama ve test.

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