DEFENSIVE PROGRAMMING METHODS EĞİTİMİ

Hata olmadan önce kodu sağlamlaştır

Assertion, design by contract, fail-fast, değişmezlik ve en az yetki ilkeleriyle sağlam kod tasarlama yöntemleri

Assertion, design by contract, fail-fast, değişmezlik ve en az yetki yöntemleriyle sağlam kod tasarlamayı öğreten savunmacı programlama eğitimi.

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

Eğitim Hakkında

Kodun beklenmeyen durumlara karşı dayanıklılığını artıran yöntem seti

Bu eğitim, savunmacı programlamanın yöntem katalogunu ele alır: assertion ve invariant kullanımı, design by contract (ön koşul, son koşul, değişmez), fail-fast ve fail-safe farkı, null nesne deseni, Optional türleri, değişmez nesneler, savunmacı kopyalama, en az yetki ve sınır kontrolü. Her yöntem, ne zaman uygulanıp ne zaman aşırı mühendislik olacağı tartışmasıyla birlikte örneklenir.

Süre ve Format

2 Gün. Her gün dört modül; yöntem anlatımı, refaktör çalışması ve test yazımı oturumlarından oluşur.

Seviye

Orta Seviye — assertion, sözleşmeyle tasarım, fail-fast, değişmezlik ve savunmacı tasarım yöntemleri

Öğrenme Metodu

Kırılgan bir örnek uygulama adım adım yeniden düzenlenir; her yöntem eklendikçe test paketiyle sağlamlık kanıtlanır.

Neden Bu Eğitim?

🔩Yöntem kataloğu

Savunmacı programlamanın temel yöntemlerini ne zaman kullanacağınızı bilerek edinirsiniz.

♻️Refaktör pratiği

Kırılgan kodu davranışı bozmadan sağlam hale getirmeyi uygulayarak görürsünüz.

⚖️Denge kararı

Aşırı savunmacı kodun maliyetini ve doğru ölçüyü ayırt etmeyi öğrenirsiniz.

Anahtar Konular

defensive programming methodsdesign by contractassertion kullanımıfail fastimmutable nesnenull object patternsavunmacı programlamakod kalitesiclean coderefaktör
“Sağlam kod, hatayı beklemeyen değil, hatayı kurguya katan koddur.”

Ön Koşullar

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

1
Nesne yönelimli bilgi

Sınıf, arayüz ve kapsülleme kavramlarını bilmek gerekir.

2
Birim test deneyimi

JUnit, xUnit veya pytest ile basit test yazmış olmak faydalıdır.

3
Bir dilde akıcılık

Java, C# veya Python'dan birinde rahat kod okuyabilmek yeterlidir.

4
IDE ortamı

Çalışılan dilin IDE'si ve test koşucusu 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ı, assertion ve sözleşme kavramlarıyla kod varsayımlarını açıkça ifade eder.
Modül 1
Assertion Kullanımı
  • assert ifadesi ve üretimde devre dışı kalma sorunu
  • Assertion ile istisna arasındaki seçim
  • İç tutarlılık denetimi
  • Yan etkisiz assertion kuralı
  • Guard clause ve erken dönüş
  • Debug ve release derleme farkı
Modül 2
Design by Contract
  • Ön koşul, son koşul ve değişmez (invariant)
  • Liskov ilkesiyle sözleşme uyumu
  • Eiffel'den günümüze fikir mirası
  • Java Bean Validation ve Code Contracts
  • Sözleşmeyi dokümante etme
  • İhlal durumunda davranış tasarımı
Modül 3
Fail-Fast ve Fail-Safe
  • Hatanın erken ve gürültülü yüzeye çıkması
  • Fail-fast koleksiyon iteratörleri
  • Güvenli varsayılana düşme
  • Devre kesici (circuit breaker) mantığı
  • Kısmi hata ve zarif bozulma
  • Hangisinin nerede seçileceği
Modül 4
Sınır ve Aralık Kontrolü
  • Dizi sınırı ve indeks doğrulaması
  • Sayısal taşma kontrolleri
  • Boş koleksiyon ve tek eleman durumları
  • Zaman, saat dilimi ve kültür kenar durumları
  • Property-based test ile sınır keşfi
  • Karakter kodlaması sınırları
Günün hedefiKatılımcı, değişmezlik, kapsülleme ve en az yetki ilkesiyle hata yüzeyini küçültür.
Modül 1
Değişmezlik
  • Immutable nesne tasarımı
  • final, readonly ve record kullanımı
  • Savunmacı kopya ve kopya-yaz (copy-on-write)
  • Koleksiyonları dışarı açarken salt okunur görünüm
  • Thread güvenliğine katkısı
  • Builder ile geçerli nesne üretimi
Modül 2
Null ve Eksik Değer Yönetimi
  • Null referans hatasının maliyeti
  • Optional, Maybe ve nullable referans türleri
  • Null Object deseni
  • Kurucuda geçerlilik doğrulaması
  • Varsayılan değer politikaları
  • Static analiz ile null denetimi
