Yeni Başlayanlar İçin Terraform Eğitimi: İlk Dosyadan Modüllere Kod Olarak Altyapı

  1. Ana sayfa
  2. Blog
  3. DevOps

DevOps

Yeni Başlayanlar İçin Terraform Eğitimi: İlk Dosyadan Modüllere Kod Olarak Altyapı

Bulut hesabı veya sürpriz fatura olmadan Terraform’u öğrenin. Planı anlamak, uygulamak ve belirtmek için yerel dosyalarla başlayın, ardından gerçek bulut kaynaklarına, modüllere ve ekipler için güvenli bir iş akışına geçin.

10 dk okuma
Yeni başlayanlar için Terraform eğitimi: ilk dosyadan modüllere kadar kod olarak altyapı

Önemli noktalar

  • Terraform Git’te saklayabileceğiniz metin dosyalarından altyapı oluşturur ve değiştirir.
  • Temel iş akışı init, plan, apply ve plan değişiklikleri gerçekleşmeden önce gösterir.
  • Durum dosyası Terraform’un yönettiği şeyleri kaydeder. Onu koruyun ve asla Git’e taahhüt etmeyin.
  • Bir ekip içinde çalışırken kalıpları yeniden kullanmak ve kilitleme ile uzak durumu kullanmak için modülleri kullanın.

Bir bulut konsolunun etrafına tıklamak bir sunucu için uygundur. Sahneleme ve prodüksiyonda aynı kuruluma ihtiyaç duyduğunuzda veya birisi geçen Mart ayında güvenlik duvarı kuralını kimin değiştirdiğini sorduğunda bozulur. Bu Yeni başlayanlar için Terraform eğitimi size daha iyi bir yol gösteriyor: altyapınızı kodla tanımlayın ve bir aracın bunu gerçeğe dönüştürmesine izin verin.

Çoğu eğitim, siz daha hiçbir şey öğrenmeden faturalandırma riskini ekleyen bir bulut hesabıyla başlar. Yalnızca bilgisayarınızda dosyalar oluşturan Terraform’un local sağlayıcısıyla başlıyoruz, böylece hataların hiçbir maliyeti yoktur. Bu örnekler ve örnek çıktı, bu makale için uygulamadığımız standart çizimlerdir ve tam ifadeler sürüme göre değişir.

Terraform nedir?

Terraform, HashiCorp’un kod olarak altyapı (IaC) aracıdır. Yapılandırma dosyalarını, istediğiniz nihai sonucu açıklayan HashiCorp Yapılandırma Dili HCL’de yazarsınız. Terraform daha sonra bu noktaya ulaşmak için nelerin oluşturulacağını, değiştirileceğini veya silineceğini belirler.

Sağlayıcılar adı verilen eklentiler aracılığıyla platformlarla iletişim kurar. AWS, Azure, Google Cloud, Kubernetes, GitHub, Cloudflare ve daha pek çok sağlayıcı için sağlayıcılar mevcut olduğundan bunların hepsinde tek bir iş akışı kullanabilirsiniz.

Bilinmesi gereken bir şey var: 2023 yılında HashiCorp, Terraform’u İş Kaynağı Lisansına taşıdı. Topluluk daha sonra çok benzer komutları ve yapılandırmayı kullanan açık kaynaklı bir çatal olan OpenTofu‘yu yarattı. Burada öğrendikleriniz büyük ölçüde her ikisi için de geçerlidir.

Neden kod olarak altyapı?

Soru Manuel konsol çalışması Terraform
Kim neyi değiştirdi? Öğrenmek zor Git geçmişi
Aşamayı üretime kopyalayabilir miyiz? Dikkatli tıklama Kodu yeniden kullanın
Bu değişiklik ne işe yarayacak? Daha sonra öğrenirsin terraform plan ilk önce sizi gösterir
Birisi bunu inceleyebilir mi? Kolay değil Normal bir çekme isteği
Felaket kurtarma İnsanların hafızasına bağlıdır Koddan yeniden oluşturma ve veri yedeklemeleri

Terraform aynı zamanda bildirimseldir. “Üç kez sunucu oluştur” değil “üç sunucu olmalı” diyorsunuz. Zaten iki tane varsa, bir tane ekler. Basitçe adımlarını tekrarlayan bir komut dosyası, üç adım daha oluşturabilir.

