SCALA PROGRAMLAMA DİLİ EĞİTİMİ

Scala ile fonksiyonel ve nesne yönelimli kod yazın

Scala 3 sözdizimi, case class ve ADT, koleksiyon işlemleri, pattern matching, Option/Either/Try, given/using, Future ve ScalaTest.

Scala 3 ile nesne yönelimli ve fonksiyonel programlama öğrenin: case class, trait, koleksiyonlar, pattern matching, Option/Either/Try, tip sınıfları, Future ve ScalaTest.

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

Eğitim Hakkında

Scala dilinde OOP ve FP birlikteliği

Eğitim, JVM üzerinde çalışan Scala dilini temelden öğretir. val/var, tür çıkarımı, ifade tabanlı yapı, Scala 3 sözdizimi, class, object, case class ve trait kompozisyonu işlenir. List/Map koleksiyonlarında map, flatMap, fold, for-comprehension; Option, Either ve Try ile hata yönetimi uygulanır. Pattern matching, sealed trait ile ADT, yüksek mertebeli fonksiyonlar, currying, given/using ve tip sınıfları, Future ile asenkron programlama ve ScalaTest ile test ele alınır.

Süre ve Format

3 Gün. Her gün dört modül; Dil Temelleri ve OOP; Fonksiyonel Programlama; Uygulama ve Araçlar ekseninde ilerleyen uygulamalı program.

Seviye

Temel Seviye — Scala 3 ile nesne yönelimli ve fonksiyonel programlama: case class, trait, koleksiyonlar, pattern matching, Option/Either ve Future.

Öğrenme Metodu

Her kavram REPL ve Scala CLI'da canlı denenir; sipariş alanı modelleme laboratuvarıyla pekiştirilir.

Neden Bu Eğitim?

λFonksiyonel Düşünce

Değişmezlik ve fonksiyon kompozisyonuyla daha az hatalı kod yazarsınız.

🧬Güçlü Tip Sistemi

ADT ve pattern matching ile geçersiz durumları derleme zamanında dışlarsınız.

☕JVM Ekosistemi

Java kütüphanelerini Scala kodunda kullanırsınız.

Anahtar Konular

scala programlamascala eğitimiscala 3scala fonksiyonel programlamascala case classscala pattern matchingscala futurescala sbtscala option eitherscala öğren
“Scala, ifade gücünü sorumlulukla kullanmayı öğreten bir dildir.”

Ön Koşullar

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

1
Programlama Deneyimi

Herhangi bir dilde temel programlama bilgisi gerekir.

2
JDK 17+

JDK 17+ kurulu olmalıdır.

3
Araçlar

IntelliJ IDEA veya VS Code Metals ve sbt kurulmalıdır.

4
Java Bilgisi

Java biliyor olmak avantajlıdır; zorunlu değildir.

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ı Scala sözdizimini, case class ve trait yapısını ve pattern matching'i kullanır.
Modül 1
Scala Dil Temelleri
  • val ve var, tür çıkarımı ve ifade tabanlı yapı
  • Temel tipler, String interpolasyonu (s"", f"")
  • if/else, match ve for ifadeleri
  • def ile fonksiyon tanımı, varsayılan ve adlandırılmış parametreler
  • Scala 3 sözdizimi: girinti tabanlı yazım ve enum
  • REPL, Scala CLI ve IDE (IntelliJ/Metals) kurulumu
Modül 2
Sınıflar, Case Class ve Trait
  • class, object ve companion object
  • case class ile değişmez veri modeli ve copy
  • trait ve mixin kompozisyonu
  • sealed trait ile cebirsel veri tipleri (ADT)
  • Erişim belirleyiciler ve private[this]
  • enum ve opaque type (Scala 3)
Modül 3
Koleksiyonlar ve Fonksiyonel İşlemler
  • List, Vector, Set, Map değişmez koleksiyonları
  • map, flatMap, filter, fold, groupBy
  • for-comprehension ve flatMap eşlemesi
  • Option, Either, Try ile hata yönetimi
  • LazyList ve tembel değerlendirme
  • mutable koleksiyonlar ne zaman kullanılır
Modül 4
Pattern Matching
  • match ifadesi ve case kalıpları
  • case class ve extractor (unapply) kalıpları
  • Guard (if) ve alternatif kalıplar
  • Sealed hiyerarşide kapsamlılık denetimi
  • Option ve List üzerinde kalıp eşleme
  • PartialFunction ve collect
Günün hedefiKatılımcı fonksiyonel teknikleri, tip sınıflarını ve Future'ı uygular.
Modül 1
Fonksiyonel Programlama
  • Yüksek mertebeli fonksiyonlar ve closure
  • Currying ve kısmi uygulama
  • Saflık, referans şeffaflığı ve yan etkiler
  • Kuyruk özyineleme (@tailrec)
  • Monad kavramı: Option/Either ile flatMap zincirleri
  • Fonksiyon kompozisyonu: andThen, compose
Modül 2
given, using ve Tip Sınıfları
  • Scala 2 implicit ve Scala 3 given/using
  • Tip sınıfı deseni: Ordering, Show
  • Extension method
  • Context bound ve implicit çözümleme
  • Genel tipler: kovaryans (+A) ve kontravaryans (-A)
  • Union ve intersection tipleri
Modül 3
Eşzamanlılık: Future
  • Future ve ExecutionContext
  • map/flatMap ile Future zincirleri
  • Future.sequence ve traverse
  • Hata yönetimi: recover ve recoverWith
  • Await kullanımı ve kaçınma nedenleri
  • Cats Effect ve ZIO'ya giriş (kavramsal)
