Go ile Web Programlama

Bu kurs Go Programlama diline yeni başlayanların ve tecrübeli yazılımcıları dahi sıfırdan başlayarak programlama diline ve Go, Visual Studio Code, PostgreSQL, MongoDB, Redis teknolojileriyle profesyonel uygulama geliştirme süreçlerine hakim olabilmelerini sağlamayı hedeflemektedir. Ayrıca Go programlama diliyle bol miktarda gerçek hayat projesi geliştirerek, katılımcıların ticari uygulama geliştirme yeteneklerini de tecrübe aktarımı ile geliştirmeyi hedeflemektedir.

Eğitim takvimimizi kısa süre içinde duyuracağız.


Derslerimiz Derslerimiz Pazartesi, Çarşamba ve Cuma günleri 20:00'da başlayıp 3 saat sürecektir.


Eğitim Süresi


80 Saat
Eğitim Ücreti


Sorunuz
Sertifika


Var


Canlı Yayın

Bu Eğitim Kimler İçin?

Bu kurs, Go Programlama dilinde uzmanlaşmak isteyen, bu dilin derinlemesine detaylarını öğrenirken, aynı zamanda gerçek ticari hayat uygulamaları ile sektöre hızlı ve doğru şekilde hazırlanmak isteyen herkese hitap etmektedir.

Neden DeepLab ?

DeepLab ile ister kariyer yolculuğunuzun başında ister bu yolda ilerliyor olun kendinize yeni ufuklar açacak bilgiler edinebileceğiniz bir topluluk ve alanında uzmanlaşmış eğitmenler bulabilirsiniz. Kaydedeceğiniz bu önemli ilerleme esnasında 15 yıl boyunca Türkiye’nin önemli kuruluşlarıyla çalışmış ve AR-GE eğitimleri sağlamış olan Cihan Özhan sizlere destek olacak. Başlangıç seviyesinden ileri seviyeye kadar yükselen bu eğitim merdivenlerini tırmanırken öğrendiklerinizi uygulamalar ile pekiştirme imkanına sahip olacaksınız. Bu süreçte yeterli ve kaliteli kaynaklara ulaşabileceksiniz. Eğitim basamaklarını ise kendinize yeni deneyimler ekleyebileceğiniz bir proje ile tamamlayacak ve geleceğinize değerli bir yatırım sağlama olanağına sahip olacaksınız.

golang

Geleceğinize Bir Katkı Sağlayın

Google tarafından geliştirilen, açık kaynak kodlu, sade ve güçlü bir programlama dili olan Go'nun güçlü olduğu alanlarda (Sistem, Veri Odaklı & Veri İşleme, Microservices, RESTful, API, Back-End, Real-time, Web, Oyun, Security) kendinizi geliştirebilir, bu kursta kullanılacak olan teknolojilerden de yararlanarak kurumsal projeler üretebilirsiniz. Ayrıca mentörlük desteği alarak daha doğru ve verimli bir eğitim süreci geçirebilirsiniz.

Kullanılacak Teknolojiler

Eğitimlerde Golang, PostgreSQL, Heroku, Visual Studio Code teknolojilerinin en güncel versiyonlarını kullanarak projeler geliştirebileceksiniz.

go-logo postgresql-logo redis-logo visual-studio-code-logo

Müfredat

Go Programlama Diline Genel Bakış
Go Programlama Diline Genel Bakış
Compiler

  • Derleyici Nedir?

  • Go Derleyicisine Derinlemesine Bakış
Go Versiyonları

  • Geçmiş Go Versiyonları ile Gelen Yeni Özellikler

  • En Yeni Go : Go 1.16 ile Gelen Yeni Özellikler
Framework ve Library : Nedir ve Aralarındaki Farklar
Go Avantaj ve Dezavantajları
Web, RESTful API, Microservice ve Web Altyapı Uygulamalarında Go’nun Önemi
Go Programlama Dili Kullanım Alanları
Go Programlama Dili Kullanıcıları
Neden Devasa Open Source Projeler Go'yu Tercih Eder?
Go Kütüphanalerine Genel Bakış

  • Detaylı İnceleme : Go Standard Library

  • Detaylı İnceleme : Third-Party Go Kütüphaneleri
Anahtar Kelimeler
Operatör ve Noktalamalar
Türler
Go'nun Söz Dizimi Hassasiyeti
Go Programlama için Geliştirme Editörleri
Go Dökümanları ve Tur Sayfalarına Genel Bakış
Go Araç ve Komutları
Go Paketlerini Kullanmak
İlk Go Uygulaması
İlk Go Web Uygulaması
Komut Satırı Argümanları
Değişkenler, Veri Tipleri ve Operatörler

  • Değişkenler

  • Veri Tipleri

  • Operatörler
