Java ile Uygulama Geliştirme (I)


Açıklama: Bu kurs Java ortamında uygulama geliştirme becerisini kazandırmayı hedeflemektedir. Aynı zamanda bir uygulama kursu olduğundan her konu ele alınırken uygulamalı çalışmalar yapılacaktır.
Kurs konularından bazıları aşağıdadır:
## Yararlı sınıflar
+ StringBuilder sınıfı
+ BigDecimal sınıfı
+ BigInteger sınıfı
+ Arrays sınıfı
+ Timer sınıfı
+ Çeşiti yararlı sınıfların yazılması

## Jar (Java Archive) dosyaları
+ IntelliJ ve Eclipse ile jar oluşturma
+ Birbirlerini kullanan jar dosyaları
+ Çalışabilen jar dosyaları
+ Bir kütüphane tasarımında dikkat edilecek durumlar
+ Çeşitli profesyonel kütüphaneler

## Annotation’lar
+ Annotation bildirimi
+ Annotation’ın anlamı
+ Class, Source ve runtime annotation’lar
+ Retention annotation
+ Target Annotation
+ Inherited Annotation
+ Java’nın standart annotation’ları

## Temel Reflection işlemleri
+ Class sınıfı
+ Sınıf elemanlarına ilişkin bilgilerin elde edilmesi
+ Annotation bilgisinin reflection ile elde edilmesi
+ Sınıfın public olmayan elemanlarına çalışma zamanı sırasında erişim
+ Reflection kullanarak çalışma zamanında eklenen jar dosyaları ile plugin oluşturma
+ Örnek uygulamalar

## İçiçe tür bildirimleri
+ Effectively final kavramı
+ Anonim sınıflar
+ Anonim sınıfların değişkenleri yakalaması (capture)
+ Yerel sınıflar
+ Sınıf içinde static sınıf bildirimi (nested classes)
+ Sınıf içinde non-static sınıf bildirimi (inner classes)
+ Yerel sınıflar (local classes)
+ Örnek uygulamalar

## Java Programlama diline eklenen yeni özellikler
+ Özellikle Java 8 ile eklenen özellikler ile kurs sırasındaki son Java versiyonuna göre eklentiler anlatılacaktır
+ Fonksiyonel arayüzler (functional interfaces)
+ java.util.function paketi içerisindeki fonksiyonel arayüzler
+ Lambda ifadeleri
+ Lambda ifadelerinde değişkenlerin yakalanması (capture)
+ Lambda ifadelerinde tür çıkarımı
+ Lambda geri dönen metotlar
+ Optional sınıfları (Optional, IntOptional, LongOptional ve DoubleOptional sınıfları)
+ var değişkenler (Java 10)
+ switch expression (Java 14)
+ record türleri (Java 14)
+ Module kavramı
+ Örnek uygulamalar

## Java ile Fonksiyonel Programlama
+ Fonksiyonel programlama tekniği
+ Java’ da fonksiyonel programlama
+ Parametresi fonksiyonel arayüz referansı olan metotlar
+ Callback kavramı
+ Örnek uygulamalar

## Nesne tutan sınıfların (collections) ayrıntılı incelenmesi
+ İleri generic işlemleri
+ Iterable ve Iterator arayüzleri
+ Bir sınıfın for-each döngü deyimi ile dolaşılabilir biçimde yazılması
+ Örnek sınıfların yazılması ve jar dosyaları oluşturma
+ Collection arayüzü ve anlamı
+ Liste tarzı collection sınıflar ve List arayüzü
+ Object sınıfının equals metodu ve anlamı
+ Küme tarzı collection sınıflar ve Set arayüzü
+ TreeSet sınıfı
+ Comparable ve Comparator arayüzleri
+ Object sınıfının hashCode metodu ve anlamı
+ HashMap sınıfı
+ Diğer collection sınıflar (Stack, PriorityQueue vb.)
+ Sözlük tarzı collection sınıfları ve Map arayüzü
+ HashMap sınıfı
+ Collections sınıfının yararlı metotları
+ Uygulama geliştirmede doğru collection sınıflarının seçimi
+ Örnek uygulamalar

## Stream API kullanımı
+ Stream arayüzü ve anlamı
+ Stream, IntStream, LongStream ve DoubleStream arayüzleri
+ StreamSupport sınıfı
+ Stream arayüzlerinin metotları
+ Örnek uygulamalar

## Spring uygulamaları
+ Maven build aracı kurulumu ve kullanımı
+ Spring framework
+ Spring boot
+ Core annotaions (Component, Configuration, Bean, Order, DependsOn, Qualifier vb.)
+ Bean kavramı ve bean sınıflar
+ ApplicationRunner arayüzü
+ Scope annotation
+ application.properties dosyası
+ profile oluşturma
+ yml dosyaları
+ Maven ile jar oluşturma ve kullanma
+ Test işlemleri (JUnit vb)
+ Spring boot uygulamasının jar ile yayınlanması (deployment)
+ Spring asenkron işlemler
+ Scheduled annotation’ı
+ Controller kavramı ve MVC (Model View Controller) tasarım kalıbı
+ Servlet kavramı, HttpServletRequest ve HttpServletResponse sınıfları
+ Spring REST servisler (JSON ve XML)
+ Katmanlı mimari uygulamaları (Repository, Service ve Application katmanları)
+ DTO (Data Transfer Object) tasarım kalıbı
+ MVVM (Model View View Model) tasarım kalıbı
+ Map Struct kütüphanesi
+ ModelMapper kütüphanesi
+ JDBC ile veritabanı işlemleri
+ Spring JPA ve Hibernate
+ CrudRepository arayüzü
+ JPARepository arayüzü
+ PostgreSQL veritabanı, JPA, Hibernate kullanımı
+ Thymeleaf kullanımı (temel düzeyde)
+ Spring boot exception işlemleri
+ Spring Security
+ Spring ile reactif programlama (WebFlux)
+ Spring MongoDB uygulamaları
+ Mikroservisler
+ Örnek Uygulamalar
+ Ve diğerleri…

Önkoşul: Daha önce Java Programlama Dili ile Nesne Yönelimli Programlama konusunda çalışma yapmış olmak ya da C ve Sistem Programcıları Derneği’nin açmış olduğu Java ile Nesne Yönelimli Programlama kursuna katılmış olmak.

*Ücretleri Sorunuz.

Bu kurs C ve Sistem Programcıları Derneği ve Sistem Bilgisayar işbirliği ile düzenlenmektedir.

* Kursumuz gerçek zamanlıdır. Derslerimiz interaktif olarak yapılmaktadır.