Takip et

İlk Ruby Programınızı Nasıl Yazarsınız?

İlk Ruby Programınızı Nasıl Yazarsınız? Ruby, zarif sözdizimi ve geliştirici verimliliğini ön planda tutan açık kaynaklı, dinamik bir p

İlk Ruby Programınızı Nasıl Yazarsınız?

Ruby, zarif sözdizimi ve geliştirici verimliliğini ön planda tutan açık kaynaklı, dinamik bir programlama dilidir. Japon bilgisayar bilimcisi Yukihiro “Matz” Matsumoto tarafından 1990’ların ortalarında tasarlanan Ruby, “geliştiricinin en iyi arkadaşı” olma felsefesiyle yola çıkmıştır. Python ve Perl gibi dillerden ilham alarak, güçlü bir nesne yönelimli yapıya sahip, okunabilir ve doğal bir dil yaratma amacı güdülmüştür. Bu makalede, Ruby’nin temellerini atacak, kurulumdan başlayarak ilk Ruby programınızı yazma sürecini adım adım keşfedeceğiz. Eğer programlamaya yeni başlıyor veya farklı bir dilden Ruby’ye geçiş yapıyorsanız, bu rehber size sağlam bir başlangıç noktası sunacaktır.

Ruby’nin popülaritesi, özellikle web geliştirme çerçevesi Ruby on Rails sayesinde büyük ölçüde artmıştır. Ancak Ruby’nin kullanım alanları sadece web ile sınırlı değildir; komut dosyaları, veri analizi, otomasyon ve hatta oyun geliştirme gibi birçok farklı alanda da kendine yer bulur. Bu çok yönlülük, Ruby’yi öğrenmeye değer kılan önemli özelliklerden biridir.

Bu makalede, Ruby’yi bilgisayarınıza nasıl kuracağınızı, temel sözdizimi kurallarını, değişkenleri, veri tiplerini, kontrol akışını ve metotları ele alacağız. Ardından, basit “Merhaba Dünya” programından başlayarak, kullanıcı etkileşimli ve daha karmaşık programlar yazma pratiği yapacağız. Son olarak, yazdığınız programları nasıl çalıştıracağınızı ve olası hatalarla nasıl başa çıkacağınızı öğrenecek, Ruby yolculuğunuzda size rehberlik edecek sonraki adımları tartışacağız.

Ruby’yi Ortamınıza Kurma

Ruby ile programlamaya başlamadan önce, Ruby yorumlayıcısını bilgisayarınıza kurmanız gerekir. Kurulum süreci, kullandığınız işletim sistemine göre değişiklik gösterebilir.

İşletim Sisteminize Göre Kurulum

Ruby kurulumu için birden fazla yöntem bulunmaktadır. En yaygın ve önerilen yöntemleri aşağıda bulabilirsiniz.

Windows

Windows kullanıcıları için en kolay ve önerilen yöntem RubyInstaller kullanmaktır.

1. RubyInstaller İndirme: RubyInstaller web sitesine (rubyinstaller.org) gidin. “With Devkit” sürümünü indirmeniz önerilir. Devkit, Ruby gem’lerinin (paketlerinin) C veya C++ uzantıları gerektirenlerini derlemek için gerekli araçları içerir.
2. Kurulum Sihirbazı: İndirdiğiniz .exe dosyasını çalıştırın. Kurulum sihirbazındaki talimatları takip edin.
* Lisans sözleşmesini kabul edin.
* Kurulum konumunu seçin (varsayılan genellikle iyidir).
* Önemli: “Add Ruby executables to your PATH” (Ruby çalıştırılabilir dosyalarını PATH’inize ekle) seçeneğini işaretlediğinizden emin olun. Bu, komut istemcisinden Ruby komutlarını çalıştırmanıza olanak tanır.
* Kurulum tamamlandıktan sonra, Devkit kurulumu için bir seçenek sunulabilir. Eğer sunulursa, bunu da tamamlayın. Genellikle, komut istemcisinde ridk install komutunu çalıştırmanız istenir. Bu komut, Devkit bileşenlerini kurar.
3. Doğrulama: Komut istemcisini (Command Prompt veya PowerShell) açın ve aşağıdaki komutları çalıştırarak Ruby’nin başarıyla kurulduğunu doğrulayın:

ruby -v
    irb

ruby -v size kurulu Ruby sürümünü göstermelidir. irb (Interactive Ruby) ise Ruby’nin etkileşimli konsolunu başlatacaktır. exit yazıp Enter tuşuna basarak irb‘den çıkabilirsiniz.

macOS

macOS sistemlerinde genellikle önceden yüklenmiş bir Ruby sürümü bulunur. Ancak bu sürüm genellikle eski olabilir ve sistem tarafından kullanıldığı için güncellemeleri veya değişiklikleri riskli olabilir. Bu nedenle, Ruby sürüm yöneticileri (rbenv veya RVM) kullanmak şiddetle tavsiye edilir. Bu yöneticiler, farklı Ruby sürümlerini kolayca kurmanıza ve projeleriniz arasında geçiş yapmanıza olanak tanır.

Bu rehberde rbenv kullanımını önereceğiz:

1. Homebrew Kurulumu (Gerekliyse): Eğer Homebrew kurulu değilse, Terminal’i açın ve aşağıdaki komutu çalıştırarak kurun:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2. rbenv Kurulumu: Homebrew kullanarak rbenv‘i kurun:

brew install rbenv ruby-build

ruby-build, rbenv‘in Ruby sürümlerini derlemesine yardımcı olan bir eklentidir.
3. rbenv’i PATH’e Ekleme: rbenv‘i kabuğunuza (shell) eklemeniz gerekir. Genellikle .zshrc (macOS Catalina ve sonrası) veya .bash_profile dosyanıza aşağıdaki satırları eklemeniz gerekir:

echo 'eval "$(rbenv init -)"' >> ~/.zshrc
    # veya
    echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

Dosyayı kaydettikten sonra Terminal’i yeniden başlatın veya source ~/.zshrc (veya .bash_profile) komutunu çalıştırın.
4. Ruby Kurulumu: rbenv kullanarak istediğiniz Ruby sürümünü kurun (örneğin, en son kararlı sürüm):

rbenv install 3.2.2 # Veya güncel en son sürüm
    rbenv global 3.2.2 # Bu sürümü varsayılan olarak ayarla

5. Doğrulama: Terminal’i açın ve aşağıdaki komutları çalıştırarak Ruby’nin başarıyla kurulduğunu doğrulayın:

ruby -v
    which ruby
    irb

which ruby komutu, rbenv tarafından yönetilen Ruby yolunu göstermelidir (örneğin, /Users/youruser/.rbenv/shims/ruby).

Linux

Linux dağıtımlarında da macOS’e benzer şekilde rbenv veya RVM kullanılması önerilir. Dağıtımınızın paket yöneticisi aracılığıyla Ruby kurmak mümkün olsa da, bu genellikle daha eski bir sürüm sağlar ve sürüm yönetimi esnekliği sunmaz.

rbenv kurulumu için adımlar macOS ile hemen hemen aynıdır:

1. Gerekli Bağımlılıkları Kurma: rbenv ve Ruby derlemesi için bazı bağımlılıklar gerekebilir. Dağıtımınıza göre:
* Debian/Ubuntu:

sudo apt update
        sudo apt install git curl libssl-dev libreadline-dev zlib1g-dev autoconf bison build-essential libyaml-dev libffi-dev libgdbm-dev libncurses5-dev

* Fedora/CentOS:

sudo dnf install git curl openssl-devel readline-devel zlib-devel autoconf bison gcc-c++ libyaml-devel libffi-devel gdbm-devel ncurses-devel

2. rbenv Kurulumu: rbenv‘i Git ile klonlayın:

git clone https://github.com/rbenv/rbenv.git ~/.rbenv
    git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

3. rbenv’i PATH’e Ekleme: .bashrc veya .zshrc dosyanıza aşağıdaki satırları ekleyin:

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
    echo 'eval "$(rbenv init -)"' >> ~/.bashrc

