İçindekiler
Bölüm 01: Golang Hakkında Genel Bilgiler
Bölüm 02: Golang Uygulamasına Genel Bakış
Bölüm 03: Dil Kuralları
- Encoding Nedir?
- Unicode Desteği
- Anahtar Kelimeler
- Operatörler ve İşaretçiler
- Built-in (gömülü gelen) Veri Tipleri
- Kod Stili
- Sabitler
- Değişkenler
Bölüm 04: Veri Tipleri
- Strings (metinseller)
- Booleans (mantıksallar)
- Numerics (sayısallar)
- Arrays (diziler)
- Slices (dizi kesitleri)
- Structs (yapılar)
- Struct Annotations
- Pointer (işaretçi) Kavramı
- Struct Methods ve Receivers
- Maps
- Tip Dönüştürmek
Bölüm 05: Fonksiyonlar
- Function Signature (fonksiyon imzası)
- Argüman / Parametre
- Return Values (fonksiyodan geriye dönen değerler)
- Recursivity (özyineleme)
- Closure / Anonim Fonksiyonlar ve Function Scope (kapsama alanı)
- Deferring (erteleme)
Bölüm 06: Durum Kontrolleri
if
,else
,else if
- Short
if
declaration (kısa if tanımı) switch
vecase
İfadeleri- Label,
break
vegoto
İşlemleri
Bölüm 07: Döngüler
Bölüm 08: Interface
Bölüm 09: Error
error
Nedir?- Custom Error Types (özelleştirilmiş error tipi oluşturmak)
- Wrapping (sarmalama)
- Unwrapping (sarmalı açma)
error
Tip Kontrolleri:errors.Is
veerrors.As
panic
verecover
- Yaygın Pratikler
Bölüm 10: nil
Bölüm 11: Generics
- Nedir? Ne Amaçla Kullanılır
- Fonksiyonlarda Genericler
- Custom Tiplerde Generic
- Generic Fonksiyon Çağrıları
- Generic Tipi struct’da Kullanmak
- Generic Tipi map’lerde Kullanmak
- Generic Gerçek Hayat Örneği
Bölüm 12: Reflection
Bölüm 13: JSON İle Çalışmak
- Genel Bilgi
- Encoding (Marshal)
- Decoding (Unmarshal)
json:"TAG"
- Custom Decoding
- Custom Encoding
- Generic Interface
- Streaming Encoders ve Decoders
Bölüm 14: Test
- Test Nedir? Neden Yazılır?
- Test Nasıl Çalıştırılır
- Examples ve
godoc
Nedir? - Race Detection Nedir?
- Table Driven Test Nedir?
- Sub Tests
- SetUp ve TearDown Nedir?
- Testlerin Paralel Çalıştırılması?
- Code Coverage Nedir?
- Benchmarking Nedir?
- Escape Analysis
- Memory ve CPU Profiling Temelleri
Bölüm 15: Concurrency
- Nedir? Golang’in Concurrency Stratejisi Nedir?
- Goroutine Nedir?
go
Kelimesiyle Başlayan Anonim Fonksiyonlar- WaitGroup Nedir?
- Channels
done
Pattern- Deadlock
- Range Over Channels
- Buffered Channels
- Semaphore Pattern
- Fan Out Pattern
select
- Ticker
- Worker Pattern
- Mutex Nedir?
- Context
Bölüm 16: İsimlendirme Kuralları
- Naming Conventions
- Değişken İsimlendirmesi
- Fonksiyon İsimlendirmesi
- Method’ların İsimlendirmesi
- Interface’lerin İsimlendirmesi
- Paketlerin İsimlendirmesi
Bölüm 17: Golang Paketi Geliştirmek
golangci-linter
Kurulumu ve Konfigürasyonu- Go Modülü Anatomisi
stringutils
Paketi- Paketi Dağıtmak / Paylaşmak
Bölüm 18: In-Memory Key-Value Store
http
Paketini Kullanarak Rest-API Tasarlamak- Domain Driven Design prensibini Kullanmak
- Geliştirme
- http server’ın Unit Testleri
- Uygulamanın Docker Container’ından Çalıştırılması
- GitHub Actions ile Linter/Checker Kullanımı
- Açık Kaynak Haline Getirmek