Yazılım Uzmanlığı Eğitimi (Java)
Yazılım Uzmanlığı Eğitimi (Java)
Eğitim Hakkında
Java programlama dili; taşınabilir, donanımdan bağımsız, güvenilir, güçlü, yazımı/okunuşu sade, çok kullanıcılı sistemlere uygun, program parçalarının farklı makinalarda birbiri ile uyumlu çalışabildiği, yorumlanan, dinamik ve yüksek performanslı bir nesne yönelimli dildir. Java programlama dili, Java ekosisteminin parçası teknolojilerle beraber “açık kaynak kodlu yazılım geliştirme” anlayışını da besler. Bunlar ve benzeri pek çok sebepten dolayı, şu anki hakim programlama anlayışı olan NYP’nin, Java programlama dili ile öğrenilmesinin ayrıca önemi vardır. “Java Yazılım Uzmanlığı” eğitimi, Java programlama dili aracılığı ile nesneye yönelik programlamanın (NYP’nin) içselleşmesini sağlayan bir eğitimdir.
Ön Koşul
Temel Programlama bilgisine sahip olunması önerilmektedir.
Eğitim İçeriği
- Fonksiyon (Metot) İmzası
- Koşullar ve Mantık Kapıları
- Döngüler
- Algoritma Kavramı
- Sözde Kod (Pseudocode)
- Akış Diyagramı (Flowchart)
- Java’nın JVM-JRE-JDK Bileşenleri
- Java’da Veri Tipleri (İlkel - Referans)
- Derleme İşlemi ve class Uzantılı Dosyalar
- Derleyici ve Yorumlayıcı Arasındaki Farklar
- NYP (OOP) ve Diğer Yaklaşımlar Üzerine
- Soyutlama (Abstraction) Kavramı
- Sınıf ve Nesnenin Mantığı
- this Anahtar Kelimesi
- Yapılandırıcı (Constructor)
- Object Sınıfından Miras: toString() metodu
- “Kalıtım (Inheritance)” Kavramı ve Temel Örnekler
- Java’da Paket Yapısı ve import Anahtar Kelimesi
- “İlkel (Primitive) ve Referans” Veri Tiplerinin Hafızada Gösterimi
- “Stack”in ve “Heap”in Mantığı
- static Anahtar Kelimesi
- Nesne (Varlık) Oluşturmanın Mantığı
- static Unsurların Hafızada Gösterimi
- Kapsülleme (Encapsulation) Kavramı
- Erişim Belirleyiciler (Access Modifiers)
- “Erişici (Accessor) ve Değiştirici (Mutator)” Metotlar
- Java’da Dizi (Array)
- Problem Çözme Örnekleri
- Nesne Dizisi
- ArrayList Sınıfı ve Dizi (Array) İlişkisi
- super Anahtar Kelimesi
- Birliktelik (Association) Kavramı
- Münasebet (Aggregation) Kavramı
- Oluşum (Composition) Kavramı
- UML’de (“Unified Modeling Language”de) Sınıf Diyagramları
- Object Sınıfından Miras
- equals() Metodu
- hashCode() Metodu
- Bu Metotların Birbiri ile Olan Bağı
- Java’da Jenerik (Generic) Tipler
- Çok Biçimlilik (Polymorphism) Kavramı
- Yukarı Çevrim (Upcasting) ve Aşağı Çevrim (Downcasting)
- Dinamik Bağlama (Dynamic Binding)
- “Static Binding” ve “Dynamic Binding” Arasındaki Farklar
- Arayüz (Interface) Kavramı
- Temel Yapı
- Java 8 ile Gelen Yenilikler
- Soyut Sınıf (Abstract Class) Kavramı
- “Class”, “Interface” ve “Abstract Class”ın Ayrımı
- Bu Yapıları İçeren Örnek Uygulamalar
- Dahili Sınıf (Inner Class) ve İsimsiz Dahili Sınıf (Anonymous Inner Class)
- İstisna İşleme (Exception Handling)
- “Throwable”, “Exception ve Error” Sınıfları
- “try, catch ve finally” Anahtar Kelimeleri
- throws Anahtar Kelimesi
- “Checked Exception” ve “Unchecked Exception”
- Dosya İşleme (File I/O)
- “FileInputStream ve FileOutputStream” Sınıfları
- ”FileReader ve FileWriter” Sınıfları
- “BufferedReader ve BufferedWriter” Sınıfları
- Java Collections Framework
- List Arayüzü ve İmplementasyonları
- Stack Sınıfı
- Queue Arayüzü ve İmplementasyonları
- Set Arayüzü ve İmplementasyonları
- “Iterable ve Iterator” Arayüzleri
- Map Arayüzü ve İmplementasyonları
- “String”ler ile İlgili Sorunlara Çözümler
- “StringBuffer ve StringBuilder” Sınıfları
- Lambda İfadeleri
- Nesneleri Sıralamak
- “Comparator ve Comparable” Arayüzleri
- Nesneleri Kopyalamak
- Cloneable Arayüzü
- Object Sınıfından Miras: clone() metodu
- Java Serialization (Serileştirme)
- Serializable Arayüzü
- “Deserialization” İşlemi
- ObjectInputStream ve ObjectOutputStream Sınıfları
- “Serializable Object” ve “Non-Serializable Object” Farkları
- transient Anahtar Kelimesi
- Java'da "Garbage Collection" Mantığı
- Object Sınıfından Miras: finalize() Metodu
- System.gc() Metodu
- System.runFinalization() Metodu
- Java’da XML Dosyasını Ayrıştırmak
- SAXParser Soyut Sınıfı
- Haber Sayfasını Ayrıştırıp Haber Listesi Üretmek
- Tek Nesne Tasarım Deseni (Singleton Design Pattern)
- Java’da İş Parçacığı (Thread) Kullanımı
- Thread Sınıfı ve Runnable Arayüzü
- “Single-Threaded Program” ve “Multi-Threaded Program”
- “Thread”leri Senkronize Etmek
- “Thread”ler ile İlgili Object Sınıfındaki Metotlar
- CopyOnWriteArrayList Sınıfı
- “Thread” Senkronizasyonu ile Dosya İşleme Örneği
- Java’da “Logging”
- Logger Sınıfı
- “Log” Seviyeleri
- “Log” Dosyası Oluşturmak
- SOLID Prensipleri
- “Single-Responsibility Principle” (SRP)
- “Open-Closed Principle” (OCP)
- “Liskov Substitution Principle” (LSP)
- “Interface Segregation Principle” (ISP)
- “Dependency Inversion Principle” (DIP)
- JDBC
- “Connection, Statement ve ResultSet” Arayüzleri
- SQLException’ın Detaylandırılması
- ResultSet ile Kayıtların Taranması
- Kayıtlara Karşılık Varlık: Varlık (Entity) Sınıfı
- İlgili Sorgular, İlgili Metotlarda: DAL (Data Access Layer) Sınıfı
- Varlık ve DAL Sınıfları için Ata Sınıflar
- JDBC Bağlantı Bilgilerinin Güvenliği
- XML’de properties Etiketi
- Java’da Properties Sınıfı
- Hibernate
- ORM’nin Anlamı
- hibernate.cfg.xml Dosyası
- “SessionFactory, Session ve Transaction” Arayüzleri
- HibernateUtil Sınıfının Tanımlanması
- HibernateUtil Sınıfının Detayları
- “SessionFactory, Session ve Transaction” Üretimi
- Varlık (Entity) Sınıfları
- “Annotation” Kullanarak Tablo ile Eşleşim (Mapping)
- DAL Sınıfları
- Session Üzerinden Veri Tabanı İşlemi Metotları
- “Transaction”ın Yapısı
- Varlık (Entity) ve DAL Sınıfları için Ata Sınıfların Tanımlanması
- Swing ile Görsel Bileşen Tanımlama Örnekleri
- MVC Projesinin “View” Katmanını Swing Kütüphanesi ile Yapılandırmak
- Sekme Levhası, Sekme Eklemek, Paneller, Panel Düzenleri
- Form Ekranları içinde Tuşlar, Metin Alanları vb.
- Veri Tablosunun (“Data Table”ın) Yapılandırılması
- Tablo Modelinin Nesneye Yönelik Anlayışla Oluşturulması (AbstractTableModel Sınıfı)
- MVC Projesinin “Controller” Katmanını Yapılandırmak
- “Model” ve “View” Katmanlarını Birleştirmek
- “Listener” Mantığı ve ActionLister Eklemek
- “Controller” Sınıfları için Ata Sınıflar
- Hibernate ile İlişkisel Veri Tabanı Yapısı
- İlgili “Annotation”lar ile Yapının Kurulması (@OneToOne, @OneToMany, @ManyToOne, @ManyToMany)
- “@JoinColumn Annotation” ve “mappedBy Attribute” Farkı
- “Fetch Types” (Lazy Loading, Eager Loading)
- iText Kütüphanesi
- Veri Tabanı Bilgilerinden PDF Oluşturmak
- JasperReports için iReport-Designer Kurulumu
- iReport-Designer Uygulamasının Kullanılması
- jrxml Uzantılı Rapor Görselleri
- Java ile Rapor Görseline Verilerin Yüklenmesi/Gösterilmesi
- JasperReports Library
- Rapor Yönetimi Sınıfında İlgili Metotların Yazılması
- Programlama Yapmadan Rapor Oluşturmak
- iReport-Designer’da JDBC Bağlantısı ve “Data Source”
- iReport-Designer’da Veri Tablosu (Data Table) Oluşturmak
- Sunucunun Kurulumu/Yapılandırılması
- “Connection Pool” ve “Connection Resource”
- JNDI ve JTA Bağı
- persistance.xml
- Dinamik Web Projesi Oluşturmak
- Sunucu, JPA ve JSF’nin Dahil Edilmesi
- Projenin WebContent Klasörü
- web.xml
- Facelet Composition Page
- Template, Header, Footer
- CSS Dosyalarının Dahil Edilmesi
- Grafik (JPG,PNG vb.) Dosyalarının Dahil Edilmesi
- Projenin src Klasörü
- JPA “Annotation”ları
- “Entity Bean”
- “Managed Bean”
- “JSF Facelets Tag Library”
- Managed Bean ile İletişim
- Veri Tabanında Veri İşlemleri için Form Oluşturmak
- Web Sayfasında Formların Oluşturulması
- “Managed Bean”de Ekle-Sil-Güncelle için Metotlar
- faces-config.xml
- “Validator” Oluşturmak
- Validator Arayüzü
- Formlara JSF Etiketleri ile “Validator” Tanıtımı
- Form Sayfasına TC Kimlik için “Validator” Eklemek Örneği
- Web Sayfaları Arası Geçişin Kolaylaştırılması
- Web Projesine JavaScript’in Dahil Edilmesi
- JavaScript ile Yazılan Fonksiyonların Kullanılması
- Form Sayfasında multipart/form-data
- JSF h:inputFile Etiketi ile Gözat (Browse)
- Grafik Dosyalarının Veri Tabanında Temsili
- Web Sayfasında Grafik Dosyası Gösterimi
- Yeni Web Sayfası Üretmek için Servlet
- HttpServlet Arayüzünde doGet() ve doPost() Metotları
- Web Sayfasında “Servlet”in Çağrılması
- Oturum (Session) Yönetimi
- HttpSession Arayüzü
- JSP Dosyaları Oluşturmak ve “Servlet” Yazmak
- “Dependency Injection” (DI)
- “Dependency Inversion Principle” (DIP)
- “Aspect Oriented Programming” (AOP)
- Spring Boot ile Web Projesi Oluşturmak
- https://start.spring.io Sayfası
- “Project Metadata”larının Anlamları
- Bağımlılıkların (Dependencies) Eklenmesi
- Maven Projesi Oluşturmak
- Gradle Projesi Oluşturmak
- MVC’de “Model” Katmanı
- Varlık (Entity) Sınıfı
- Depo (Repository) Sınıfı
- Servis (Service) Sınıfı
- MVC’de “View” Katmanı
- Thymeleaf Şablon Motorunun Dahil Edilmesi
- Açılış Sayfasının Yapılandırılması
- Kayıt Sayfasının Yapılandırılması
- MVC’de “Controller” Katmanı ile Sayfaların Yönetimi
- “Controller” ile “Service”in İletişimi
- İlgili API Uç Noktasının (“Endpoint”inin) Yapacaklarının Anlatılması
- Spring Boot ile REST API Yapılandırmak
- HTTP “GET, POST, PUT, DELETE” Metotlarının Tanımlanması
- REST ile İlgili “Annotation”ların Mantığı ve Kullanımı
- Postman ile HTTP Metotlarının Test Edilmesi
- Git ve GitHub
- Git ve GitHub’ın Mantığı
- İlgili Git Komutları
- Uygulamanın GitHub’a Yüklenmesi
- Mikroservisler
- Monolitik Mimari ve Mikroservis Mimarisi Farkları
- Mikroservis Mimarisinin Avantajları
- Mikroservis Mimarisi Ne Zaman Kullanılmalı?
- Spring Profilleri
- “Development, Test, Production” Profillerinin Mantığı
- Mikroservisin Bulut Üzerinden Yayınlanması için “Production” Profili
- Kullanılan Bulut Ortamının Özellikleri
- Uygulamayı Bulut için Yapılandırmak
- Dağıtım “Deployment” Aşamaları
- “API Gateway”
- Temel Mantık ve Katmanlar
- Temel Güvenlik Ayarları
- “API Gateway”den Diğer “REST API”lara Bağlanmak
- Retrofit Kütüphanesinin Mantığı
- Retrofit Konfigürasyon Sınıfları
- Diğer “REST API”lar için Temel Mantığın Retrofit ile Kurulması
- Güvenlik Katmanının Yapılandırılması
- “Spring Security”nin Temel Bileşenleri
- JWT’nin Temel Mantığı
- RSA Algoritmasının Asimetrik Yapısının Mantığı
- “Spring Security Filter Chain”in Genel Mantığı
- Kimlik Doğrulama (Authentication)
- Yetkilendirme (Authorization)
- Postman ile “API Gateway”in Testi
- “Authorization” Tiplerinin Değiştirilmesi
- Uygulama için Kaydolmak (Sign Up)
- Uygulama için Oturum Açmak (Sign In)
- Oturum Üzerinde Farklı Servislere Bağlanmak
- “Development” ve “Production” Profilleri için Ayrı Ayrı Oturum Açmak
- Spring Boot Test Profili
- Senaryolar: “Worst Case” ve “Best Case”
- Birim Testi (Unit Testing)
- Entegrasyon Testi (Integration Testing)
- Bu Testlerin Farkları ve Benzerlikleri
Kazanımlar
- Java programlama dilinin temellerini öğrenmek ve etkili kod yazma becerisi kazanmak
- Nesne Yönelimli Programlama (NYP) prensiplerini ve ileri seviye NYP kavramlarını kavramak
- Algoritma geliştirme yeteneklerini pekiştirerek, Java'da nasıl uygulanacağını öğrenmek
- Kapsülleme, kalıtım, soyutlama ve çok biçimlilik (polymorphism) gibi kavramları uygulamalı olarak öğrenmek
- Java koleksiyonları, dosya işlemleri ve veri tabanı bağlantıları kurma konusunda pratik yapmak
- Java ile web uygulamaları geliştirme temellerini kavrayarak, dinamik web projeleri oluşturmak
- Spring Boot ile REST API ve mikroservis mimarisi hakkında bilgi edinmek, güvenli yazılım geliştirme ve raporlama araçlarını kullanmak
Hedef Kitle
- Java’ya İlgi Duyan ve Kişisel Projeler Geliştirmek İsteyen Tüm Kişiler
- Java Programlama Dilinde Uzmanlaşmak İsteyen Profesyoneller
- Müşterileri için Java Tabanlı Çözümler Geliştiren Profesyoneller
- Yazılım Mühendisleri ve Geliştiriciler
- Takımlarında Java ile Geliştirme Yapan Liderler
- Java Projelerinin Yönetimi ve Denetiminden Sorumlu Yöneticiler
- Projelerinde Java Teknolojilerini Kullanan Danışmanlar
Sertifika
Eğitimlerimize %80 oranında katılım gösterilmesi ve eğitim müfredatına göre uygulanacak sınav/projelerin başarıyla tamamlanması durumunda, eğitimin sonunda dijital ve QR kod destekli “BT Akademi Başarı Sertifikası” verilmektedir.
SEKTÖRÜN GÜVENDİĞİ ÇÖZÜM ORTAĞI
BT Akademi'yi tercih eden 4.000'den fazla kurum yanılmıyor.