Terraform’u yükleyin

İşletim sisteminiz için resmi HashiCorp talimatlarını kullanarak yükleyin ve ardından çalıştığını doğrulayın:

terraform -version

Proje için boş bir klasör oluşturun. Terraform geçerli klasördeki her .tf dosyayı okur, dolayısıyla bir klasör bir konfigürasyona eşittir.

İlk yapılandırmanız

main.tf adlı bir dosya oluşturun:

terraform {
  required_providers {
    local = {
      source  = "hashicorp/local"
      version = "~> 2.5"
    }
  }
}

resource "local_file" "greeting" {
  filename = "${path.module}/hello.txt"
  content  = "Hello from Terraform\n"
}

resource bloğuna bakın, yazdığınız neredeyse her şey bu şekli takip ediyor. local_file kaynak türüdür ve greeting, yapılandırma içindeki kaynak için kendi adınızdır. Birlikte adresini oluştururlar: local_file.greeting. İçerideki argümanlar ne istediğinizi açıklıyor.

İş akışı: Başlat, planla, uygula

Terraform başlangıcı

Bu, klasörü hazırlar ve istediğiniz sağlayıcıları indirir. Başlangıçta bir kez ve bir sağlayıcı veya modül eklediğinizde tekrar çalıştırın. Ayrıca tam sağlayıcı sürümlerini kaydeden bir .terraform.lock.hcl dosyası oluşturur. Bu dosyayı Git’e gönderin.

terraform init

dünya planı

Bu, kodunuzu mevcut olanla karşılaştırır ve hiçbir şeye dokunmadan planlanan değişiklikleri gösterir:

terraform plan

# local_file.greeting will be created
+ resource "local_file" "greeting" {
    + content  = "Hello from Terraform\n"
    + filename = "./hello.txt"
  }

Plan: 1 to add, 0 to change, 0 to destroy.

Sembolleri öğrenin çünkü birçok plan okuyacaksınız:

Sembol Anlamı
+ Oluştur
~ Yerinde güncelleme
- Yok et
-/+ Yok et ve yeniden yarat

Terraform uygulaması

Bu, planı tekrar gösterir, onay ister ve değişiklikleri yapar:

terraform apply

Tip yes ve hello.txt görünür. Şimdi terraform plan‘ü tekrar çalıştırın. Gerçeklik zaten kodunuzla eşleştiğinden hiçbir değişiklik bildirmemelidir. Tekrar tekrar çalıştırılmasının başka bir değişikliğe neden olmadığı bu özelliğe, eşdeğerlik adı verilir.

Değiştirmek ve yok etmek

content satırını düzenleyin ve terraform plan‘yi çalıştırın. Terraform farkı tespit ediyor ve bir değişiklik öneriyor. Bu kaynak için dosyanın yerini alır. Bir veritabanını yeniden oluşturmak veri kaybı anlamına gelebileceğinden, gerçek altyapıdaki değişikliklere dikkat edin.

Daha sonra hello.txt öğesini elle silin ve yeniden planlayın. Terraform eksik olduğunu fark eder ve onu yeniden oluşturmayı teklif eder. Kodunuzla gerçeklik arasındaki farka sürüklenme adı verilir ve bunun tespit edilmesi, aracın temel faydalarından biridir.

Bu yapılandırmanın yönettiği her şeyi kaldırmak için şunu çalıştırın:

terraform destroy

Değişkenler ve çıktılar

Sabit kodlanmış değerler kodu yeniden kullanmanızı engeller. Giriş değişkenleri konfigürasyonu esnek hale getirir ve çıktılar yararlı değerleri rapor eder:

# variables.tf
variable "environment" {
  type        = string
  description = "Deployment environment"
  default     = "dev"

  validation {
    condition     = contains(["dev", "staging", "prod"], var.environment)
    error_message = "Use dev, staging or prod."
  }
}

# main.tf
resource "local_file" "config" {
  filename = "${path.module}/${var.environment}.txt"
  content  = "environment=${var.environment}\n"
}

# outputs.tf
output "config_path" {
  value = local_file.config.filename
}

Değerleri komut satırında ayarlayın veya bunları otomatik olarak yüklenen terraform.tfvars adlı bir dosyada saklayın:

terraform apply -var="environment=staging"

Çıktıda local_file.config.filename kullanılması aynı zamanda kaynakların birbirlerine nasıl atıfta bulunduğunu da gösterir. Terraform, bir şeylerin yaratılacağı doğru sırayı bulmak için bu referansları okur.

Terraform durumu

Başvurduktan sonra terraform.tfstate adlı bir dosya bulacaksınız. Bu Terraform’un, kodunuzu gerçek nesnelerle eşleştirerek neyi yönettiğine ilişkin kaydıdır. O olmasaydı Terraform local_file.greeting dosyasının o spesifik dosya olduğunu bilemezdi.

Burada üç kural önemlidir:

  1. Hiçbir zaman Git’e durum aktarma. Düz metin halinde şifreler ve diğer sırlar içerebilir.
  2. El ile düzenlemeyin. terraform state list ve terraform state mv gibi komutları kullanın.
  3. Ekip projeleri için uzak bir arka uç kullanın. Paylaşılan bir arka uç, durumu merkezi olarak depolar ve kilitler; böylece iki kişi aynı anda başvuramaz.

Aşağıda, önceden oluşturduğunuz bir klasörle Amazon S3’ü kullanan tipik bir arka uç gösterilmektedir:

terraform {
  backend "s3" {
    bucket       = "my-company-terraform-state"
    key          = "shop/prod/terraform.tfstate"
    region       = "ap-south-1"
    encrypt      = true
    use_lockfile = true
  }
}

İpucu: Her projeye, .terraform/, *.tfstate, *.tfstate.* ve sır içeren tüm *.tfvars dosyaları hariç tutan bir .gitignore ile başlayın.

Gerçek bir bulut kaynağı

Buluta geçtiğinizde iş akışı değişmez. İşte AWS’deki bir S3 kovası. Önce fiyatı kontrol edin ve pratik yaparken yarattığınız her şeyi yok edin:

provider "aws" {
  region = "ap-south-1"
}

resource "aws_s3_bucket" "reports" {
  bucket = "my-unique-reports-bucket-2026"

  tags = {
    Environment = var.environment
    ManagedBy   = "terraform"
  }
}

Terraform, kimlik bilgilerini AWS CLI kurulumunuzdan veya ortam değişkenlerinden alır. Erişim anahtarlarını asla .tf dosyasına yazmayın.

Modüller

Bir modül, farklı girişlerle çağırabileceğiniz Terraform dosyalarından oluşan bir klasördür. Bir işleve çok benzer şekilde çalışır; bir modeli bir kez tanımlayıp yeniden kullanmanıza olanak tanır:

project/
  main.tf
  modules/
    reports_bucket/
      main.tf
      variables.tf
      outputs.tf
module "staging_reports" {
  source      = "./modules/reports_bucket"
  environment = "staging"
}

module "prod_reports" {
  source      = "./modules/reports_bucket"
  environment = "prod"
}

Herkese açık Terraform Kayıt Defteri’nde de hazır modüller vardır, ancak bunlara güvenmeden önce bunları okuyun ve sürümü sabitleyin. Modülleri çok erken inşa etmeyin. Bir deseni en az iki kez tekrarlayana kadar bekleyin.

Güvenli bir ekip iş akışı

  1. Bir dal oluşturun ve .tf dosyalarını değiştirin. Bilgilerinizi tazelemeye ihtiyacınız varsa Yeni başlayanlar için Git eğiticimize bakın.
  2. terraform fmt ve terraform validate‘yi çalıştırın.
  3. İnceleme için terraform plan çıktısının eklendiği bir çekme isteği açın.
  4. Onaylandıktan sonra, kaydedilen planı tek bir kontrollü yerden, ideal olarak bir boru hattından uygulayın.

Planı kaydetmek, incelenenleri tam olarak uygulamanızı sağlar:

terraform plan -out=tfplan
terraform apply tfplan

Bu, doğal olarak CI/CD ve GitHub Eylemleri‘ne uyar. Terraform genellikle kümenin temel hazırlığını yapar ve Kubernetes gibi araçlar bunun üzerinde uygulamaları çalıştırır.

