ADVANCED PROGRAMMING IN GO: ACCESSING DATABASES EĞİTİMİ

Go ile üretim seviyesinde veritabanı erişimi kurun

database/sql, connection pool, pgx, sqlx, GORM, transaction ve NoSQL ile Go veri katmanı

Advanced Programming in Go: Accessing Databases Eğitimi, Go'da üretim seviyesinde veritabanı erişim katmanı kurmayı öğretir. Program database/sql paketi, sürücü mimarisi ve connection pool ayarlarıyla başlar; prepared statement, context ile iptal, transaction…

4 gün İleri Seviye Online / Yüz Yüze / Hibrit Sertifikalı

Eğitim Hakkında

Standart database/sql'den pgx, sqlx, GORM ve NoSQL sürücülerine Go veri erişim katmanı

Advanced Programming in Go: Accessing Databases Eğitimi, Go'da üretim seviyesinde veritabanı erişim katmanı geliştirmeyi öğretir. Katılımcılar database/sql paketini, sürücü mimarisini ve connection pool ayarlarını derinlemesine öğrenir. Prepared statement, context ile iptal, transaction ve isolation seviyeleri işlenir. pgx ile PostgreSQL özellikleri, sqlx ile struct eşleme, GORM ile ORM, migration, mongo-go-driver ve go-redis ile NoSQL erişimi ve test ele alınır.

Süre ve Format

4 Gün. Her gün dört modül; database/sql temellerinden transaction, pgx ve sqlx, ORM ve migration ile NoSQL erişimine kadar uygulamalı ilerlenir.

Seviye

İleri Seviye — database/sql, pgx, sqlx ve GORM ile Go'da güvenli, yüksek performanslı veritabanı erişimi

Öğrenme Metodu

Her konu çalışan Go kodu, canlı PostgreSQL ve MongoDB ile; connection pool, transaction ve repository desenleri senaryolarla uygulanır.

Neden Bu Eğitim?

⚡Performanslı erişim

Connection pool, prepared statement ve pgx ile Go uygulamalarında düşük gecikmeli, yüksek verimli veritabanı erişimi kurarsınız.

🧩Doğru araç seçimi

database/sql, sqlx, pgx ve GORM arasındaki farkları kavrayıp projeye en uygun veri erişim yaklaşımını seçersiniz.

🛡️Güvenli ve test edilebilir

SQL injection'a kapalı prepared statement, transaction ve repository deseniyle güvenli ve test edilebilir veri katmanı yazarsınız.

Anahtar Konular

go veritabanı eğitimigolang database eğitimidatabase/sql eğitimipgx eğitimigorm eğitimigo postgresqlgolang backend eğitimigo connection poolsqlx eğitimigo mongodb
“Go'da veritabanı erişimi sihir değildir; connection pool'u anlayan, transaction'ı doğru kuran ve context'i yayan geliştirici üretimde fark yaratır.”

Ön Koşullar

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

1
Go deneyimi

Struct, interface, error handling ve goroutine gibi Go kavramlarına hakimiyet gereklidir.

2
SQL bilgisi

SELECT, JOIN, INSERT ve transaction gibi ilişkisel SQL kavramlarına aşinalık beklenir.

3
Go ortamı

Go kurulu, modül (go mod) kullanabilen bir geliştirme ortamına erişim gereklidir.

4
Veritabanı erişimi

PostgreSQL ve MongoDB gibi bir örneğe (yerel veya Docker) erişim pratik için faydalıdır.

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ı database/sql mimarisini kavrar, sürücüleri kaydeder, connection pool'u yapılandırır ve Query, QueryRow, Exec ile güvenli sorgular yazar.
Modül 1
database/sql Mimarisi
  • DB, Conn, Row ve Rows soyutlamaları
  • driver.Driver ve Register ile sürücü kaydı
  • sql.Open ve tembel (lazy) bağlantı davranışı
  • Ping ve PingContext ile bağlantı doğrulama
  • NullString, NullInt64 ve null değer işleme
  • Scan ile satır değerlerinin eşlenmesi
Modül 2
Connection Pool Yönetimi
  • SetMaxOpenConns ile açık bağlantı sınırı
  • SetMaxIdleConns ve boşta bağlantı yönetimi
  • SetConnMaxLifetime ve ConnMaxIdleTime ayarı
  • Pool tükenmesi ve gecikme (latency) etkisi
  • db.Stats() ile pool metriklerinin izlenmesi
  • Yüksek eşzamanlılıkta pool ayarının etkisi