Modül 4
Genel Tipler ve Kalıtım
  • Genel sınıflar ve metotlar
  • Üst ve alt tip sınırları ([A <: B])
  • Kovaryans ve kontravaryans örnekleri
  • Trait linearization sırası
  • abstract class ile trait seçim kriterleri
  • Self-type ve bağımlılık deseni
Günün hedefiKatılımcı testli, hataya dayanıklı bir Scala uygulaması geliştirir.
Modül 1
Scala Testi ve Araçlar
  • ScalaTest ve MUnit ile birim test
  • Özellik tabanlı test: ScalaCheck
  • sbt ile derleme ve test
  • scalafmt ve scalafix
  • Scala ve Java birlikte çalışma
  • Metals ile IDE verimliliği
Modül 2
Fonksiyonel Hata Yönetimi
  • Exception yerine Either ile hata akışı
  • Validated ve hata biriktirme (Cats)
  • Try ile Java çağrılarını sarmalama
  • Özel hata ADT'leri
  • for-comprehension ile sıralı doğrulama
  • Hata mesajlarını kullanıcıya dönüştürme
Modül 3
Java ile Birlikte Çalışma
  • Scala'dan Java kütüphanesi çağırma
  • Java koleksiyonlarını CollectionConverters ile dönüştürme
  • Java'dan Scala kodu çağırma sınırları
  • Maven/sbt karma projeler
  • Java record ve Scala case class eşleşmesi
  • Çalışma zamanı: bytecode ve scalac çıktısı
Modül 4
Lab: Sipariş Alanı Modelleme
  • ADT ile sipariş durumlarının modellenmesi
  • Doğrulama için Either zinciri
  • Koleksiyon işlemleriyle rapor üretimi
  • Pattern matching ile durum geçişleri
  • Future ile asenkron servis çağrısı
  • Testler ve kod gözden geçirme

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Scala Sözdizimi

Scala 3 sözdizimini kullanarak program yazabilirsiniz.

🧩
Case Class ve ADT

Değişmez veri modellerini sealed trait ile tasarlayabilirsiniz.

⚙
Koleksiyonlar

map, flatMap ve fold ile veri işleyebilirsiniz.

️
Hata Yönetimi

Option, Either ve Try ile hataları değer olarak taşıyabilirsiniz.

🔍
Pattern Matching

Kalıp eşleme ve extractor kullanabilirsiniz.

🛠
Fonksiyonel Teknikler

Currying ve fonksiyon kompozisyonu uygulayabilirsiniz.

️
Tip Sınıfları

given/using ile tip sınıfı tanımlayabilirsiniz.

🧪
Test

ScalaTest ve ScalaCheck ile test yazabilirsiniz.

Kimler İçin Uygundur?

  • Java veya başka bir dilde deneyimli olup Scala
  • fonksiyonel programlamaya geçmek isteyen geliştiriciler ile veri mühendisleri için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Java veya başka bir dilde deneyimli olup Scala ve fonksiyonel programlamaya geçmek isteyen geliştiriciler ile veri mühendisleri için uygundur.
Scala 2 mi Scala 3 mü öğretilir?
Scala 3 ile çalışılır; Scala 2 farkları mevcut kodu okumak için anılır.
Java bilmeden öğrenilebilir mi?
Evet, programlama deneyimi yeterlidir; Java bilgisi avantajdır.
Scala hangi alanlarda kullanılır?
Veri mühendisliği (Spark), backend servisler ve dağıtık sistemler.
Eğitim sonunda sertifika verilir mi?
Katılım ve değerlendirme sonrasında 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. Scala Programlama Dili Eğitimi Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

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

Bu Eğitimle Birlikte Tercih Edilenler

Java ve JVMJava Hibernate: Working with Hibernate Eğitimi
Yazılım Geliştirme Eğitimleri

Java Hibernate: Working with Hibernate Eğitimi

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

Java Hibernate: Working with Hibernate eğitimi: hibernate ileri eşleme, önbellek ve performans. Uygulamalı 2 gün, DVA Katılım ve Başarı Sertifikası.

Detayları Gör →
Java ve JVMJava ile Microservices Eğitimi
Yazılım Geliştirme Eğitimleri

Java ile Microservices Eğitimi

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

Java ile Microservices eğitimi: mikroservis tasarımından dağıtıma uçtan uca Java. 4 gün uygulamalı program, Digital Vizyon Akademi Katılım ve Başarı Sertifikası

Detayları Gör →
Java ve JVMJava ile Test Otomasyonuna Giriş Eğitimi
Yazılım Geliştirme Eğitimleri

Java ile Test Otomasyonuna Giriş Eğitimi

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

Java ile Test Otomasyonuna Giriş eğitimi: birim, arayüz ve API testlerini Java ile otomatikleştirme. Uygulamalı 3 gün, DVA Katılım ve Başarı Sertifikası.

Detayları Gör →
Java ve JVMJava için Tasarım Desenleri (GoF) Eğitimi
Yazılım Geliştirme Eğitimleri

Java için Tasarım Desenleri (GoF) Eğitimi

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

Java için Tasarım Desenleri (GoF) eğitimi: goF desenleri ve SOLID ilkeleri Java ile. 3 gün uygulamalı program, Digital Vizyon Akademi Katılım ve Başarı Sertifik

Detayları Gör →
Java ve JVMJava Messaging Service (JMS) Eğitimi
Yazılım Geliştirme Eğitimleri

Java Messaging Service (JMS) Eğitimi

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

Java Messaging Service (JMS) eğitimi: jMS ile kuyruk tabanlı entegrasyon. 2 gün uygulamalı program, Digital Vizyon Akademi Katılım ve Başarı Sertifikası.

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