Dosyayı kaydettikten sonra Terminal’i yeniden başlatın veya source ~/.bashrc (veya .zshrc) komutunu çalıştırın.
4. Ruby Kurulumu: rbenv kullanarak istediğiniz Ruby sürümünü kurun:

rbenv install 3.2.2 # Veya güncel en son sürüm
    rbenv global 3.2.2 # Bu sürümü varsayılan olarak ayarla

5. Doğrulama: Terminal’i açın ve aşağıdaki komutları çalıştırarak Ruby’nin başarıyla kurulduğunu doğrulayın:

ruby -v
    which ruby
    irb

Kod Düzenleyici Seçimi

Ruby kodunuzu yazmak için bir kod düzenleyiciye ihtiyacınız olacak. İyi bir kod düzenleyici, sözdizimi vurgulama, otomatik tamamlama ve hata ayıklama gibi özelliklerle verimliliğinizi artırır.

* Visual Studio Code (VS Code): En popüler ve çok yönlü düzenleyicilerden biridir. Ücretsizdir ve Ruby geliştirme için birçok eklentiye (örn. Ruby, Solargraph) sahiptir. Başlangıç için şiddetle tavsiye edilir.
* Sublime Text: Hızlı ve hafif bir düzenleyicidir. Ruby desteği için paketler mevcuttur.
* Atom: GitHub tarafından geliştirilen ücretsiz ve açık kaynaklı bir düzenleyicidir. Özelleştirilebilir ve Ruby için eklentiler sunar.
* Vim/Emacs: Deneyimli geliştiriciler için güçlü, terminal tabanlı düzenleyicilerdir. Öğrenme eğrisi yüksektir ancak çok verimlidirler.

Yeni başlayanlar için VS Code, kurulumu ve kullanımı kolay olduğu için ideal bir seçimdir.

Ruby’nin Temel Prensipleri ve Söz Dizimi

Ruby, nesne yönelimli bir dil olduğu için, her şeyin bir nesne olduğu felsefesini benimser. Bu bölüm, Ruby’nin temel yapı taşlarını ve sözdizimini tanıtacaktır.

Her Şey Bir Nesnedir

Ruby’de sayılar, dizeler, hatta true ve false bile birer nesnedir. Bu, her değerin metotlara sahip olduğu anlamına gelir.

puts 1.class      #=> Integer
puts "hello".class #=> String
puts [1, 2, 3].class #=> Array
puts true.class    #=> TrueClass

Bu özellik, Ruby’nin tutarlı ve güçlü nesne yönelimli yapısının temelidir.

Yorum Satırları

Yorum satırları, kodunuzu açıklamak ve daha okunabilir hale getirmek için kullanılır. Ruby’de iki tür yorum satırı vardır:

* Tek satırlık yorum: # işareti ile başlar.

# Bu tek satırlık bir yorumdur.
    puts "Merhaba" # Bu da aynı satırda bir yorumdur.

* Çok satırlık yorum: =begin ile başlar ve =end ile biter.

=begin
    Bu, birden fazla satıra yayılan
    bir yorum bloğudur.
    =end
    puts "Dünya"

Değişkenler

Değişkenler, değerleri depolamak için kullanılır. Ruby’de farklı türde değişkenler bulunur:

* Yerel Değişkenler: Küçük harfle veya alt çizgiyle başlayan değişkenlerdir (örn. ad, sayi_bir). Metot veya blok içinde tanımlanır ve yalnızca o kapsamda erişilebilirler.

mesaj = "Merhaba Ruby!"
    sayi = 10

* Örnek Değişkenleri: @ işaretiyle başlar (örn. @isim). Bir nesnenin belirli bir örneğine aittir ve o nesnenin metotları içinde erişilebilir.

class Kisi
      def initialize(isim)
        @isim = isim
      end
    end

* Sınıf Değişkenleri: @@ işaretiyle başlar (örn. @@toplam_sayi). Bir sınıfın tüm örnekleri tarafından paylaşılır.

class Sayac
      @@toplam_sayi = 0
      def initialize
        @@toplam_sayi += 1
      end
    end