Yaygın hatalar

  • Planı okumadan başvurmak. Bir veritabanındaki bir -/+ çok pahalı bir sürpriz olabilir.
  • Durum bir dizüstü bilgisayarda tutuluyor. Bu dizüstü bilgisayarı kaybederseniz Terraform altyapınızın takibini de kaybeder.
  • Manuel konsol değişiklikleri yapmak. Kaymaya neden olurlar ve bir sonraki uygulama bunları geri alabilir.
  • Sabitlenmemiş sürümleri kullanma. Yükseltmelerin bilinçli olarak gerçekleşmesi için sağlayıcı ve modül sürümlerini sabitleyin.
  • Çok büyük bir yapılandırma kullanma. Ortama veya sisteme göre bölmek, herhangi bir hatanın vereceği zararı sınırlar.

Son sözler

Artık neredeyse tüm Terraform çalışmalarının ardındaki fikirleri gördünüz: kaynakları bildirmek, planı gözden geçirmek, uygulamak ve devleti korumak. İş akışı doğal hale gelene kadar local sağlayıcıyla pratik yapın, ardından küçük bir gerçek kaynağı ücretsiz katmanlı bir hesapta yönetin. Birden fazla kişi veya birden fazla ortam dahil olduğunda uzak durumu ve modülleri devreye alın.

Sık sorulan sorular

Terraform ne için kullanılır?

Terraform, sunucular, ağlar, veritabanları ve DNS gibi altyapıyı elle yapılandırmak yerine kodla tanımlayarak oluşturmak ve yönetmek için kullanılır.

Terraform ücretsiz mi?

Koşullar bazı rakip ticari kullanımları kısıtlasa da Terraform CLI’nin İş Kaynağı Lisansı kapsamında kullanımı ücretsizdir. HCP Terraform’un ücretli katmanları vardır ve OpenTofu açık kaynaktır.

Terraform ve Ansible arasındaki fark nedir?

Terraform esas olarak altyapıyı bildirimsel olarak sağlar. Ansible esas olarak mevcut makinelerdeki yazılımı yapılandırır. Birçok takım önce Terraform’u, sonra Ansible’ı kullanıyor.

Terraform durum dosyası nedir?

Yapılandırmanızı gerçek kaynaklarla eşleştiren bir kayıttır. Terraform bunu değişiklikleri çözmek için kullanır. Sırları saklayabilir, bu nedenle onu güvenli bir şekilde saklayın ve Git’ten uzak tutun.

Terraform’u öğrenmek için programlama bilmem gerekiyor mu?

Tam olarak değil. HCL basit ve bildirimseldir. AWS ağı gibi yönettiğiniz platformu anlamak genellikle dilin kendisinden daha zordur.

Öğrenmeye devam et

Stack Quora ile çalışın

Test, WordPress veya SEO konusunda yardıma mı ihtiyacınız var?

Ekiplerin daha iyi yazılımlar sunmasına ve sitelerini büyütmesine yardımcı oluyoruz. Bize ne üzerinde çalıştığınızı söyleyin, biz de bir sonraki adım için net bir öneride bulunalım.

Okumaya devam et

Daha fazla kılavuz test, yapay zeka ve modern geliştirme

Bu makaleyi beğendiniz mi? Bir konu seçin ve doğrudan en yeni eğitimlerimize geçin.

Yapay zekâ

Yapay Zeka Halüsinasyonları Açıklandı: Dil Modelleri Neden İşleri Düzeltiyor ve Nasıl Azaltılabilir?

Yapay zeka halüsinasyonları açıkladı: ne olduklarını, dil modellerinin bunları neden ürettiğini, yaygın türlerini, temellendirme ve yönlendirmelerle…

Makaleyi okuyun →
DevOps

Açıklanan Ortam Değişkenleri: .env Dosyaları, Sırlar ve Yapılandırma Doğru Yapıldı

Çalıştırdığımız Python örnekleriyle açıklanan ortam değişkenleri: bunları okumak ve ayarlamak, neden her değerin bir dize olduğu, .env dosyaları, sü…

Makaleyi okuyun →
Yazılım geliştirme

API Hız Sınırlamasının Açıklaması: Algoritmalar, Başlıklar ve 429 Hatalarının Ele Alınması

API hızı sınırlaması, çalıştırdığımız bir simülasyonla açıklanmıştır: belirteç kümesi, sabit pencere, kayan pencere, 429 yanıt, hız sınırı başlıklar…