String Veri Tipi
Unicode
Sabitler
Go'da Pointer Kullanımı
Komut Satırı Argümanlarını Kullanmak

  • Ortam Değişkenlerini Elde Etmek

  • Flags

  • Proje : Bölüm Sonu Uygulaması (CLI)
Çalışma Ortamı ve Hazırlıklar
Go Programlama Ortam Kurulumu
IDE : Geliştirme Editörleri
İlk Go Programı
Ortam Değişkenleri
Go Araçları
Veritabanı Operasyonları İçin Ortam Hazırlıkları

  • PostgreSQL Veritabanı Hazırlıkları

    • PostgreSQL Veritabanı Kurulum Hazırlıkları

    • PostgreSQL Veritabanı Kurulumu

    • PostgreSQL Veritabanına Bağlanmak ve Test Etmek

  • PostgreSQL as a Service ile Cloud PostgreSQL Kullanımı

  • MongoDB Veritabanı Hazırlıkları

    • MongoDB Veritabanı Kurulum Hazırlıkları

    • MongoDB Veritabanı Kurulumu

    • MongoDB Veritabanına Bağlanmak ve Test Etmek
Hata Yönetimi ve Loglama
Hata Yönetimine Genel Bakış
Hata İşleme Stratejileri
Error Handling
panic & recover
try … catching Yaklaşımı
Loglama
pkg_errors Paketi
Apex ve logrus Paketleriyle Yapısal Loglama
context Paketi ile Loglama
Paket Seviyeli Global Değişkenler
Uzun Süren İşlemler İçin Panikleri Yakalamak
Streams, Dosya İşleme ve Serialization
I/O ve Stream

  • io Paketi

  • Temel Stream Operasyonları
Bytes ve Strings Paketleri

  • bytes ve Strings Paketleri ile String Manipülasyonu

  • Proje : Şifre Üretici
Dosya ve Dizin Operasyonları

  • Dosya Oluşturmak

  • Dosya Bilgisi Almak

  • Dosyayı Yeniden İsimlendirmek ve Taşımak

  • Dosyanın Varlığını Kontrol Etmek

  • Dosyayı Açmak ve Kapatmak

  • Bir Dosyanın Okuma ve Yazma İzinlerini Kontrol Etmek

  • Bir Dosyayı Kopyalamak

  • Bir Dosyaya Bayt Veri Yazmak

  • Geçici Dosyalar ve Dizinler ile Çalışmak

  • Dosya Silmek
Dosya Sıkıştırma ve Açma Operasyonları

  • ZIP Dosyası Oluşturmak ve İçerisine Dosya Eklemek

  • ZIP Dosyasındaki Dosyaları Dışarı Aktarmak
Go Standard Library : encoding Paketi
XML Formatı ile Çalışmak

  • XML Formatına Genel Bakış

  • Proje : XML Formatı ile Çalışmak
JSON Formatı ile Çalışmak

  • JSON Formatına Genel Bakış

  • Proje : JSON Formatı ile Çalışmak
CSV Formatı ile Çalışmak

  • CSV Formatına Genel Bakış

  • Proje : CSV Serialization
YAML Formatı ile Çalışmak

  • YAML Formatına Genel Bakış

  • Proje : YAML Serialization
TOML Formatı ile Çalışmak

  • TOML Formatına Genel Bakış

  • Proje : TOML Serialization
Veri Dosya Formatlarını Konfigürasyon Dosyası Olarak Kullanmak
Protocol Buffers & gRPC

  • Protocol Buffersş

  • Tanımlama Dosyası Yazmak

  • Serializer Üretmek

  • Protocol Buffer Kullanımı

  • Proje : Go ile gRPC Kullanımı
RESTful API Programlama
RESTful API Kavramlarına Genel Bakış
RESTful API Nedir
Neden RESTful API Kullanılır
RESTful API Mimarisi
RESTful API Mimarisine Derinlemesine Bakış

  • RESTful API Mimarisine Genel Bakış

  • RESTful API Terminolojisi

  • Request Anatomisi : Request’i Doğru Anlamak

  • HTTP Metot

  • HTTP Header

  • Data
RESTful API Tasarım İlkeleri : Doğru RESTful API Mimarisi Tasarlamak
requests Modülü

  • requests Modülüne Genel Bakış

    • Proje : requests Modülü
Proje : Basit RESTful API Uygulaması Geliştirmek ve Test Etmek
Proje : GitHub API Uygulaması Geliştirmek ve Test Etmekk
Proje : Exchange API ile Döviz Kur Uygulaması Geliştirmek ve Test Etmek
Proje : The Movie Database API ile Film Uygulaması Geliştirmek ve Test Etmek
Web Programlama
Paket İnceleme : net/http
net/http ile İlk Web Sunucuyu Oluşturmak
Routing

  • net/http ile Routing

  • Gorilla Toolkit ile Routing