* Global Değişkenler: $ işaretiyle başlar (örn. $global_degisken). Programın herhangi bir yerinden erişilebilirler. Kullanımı genellikle önerilmez, çünkü kodun karmaşıklığını artırır ve hatalara yol açabilir.

$debug_modu = true

* Sabitler: Büyük harfle başlayan değişkenlerdir (örn. PI, MAX_LIMIT). Değeri değiştirilmemesi gereken durumlar için kullanılır. Ruby, sabitlerin değerini değiştirmeye izin verir ancak bir uyarı verir.

PI = 3.14159

Veri Tipleri

Ruby, çeşitli temel veri tiplerini destekler:

* Sayılar (Numbers):
* Tam Sayılar (Integers): 1, 100, -5.
* Ondalık Sayılar (Floats): 3.14, 0.5, -10.2.
* Dizeler (Strings): Metin verilerini temsil eder. Tek (') veya çift (") tırnak içine alınır. Çift tırnaklar, değişken enterpolasyonu ve kaçış dizileri (\n, \t) için kullanılır.

ad = "Ayşe"
    mesaj = "Merhaba, #{ad}!" # Değişken enterpolasyonu
    puts mesaj #=> Merhaba, Ayşe!

* Diziler (Arrays): Sıralı nesne koleksiyonlarıdır. Köşeli parantez [] ile tanımlanır.

sayilar = [1, 2, 3, 4, 5]
    isimler = ["Ali", "Veli", "Ayşe"]

* Hash’ler (Hashes): Anahtar-değer çiftlerinden oluşan sırasız koleksiyonlardır. Küme parantezleri {} ile tanımlanır. Python’daki sözlüklere veya JavaScript’teki nesnelere benzer.

kisi = { "ad" => "Can", "yas" => 30, "sehir" => "İstanbul" }
    # Ruby 1.9+'dan itibaren sembol anahtarlar için daha kısa sözdizimi:
    kisi2 = { ad: "Deniz", yas: 25 }

* Booleans: true ve false değerleridir. Koşullu ifadelerde kullanılır.

dogru_mu = true
    yanlis_mi = false

* Nil: Ruby’de “hiçbir şey” veya “boş” anlamına gelen özel bir nesnedir. null veya None kavramlarına benzer.

deger_yok = nil

* Semboller (Symbols): Değişmez ve benzersiz tanımlayıcılardır. Bellekte yalnızca bir kez oluşturulurlar ve genellikle hash anahtarları olarak veya metot isimleri olarak kullanılırlar. : ile başlarlar.

:ad
    :yas

Operatörler

Ruby, çeşitli operatörleri destekler:

Aritmetik Operatörler: + (toplama), - (çıkarma), (çarpma), / (bölme), % (modülüs), (üs alma).
* Karşılaştırma Operatörleri: == (eşit mi), != (eşit değil mi), < (küçük mü), > (büyük mü), <= (küçük eşit mi), >= (büyük eşit mi).
* Mantıksal Operatörler: && (VE), || (VEYA), ! (DEĞİL).
Atama Operatörleri: = (atama), += (ekleyerek ata), -= (çıkararak ata), = (çarparak ata), /= (bölerek ata) vb.

Kontrol Akışı

Programlarınızın belirli koşullara göre farklı yollar izlemesini sağlamak için kontrol akışı yapılarını kullanırsınız.

* if/elsif/else/end: En temel koşullu yapıdır.

yas = 18
    if yas >= 18
      puts "Yetişkinsiniz."
    elsif yas >= 13
      puts "Ergensiniz."
    else
      puts "Çocuksunuz."
    end

Ruby'de ayrıca tek satırlık if ve unless ifadeleri de yaygın olarak kullanılır:

puts "Yaşınız uygun." if yas >= 18
    puts "Yaşınız uygun değil." unless yas >= 18

* unless/else/end: if'in tersidir, koşul yanlışsa çalışır.

hava_yagmurlu = false
    unless hava_yagmurlu
      puts "Şemsiyeye gerek yok."
    else
      puts "Şemsiyenizi alın!"
    end

* Ternary Operatör: Tek satırda basit if/else durumları için kısaltılmış bir formdur. koşul ? doğru_ise_değer : yanlış_ise_değer

durum = (yas >= 18) ? "Yetişkin" : "Çocuk"
    puts durum

* case/when/else/end: Birden fazla koşulu kontrol etmek için daha temiz bir yol sunar.

gun = "Pazartesi"
    case gun
    when "Pazartesi"
      puts "Hafta başı."
    when "Cumartesi", "Pazar"
      puts "Hafta sonu!"
    else
      puts "Hafta içi."
    end

Döngüler

Döngüler, belirli bir kod bloğunu birden çok kez çalıştırmak için kullanılır.

* while/end: Belirli bir koşul doğru olduğu sürece çalışır.

sayac = 0
    while sayac < 5
      puts "Sayac: #{sayac}"
      sayac += 1
    end

* until/end: Belirli bir koşul yanlış olduğu sürece çalışır (while'ın tersi).

sayac = 0
    until sayac >= 5
      puts "Sayac: #{sayac}"
      sayac += 1
    end

* for/in/end: Belirli bir koleksiyonun her öğesi üzerinde döner. Ruby'de genellikle each metodu tercih edilir.

for i in 0..4
      puts "Sayı: #{i}"
    end

* each Metodu: Koleksiyonlar (diziler, hash'ler) üzerinde gezinmek için en yaygın ve idiomatik Ruby yoludur.

sayilar = [10, 20, 30]
    sayilar.each do |sayi|
      puts "Sayı: #{sayi}"
    end

    meyveler = { elma: 1, muz: 2, portakal: 3 }
    meyveler.each do |meyve, adet|
      puts "#{meyve.capitalize}: #{adet} adet"
    end

* loop/break/next: Sonsuz bir döngü oluşturur ve break ile çıkış yapılır, next ile bir sonraki iterasyona geçilir.

i = 0
    loop do
      puts "Döngüdeyim: #{i}"
      i += 1
      break if i > 3 # i 3'ten büyük olduğunda döngüyü sonlandır.
    end

Metotlar

Metotlar, belirli bir görevi yerine getiren kod bloklarıdır. Kodun tekrarını azaltır ve okunabilirliği artırır.

* Metot Tanımlama: def anahtar kelimesiyle başlar, metot adı ve parantez içinde parametreler (isteğe bağlı) alır ve end ile biter.

def merhaba_de(isim)
      puts "Merhaba, #{isim}!"
    end

    def toplama(sayi1, sayi2)
      sayi1 + sayi2 # Ruby'de son ifade otomatik olarak geri döner.
    end

    def selamlama(isim = "Misafir") # Varsayılan parametre değeri
      puts "Hoş geldiniz, #{isim}!"
    end

* Metot Çağırma: Metot adını ve gerekli argümanları belirterek çağrılır.

merhaba_de("Alice") #=> Merhaba, Alice!
    sonuc = toplama(5, 3)
    puts "Toplam: #{sonuc}" #=> Toplam: 8
    selamlama #=> Hoş geldiniz, Misafir!
    selamlama("Bob") #=> Hoş geldiniz, Bob!

İlk Ruby Programınızı Yazma

Artık Ruby'nin temel yapılarını öğrendiğimize göre, ilk programlarımızı yazmaya başlayabiliriz.

"Merhaba Dünya!"

Her programlama dilinde geleneksel ilk program, ekrana "Merhaba Dünya!" yazdırmaktır.

1. Dosya Oluşturma: Bir metin düzenleyici açın ve yeni bir dosya oluşturun. Bu dosyayı merhaba.rb olarak kaydedin (.rb Ruby dosyaları için standart uzantıdır).
2. Kod Yazma: Dosyanın içine aşağıdaki kodu yazın:

# merhaba.rb
    puts "Merhaba Dünya!"

puts metodu, argümanını ekrana yazdırır ve ardından yeni bir satıra geçer. print metodu ise yeni satıra geçmez.
3. Programı Çalıştırma: Terminalinizi veya komut istemcinizi açın. merhaba.rb dosyasını kaydettiğiniz dizine gidin ve aşağıdaki komutu çalıştırın:

ruby merhaba.rb

Çıktı olarak Merhaba Dünya! görmelisiniz. Tebrikler, ilk Ruby programınızı çalıştırdınız!

Kullanıcıdan Girdi Alma

Programların çoğu, kullanıcıdan girdi alarak daha etkileşimli hale gelir. Ruby'de gets metodu kullanıcıdan tek satırlık girdi almak için kullanılır. chomp metodu ise girdinin sonundaki yeni satır karakterini (\n) kaldırır.

1. Dosya Oluşturma: ad_sor.rb adında yeni bir dosya oluşturun.
2. Kod Yazma:

# ad_sor.rb
    print "Adınız nedir? " # print metodu imleci aynı satırda bırakır
    ad = gets.chomp

    puts "Merhaba, #{ad}! Ruby dünyasına hoş geldiniz."

3. Programı Çalıştırma:

ruby ad_sor.rb

Program sizden adınızı isteyecek, girdikten sonra size özel bir selamlama mesajı gösterecektir.

Girdiğiniz metin her zaman bir dize (String) olarak kabul edilir. Eğer sayısal bir girdi bekliyorsanız, onu uygun türe dönüştürmeniz gerekir:

print "Yaşınızı girin: "
    yas_string = gets.chomp
    yas_integer = yas_string.to_i # String'i tam sayıya dönüştürür

    puts "Gelecek yıl #{yas_integer + 1} yaşında olacaksınız."

to_i (to integer) ve to_f (to float) gibi metotlar bu dönüşümler için kullanılır.

Basit Bir Hesap Makinesi

Şimdi öğrendiklerimizi birleştirerek basit bir hesap makinesi programı yazalım.

1. Dosya Oluşturma: hesap_makinesi.rb adında bir dosya oluşturun.
2. Kod Yazma:

# hesap_makinesi.rb

    puts "Basit Hesap Makinesi"
    puts "-------------------"

    print "İlk sayıyı girin: "
    sayi1 = gets.chomp.to_f # Ondalıklı sayıları da desteklemek için to_f kullanıyoruz

    print "İkinci sayıyı girin: "
    sayi2 = gets.chomp.to_f

    print "Yapmak istediğiniz işlemi seçin (+, -, *, /): "
    islem = gets.chomp

    sonuc = 0.0

    case islem
    when "+"
      sonuc = sayi1 + sayi2
    when "-"
      sonuc = sayi1 - sayi2
    when "*"
      sonuc = sayi1 * sayi2
    when "/"
      if sayi2 == 0
        puts "Hata: Sıfıra bölme yapılamaz!"
        exit # Programı sonlandır
      else
        sonuc = sayi1 / sayi2
      end
    else
      puts "Geçersiz işlem!"
      exit # Programı sonlandır
    end

    puts "Sonuç: #{sonuc}"

3. Programı Çalıştırma:

ruby hesap_makinesi.rb

Program, iki sayı ve bir işlem isteyecek, ardından sonucu ekrana yazdıracaktır. Sıfıra bölme gibi hatalı durumları da ele aldık.

Daha Fazla Etkileşim: Bir Tahmin Oyunu

Biraz daha karmaşık, döngüleri ve koşullu ifadeleri bir arada kullanan bir tahmin oyunu yazalım.

1. Dosya Oluşturma: tahmin_oyunu.rb adında bir dosya oluşturun.
2. Kod Yazma:

# tahmin_oyunu.rb

    puts "Sayı Tahmin Oyunu!"
    puts "------------------"
    puts "1 ile 100 arasında bir sayı tuttum. Bakalım tahmin edebilecek misin?"

    gizli_sayi = rand(1..100) # 1 ile 100 arasında rastgele bir sayı üretir
    tahmin_sayisi = 0
    tahmin = nil

    loop do
      tahmin_sayisi += 1
      print "Tahmininizi girin (#{tahmin_sayisi}. deneme): "
      tahmin = gets.chomp.to_i

      if tahmin < gizli_sayi
        puts "Çok düşük! Daha yüksek bir sayı dene."
      elsif tahmin > gizli_sayi
        puts "Çok yüksek! Daha düşük bir sayı dene."
      else
        puts "Tebrikler! #{tahmin_sayisi} denemede doğru bildiniz. Sayı #{gizli_sayi} idi."
        break # Döngüyü sonlandır
      end
    end

    puts "Oyun bitti."

3. Programı Çalıştırma:

ruby tahmin_oyunu.rb

Bu program, rand metodunu kullanarak rastgele bir sayı üretir ve kullanıcıdan bu sayıyı tahmin etmesini ister. loop döngüsü, kullanıcı doğru tahmini yapana kadar devam eder ve her denemede ipuçları verir.

Programınızı Çalıştırma ve Hata Ayıklama

Program yazmak kadar, onu çalıştırmak ve olası hataları gidermek de önemlidir.

Komut Satırından Çalıştırma

Ruby programlarınızı çalıştırmak için temel komut ruby [dosya_adı.rb] şeklindedir.

* Aynı Dizin: Eğer terminaliniz, Ruby dosyanızla aynı dizindeyse, doğrudan ruby dosya_adı.rb yazmanız yeterlidir.
* Farklı Dizin: Eğer farklı bir dizindeyseniz, dosyanın tam yolunu belirtmeniz gerekir (örn. ruby /home/kullanici/projelerim/program.rb veya ruby C:\Users\Kullanici\Documents\program.rb).
* Çalıştırılabilir Dosyalar (Shebang): Linux ve macOS'ta, Ruby dosyanızın en başına #!/usr/bin/env ruby gibi bir "shebang" satırı ekleyebilir ve dosyaya çalıştırma izni verebilirsiniz (chmod +x dosya_adı.rb). Bu durumda, dosyayı doğrudan ./dosya_adı.rb komutuyla çalıştırabilirsiniz.

Yaygın Hatalar ve Çözümleri

Programlamaya yeni başlayanlar için hatalar kaçınılmazdır. Önemli olan, hata mesajlarını okumayı ve anlamayı öğrenmektir.

* SyntaxError: Sözdizimi hatası demektir. Bir anahtar kelimeyi yanlış yazmış, parantezi kapatmayı unutmuş veya bir end anahtar kelimesini atlamış olabilirsiniz. Hata mesajı genellikle hatanın oluştuğu dosya adını ve satır numarasını belirtir.

# Hatalı kod: eksik 'end'
    if true
      puts "Doğru"
    # end eksik!

Çıktı: syntax error, unexpected end-of-input, expecting end''
*
NameError: Tanımlanmamış bir değişkeni veya metodu çağırmaya çalıştığınızda oluşur. Genellikle bir yazım hatası veya değişkenin tanımlandığı kapsam dışından erişmeye çalışmaktan kaynaklanır.

# Hatalı kod: 'mesaj' yerine 'mesag' yazılmış
    mesaj = "Merhaba"
    puts mesag

Çıktı: undefined local variable or method 'mesag' for main:Object (NameError)
*
TypeError: Yanlış türde bir işlem yapmaya çalıştığınızda oluşur (örn. bir sayıyı bir dizeyle toplamaya çalışmak).

# Hatalı kod: sayı ile dize toplama
    sayi = 10
    metin = "merhaba"
    puts sayi + metin

Çıktı: String can't be coerced into Integer (TypeError)
*
ZeroDivisionError: Bir sayıyı sıfıra bölmeye çalıştığınızda oluşur.

puts 10 / 0

Çıktı: divided by 0 (ZeroDivisionError)

Hata mesajlarını okumak, sorunu anlamanın ilk adımıdır. Genellikle hata mesajının son satırında hatanın türü ve bir açıklama bulunur. Üst satırlarda ise hatanın hangi dosyanın hangi satırında meydana geldiği gösterilir (stack trace).

Hata Ayıklama Araçları

* puts Debugging: En basit hata ayıklama yöntemidir. Kodunuzun belirli noktalarında değişkenlerin değerlerini veya programın akışını kontrol etmek için puts ifadeleri ekleyebilirsiniz.

sayi = 5
    puts "Sayi değeri: #{sayi}" # Debugging için eklenen satır
    sonuc = sayi * 2
    puts "Sonuç değeri: #{sonuc}" # Debugging için eklenen satır

* Etkileşimli Debugger'lar: Daha gelişmiş hata ayıklama için pry veya byebug gibi gem'ler (Ruby paketleri) kullanabilirsiniz. Bu araçlar, kodunuzu adım adım çalıştırmanıza, değişkenlerin değerlerini incelemenize ve programın akışını kontrol etmenize olanak tanır.
Kurulum için:
gem install pry veya gem install byebug
Kullanım için: Kodunuzun istediğiniz bir yerine
binding.pry veya byebug ekleyin. Program o noktaya geldiğinde etkileşimli bir konsol açılacaktır.

Sonraki Adımlar

Ruby öğrenme yolculuğunuzda ilk adımları attınız. Şimdi bu temellerin üzerine inşa etme zamanı.

* Ruby Belgelerini Keşfedin: Ruby'nin resmi belgeleri (ruby-doc.org), tüm metotları, sınıfları ve modülleri kapsayan kapsamlı bir kaynaktır. Bir metot veya sınıf hakkında bilgi edinmek istediğinizde başvuracağınız ilk yer olmalıdır.
* Online Kaynakları Kullanın: Codecademy, The Odin Project, freeCodeCamp gibi platformlar, interaktif dersler ve projeler aracılığıyla Ruby bilginizi pekiştirmenize yardımcı olabilir.
* Küçük Projeler Geliştirin: Öğrendiklerinizi uygulamak en iyi öğrenme yöntemidir. Basit oyunlar (taş-kağıt-makas), not uygulamaları veya komut satırı araçları gibi küçük projeler geliştirerek pratiğinizi artırın.
* RubyGems'i Araştırın: Ruby ekosistemi, "gem" adı verilen binlerce kütüphane ve araçla doludur. Bu gem'ler, web geliştirme, veri tabanı etkileşimi, test ve daha birçok alanda size yardımcı olabilir. bundler` gibi araçlar, projelerinizdeki gem bağımlılıklarını yönetmenize olanak tanır.
* Ruby on Rails'e Giriş: Eğer web geliştirmeyle ilgileniyorsanız, Ruby on Rails çerçevesi Ruby bilginizi bir üst seviyeye taşıyacaktır. Model-View-Controller (MVC) mimarisi üzerine kurulu bu çerçeve, web uygulamaları geliştirmeyi hızlı ve keyifli hale getirir.
* Topluluklara Katılın: Ruby topluluğu oldukça aktif ve yardımseverdir. Forumlara, Discord sunucularına veya yerel buluşmalara katılarak diğer geliştiricilerle bağlantı kurun, sorular sorun ve deneyimlerinizi paylaşın.

Sonuç

Bu makalede, Ruby'nin kurulumundan başlayarak temel sözdizimi, değişkenler, veri tipleri, kontrol akışı, döngüler ve metotlar gibi temel kavramları öğrendik. İlk "Merhaba Dünya!" programınızı yazdık, kullanıcıdan girdi almayı, basit bir hesap makinesi oluşturmayı ve bir tahmin oyunu geliştirmeyi deneyimledik. Ayrıca, programlarınızı nasıl çalıştıracağınızı ve yaygın hatalarla nasıl başa çıkacağınızı da gördük.

Ruby, geliştirici mutluluğunu ve üretkenliğini ön planda tutan, esnek ve güçlü bir dildir. Nesne yönelimli yapısı ve zarif sözdizimi, kod yazmayı keyifli hale getirir. Bu makale, Ruby yolculuğunuzun sadece başlangıcıdır. Unutmayın, en iyi öğrenme yolu pratik yapmaktır. Kod yazmaya devam edin, yeni şeyler deneyin, hatalar yapmaktan korkmayın ve her hatadan ders çıkarın. Ruby'nin sunduğu geniş imkanları keşfetmeye devam ettikçe, bu dilin ne kadar güçlü ve eğlenceli olduğunu daha iyi anlayacaksınız. İyi kodlamalar!

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Mobil sürümden çık