Ruby Koans sizi aydınlatmak amacıyla yazılmış bir ruby öğrenim formudur . Maksat Ruby dilini, syntax, yapıları, ve bazı yaygın fonksiyonları/kütüphaneleri öğrenmektir. Aynı zamanda sana kültürümüzü de öğreteceğiz. Bir şeyler denemek bizim için yalnızca sözde kavramlar değil bunu seviyoruz. Bu senin alacağın görevlerde de geçerli bu sayede bu dili kullanarak harikalar yaratabilirsin.
Koan’ları dosyaların içlerine bölüştürdük, sözlükleri about_hashes.rb içine, modulleri about_modules.rb içine gizledik, vs. Sıralanışlarını path_to_enlightenment.rb içinde görebilirsin.
Her bir Koan senin Ruby bilgini ve kendini biraz daha genişletecektir. Düzeltmen gereken ilk yerde duracak.
Bazı koan’lar basitçe yanlışının yerine doğrusunun yazılmasını bekliyor . Bazılar ise senden kendi cevabını yazmanı. Eğer bir yerde __
metodunu görürsen (iki alt-tire) , bu senin devam etmenin ancak kendi kodunu yazmanla mümkün olabileceğini gösteren bir ipucudur.
Eğer Ruby kurulum dosyanız yoksa daha ayrıntılı yönlendirmeler için:
http://ruby-lang.org/en/downloads/ .
Koans çalıştırmak için ruby ve rake’e ihtiyacın olacak. Yüklemelerin basitçe anlatımı için:
*nix platformları herhangi bir uçbirimde:
[~] $ ruby --version [~] $ rake --version
Windows komut satırında (cmd.exe)
c:\ruby --version c:\rake --version
Eğer kurulu halde rake’e sahip değilseniz sadece şunu çalıştırın ‘gem install rake`
Ruby’nin 1.8den daha büyük olan versiyonları uygundur (1.8.6 yakınlarında veya daha yüksek). rake’in herhangi bir versiyonu olur.
Yalnızca yüklemekle bitmiyor işler, yönlendirmeler de gerekli.
[ruby_koans] $ rake gen # koans dizinine yönlendirir
Yeniden yönlendirmeye ihtiyaç duyarsanız bu şimdiki ‘koans’ınızı silecektir,
[ruby_koans] $ rake regen # koans dizinine yeniden yönlendirir, orjinali siler
Testleri rake ile ya da tek tek çalıştırarak deneyebilirsin.(bizim önerdiğimiz yol rake ile çalıştırmanız bu daha fonksiyonel olacaktır).
*nix platformları, koans dizininden
[ruby_koans] $ rake # varsayılan hedefi çalıştırır :walk_the_path [ruby_koans] $ ruby path_to_enlightenment.rb # basitçe direkt olarak dosya açma
Windowsda da aynı şey
c:\ruby_koans\rake # varsayılan hedefi çalıştırır :walk_the_path c:\ruby_koans\ruby path_to_enlightenment.rb # basitçe dosyayı çağırdık
Bir test sürüşü yapacak olursanız “mantra”nın hep kırmızı yeşil ya da Yeniden-Bak döndürdüğünü görürüz.
Bir başarısızlıktesti yapıp çalıştır (kırmızı), başarılı yap (yeşil), sonra yeniden-bak
(Koda bak ve onu daha iyi yazabilir misin diye düşün). Bu konuda koan’ı çalıştırıp onu yanlış yapmalı (kırmızı), sonra doğrusuna düzeltmeli (yeşil), daha sonra ise
test hakkında sana ne öğretmek istediğini düşün ve kodunu buna göre düzenle
bu sayede iletişimin gücü de artacak (Yeniden-Bak).
İlk çalıştırmanızda şöyle bir çıktı olmalı:
[ ruby_koans ] $ rake (in /Users/person/dev/ruby_koans) /usr/bin/ruby1.8 path_to_enlightenment.rb AboutAsserts#test_assert_truth tamamlanmadı, çok ayıp. Üstad diyor ki: Hala aydınlanmaya çalışıyorsun. Aradığın cevap bu olmalıydı: <false> is not true. Aşağıdaki kod üzerinde çalışmaya devam et: ./about_asserts.rb:10:in `test_assert_truth' path_to_enlightenment.rb:38:in `each_with_index' path_to_enlightenment.rb:38 Aşılamayacak dağ yoktur. önünde uzuun bir yol var [X_________________________________________________] 0/280
İlk aşamayı atladın. Eğer dikkat ettiysen sana ilk cevap için bir de yol gösterici var:
Aşağıdaki kod üzerinde çalışmaya devam et: ./about_asserts.rb:10:in `test_assert_truth' path_to_enlightenment.rb:38:in `each_with_index' path_to_enlightenment.rb:38
Bunun üzerine about_asserts.rb dosyasını açıp ilk testimize göz atıyoruz:
# Gerçekliğin kontrolü için doğruluk ya da yanlışlık üzerine # "asserts" ile düşünmeliyiz. def test_assert_truth assert false # Burası <true> olmalıydı end
Daha sonra false’u true yapıp yeniden çalıştırıyoruz. Bunu yaptıktan sonra ne öğrendiğini düşün. Burada metod ismi hariç her şeyi atla (test_assert_truth
) metodun içindekiler de dahil (+end+den önceki her şey).
Burada amaç assert
metoduna bir değer eklediğinde, onun ne olduğuna karar verecek true
ise devam et ya da cevabın false
ise başarısızlığa uğrat.
Bu projeye ilham verdikleri için Mike Clark ve Ara Howard’a özel teşekkürlerimizi sunarız. Mike Clark Ruby testleri ile öğretme konusunda muhteşem bir blog gönderisi yayınladı. Bu fikrimizi biraz daha pekiştirmemize yol açtı, yeni Rubycileri topluluğumuza bu testler ile dahil edebilecektik. Ara Howard ruby quiz girisinde bize koans için Meta Koans(kendini geliştirmek isteyen her ruby programcısı için bir zorunluluktur) üzerindebir fikir verdi .
Ayrıca, "The Little Lisper" bize kısa sorular/basit cevapların öğrenilme biçimi konusunda yol gösterdi.
- Mike Clark’ın gönderisi
- Meta Koans
- The Little Lisper
-
www.amazon.com/Little-LISPer-Third-Daniel-Friedman/dp/0023397632
- Ruby Dili
- Tarayıcınızda Ruby Deneyin
- Dave Thomas’ın Ruby’e giriş için yazdığı Ruby Programming Ruby (the Pick Axe)
- Brian Marick’ın yeni başlayanlar için fantastik önerileri Everyday Scripting with Ruby
- Yazar
-
Jim Weirich <jim@weirichhouse.org>
- Yazar
-
Joe O’Brien <joe@edgecase.com>
- Issue Tracker
- Gereksinimler
-
Ruby 1.8.x or later and Rake (any recent version)
RubyKoans is released under a Creative Commons, Attribution-NonCommercial-ShareAlike, Version 3.0 (creativecommons.org/licenses/by-nc-sa/3.0/) License.