DEFENSIVE C++: DEFENSIVE PROGRAMMING & DEFENSIVE DESIGN EĞİTİMİ

Hataya dayanıklı C++ tasarla

Savunmacı programlama, savunmacı tasarım, girdi doğrulama ve hata politikaları

Defensive C++: Programming ve Design eğitimi; Savunmacı Düşünce Modeli, Girdi Doğrulama, assert, Ön ve Son Koşullar, Derleyici ve Araç Desteği ve daha fazlası. 2 gün, uygulamalı lab çalışmaları, Digital Vizyon Akademi katılım sertifikası.

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

Eğitim Hakkında

Savunmacı Programlama ve Savunmacı Tasarım ekseninde ilerleyen uygulamalı program

Bu eğitim C++ kodunda defensive programming ile defensive design ayrımını işler: girdi doğrulama, ön koşul ve son koşul kontrolleri, assert ile hata yönetiminin ayrımı, invariant koruyan sınıf tasarımı, güçlü tipler, RAII ve const-correctness. Katman sınırlarında güven modeli, hata dönüş stratejileri (exception, std::expected, hata kodu), derleyici uyarıları, statik analiz ve sanitizer araçlarıyla savunma hatları kurulur.

Süre ve Format

2 Gün. Her gün dört modül; 1. gün Savunmacı Programlama; 2. gün Savunmacı Tasarım.

Seviye

İleri Seviye — Savunmacı programlama, savunmacı tasarım, girdi doğrulama ve hata politikaları

Öğrenme Metodu

Her modülde kısa konu anlatımının ardından g++/clang++ ile derlenen kod egzersizleri yapılır; sanitizer ve derleyici uyarılarıyla hatalar birlikte ayıklanır.

Neden Bu Eğitim?

💻Kod Odaklı Öğrenme

Defensive C++: Programming ve Design konuları her modülde yazıp çalıştırdığınız egzersizlerle pekiştirilir; teori kodla birlikte ilerler.

🐞Gerçek Hata Örnekleri

Sahada sık görülen hatalar bilinçli olarak üretilir, nedenleri incelenir ve kalıcı çözüm kalıpları gösterilir.

🎓Katılım Sertifikası

Eğitimi tamamlayan katılımcılar Digital Vizyon Akademi Katılım ve Başarı Sertifikası alır.

Anahtar Konular

Defensive C++: Programming ve Design eğitimiDefensive C++: Programming ve Design kursudefensive programming C++savunmacı programlamagüvenli C++C++ girdi doğrulamaRAIIstatic analysis C++Digital Vizyon Akademi
“Güvenilir yazılım, yanlış kullanımın zor olduğu yazılımdır.”

Ön Koşullar

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

1
C++ Temelleri

Değişken, fonksiyon, sınıf ve işaretçi kavramlarına temel düzeyde aşinalık beklenir.

2
Derleyici Ortamı

g++ / clang++ veya MSVC ile C++17 standardında derleme yapabilen bir kurulum gerekir.

3
Komut Satırı

Derleme çıktılarını ve hata mesajlarını okuyabilecek kadar terminal alışkanlığı faydalıdır.

4
Editör veya IDE

VS Code, CLion ya da Visual Studio gibi bir geliştirme ortamı hazır olmalıdır.

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ı girdi doğrulama ve ön/son koşul kontrollerini hata politikasına uygun biçimde uygular.
Modül 1
Savunmacı Düşünce Modeli
  • Güven sınırı (trust boundary) ve doğrulanmamış girdi kavramı
  • Defensive programming ile hata gizleme arasındaki fark
  • Fail fast ve fail safe stratejileri
  • Hata sınıfları: programcı hatası, çalışma zamanı hatası, ortam hatası
  • Savunma maliyeti ve performans dengesi
  • Gerçek zafiyet örnekleri üzerinden vaka analizi
