HELLO, I’M SERHAT AND THIS IS MY FANCY TITLE.

Ruby günlüğü - gün 1

Ruby öğrenme sürecimde, edindiğim tecrübeler, yaşadığım zorluklar, bulduğum çözüm yolları gibi durumları, bu yazı dizisinden günlük şeklinde aktaracağım. Daha sonra geriye dönüp baktığımda, nerelerde yanlış yapmışım, nelerde kendimi boşa yormuşum, neleri yanlış anlamışım, bunları değerlendirebilmek için bu günlüğü tutuyorum.

Ruby'ye başlangıç için Beginning Ruby: From Novice to Professional - Second Edition kitabını kullanmaktayım. Bu kitabı hızlıca tüketip, The Ruby Programming Language, O'Reilly kitabına geçmek ilk etapta düşüncem. Kitapların .pdf halini bir kaç Google araması ile kolayca bulabilirsiniz.

İşletim sistemi olarak Ubuntu 10.04 kullanmaktayım, tabi ki siz farklı bir işletim sistemide kullanabilirsiniz.

Ruby Kurulumu

Ubuntu'da öncelikle Ruby'yi kurmak üzere yola çıktım. Paket yöneticisi kullanmak istemiyorum, direk kaynak koddan yüklemek istiyorum, bu sayede versiyon seçiminde daha spesifik davranabilirim. Daha önceki denemelerimde Ruby'yi paket yöneticisinden kurdurmak istediğimde, hangi sürüm tanımlıysa direk onu kurduğu için, işimi görmeyen bir sonuçla karşılaşmıştım.

sudo apt-get install build-essential komutunu vererek kaynaktan kurulum yapmak için gerekli olan kütüphaneleri yüklüyorum. Bu sayede sistemim kaynaktan program derleme kabiliyeti kazandı.

ruby-build-essential

https://www.ruby-lang.org/tr/downloads/ sayfasına giderek, Ruby kaynak kodunun, son kararlı sürümünü indirdim.

Aşağıdaki talimatları okursanız apt-get ile nasıl kolayca kurabileceğinizi de görebilirsiniz, ancak ben uzun yolu seçtim, kaynak koddan kurulum kabiliyetlerimin gelişmesi için kolaya kaçmak istemiyorum, sonuçta zaman sıkıntım yok ve amacım kolaya kaçmak değil, çok şey öğrenmekti.

İndirdiğim .tar.gz arşivini uncompress ediyorum, yani arşivden çıkartıyorum. Bunu arşiv yöneticisi ile iki tıklamayla yapabilirim ancak komut satırından yapmak istiyorum bu yüzden önce arşivi indirdiğim masaüstü dizinine düşüp, daha sonra tar xzvf ruby-1.9.2-p136.tar.gz komutu vererek işlemi tamamlıyorum. Arşivin olduğu yerde, yeni oluşmuş bir ruby klasörü görmeniz gerekmekte, arşivden çıkmış dosyalar onun içinde.

Bu yeni oluşan dizine düştüm ve ./configure komutu ile Makefile ve config.h dosyalarını oluşturdum.

sudo make install komutu ile kurulumu başlattım. Eğer root iseniz sudo komutunu vermenize gerek yok. Bu işlem biraz sürebilir, bilgisayarınızın hızına bağlı olarak.

Yükleme bittikten sonra ruby -v ile ruby versiyonunuzu kontrol edebilirsiniz. Bu komuttan sonra yüklü sürümün numarası ekrana basılmalı.

İlk Adım

Uçbirimdeyken irb (Interactive Ruby) komutu vererek ruby'yi çalıştırabilirsiniz. Ruby'den çıkmak için Ctrl + D yapmanız yeterli. irb komutu verdim ve ruby komut satırına geldim. Buradaki irb(main):001:0>in anlamı;

  • 001 => 1 Nolu satırdayım
  • 0 => 0 numaralı derinlikteyim (veya katmandayım, nasıl hayal etmek kolay olacaksa)

Basit bir deneme olarak 2**9 ile 2 üzeri (üssü) 9'u Ruby'ye kolayca hesaplattım ve bana beklenen sonuç olan 512'yi döndürdü.

Ruby İngilizce Biliyor!

Ruby syntax'i diğer programlama dillerinde olduğu gibi katı kurallar ve sıkıcı ifadeler içermiyor, eğer aklınızda birşey varsa bunu İngilizce düşünmek yeterli (her zaman değil tabi ki) Örneğin şöyle bir programcık algoritması düşünsek;

10 kez sayfaya serhat yazdır ve bitir

Bunu Ruby'de İngilizce'ye çevirip kullanabiliriz:

10.times do print "serhat" end

Evet, karmaşık süslü parantezler, girintilemeler, tanımlamalar vs. yapmadık, sadece İngilizce düşündük ve Ruby anladı.

Bunu Python'da şu şekilde yapabilirdik;

n = "serhat"
print(n*10)

Ruby'nin İngilizce konuşması ile ilgili başka bir örnek olsun:

User.find_by_email('admin@google.com').country = 'Turkiye'

peki bu kod parçası ne iş yapar? Aslında İngilizce düşününce ve hafif bir programlama temeliniz varsa kod oldukça açık ve net.

admin@google.com e-mail adresini kullanan kullanıcıyı bul, ülkesini Türkiye olarak değiştir. Değiştirme de nerden çıktı diyebilirsiniz, = operatörü ile atama yaptık, ve bir veri arattığımıza göre ülke bilgisi zaten var, biz tekrar atama yapınca değişmiş oldu.

Başarılar.


Share this post!


Blog Comments powered by Disqus.