EFFECTIVE JAVA PROGRAMMING EĞİTİMİ

Java'yı doğru ve idiomatik yazmayı öğrenin

Effective Java ilkeleriyle nesne tasarımı, generics, enum, stream, istisna, eşzamanlılık ve API tasarımı.

Effective Java ilkelerini nesne oluşturma, sözleşmeler, generics, lambda, istisna ve eşzamanlılık başlıklarında uygulatan 3 günlük ileri Java eğitimi.

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

Eğitim Hakkında

Effective Java ilkeleri ve kod inceleme pratiği

Eğitim Effective Java ilkelerini uygulamalı olarak işler: statik fabrika ve Builder, bağımlılık enjeksiyonu, equals/hashCode/compareTo sözleşmeleri, değişmezlik ve kompozisyon, PECS ve generics, EnumMap/EnumSet, lambda ve stream kullanım ölçüsü, istisna seçimi, savunmacı kopya, thread-safety, serileştirme alternatifleri ve gerçek kod parçalarında ihlal avı.

Süre ve Format

3 Gün. Her gün dört modül; Nesne Oluşturma ve Sözleşmeler; Enum, Lambda, İstisna ve Eşzamanlılık; API Tasarımı, Performans ve İnceleme ekseninde ilerleyen uygulamalı program.

Seviye

İleri Seviye — Joshua Bloch'un Effective Java ilkeleri: nesne oluşturma, sözleşmeler, generics, enum, lambda, istisna ve eşzamanlılık

Öğrenme Metodu

Her ilke bir 'önce/sonra' kod örneğiyle gösterilir; son gün katılımcılar gerçek kod parçalarında ihlalleri bulup düzeltir.

Neden Bu Eğitim?

📖İlkelerle kod

Dilin sözleşmelerini bilerek hatasız ve idiomatik kod yazarsınız.

🧪Kod inceleme gözü

Başkalarının kodunda yaygın hataları hızla bulursunuz.

🧰API tasarımı

Kullanımı kolay ve güvenli API'ler tasarlarsınız.

Anahtar Konular

Effective JavaJava best practicesJava Builder deseniequals hashCodeJava generics PECSJava enumJava kod incelemeJoshua BlochJava immutableJava API tasarımı
“İyi Java kodu, derlenen değil; yıllarca bakımı yapılabilen koddur.”

Ön Koşullar

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

1
Java bilgisi

Sınıf, interface, koleksiyon ve istisna kavramlarına temel hakimiyet.

2
Komut satırı

Terminal ve temel Linux/Windows komutları.

3
Geliştirme ortamı

JDK 17+ ve IntelliJ IDEA veya Eclipse kurulu bir bilgisayar.

4
Maven/Git

Maven ile derleme ve temel git bilgisi.

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ı nesne oluşturma kalıplarını ve Object sözleşmelerini doğru uygular.
Modül 1
Nesne Oluşturma ve Yok Etme
  • Yapıcı yerine statik fabrika metotları ve isimlendirme (of, from, valueOf)
  • Çok parametrede Builder deseni ve telescoping constructor sorunu
  • Enum ile singleton ve özel yapıcı ile örneklenemezlik
  • Bağımlılık enjeksiyonu: kaynakları sabitlemek yerine dışarıdan vermek
  • Gereksiz nesne üretiminden kaçınma: autoboxing, Pattern önbelleği
  • Eski nesne referanslarını temizleme, try-with-resources ve finalize/Cleaner'dan kaçınma
Modül 2
Object Metotları: equals, hashCode, Comparable
  • equals sözleşmesi: yansıma, simetri, geçişlilik, tutarlılık
  • hashCode sözleşmesi ve equals ile birlikte yazılması
  • toString'in okunur biçimi; record ile otomatik üretim
  • clone yerine kopya yapıcı/fabrika
  • Comparable ve compareTo sözleşmesi, Comparator.comparing zinciri
  • Lombok/record kullanımının sözleşmelere etkisi
Modül 3
Sınıf ve Arayüz Tasarımı
  • Erişilebilirliği en aza indirme ve public alan yerine erişimci
  • Değişmez (immutable) sınıf yazım kuralları
  • Kalıtım yerine kompozisyon; kırılgan taban sınıf sorunu
  • Miras için tasarla ya da yasakla: final ve belgeleme
  • Soyut sınıf yerine arayüz ve default metotlar
  • İç içe sınıf türleri: statik, üye, anonim ve yerel sınıf seçimi