Makaleyi okuyun →
Test otomasyonu

Python'da alay etme: Unittest.mock, patch ve Testleri Yalan Yapan Hatalar

Unittest.mock ile Python'da alay etme, test edildi: Sahte ve dönüş_değeri, yan_etki, bir adın kullanıldığı yerde yama uygulama, spesifikasyon ve oto…

Makaleyi okuyun →
Yazılım testi

Kod Kapsamının Açıklaması: Hat ve Şube Kapsamı ve %100'ün Gerçek Anlamı

Kod kapsamı gerçek bir kapsama.py çalışmasıyla açıklanmıştır: hat, şube ve durum kapsamı, bir raporun okunması, %100 kapsamın neden hâlâ hataları ka…

Makaleyi okuyun →
Veritabanları ve SQL

SQL'de DELETE vs TRUNCATE vs DROP: Farklılıklar, Geri Alma ve Her Biri Ne Zaman Kullanılmalı

DELETE vs TRUNCATE vs DROP test edilmiş SQL ile açıklandı: her birinin neyi kaldırdığı, geri aldığı, tetiklediği, kimlik sıfırlaması, hızı ve Postgr…

Makaleyi okuyun →
Veritabanları ve SQL

Açıklanan SQL Görünümleri: Örneklerle Tuzakları Oluşturun, Kullanın ve Önleyin

Çalıştırdığımız sorgularla açıklanan SQL görünümleri: görünüm oluşturma, canlı sonuçlar, sütunları gizleme, performans, güncellenebilir ve gerçekleş…

Makaleyi okuyun →
Yazılım geliştirme

TypeScript Arayüzü ve Tür: Gerçek Farklılıklar, Derleyiciyle Test Edildi

TypeScript arayüzü ve türü, gerçek derleyiciyle kontrol edildi: her ikisinin de yapabileceği, yalnızca birinin yapabileceği, bildirim birleştirme, g…

Makaleyi okuyun →
Yazılım geliştirme

Python *args ve **kwargs'ın Açıklaması: Açık Örneklerle Esnek Fonksiyonlar

Python *args ve **kwargs çalıştırdığımız kodla açıklanmıştır: paketleme ve paketten çıkarma, parametre sırası, yalnızca anahtar kelime ve yalnızca k…

Makaleyi okuyun →
Yazılım geliştirme

Python Lambda İşlevleri: Söz Dizimi, Gerçek Kullanımlar ve Ne Zaman Kullanılmaması Gerektiği

Çalıştırdığımız kodla açıklanan Python lambda işlevleri: sözdizimi, anahtarla sıralama, harita ve filtre, kapatmalar, geç bağlama tuzağı ve normal b…

Makaleyi okuyun →
Yapay zekâ

Yapay Zeka Ajanları Nelerdir? Çalıştırabileceğiniz Basit Bir Aracı Döngüsüyle Nasıl Çalışırlar?

Yapay zeka ajanları nedir? Aracı döngüsüne, araçlara, belleğe ve korkuluklara ilişkin basit bir kılavuz, çalıştırdığımız küçük bir Python döngüsü, g…

Makaleyi okuyun →
DevOps

İzleme ve Gözlemlenebilirlik: Günlükler, Metrikler ve İzlerle Gerçek Fark

İzleme ve gözlemlenebilirliğin açıklanması: bilinen ve bilinmeyen arızalar, günlükler, ölçümler ve izler, ödeme olayının gözden geçirilmesi, altın s…

Makaleyi okuyun →
DevOps

Docker Birimleri ve Bağlama Bağlantıları: Konteyner Verilerini Doğru Şekilde Kalıcılaştırın

Docker birimleri ile bağlama bağlamaları arasındaki karşılaştırma açıklandı: kapsayıcı verilerinin neden kaybolduğu, adlandırılmış birimler, bağlama…

Makaleyi okuyun →
Test otomasyonu

TDD ve BDD: Temel Farklılıklar, Her İki Şekilde Geliştirilmiş Bir Özellik ve Her Birinin Ne Zaman Kullanılacağı

TDD ve BDD, her iki yönde de oluşturulmuş bir indirim özelliğiyle açıklandı: çalıştırdığımız kodla kırmızı-yeşil-refactor, Verilen-Ne Zaman-O Zaman …