Modül 3
Sorgular ve Sonuç İşleme
  • Query, QueryRow ve Exec arasındaki fark
  • rows.Next, rows.Scan ve rows.Err döngüsü
  • Rows kapatma ve kaynak sızıntısını önleme
  • LastInsertId ve RowsAffected kullanımı
  • Birden fazla sonuç kümesinin işlenmesi
  • Parametre placeholder farkları (? ve $1)
Modül 4
Prepared Statement ve Güvenlik
  • Prepare ve Stmt ile hazırlanmış ifadeler
  • Parametreli sorgu ile SQL injection önleme
  • Statement yeniden kullanımı ve performans
  • QueryContext ile hazırlanmış sorgu çalıştırma
  • Sunucu tarafı prepared statement maliyeti
  • Dinamik IN listesi ve güvenli parametreleme
Günün hedefiKatılımcı context ile iptal ve zaman aşımı uygular, transaction'ları yönetir, isolation seviyelerini ve hata/retry stratejilerini doğru kullanır.
Modül 1
Context ile İptal ve Zaman Aşımı
  • context.WithTimeout ve WithCancel kullanımı
  • QueryContext ve ExecContext ile iptal yayılımı
  • Deadline aşımında sorgunun sonlandırılması
  • HTTP isteği context'inin DB'ye aktarılması
  • Context iptalinde kaynakların temizlenmesi
  • Zaman aşımı ve connection pool etkileşimi
Modül 2
Transaction Yönetimi
  • BeginTx, Commit ve Rollback yaşam döngüsü
  • defer ile güvenli rollback deseni
  • Transaction içinde Query ve Exec kullanımı
  • Savepoint ile kısmi geri alma (nested)
  • Uzun transaction'ların kilitleme maliyeti
  • Transaction'ı fonksiyon sarmalayıcıyla yönetme
Modül 3
Isolation Seviyeleri ve Eşzamanlılık
  • Read Committed, Repeatable Read ve Serializable
  • Dirty read, non-repeatable read ve phantom
  • sql.TxOptions ile isolation belirleme
  • Optimistic ve pessimistic locking yaklaşımı
  • SELECT ... FOR UPDATE ile satır kilitleme
  • Deadlock oluşumu ve yeniden deneme mantığı
Modül 4
Hata Yönetimi ve Retry
  • sql.ErrNoRows ve beklenen hataların ayrımı
  • errors.Is ve errors.As ile hata sınıflandırma
  • Sürücüye özgü hata kodlarının ele alınması
  • Geçici (transient) hatalarda retry stratejisi
  • Exponential backoff ile yeniden deneme
  • Idempotency ve güvenli yeniden deneme koşulu
Günün hedefiKatılımcı pgx ile PostgreSQL'e özgü özellikleri kullanır, sqlx ile struct eşleme yapar, batch ve COPY ile toplu işlemlerde performans kazanır.
Modül 1
pgx Sürücüsü ve Bağlantı
  • pgx ile database/sql karşılaştırması
  • pgxpool ile connection pool yönetimi
  • pgx.Conn ve yerel protokol avantajları
  • QueryRow, Query ve Exec API farkları
  • Named parametre ve argüman bağlama
  • pgx log ve tracer ile gözlemlenebilirlik
Modül 2
PostgreSQL'e Özgü Tipler
  • JSONB okuma/yazma ve struct serileştirme
  • Array, hstore ve composite tip desteği
  • UUID, numeric ve timestamp tip eşlemesi
  • LISTEN/NOTIFY ile pub-sub bildirimleri
  • Enum ve custom tiplerin işlenmesi
  • Null ve pointer alanların eşlenmesi
Modül 3
Toplu İşlemler ve Performans
  • pgx.Batch ile tek turda çoklu sorgu
  • CopyFrom ile yüksek hızlı toplu ekleme
  • Bulk insert ile satır satır ekleme farkı
  • Prepared statement önbelleği yönetimi
  • Sorgu planı ve EXPLAIN ile analiz
  • Büyük sonuç kümesinde bellek yönetimi