Modül 2
Girdi Doğrulama
  • Boyut, aralık ve biçim doğrulaması
  • std::from_chars ile sayısal dönüştürme ve hata kontrolü
  • std::string_view ile kopyasız güvenli ayrıştırma
  • Tamsayı taşması ve işaretli-işaretsiz dönüşüm kontrolleri
  • İzin listesi (allowlist) yaklaşımı
  • Dosya ve ağ girdisinde uzunluk sınırı
Modül 3
assert, Ön ve Son Koşullar
  • assert, static_assert ve NDEBUG etkisi
  • Programcı hatası için assert, çalışma zamanı hatası için istisna ayrımı
  • Fonksiyon ön koşulu ve son koşulu belgeleme
  • Sınıf invariant'ı ve denetim fonksiyonu
  • [[nodiscard]] ile dönüş değerinin yok sayılmasını önleme
  • gsl::Expects/Ensures kavramı
Modül 4
Derleyici ve Araç Desteği
  • Wall -Wextra -Wconversion -Werror ayarları
  • clang-tidy ve cppcheck ile statik analiz
  • AddressSanitizer ve UndefinedBehaviorSanitizer kullanımı
  • D_GLIBCXX_ASSERTIONS ile standart kütüphane denetimleri
  • Fuzzing'e giriş (libFuzzer)
  • CI içinde bu denetimlerin otomatikleştirilmesi
Günün hedefiKatılımcı yanlış kullanımı derleme zamanında imkansız kılan arayüzler tasarlar.
Modül 1
Güçlü Tipler ve Arayüzler
  • Ham int/double yerine anlamlı tipler (Meter, UserId)
  • explicit constructor ile örtük dönüşümü engelleme
  • enum class ile tip güvenliği
  • Parametre sırası hatalarını önleyen builder/yapı kullanımı
  • std::chrono::duration ile birim güvenliği
  • Yanlış kullanımın derlenmemesi hedefi
Modül 2
RAII ve Kaynak Güvenliği
  • Kaynak edinimi başlatmadır ilkesi
  • std::unique_ptr, std::lock_guard, dosya sarmalayıcıları
  • Destructor'ın istisna fırlatmaması (noexcept)
  • Rule of Zero ile elle sahiplik yönetiminden kaçınma
  • Sahiplik semantiğinin arayüzde ifade edilmesi
  • Raw new/delete kullanımının tespit ve kaldırılması
Modül 3
const-correctness ve Değişmezlik
  • const üye fonksiyonlar ve mantıksal sabitlik
  • const referans parametreler ve kopyasız geçiş
  • constexpr ile derleme zamanı doğrulama
  • mutable kullanımının sınırları
  • Değişmez nesne tasarımı ve iş parçacığı güvenliği
  • std::span ile sınır bilgisi taşıyan görünüm
Modül 4
Hata Dönüş Stratejileri
  • İstisna, hata kodu, std::optional ve std::expected karşılaştırması
  • noexcept belirtiminin anlamı
  • Hata arayüzünde kaynak sızıntısı önleme (strong guarantee)
  • Katmanlar arası hata çevirisi
  • Logging ile hata bağlamı kaydı
  • Hata politikası belgesi hazırlama

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Güven Sınırı

Doğrulanmamış girdi noktalarını belirleyip savunma hatlarını konumlandırabilirsiniz

✅
Girdi Doğrulama

Aralık, boyut ve biçim kontrollerini güvenli kütüphane işlevleriyle yazabilirsiniz

✅
assert Politikası

Programcı hatası ile çalışma zamanı hatasını doğru mekanizmayla ayırabilirsiniz

✅
Analiz Araçları

Sanitizer ve statik analiz araçlarını CI hattına entegre edebilirsiniz

✅
Güçlü Tipler

Yanlış kullanımı derleme zamanında engelleyen arayüzler tasarlayabilirsiniz

✅
RAII Uygulaması

Kaynak sızıntılarını RAII sarmalayıcılarıyla kalıcı olarak önleyebilirsiniz

✅
const Disiplini