Makaleyi okuyun →
Yazılım testi

Kullanıcı Kabul Testi (UAT): Süreç, Kontrol Listesi ve Gerçek Örnekler

Kullanıcı kabul testi açıklandı: bunu kimin yürüttüğü, QA'dan farkı, yedi adımlı bir süreç, bir UAT test senaryosu şablonu, bir kontrol listesi, otu…

Makaleyi okuyun →
Veritabanları ve SQL

Açıklanan SQL NULL Değerleri: IS NULL, COALESCE, NULLIF ve Kaçınılması Gereken Tuzaklar

SQL NULL değerleri, çalıştırdığımız sorgularla açıklandı: üç değerli mantık, IS NULL, COALESCE, NULLIF, toplamaların, birleştirmelerin ve sıralamanı…

Makaleyi okuyun →
Veritabanları ve SQL

SQL CASE WHEN İfadesi: Sözdizimi, Gerçek Örnekler ve Yaygın Hatalar

SQL CASE WHEN çalıştırdığımız sorgularla açıkladı: basit ve aranmış formlar, koşul sırası, SUM'lu pivotlar, COUNT hileleri, özel sıralama, güncellem…

Makaleyi okuyun →
Yazılım geliştirme

JWT Nedir? JSON Web Belirteçleri Bir Çalışma Örneğiyle Açıklanıyor

JWT nedir? JSON Web Tokens açıkladı: üç bölüm, çalıştırdığımız kodda oluşturulan ve üzerinde değişiklik yapılan bir token, JWT ile oturumlar, depola…

Makaleyi okuyun →
Yazılım geliştirme

JavaScript Olay Döngüsü Açıklaması: Örneklerle Çağrı Yığını, Mikro Görevler ve Zamanlayıcılar

JavaScript olay döngüsü çalıştırdığımız kodla açıklandı: çağrı yığını, görev ve mikro görev kuyrukları, setTimeout 0'ın neden anında olmadığı, engel…

Makaleyi okuyun →
Yazılım geliştirme

Python Jeneratörleri ve Verim Açıklaması: Gerçek Örneklerle Bellekten Tasarruf Edin

Python üreteçleri ve verim, çalıştırdığımız kodla açıklandı: nasıl duraklatılır ve devam ettirilir, ölçülen bellek tasarrufları, işlem hatları, sons…

Makaleyi okuyun →
Yapay zekâ

Gömmeler Nelerdir? Vektörler ve Kosinüs Benzerliği Basitçe Açıklandı

Gömmeler nedir? Vektörler, kosinüs benzerliği ve anlamsal aramaya ilişkin sade dilli bir kılavuz; çalıştırdığımız küçük bir örnek, yaygın kullanımla…

Makaleyi okuyun →
DevOps

Mavi-Yeşil ve Kanarya Konuşlandırılması: Farklılıklar, Takaslar ve Nasıl Seçilir

Mavi-yeşil ve kanarya konuşlandırması açıklandı: her birinin nasıl çalıştığı, maliyet, risk ve geri alma, test ettiğimiz istikrarlı kullanıcı grubu,…

Makaleyi okuyun →
Test otomasyonu

Kesintili Testler: Bunların Sebepleri ve Nasıl Düzeltileceği

Yaptığımız demolarla açıklanan hatalı testler: ana nedenler, birinin nasıl doğrulanacağı ve teşhis edileceği, zamanlama için uygun düzeltmeler, payl…

Makaleyi okuyun →
Yazılım testi

Yük Testi ve Stres Testi: Farklılıklar, Metrikler ve k6 Örnekleri

Yük testi ve stres testinin açıklaması: her birinin neyi kanıtladığı, ani yükselme ve soğuma testleri, önemli ölçümler, ortalamaların neden yanıltıc…

Makaleyi okuyun →
Yazılım testi

Test Senaryosu ve Test Senaryosu: Temel Farklılıklar, Örnekler ve Her Biri Ne Zaman Kullanılmalı?

Test senaryosu ve test senaryosunun açıklaması: net tanımlar, yan yana tablo, senaryolardan vakalara, şablonlara ve her birinin ne zaman kullanılaca…

Makaleyi okuyun →
Veritabanları ve SQL

