DEFENDABLE CODE AND ERRORS FOR C# EĞİTİMİ

Savunulabilir kod ve sağlam hata yönetimi yazın

C# ile null güvenliği, girdi doğrulama, hata stratejisi, loglama, kaynak yönetimi ve savunmacı test

Bu eğitim C# kodunu hatalara karşı savunulabilir hale getirmeyi ele alır. 3 gün boyunca laboratuvar uygulamalarıyla işlenir; katılımcılara Digital Vizyon Akademi Katılım ve Başarı Sertifikası verilir.

3 gün Orta 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

Bu eğitim C# kodunu hatalara karşı savunulabilir hale getirmeyi ele alır. Guard clause, nullable reference types, TryParse ve FluentValidation ile doğrulama, istisna hiyerarşisi, Polly ile dayanıklılık, Serilog ile loglama, IDisposable ve kaynak yönetimi, değişmezlik ve kilitleme, sınır değer testleri ve statik analiz örneklerle uygulanır.

Süre ve Format

3 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

Orta Seviye — 12 uygulamalı modülde Koruma blokları ve sözleşmeyle tasarım, Hata stratejileri ve Birim test pratikleri 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

defendable code ve hata yönetimi (c#) 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 Koruma blokları ve sözleşmeyle tasarım, Null güvenliği, Girdi doğrulama ve İstisna yönetimi başlıklarını çalışan örnek kod üzerinde uygulayarak "Sözleşme, null, doğrulama ve istisna" konusunda bağımsız çalışabilir hale gelir.
Modül 1
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 2
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 3
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
Modül 4
İstisna yönetimi
  • try/catch/finally akışı ve catch sıralaması
  • Exception filter (catch when) ile koşullu yakalama
  • Özel istisna sınıfı tasarımı ve InnerException zinciri
  • throw ile throw ex farkı ve yığın izinin korunması
  • using ve IDisposable ile kaynak serbest bırakma, await using
  • Global istisna yakalama: AppDomain.UnhandledException ve TaskScheduler.UnobservedTaskException
Günün hedefiKatılımcı gün sonunda Hata stratejileri, Loglama ve izlenebilirlik, Kaynak ve ömür yönetimi ve Değişmezlik ve eşzamanlılık güvenliği başlıklarını çalışan örnek kod üzerinde uygulayarak "Hata stratejisi, loglama, kaynak ve eşzamanlılık" 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
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
Modül 4
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ı
Günün hedefiKatılımcı gün sonunda Savunmacı test teknikleri, Statik analiz ve kod kalitesi, Asenkron programlama ve Birim test pratikleri başlıklarını çalışan örnek kod üzerinde uygulayarak "Test, analiz, async ve birim test" 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
Asenkron programlama
  • Task, Task<T> ve async/await derleyici durum makinesi
  • Task.WhenAll, Task.WhenAny ile paralel I/O birleştirme
  • CancellationToken ile iptal ve zaman aşımı yönetimi
  • async void tuzakları, .Result/.Wait() kaynaklı deadlock
  • ConfigureAwait(false) ne zaman anlamlıdır, SynchronizationContext
  • IAsyncEnumerable<T> ve await foreach ile akış verisi, ValueTask kullanımı
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

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?

  • Üretimde hata ayıklamakla zaman kaybeden C# geliştiricileri
  • kod gözden geçirme sorumluları için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Üretimde hata ayıklamakla zaman kaybeden C# geliştiricileri ve kod gözden geçirme sorumluları 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. Defendable Code and Errors for C# 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

C# ve .NETC#.Net Uygulama Geliştirme için Eğitimi
Yazılım Geliştirme Eğitimleri

C#.Net Uygulama Geliştirme için Eğitimi

4 günOrtaOnline / Yüz Yüze / Hibrit

C#.Net ile Uygulama Geliştirme eğitimi: OOP, generic, LINQ, delegate, async, EF veri erişimi, birim test ve SOLID ile uygulama geliştirme. 4 gün uygulamalı, DVA

Detayları Gör →
C# ve .NETClean Coding Techniques: Defensive Programming, MVC, & DDD Eğitimi
Yazılım Geliştirme Eğitimleri

Clean Coding Techniques: Defensive Programming, MVC, & DDD Eğitimi

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

Clean Coding: Defensive Programming, MVC ve DDD eğitimi: SOLID, savunmacı programlama, MVC katman ayrımı, DDD kavramları ve tasarım desenleri ile temiz kod.

Detayları Gör →
C# ve .NETCreating Web Applications with MVC Eğitimi
Yazılım Geliştirme Eğitimleri

Creating Web Applications with MVC Eğitimi

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

MVC ile Web Uygulamaları Oluşturma eğitimi: ASP.NET MVC ile routing, view, form, Ajax, kimlik doğrulama, Entity Framework ve yayınlama. 3 gün uygulamalı, DVA.

Detayları Gör →
C# ve .NETCrystal Report .NET Eğitimi
Yazılım Geliştirme Eğitimleri

Crystal Report .NET Eğitimi

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

Crystal Reports .NET eğitimi: Rapor tasarımı, formül, gruplama, alt rapor ve .NET uygulamasında CrystalReportViewer entegrasyonu. 3 gün uygulamalı, DVA.

Detayları Gör →
C# ve .NETDefensive Coding for C# Eğitimi
Yazılım Geliştirme Eğitimleri

Defensive Coding for C# Eğitimi

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

C# için Defensive Coding eğitimi: Guard clause, nullable güvenliği, girdi doğrulama, hata ve kaynak yönetimi, eşzamanlılık ve domain koruması. 3 gün uygulamalı,

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