Ruby 101
Egitmen: Sıtkı Bağdat : sbagdat@gmail.com
Yeterlilikler
- Herhangi bir dile hâkim olmak.
- Nesne yönelimli programlama hakkında bilgi sahibi olmak
- Ruby programlama dili tam anlamı ile nesne yönelimlidir. Eğer nesne yönelimli
programcılığı bilmiyorsanız bu kurstan fayda sağlayamazsınız. Kurstan önce bu
açıklarınızı aşağıdaki kaynakları okuyarak kapatabilirsiniz.
Katılmadan önce yapılması gerekenler
- 30-40 dk sürecek http://tryruby.org/ serisini bitirmek.
- Geliştirme ortamlarının ayarlanması. Bu işlem için aşağıdaki adımları takip edebilirsiniz.
- Debian & Ubuntu için kurulum scripti
- Suse için kurulum için kurulum scripti
- Temel Linux bilgisine sahip olmak en azından chmod, tail ve nano veya vim'i basit düzeyde
kullanabiliyor olmak.
Eğitim Konuları
Giriş
- Ruby Felsefesi
- Ruby'ninGenel Özellikleri
- Irb ve Ruby Yorumlayıcısının Kullanımı
- Ruby Paket Yöneticisi(RubyGems) ve Bundler
- Ri, RDoc ve Dokümantasyon
- Alternatif Paketler: Pry, Pry-Doc Kullanımı
Temel Kavramlar
- İfade Yapısı ve Mantıksal İfadeler
- Değişkenler, nil ve Sabitler
- Operatörler ve Aritmetiksel İşlemler
- Ekran girdi/çıktı işlemleri
- Fonksiyonel Programlama, Metotlar ve Kapsam
- Temel Kontrol Yapıları
- Ruby programları hakkında diğer temel bilgiler
Standart Ruby Nesneleri
- Ruby'de her şeyin nesne olduğuna ilişkin ispatlar: class, subclass, ancestors vb. metotlar
kullanılarak Ruby'nin daha derin incelenmesi.
- Sayılar,
- Metinler, Semboller ve Düzenli İfadeler
- Diziler, Sözlükler ve Aralıklar
Kontrol Yapıları
Koşullu İfadeler(if, elsif, unless, case, ternaryoperator, …)
Döngüler(while, loop, for, …)
Diğer Yineleme Metotları
Metotlar
- Metot Oluşturma ve Çağırma
- Parametre Kullanımı ve Farklı Yöntemler
- Metotlardan Geriye Dönüş
- Bazı Kullanışlı Metotlar
Bloklar, Proc ve Lambda
- Bloklar ve Kullanım Amaçları
- Blokların Metotlarla Birlikte Kullanımı
- Proc ve Lambda Arasındaki Farklılıklar
- Find, merge, map, sort, inject vb. blok kullanan metotlar
Sınıflar
- Nesne Yönelimli Programlama Temelleri
- Sınıf Oluşturma ve Kullanma
- Nesne Oluşturma ve Kullanma
- Örnek Değişkenleri ve Metotları
- Başlangıç ve Okuma/YazmaMetotları
- Sınıf Değişkenleri ve Metotları
- Sarmalama, Kalıtım, Çok Biçimlilik
- Üst Sınıflara Erişime
Modüller
- Modül Oluşturma ve Kullanma
- Ad Alanları
- load, require, extend ve include kullanımı
- Kalıtıma Alternatif Yöntemler
- Enumerable Modülünü İnceleme
İstisna Yönetimi
- İstisna Nedir ve Nasıl Oluşur?
- İstisnaları Yakalama
- Kendi İstisna Sınıflarımızı Oluşturma ve Kullanma
Dosya/Klasör ve Tarih/Saat İşlemleri
- Dosya Yolunun Bulunması, Belirtilmesi
- Dosyayı Okuma, Yazma vb.
- Klasör İşlemleri
- İleriSeviye Dosya ve Klasör İşlemleri
- Tarih ve Saat İşlemleri
Çekirdek, STL ve Bazı Paketlerin İncelenmesi
- Sınıflara Alternatif Olarak Yapıların Kullanılması
- Yaml
- Erb, Haml
- ActiveSupport
- Rubocop ve Reek
- Maruku ve daha fazlası…
İpuçları, İlginç Kullanım Örnekleri ve Tuzaklardan Korunma