Modül 4
Generics ve Tip Güvenliği
  • Ham tip (raw type) kullanmama ve denetimsiz uyarılar (@SuppressWarnings)
  • Dizi yerine liste tercihi; invariance ve covariance
  • Genel metotlar ve sınırlı joker karakterler (PECS)
  • Tip güvenli heterojen kapsayıcılar (Class<T> anahtarı)
  • Varargs ve generics etkileşimi, @SafeVarargs
  • Recursive type bound: <T extends Comparable<T>>
Günün hedefiKatılımcı enum ve lambda/stream kullanım ölçüsünü, istisna seçimini ve thread-safety belgelendirmesini uygular.
Modül 1
Enum ve Annotation
  • int sabitleri yerine enum; davranışlı enum sabitleri
  • EnumSet ve EnumMap kullanımı, ordinal() kullanmama
  • Strateji enum deseni ve arayüz ile genişletilebilir enum
  • İşaretleyici arayüz ve annotation karşılaştırması
  • @Override'ı tutarlı kullanma
  • Özel annotation ve reflection ile işleme
Modül 2
Lambda ve Stream
  • Anonim sınıf yerine lambda ve method reference tercihi
  • Standart fonksiyonel arayüzler: Function, Predicate, Supplier
  • Stream kullanımında ölçü: ne zaman döngü daha okunur
  • Yan etkisiz fonksiyonlar ve Collectors doğru kullanımı
  • Dönüş tipi olarak Collection mı Stream mi
  • Paralel stream tuzakları ve güvenli kullanım koşulları
Modül 3
Metotlar ve İstisna Yönetimi
  • Parametre doğrulama (Objects.requireNonNull) ve savunmacı kopya
  • Metot imzası tasarımı, overload karışıklığı
  • Boş koleksiyon döndürme ve Optional'ın doğru kullanımı
  • Checked ve unchecked istisna seçimi
  • Hata atomikliği ve istisna çeviri (exception translation)
  • Hata mesajlarında yakalama bilgisi ve istisnaları yutmama
Modül 4
Eşzamanlılık Pratikleri
  • Paylaşılan değiştirilebilir veriye erişimi senkronize etme
  • Aşırı senkronizasyondan kaçınma, kilit kapsamını küçültme
  • Thread yerine executor ve task; wait/notify yerine java.util.concurrent
  • Thread-safe belgeleme düzeyleri
  • Tembel ilklendirme: holder class idiomu
  • Serileştirme tuzakları ve serialization proxy deseni
Günün hedefiKatılımcı API tasarım tuzaklarını, bellek etkin kodu ve kod inceleme kontrol listesini uygular.
Modül 1
API Tasarımı ve Serileştirme
  • Kullanımı zor yapan API tuzakları: boolean parametre, null dönüşü
  • Güvenli genişletilebilirlik: final, sealed ve @since belgelendirme
  • Serileştirme tehlikeleri ve JSON/Protobuf alternatifleri
  • Serialization proxy ve readObject savunması
  • Değişmez DTO'lar ve record'lar
  • Geriye uyumluluk ve kullanım dışı bırakma (@Deprecated)
Modül 2
Bellek ve Performans Etkin Kod
  • Gereksiz nesne ve autoboxing maliyeti
  • Kapasite ayarlı koleksiyonlar ve primitive stream'ler
  • String birleştirme ve StringBuilder kullanımı
  • Erken optimizasyondan kaçınma, önce ölç
  • Weak/Soft referans ve önbellek sızıntıları
  • JIT dostu kod ve JMH ile doğrulama
Modül 3
Kod İnceleme Atölyesi
  • Gerçekçi kod parçalarında Effective Java ihlallerini avlama
  • equals/hashCode ve mutable key hataları
  • Generics ve raw type uyarılarını giderme
  • İstisna yönetimi ve kaynak sızıntısı incelemesi
  • Eşzamanlılık hataları ve thread-safety belgelendirmesi
  • Takım için kod inceleme kontrol listesi