Modül 4
sqlx ile Struct Eşleme
  • sqlx.DB ve genişletilmiş API tanıtımı
  • Get ve Select ile struct'a otomatik eşleme
  • db struct tag'leri ile sütun eşlemesi
  • Named query (NamedExec) ile parametreleme
  • sqlx.In ile dinamik IN listesi genişletme
  • StructScan ve SliceScan kullanımı
Günün hedefiKatılımcı GORM ile ORM kullanır, migration araçlarıyla şema yönetir, MongoDB ve Redis'e erişir, repository deseni ve testlerle veri katmanını tamamlar.
Modül 1
GORM ile ORM Kullanımı
  • Model tanımı, tag'ler ve otomatik migrasyon
  • Create, First, Find ve Where sorguları
  • İlişkiler: has one, has many, many2many
  • Preload ve Joins ile ilişkili veri yükleme
  • Hook'lar ve transaction ile GORM kullanımı
  • ORM maliyeti ve ne zaman tercih edilmeli
Modül 2
Migration ve Şema Yönetimi
  • golang-migrate ile sürümlü migration
  • Up ve down migration dosyalarının yazımı
  • Migration'ın CI/CD hattına entegrasyonu
  • Şema değişikliğinin güvenli dağıtımı
  • Seed verisi ve ortam bazlı yapılandırma
  • Rollback ve kırık migration kurtarma
Modül 3
NoSQL: MongoDB ve Redis
  • mongo-go-driver ile bağlantı ve BSON eşleme
  • InsertOne, Find ve aggregation pipeline
  • MongoDB context ve zaman aşımı kullanımı
  • go-redis ile key-value ve pipeline işlemleri
  • Redis ile önbellekleme ve cache-aside deseni
  • SQL ve NoSQL seçiminde karar ölçütleri
Modül 4
Repository Deseni ve Test
  • Repository interface ile veri katmanı soyutlama
  • Bağımlılık enjeksiyonu ve test edilebilirlik
  • sqlmock ile birim testi yazımı
  • testcontainers-go ile entegrasyon testi
  • Transaction tabanlı test izolasyonu
  • Veri katmanı için mock ve fake stratejileri

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
database/sql ustalığı

Sürücü mimarisini, connection pool ayarlarını ve Query/Exec API'sini kavrayıp sağlam bir veri erişim temeli kurarsınız.

✅
Connection pool ayarı

MaxOpenConns, idle ve lifetime ayarlarını yük profiline göre belirleyerek pool kaynaklı darboğazları önlersiniz.

✅
Context ve iptal

context ile zaman aşımı ve iptali sorgulara yayarak gecikmeli isteklerde kaynakları güvenle serbest bırakırsınız.

✅
Transaction yönetimi

BeginTx, commit, rollback ve isolation seviyelerini doğru kullanarak tutarlı ve güvenli veri değişiklikleri yaparsınız.

✅
pgx ve PostgreSQL

pgx ile JSONB, array, COPY ve batch gibi PostgreSQL'e özgü özellikleri kullanarak yüksek performans elde edersiniz.

✅
sqlx ve ORM

sqlx ile struct eşleme ve GORM ile ORM kullanımını kavrar, projeye uygun yaklaşımı bilinçli seçersiniz.

✅
NoSQL erişimi

mongo-go-driver ve go-redis ile MongoDB ve Redis'e erişir, önbellekleme ve doküman sorgularını uygularsınız.

✅
Test ve repository

Repository deseni, sqlmock ve testcontainers ile test edilebilir, bakımı kolay bir veri katmanı tasarlarsınız.

Kimler İçin Uygundur?

  • Go ile backend geliştiren yazılımcılar
  • mikroservis mimarisinde veri katmanı kuran mühendisler
  • ORM
  • sürücü seçimi yapan ekip liderleri ve performanslı veritabanı erişimi arayan deneyimli Go geliştiricileri için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Eğitim; Go ile backend geliştiren yazılımcılar, mikroservislerde veri katmanı kuran mühendisler ve ORM/sürücü seçimi yapan ekip liderleri için uygundur. Struct, interface, goroutine gibi Go kavramlarına ve temel SQL bilgisine hakim, veri erişimini derinleştirmek isteyen geliştiriciler hedeflenir.