Handling

  • Handle

  • HandleFunc

  • HandleFunc

  • CustomHandler

  • 3-Party Serve Mux
Response Header ile Çalışmak
Request ve ResponseWriter ile Çalışmak
Header’a Veri Eklemek
Context
Output Stream’i Tamponlamak
Dosya Sunucusu Oluşturmak
Struct ve Closure Nesnelerinin Stateful Handler’lar İçin Kullanımı
Template’ler ile Web Uygulama Tasarımı
Proje : Not Defteri Uygulaması
Doğrulama Operasyonları : Validation Input

  • RegEx ile Veri Doğrulama

  • URL Doğrulama

  • HTTP’den Gelen İsteği Doğrulamak

  • Proje : Veri Doğrulama Uygulaması
Proje : Kullanıcı Giriş ve Kayıt Uygulaması
Zincirleme : Chaining

  • Go’da Uygulamalar ile Chaining Yöntemi

  • Chaining Yöntemi İçin API Uygulaması
Sayfalama, Filtreleme, Sıralama ve Arama Operasyonları

  • Sayfalama

  • Filtreleme

  • Sıralama

  • Arama
‘Sayfa Bulunamadı’ Sayfaları Üretmek
Sayfa Yönlendirme Yöntemleri
Proje : Makale Sistemi Uygulaması
Caching

  • Genel Cache Kullanımı

  • Server Side Cache
Proje : Kullanıcı İşlemleri Uygulaması
Veri Dönüş Türleri

  • Sadece Header Döndürmek

  • Düz Metin Döndürmek

  • JSON Döndürmek

  • XML Döndürmek

  • Dosya Döndürmek

  • HTML Döndürmek

  • Üretilen HTML’i String Formatında Döndürmek
Struct ve Clasure Nesnelerinin Stateful Handler’lar İçin Kullanımı
Web Uygulamasına Gelen İstekleri Doğrulamak : Validation Input
Rendering ve Content Negotiation
Middleware Oluşturma ve API Entegrasyonu

  • Route Mekanizması İçin Middleware Katmanı Oluşturmak

  • Yetkilendirme İçin Middleware Katmanı Oluşturmak
Router Mekanizmasına Logger Ekleme
Go ile Veritabanı Programlama
Veritabanı Programlamaya Genel Bakış
Veritabanı Yönetim Sistemlerine Genel Bakış

  • Hangi Veritabanı Yönetim Sistemi Ne Zaman Kullanılmalı
Go ile Veritabanı Programlama Temeller
ORM Mantığını Anlamak İçin ‘Native’ Veritabanı İşlemlerinin Önemi
database/sql paketi

  • Go database/sql paket ve Mimarisine Genel Bakış

    • database/sql Mimarisini Anlamak

    • database/sql Pratikleri

  • database/sql ve PostgreSQL ile Temel Veritabanı Programlama Pratikleri

  • Proje : database/sql ve PostgreSQL ile Veritabanı Uygulaması
Go ve pg ile Veritabanı Operasyonları

  • pg Kütüphanesi ile Temel Veritabanı Programlama Pratikleri

  • Proje : pg ve PostgreSQL ile Veritabanı Uygulaması
Go ve GORM ile Veritabanı Operasyonları

  • GORM’a Genel Bakış

  • GORM ve PostgreSQL ile Temel Veritabanı Programlama Pratikleri

  • Proje : GORM ve PostgreSQL ile Veritabanı Uygulaması
RDBMS vs NoSQL
Hangi Senaryo İçin Hangi NoSQL Veritabanı Kullanılmalıdır?
Go ve MongoDB ile NoSQL Veritabanı Operasyonları

  • MongoDB Veritabanı Sorgulama Pratikleri

  • Proje : Go ile MongoDB Veritabanı Uygulaması
Diğer Açık Kaynaklı Go Veritabanı Kütüphanelerini İncelemek
Testing
Yazılımda Test Kavramına Genel Bakış
Go’da Unit Test Gerçekleştirmek
Go’da Performans Testleri Gerçekleştirmek
Go RESTful API Uygulamalarında Test Operasyonları
Deployment
Deployment’a Genel Bakış
Deployment Süreçleri
Go ile Demo Web Uygulaması Geliştirmek
Web Uygulamasının Heroku’da Yayınlanması(Deployment)

  • Heroku Hesap Oluşturmak

  • Heroku Command-Line Interface(CLI)

  • Web Uygulamasını Yayınlamak

  • Heroku Deployment Workflow

    • Deployment Workflow’u Anlamak

    • Heroku’da Deployment Workflow

    • Production Ortamına Geçiş

  • Uygulama Ayarları ve Secret’ları Yönetmek