Modül 4
Test ve Kıyaslama Araçları
  • JUnit 5: parametrik testler, @Nested, lifecycle ve extension modeli
  • Mockito ile stub/verify, ArgumentCaptor ve spy
  • AssertJ ile akıcı doğrulamalar
  • Testcontainers ile veritabanı entegrasyon testi
  • JMH ile doğru mikro kıyaslama ve JIT ısınması
  • Maven/Gradle ile test profilleri ve JaCoCo kapsam raporu

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Nesne oluşturma

Static factory ve Builder'ı doğru seçebilirsiniz.

🎯
Object sözleşmeleri

equals/hashCode/compareTo hatalarını önleyebilirsiniz.

🧩
Değişmezlik

Immutable sınıf yazabilirsiniz.

🛠️
Generics

PECS ile esnek API tasarlayabilirsiniz.

🔍
Enum kullanımı

EnumMap, EnumSet ve strateji enum'u kullanabilirsiniz.

🚀
Stream ölçüsü

Stream ve döngü arasında doğru tercih yapabilirsiniz.

📈
İstisna tasarımı

Checked/unchecked ayrımını doğru yapabilirsiniz.

🧪
Kod inceleme

Effective Java kontrol listesiyle inceleme yapabilirsiniz.

Kimler İçin Uygundur?

  • Java
  • üretim kodu yazan ve kod inceleme standardını yükseltmek isteyen orta-ileri düzey geliştiriciler ve takım liderleri için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Java ile üretim kodu yazan ve kod inceleme standardını yükseltmek isteyen orta-ileri düzey geliştiriciler ve takım liderleri için uygundur.
Kitabı okumuş olmam gerekir mi?
Gerekmez; her madde örneklerle anlatılır.
Hangi Java sürümü esas alınır?
Java 17-21; record, sealed ve modern API'ler dahil.
Atölye kısmı nasıl işler?
Gerçek koddan hazırlanmış parçalarda ihlaller bulunur ve düzeltilir.
Eğitim sonunda sertifika alabilir miyim?
Evet. Devamlılık ve başarı koşullarını yerine getiren katılımcılara 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. Effective Java Programming Eğitimi Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre3 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

Java ve JVMJava SE Programmer II: Fundamentals Eğitimi
Yazılım Geliştirme Eğitimleri

Java SE Programmer II: Fundamentals Eğitimi

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

Java SE Programmer II temelleri eğitimi: OOP, istisna, generics, Collections, lambda, Stream, NIO.2, JDBC ve concurrency girişi. 2 gün uygulamalı, DVA sertifika

Detayları Gör →
Java ve JVMJava SE Programmer II: Generics & Collections in Java Eğitimi
Yazılım Geliştirme Eğitimleri

Java SE Programmer II: Generics & Collections in Java Eğitimi

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

Java SE Programmer II generics ve Collections eğitimi: wildcard PECS, type erasure, HashMap iç yapısı, Comparator ve koleksiyon seçimi. 2 gün uygulamalı, DVA se

Detayları Gör →
Java ve JVMJava SE Programmer II: Implementing NIO Eğitimi
Yazılım Geliştirme Eğitimleri

Java SE Programmer II: Implementing NIO Eğitimi

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

Java SE Programmer II NIO eğitimi: ByteBuffer, FileChannel, memory-mapped dosya, Selector ile non-blocking soket ve asenkron kanallar. 2 gün uygulamalı, DVA ser

Detayları Gör →
Java ve JVMJava SE Programmer II: Java Migration & Service Management Eğitimi
Yazılım Geliştirme Eğitimleri

Java SE Programmer II: Java Migration & Service Management Eğitimi

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

Java SE Programmer II Java geçişi ve servis yönetimi eğitimi: Java 8 den 17 ye taşıma, jdeps, ServiceLoader, SPI ve çok sürümlü JAR. 2 gün uygulamalı, DVA serti

Detayları Gör →
Java ve JVMJava SE Programmer II: Lambda Operations & Streams Eğitimi
Yazılım Geliştirme Eğitimleri

Java SE Programmer II: Lambda Operations & Streams Eğitimi

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

Java SE Programmer II lambda ve Stream eğitimi: filter, map, flatMap, Collectors, groupingBy, reduce ve paralel akış. 2 gün uygulamalı, DVA katılım sertifikası.

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