Bu eğitim genel bir Go eğitimi mi?
Hayır. Eğitim Go dilinin temellerini değil, özellikle veritabanı erişimini derinlemesine ele alır: database/sql, connection pool, transaction, pgx, sqlx, GORM ve NoSQL sürücüleri. Go sözdizimi ve eşzamanlılık önceden biliniyor varsayılır; odak üretim seviyesinde veri katmanıdır.
Hangi veritabanları ve kütüphaneler kullanılıyor?
Ağırlıklı olarak PostgreSQL (database/sql ve pgx ile), ayrıca MongoDB (mongo-go-driver) ve Redis (go-redis) kullanılır. Kütüphane olarak database/sql, sqlx, pgx/pgxpool, GORM ve golang-migrate işlenir; test için sqlmock ve testcontainers-go gösterilir.
database/sql, sqlx, pgx ve GORM arasında nasıl seçim yapılır?
Eğitimde her birinin güçlü ve zayıf yönleri örneklerle karşılaştırılır. database/sql taşınabilir ve bağımlılıksızdır; sqlx struct eşlemeyi kolaylaştırır; pgx PostgreSQL'e özgü yüksek performans sağlar; GORM üretkenlik sunar ama maliyeti vardır. Projeye uygun bilinçli seçim öğretilir.
Eğitim sonunda sertifika veriliyor mu?
Programı tamamlayan katılımcılar Digital Vizyon Akademi Katılım ve Başarı Sertifikası alır. Sertifika database/sql, transaction yönetimi, pgx/sqlx, GORM ve NoSQL erişimi konularını kapsar; içerik kurumun kullandığı veritabanı ve kütüphane yığınına göre uyarlanabilir.

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. Advanced Programming in Go: Accessing Databases Eğitimi Sertifika Kodu DV-2026XX00 Tarih 23.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

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

Bu Eğitimle Birlikte Tercih Edilenler

Veritabanı Yönetimi TemelleriConnecting to & Configuring a Database Instance Eğitimi
Veritabanı Eğitimleri

Connecting to & Configuring a Database Instance Eğitimi

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

Veritabanı instance mimarisi, listener yapılandırması, servis adları, bağlantı dizeleri ve sorun giderme uygulamalı işlenir. 3 günlük kurumsal eğitim.

Detayları Gör →
Veritabanı Yönetimi TemelleriConstraint Modeling and Model Validation in SysML Eğitimi
Veritabanı Eğitimleri

Constraint Modeling and Model Validation in SysML Eğitimi

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

SysML kısıt blokları, parametrik diyagramlar, OCL kuralları ve model doğrulama teknikleri uygulamalı işlenir. MBSE için 3 günlük kurumsal eğitim.

Detayları Gör →
Veritabanı Yönetimi TemelleriConstraint Satisfaction Problems Eğitimi
Veritabanı Eğitimleri

Constraint Satisfaction Problems Eğitimi

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

CSP modelleme, backtracking, forward checking, AC-3 arc consistency ve MRV/LCV sezgileri uygulamalı işlenir. Yapay zekâ için 3 günlük kurumsal eğitim.

Detayları Gör →
Veritabanı Yönetimi TemelleriCSSLP : Databases & Programming Language Environments Eğitimi
Veritabanı Eğitimleri

CSSLP : Databases & Programming Language Environments Eğitimi

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

CSSLP kapsamında güvenli veritabanı tasarımı, şifreleme, SQL injection savunması, veri maskeleme ve programlama dili ortamı güvenliği eğitimi.

Detayları Gör →
Veritabanı Yönetimi TemelleriData Infrastructure: Databases in FSD Development Eğitimi
Veritabanı Eğitimleri

Data Infrastructure: Databases in FSD Development Eğitimi

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

Full stack geliştirmede veri altyapısı eğitimi: şema tasarımı, ORM, migration, bağlantı havuzu, indeksleme, N+1, önbellek ve SQL/NoSQL seçimi uygulamalı işlenir

Detayları Gör →
Veritabanı Yönetimi TemelleriDatabase Design - Beginner Eğitimi
Veritabanı Eğitimleri

Database Design - Beginner Eğitimi

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

Başlangıç veritabanı tasarımı eğitimi: varlık-ilişki modelleme, birincil/yabancı anahtar, ilişkiler ve 1NF-3NF normalizasyon adım adım uygulamalı işlenir.

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