Yazılım Güvenliği
Yazılımda Güvenlik ve Güvenli Yazılım Geliştirmeye Genel Bakış
Hacker, Etik Hacker ve Güvenlik Uzmanı Kavramları

  • Hacker Kimdir ve Nasıl Hacker Olunur

  • Hacker ve Güvenlik Uzmanlığı Kariyer Planı Nasıl Yapılır ve Neler Bilinmelidir
Güvenli Yazılım Geliştirme Süreçleri (SecureSDLC)

  • SDLC : Software Development Life Cycle

    • Requirements

    • Design

    • Development

    • Testing

    • Deployment

  • Secure SDLC : Secure Software Development Life Cycle

    • Risk Assessment

    • Treat Modeling & Design Review

    • Static Analysis

    • Security Testing & Code Review

    • Security Assessment & Secure Configuration
Derinlemesine Yazılımcılar İçin Veri Güvenliği

  • Güvenlik Politikaları

  • Ayrıcalıklar

  • Güvenlik için : Basitlik Vs. Sadelik

  • Kullanıcı Vs. Güvenlik

  • Beklenmeyenleri Beklemek & Hazır Olmak

  • Derinlikli Savunma

  • Belirsizlik & Güvenlik

  • WhiteList Vs. BlackList

    • Korunma Yöntemleri

  • Maruz Kalma Noktaları

  • Veri Geçitleri

  • Girişleri Filtrele, Çıkışları Kontrol Et

  • Request’leri Düzenlemek

  • Girişleri Doğrulamak

  • Veri Temizlemek

  • Kodu Özel Tutmak (Code Privacy)

  • Kimlik Bilgilerini Özel Tutmak (ID Privacy)

  • Logging ve Smart Logging

  • HTTP Durum Kodları
Kriptografi

  • Kriptografiye Genel Bakış

  • Hashing

  • Encryption
HTTPS

  • Web Uygulamalarına HTTPS/TLS Desteği Eklemek

  • Aynı Yayını HTTP ve HTTPS Üzerinden Yapmak

  • HTTP İsteklerini HTTPS’e Yönlendirmek
Web Uygulamalarında Kimlik Denetimi

  • Kimlik Doğrulama ve Yetkilendirme

  • Kimlik Doğrulama Yaklaşımlarına Genel Bakış

    • Cookie-Based Yetkilendirme

    • Session-Based Yetkilendirme

    • Token-Based Yetkilendirme
OWASP : Open Web Application Security Project

  • OWASP Nedir

  • OWASP Top 10

    • SQL Injection

    • XSS : Cross-Site Scripting

    • Broken Authentication and Session Management

    • Insecure Direct Object References

    • CSRF: Cross-Site Request Forgery

    • Security Misconfiguration

    • Insecure Cryptographic Storage

    • Failure to Restrict URL Access

    • Insufficient Transport Layer Protection

    • Unvalidaded Redirects and Forwards
MLaaS : Machine Learning as a Service
Yapay Zeka’ya Genel Bakış
İş Uygulamalarında Yapay Zeka Kullanım Senaryoları
Yapay Zeka Konsepti, Bilimsel ve Teknik Alt Başlıkları
Popüler Yapay Zeka Uygulama Geliştirme Araçları
Yapay Zeka’da Go ve Python
Artificial Neural Network (ANN)

  • Python ile Sıfırdan Artificial Neural Network Geliştirmek

  • Go ile Sıfırdan Artificial Neural Network Geliştirmek
Machine Learning as a Service (MLaaS)

  • MLaaS’e Genel Bakış

  • MLaaS Mimarisine Derinlemesine Bakış

  • Bir Machine Learning Modeli Geliştirmek

    • ML Modeli Geliştirmek

    • ML Modeli Eğitmek

    • ML Modeli Test Etmek

  • Python ile Geliştirilen Modeli Go ile RESTful API Olarak Yayınlamak

  • Python ile Geliştirilen Modeli Go ile Web Uygulaması Olarak Yayınlamak

Sertifika Koşulları

  • %80 derse katılım sağlamak.
  • Ödevleri yapmak.
  • Bitirme projesini tamamlamak.
  • Sertifika

    Events

    Life-Long Learning

    Slider 1

    “MLaaS: Presenting & Scaling Machine Learning Models as Microservices”

    Speaker: Cihan Özhan, Founder of DeepLab
    DevNot Developer Summit

    Slider 1

    "Industrial Application Development"

    Speaker: Cihan Özhan, Founder of DeepLab
    Host: KARDEMİR ÇELİK

    Slider 1

    "Dijital Dönüşüm - Mini MBA : Yapay Zeka"

    Speaker: Cihan Özhan, Founder of DeepLab

    Slider 1

    "Python with Machine Learning/Deep Learning"

    Speaker: Cihan Özhan
    School: Saint Benoit High School

    Slider 1

    "Blockchain: Decentralized Application Development"

    Speaker: Cihan Özhan, Founder of DeepLab