SQL Sorgu Optimizasyonu: Zamanlamalarla Yürütme Planlarını Okuyun ve Yavaş Sorguları Düzeltin

SQL sorgu optimizasyonu bir milyon satırda test edilmiştir: yürütme planlarını okuyun, doğru dizinleri ekleyin, değiştirilemeyen filtreleri düzeltin…

Makaleyi okuyun →
Veritabanları ve SQL

SQL UNION ve UNION ALL: Farklılıklar, Örnekler ve Test Edilmiş Performans

SQL UNION ve UNION ALL, yürüttüğümüz sorgularla açıklandı: kopyalar, her ikisinin de takip ettiği kurallar, gerçek bir veri hatası, ölçülen performa…

Makaleyi okuyun →
Yazılım geliştirme

JavaScript Fetch API Eğitimi: GET, POST, Hata İşleme ve Zaman Aşımları

Yerel bir sunucuya karşı test edilen bir JavaScript Fetch API öğreticisi: GET ve POST, 404'ün neden atmadığı, yeniden kullanılabilir bir yardımcı, s…

Makaleyi okuyun →
Yazılım geliştirme

Python Dosya İşleme: Örneklerle Okuma, Yazma, CSV, JSON ve pathlib

Python dosya işleme, çalıştırdığımız kodla açıklanmıştır: açık modlar, büyük dosyaları okuma, CSV, JSON, pathlib, ikili dosyalar, güvenli yazma, hat…

Makaleyi okuyun →
Yazılım geliştirme

Python Sınıfları ve Nesneleri: Gerçek Örneklerle OOP Eğitimi

Çalıştırdığımız kodla açıklanan Python sınıfları ve nesneleri: __init__, yöntemler, sınıf ve örnek nitelikleri, kalıtım, özellikler, dunder yöntemle…

Makaleyi okuyun →
Yapay zekâ

Büyük Dil Modeli Nedir? Yüksek Lisans'ların Nasıl Çalıştığı, Abartmadan Açıklanıyor

Büyük dil modeli nedir? LLM'ler sade bir dille açıklandı: belirteçler, yerleştirmeler, dikkat, eğitim, sıcaklık ve bağlam pencereleri, küçük bir son…

Makaleyi okuyun →
DevOps

Yeni Başlayanlar İçin Linux Komutları: Örneklerle Temel Terminal Kılavuzu

Yeni başlayanlar için göreve göre gruplandırılmış Linux komutları: pratik bir günlük analizi örneğiyle gezinme, dosyalar, günlükleri görüntüleme, gr…

Makaleyi okuyun →
Test otomasyonu

Selenyum ve Oyun Yazarı: Temel Farklılıklar, Karşılaştırılan Kod ve Hangisinin Seçileceği

Selenium ve Playwright karşılaştırması: mimari, bekleme, tarayıcı ve dil desteği, hata ayıklama, her iki araçta da aynı test, geçiş tavsiyesi ve nas…

Makaleyi okuyun →
Yazılım testi

Eşdeğerlik Bölümleme: Test Tasarımı Tekniğinin Çalışılmış Örneklerle Açıklanması

Eşdeğerlik bölümlemenin açıklaması: geçerli ve geçersiz bölümlerin nasıl bulunacağı, yaşlara yönelik çalışılmış örnekler, şifreler ve kuponlar, yürü…

Makaleyi okuyun →
Yazılım testi

Yazılım Testinde Şiddet ve Öncelik: Farklılıklar, Matris ve Gerçek Örnekler

Yazılım testinde önem ve önceliğin açıklanması: net tanımlar, örnekler içeren dört yönlü bir matris, seviye ölçekleri, her birini kimin belirlediği …

Makaleyi okuyun →
Veritabanları ve SQL

SQL Alt Sorguları Eğitimi: Türler, İlişkili Alt Sorgular ve Örneklerle EXISTS

Çalıştırdığımız sorguları içeren bir SQL alt sorgu eğitimi: skaler, IN, FROM ve SELECT alt sorguları, ilişkili alt sorgular, EXISTS, NOT IN NULL tuz…

Makaleyi okuyun →
Veritabanları ve SQL

SQL İşlemleri ve ACID Açıklaması: COMMIT, ROLLBACK ve İzolasyon Seviyeleri