Modül 3
Kapsülleme ve En Az Yetki
  • Erişim belirleyicilerinin sıkılaştırılması
  • Paket ve modül sınırları
  • Public API yüzeyini küçültme
  • Yetki ayrımı ve capability tasarımı
  • Güvenli varsayılan yapılandırma
  • Bağımlılık enjeksiyonunda sınır koruma
Modül 4
Sağlamlık Testi ve Refaktör
  • Karakterizasyon testleriyle başlama
  • Mutasyon testi ile test gücü ölçme
  • Kaos ve hata enjeksiyonu testleri
  • Kod kokusu: aşırı savunmacı kod
  • Yöntem seçimi karar matrisi
  • Takım içi savunmacı kodlama rehberi

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Assertion kullanımı

Assertion ile istisna arasındaki farkı bilerek doğru yerde doğru aracı seçebilirsiniz.

✅
Sözleşme tasarımı

Metotlar için ön koşul, son koşul ve değişmezleri açıkça tanımlayabilirsiniz.

✅
Fail-fast

Hataları gizlemek yerine erken ve anlaşılır biçimde yüzeye çıkaran kod yazabilirsiniz.

✅
Sınır testleri

Kenar durumları property-based testlerle sistematik biçimde yakalayabilirsiniz.

✅
Değişmez tasarım

Immutable nesnelerle yan etki kaynaklı hataları azaltabilirsiniz.

✅
Null güvenliği

Optional ve Null Object kalıplarıyla null kaynaklı çökmeleri önleyebilirsiniz.

✅
Yüzey daraltma

Public API yüzeyini küçülterek kötüye kullanım imkânını azaltabilirsiniz.

✅
Aşırı savunma dengesi

Savunmacı kodun gereksiz karmaşıklığa dönüştüğü noktayı fark edebilirsiniz.

Kimler İçin Uygundur?

  • Orta düzey yazılım geliştiriciler
  • kod kalitesinden sorumlu takım liderleri
  • sağlam API tasarlamak isteyen mühendisler

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Orta düzey yazılım geliştiriciler, kod kalitesinden sorumlu takım liderleri ve sağlam API tasarlamak isteyen mühendisler.
Assertion üretim kodunda kullanılmalı mı?
Eğitimde gösterildiği gibi assertion çoğu dilde release derlemesinde devre dışı kalabilir; bu yüzden doğrulama için istisna, iç varsayımlar için assertion tercih edilir.
Design by contract hangi dillerde uygulanabilir?
Eiffel'de yerleşiktir; Java, C# ve Python'da doğrulama kütüphaneleri ve disiplinle uygulanır.
Aşırı savunmacı kod sorun olur mu?
Evet; eğitimde gereksiz null kontrolleri ve sessiz hata yutma gibi aşırılıkların maliyeti de ele alınır.
Sertifika veriliyor mu?
Evet, Digital Vizyon Akademi Katılım ve Başarı Sertifikası verilir.

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 Programming Methods Eğitimi Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre2 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 Geliştirme GenelStakeholder Needs & Framework Integration Eğitimi
Yazılım Geliştirme Eğitimleri

Stakeholder Needs & Framework Integration Eğitimi

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

Stakeholder needs ve framework integration eğitimi: paydaş analizi, ihtiyaç elicitation, MoSCoW, BABOK, PMBOK, Agile ve ITIL çerçevelerinin entegrasyonu.

Detayları Gör →
Yazılım Geliştirme GenelSterling Order Management System: Extending the Application Eğitimi
Yazılım Geliştirme Eğitimleri

Sterling Order Management System: Extending the Application Eğitimi

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

Sterling Order Management genişletme eğitimi: pipeline, XML API, veri modeli uzantıları, Java user exit, özel API, ajan sunucuları ve sorun giderme.

Detayları Gör →
Yazılım Geliştirme GenelSysML ile Sistem Modelleme Eğitimi
Yazılım Geliştirme Eğitimleri

SysML ile Sistem Modelleme Eğitimi

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

SysML ile sistem modelleme eğitimi: temel diyagramlar, gereksinim, blok tanım, iç blok, aktivite, durum ve sıra diyagramı ile MBSE'ye giriş.

Detayları Gör →
Yazılım Geliştirme GenelSysML ve Enterprise Architect (EA) ile Sistem Modelleme Eğitimi
Yazılım Geliştirme Eğitimleri

SysML ve Enterprise Architect (EA) ile Sistem Modelleme Eğitimi

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

SysML ve Enterprise Architect (EA) eğitimi: EA SysML modelleme, gereksinim, BDD/IBD, parametrik simülasyon, izlenebilirlik, doküman üretimi ve ekip deposu.

Detayları Gör →
Yazılım Geliştirme GenelSystem Development Process Eğitimi
Yazılım Geliştirme Eğitimleri

System Development Process Eğitimi

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

System Development Process eğitimi: ISO 15288 yaşam döngüsü, gereksinim mühendisliği, mimari, entegrasyon, doğrulama ve onaylama, devreye alma ve bakım.

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