const ve constexpr ile değişmezlik garantilerini koda gömebilirsiniz

✅
Hata Stratejisi

Projeye uygun hata dönüş politikasını belirleyip belgeleyebilirsiniz

Kimler İçin Uygundur?

  • Üretim ortamında C++ kodu yazan
  • güvenlik
  • dayanıklılığı önemseyen yazılımcılar ile kod gözden geçiren kıdemli geliştiriciler için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Üretim ortamında C++ kodu yazan, güvenlik ve dayanıklılığı önemseyen yazılımcılar ile kod gözden geçiren kıdemli geliştiriciler için uygundur.
Eğitimde hangi konular işlenir?
Program 2 gün sürer ve şu modülleri içerir: Savunmacı Düşünce Modeli, Girdi Doğrulama, assert, Ön ve Son Koşullar, Derleyici ve Araç Desteği, Güçlü Tipler ve Arayüzler, RAII ve Kaynak Güvenliği, const-correctness ve Değişmezlik, Hata Dönüş Stratejileri.
Defensive programming performansı düşürür mü?
Bazı denetimler maliyetlidir; eğitimde Debug/Release ayrımı, assert ve ölçüm yoluyla savunma ile performans arasındaki denge kurulur.
Eğitim güvenlik açığı sömürmeyi öğretir mi?
Hayır, odak savunmadır: açığa yol açan kalıpları tanıyıp güvenli alternatiflerini yazmayı öğretir.
Eğitim sonunda sertifika verilir mi?
Eğitimi tamamlayan katılımcılara Digital Vizyon Akademi Katılım ve Başarı Sertifikası verilir; programın dışında bir resmi sınav söz konusu değildir.

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. Defensive C++: Defensive Programming & Defensive Design Eğit Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre2 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 C++OOP in C++: Instantiating Objects Using Constructors Eğitimi
Yazılım Geliştirme Eğitimleri

OOP in C++: Instantiating Objects Using Constructors Eğitimi

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

OOP in C++: Constructor ile Nesne Oluşturma eğitimi: Constructor Temelleri ve İleri Nesne Oluşturma uygulamalı lab çalışmalarıyla işlenir. DVA katılım sertifika

Detayları Gör →
C ve C++OOP in C++: Using Static Members & Destructors Eğitimi
Yazılım Geliştirme Eğitimleri

OOP in C++: Using Static Members & Destructors Eğitimi

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

OOP in C++: Static Üyeler ve Destructor eğitimi: Static Üyeler ve Destructor ve Kaynak Yönetimi konularını uygulamalı örneklerle öğrenin. DVA katılım sertifikal

Detayları Gör →
C ve C++OOP in C++: Using the this Pointer & const Members Eğitimi
Yazılım Geliştirme Eğitimleri

OOP in C++: Using the this Pointer & const Members Eğitimi

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

OOP in C++: this İşaretçisi ve const Üyeler eğitimi: this İşaretçisi ve const Üyeler ve const-correctness uygulamalı lab çalışmalarıyla işlenir. DVA katılım ser

Detayları Gör →
C ve C++Pointers and References in C++: Allocating Memory with New & Delete Operators Eğitimi
Yazılım Geliştirme Eğitimleri

Pointers and References in C++: Allocating Memory with New & Delete Operators Eğitimi

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

C++ new ve delete ile Bellek Tahsisi eğitimi: 2 gün, uygulamalı kod egzersizleri ve DVA katılım sertifikası ile konuyu uçtan uca öğrenin.

Detayları Gör →
C ve C++Pointers and References in C++: Getting Started with Pointers Eğitimi
Yazılım Geliştirme Eğitimleri

Pointers and References in C++: Getting Started with Pointers Eğitimi

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

C++ İşaretçilere Giriş eğitimi: İşaretçi Kavramı ve Diziler, Aritmetik ve Hatalar konularını uygulamalı örneklerle öğrenin. DVA katılım sertifikalı program.

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