SQL işlemleri ve ACID, yürüttüğümüz bir banka transferiyle açıklandı: COMMIT, ROLLBACK, kayıt noktaları, kilitler, izolasyon seviyeleri, kirli okuma…

Makaleyi okuyun →
Yazılım geliştirme

Git Komutları Hile Sayfası: Gerçekte Kullandığınız Komutlar, Örneklerle

Git komutları göreve göre gruplandırılmış kısa bilgiler sayfası: kurulum, aşamalandırma, dallar, uzaktan kumandalar, saklama, geçmiş ve gerçek bir d…

Makaleyi okuyun →
Yazılım geliştirme

JavaScript Vaatlerinin Açıklaması: ardından, catch, Promise.all ve Yaygın Hatalar

Çalıştırdığımız kodla açıklanan JavaScript vaatleri: durumlar, ardından ve yakalama zincirleri, hata yönetimi, Promise.all, allSettled, yarış ve her…

Makaleyi okuyun →
Yazılım geliştirme

Python Sözlüğü Eğitimi: Yöntemler, Örnekler ve Ortak Kalıplar

Çalıştırdığımız kodları içeren bir Python sözlüğü eğitimi: dikteler oluşturma, okuma ve güncelleme, temel yöntemler, birleştirme, kavramalar, sayma …

Makaleyi okuyun →
Yapay zekâ

RAG Nedir? Geri Almayla Artırılmış Üretim Bir Çalışma Örneğiyle Açıklanıyor

RAG nedir? Almayla artırılmış oluşturma adım adım açıklanmıştır: indeksleme, parçalama, yerleştirmeler, alma, çalışan küçük bir Python örneği, değer…

Makaleyi okuyun →
DevOps

Yeni Başlayanlar İçin Terraform Eğitimi: İlk Dosyadan Modüllere Kod Olarak Altyapı

Yeni başlayanlar için bir Terraform eğitimi: Bulut hesabı olmadan başlayın, başlatmayı öğrenin, planlayın ve uygulayın, ardından değişkenler, çıktıl…

Makaleyi okuyun →
DevOps

Docker ve Kubernetes: Temel Farklılıklar, Birlikte Nasıl Çalıştıkları ve İhtiyacınız Olanlar

Docker ve Kubernetes şöyle açıkladı: Her birinin ne yaptığı, her ikisinde de aynı uygulamanın çalıştırılması, Docker Compose ve Swarm'ın karşılaştır…

Makaleyi okuyun →
Test otomasyonu

Yeni Başlayanlar İçin Pytest Eğitimi: Fikstürler, Parametrelendirme ve Gerçek Örnekler

Yeni başlayanlar için pytest 9.2'de yürüttüğümüz testleri içeren bir pytest öğreticisi: iddialar, fikstürler, parametrelendirme, yarışma, işaretleyi…

Makaleyi okuyun →
Yazılım testi

Yazılım Test Yaşam Döngüsü (STLC): 6 Aşama, Giriş ve Çıkış Kriterleri, Örnek

Yazılım testi yaşam döngüsü şunları açıkladı: giriş ve çıkış kriterleri, teslimatlar, çalışılmış bir oturum açma özelliği örneği, Agile'da STLC ve S…

Makaleyi okuyun →
Yazılım geliştirme

Git merge vs rebase: farklar, örnekler ve hangisi ne zaman kullanılır

Git merge vs rebase; gerçek log çıktısı, karşılaştırma tablosu, rebase'in altın kuralı ve güvenli bir ekip iş akışıyla anlatılıyor.

Makaleyi okuyun →
Yazılım geliştirme

Python Liste Üreteci (List Comprehension): Sözdizimi, Örnekler ve Kaçınılacak Durumlar

Python list comprehension anlatımı: sözdizimi, filtreleme, if-else, iç içe döngüler, ölçülmüş süreler ve düz for döngüsünün daha iyi olduğu durumlar.

Makaleyi okuyun →
Veritabanları ve SQL

SQL JOIN Örneklerle Açıklama (Inner, Left, Right, Full)

SQL JOIN'leri örnek tablolar ve sorgularla adım adım öğrenin: INNER, LEFT, RIGHT, FULL, CROSS ve SELF; yaygın hatalar ve performans ipuçları.

Makaleyi okuyun →