09.12.2007

Rails 2.0 Çıktı

rails.png

Web uygulamaları geliştirme iskeleti Ruby on Rails’in 2.0 sürümü çıktı. Biz web tabanlı projelerimizde Ruby on Rails kullanıyoruz. 2005 yılında Openstudio Rails’in ilk versiyonuyla yapılmıştı, daha sonra Manevi Emek Borsası, Bağcık, ve Meta-Markets projelerinde kullandık. Henüz açmadığımız deneysel projeleri ve bu sırada geçimimizi sağlamak için yaptığımız bir kaç ticari projeyi Ruby on Rails’in 1.2.3 sürümü ile geliştirdik. Bütün bunlar olurken Rails etrafında oluşan topluluklardan öğrendik ve elimizden geldiğince katkıda bulunmaya çalıştık. Ruby on Rails açık kaynaklı bir proje, bu yeni 2.0 sürümü de dünyanın pek çok yerinden programcının katkısıyla geliştirildi.

http://rubyonrails.org/

Rails 2.0 bir çok yenilik içeriyor, ilk gözüme çarpanlar şunlar:

Rails 2.0 PDF dökümanında yeni özellikler derinlemesine anlatılıyor. Ayrıca Mike Clark tarafından yazılan yeni Gelişmiş Rails Tarifeleri kitabı da Rails 2.0 içeriyor. Bir de son zamanlarda çok faydasını gördüğüm Rails screencast‘leri var, Rails Casts arşivi oldukça detaylı. Sizin de dikkatinizi çeken yeni Rails 2.0 özellikleri varsa bu yazıya yorum yazarak paylaşın, ne varmış beraber öğrenelim. Ayrıca Bağcık’da Ruby on Rails ile ilgili faydalı bağlantıları biriktiriyoruz.

http://bagcik.com/etiketler/rails

Etiketler

, , , ,

Geri beslemeler (Trackback)

Trackback Adresi
  1. Güncel Blog » Blog Arşivi » Rails 2.0 Geldi!
  2. Rails 2.0 Geldi ! | Blog şeysi
  3. Rails 2.0 Geldi! | Bizim Neyimiz Eksik?
  4. Deniyorum, mutluyum » Rails 2.0 Geldi!
  5. düğümküme » 2007 Düğümküme Başlıkları
  6. Movies news celebrity film tv movie dvd cd » Blog Archive » Rails 2.0 Geldi!
  7. » Rails 2.0 Geldi! Duymadim.com: Bunudamı duymadın? Araç Bilgisayar Bilim Donanım Fragmanlar Genel Komedi Magazin Müzik Mobil Oyunlar Son Dakika Spor Teknoloji Uzay Video Yazılım İnternet Yeni teknolojiler Yeni telefonlar yen

24 Yorum

  1. onur gunduz

    yeni rake tasklari guzel olmus. cok kullanisli. prototype, scripcolusu falan da core paketten cikarmislar. convention da oturmus artik, olmus resmen yane.

    peepcode.com da rails2pdf dokumani 9 papel. cok faydali bilgiler iceren bu dokumani okuyunuz.

    sori.

    http://www.peepcode.com

  2. arikan

    Eski bir sürümden Rails 2.0 sürümüne geçmek için üç adım:

    1. Önce Rails 1.2.3den 1.2.5e geçin
    >> gem install rails --version "1.2.5"

    2. Sonra uygulamanızda config/environment.rb içinde RAILS_GEM_VERSION ’1.2.5′ olacak ve temizlik için:
    >> rake rails:update:configs

    3. Bu sürümde uygulamanız uyarı veriyorsa uyarılar bitene kadar düzeltmeleri yapın, Rails 2.0da bu uyarılar hataya dönüşecek. Uyarı yoksa, rails 2.0 yükleyebilirsiniz:
    >> gem install rails

  3. arikan

    Onur merhaba Rails ile yaptığın işler varsa bir ara gönderir misin bakmak isterim.

  4. onur gunduz

    şu an up vaziyette yok :) eski projeleri de rails2 ye geçirmeyeceğim. zaten kullandığım tüm pluginleri core pakete eklemişler artık. ufukta yeni bir rails projesi gözüküyor fakat ;)

  5. onur gunduz

    yeni rake tasklari görmek için

    rake –tasks

    bu daha önceki version da varmıydı bilmiyorum ama rake db:create_all bu mesela enfes bir çözüm. direk config dosyalarınızı okuyup gerekli databaseleri açıyor. sonra da migraitonları çakıp rake db:migrate ile iki satır da database setupı bitiriyorsunuz.

    ayrıca göze çarpan bmba özelliklerden ikisinden bahsedeyim.

    query caching default olarak açık gelen bir özellik. şöyle çalışıyor. bir sql query yapıyorsunuz. rails responseu cache ediyor. sonra tekrar o queryi yaptığınızda eğer üzerinde bir değişiklik yapılmamışsa (update,delete) yeni bir sql query çalıştırmadan size cachedeki sonucu dönüyor.

    railsin götleri tekmeledii ikinci bir yeni özellik de daha önce errtheblog plugini olarak bildiğimiz sexy migrations. bunu şimdi kor pakete eklemişler. şöyle ki,

    create_table :posts do |t|
    t.text :body, :name
    t.integer :sayi
    t.timestamps
    end

    gibi migrationlar yazabiliyorsunuz. eski versiyonda rest fonksiyonları çok kullanmamaya çalışıyordum, çünkü rahat çalışamıyordum ve ISO8859-9. rest ile ilgili tüm problemleri rails2 de çözdüklerini görmek beni çok sevindirdi.

    bu versiyon çok büyük bir atılım olmuş. tüm bunları test etmek için sabredemiyorum artık.

  6. arikan

    Rake Unix ortamındaki make koumutundan geliyor. Shell script yerine ruby ile yazıyorsun. Bir uygulamayı geri planda çekip çevirmek için çok faydalı, sık yaptığın işleri otomatik yapan scriptler yazıyorsun basitçe.

    Kendi Rake’lerimi nasıl yazarım?
    http://railscasts.com/episodes/66

  7. onur gunduz

    istersen o taskları cronjob ekleyebiliyorsun, hatta o tasklar direk olarak senin modellerine -dolayısıyla databaseine de- ulaşıyorlar, arada ek bir programlama diline, shell scriptlere falan ihtiyaç duymuyorsun. herşey ruby herşey pure oo.

    bu da daha önceden var mıydı hatırlamıyorum, fakat routinglerde has_many ilişkileri verebiliyorsun. routing katmanında bile objectoriented kafalara girebiliyorsun. bir de bir de şu acayip hoşuma gitti.

    rake db:rollback STEP=2

    komut bu. rahatlıkla da anlaşılableceği gibi, database (şemasını) iki adım rollback ediyor.

    bu arada pagination kalkmış. onun yerine şu plugini indirin:

    http://rock.errtheblog.com/will_paginate

  8. arikan

    Çok faydalı bir Ruby array fonksiyonu include? Elinizdeki liste içinde şu şu eleman var mı diye kontrol etmenin kolay bir yolu:


    dizi = [ "a", "b", "c" ]
    dizi.include?("b") #=> true
    dizi.include?("z") #=> false

    Burda tabi true yerine elemanın kendisini döndürmesi çok kullanışlı olurdu. Bunun için eleman dizide varsa indeks numarasını alıp ve bununla elemana erişmiş olursunuz.


    i = dizi.index("b") #=> 1
    dizi[i] #=> "b"

    Bu teknik basit dizilerde değil karmaşık nesneler içeren diziler için çok faydalı. Bu örnekte "b" yerine Uye diye bir nesne olabilirdi, sonra uye.isim veya uye.email diye iç elemanları kullanabilirsiniz.

  9. arikan

    @onur rake db:rollback nefis, çok basit ve kullanışlı bir script. Bir web uygulaması geliştirirken veritabanı’nı en baştan tasarlayıp bitirmek neredeyse imkansız zaten gerek yok, proje gelişirken yavaş yavaş değişmesi ve olgunlaşması gerekiyor, bu script tam burada veritabanı sürümünü ileri geri alarak değişiklikleri denemek için faydalı.

  10. onur gunduz

    canım rorr ya :)

    [og@pwnt /rails/noob]$ ruby script/console –sandbox
    Loading development environment in sandbox (Rails 2.0.1)
    Any modifications you make will be rolled back on exit
    >> rm -fr /*

    hem konsol hem direk servera bağlı (+db) hem de rollback edebiliyor. daha ne olsun :)

  11. arikan

    >>script/console kullanmak kesinlikle prototip kod yazmak için çok faydalı. Veritabanı konsolda elinin altinda, daha ne istersin.

  12. onur gunduz

    amy hoy un ilgili dökümanını öneririm

    http://www.slash7.com/articles/2006/12/21/secrets-of-the-rails-console-ninjas

  13. arikan

    Sagol onur oldukça zengin bir bağlantıymış.

    irb mix tape de çok faydalı
    http://errtheblog.com/posts/24-irb-mix-tape

  14. onur gunduz

    burak birr yöntem :)

    irb(main):001:0> fu = %w(ali veli deli)
    => ["ali", "veli", "deli"]
    irb(main):002:0> fu.empty?
    => false
    irb(main):003:0> fu.include?(‘ali’)
    => true
    irb(main):004:0> fu.index(‘ali’)
    => 0
    irb(main):005:0> fu.index(‘veli’)
    => 1
    irb(main):006:0> fu[fu.index('veli')]
    => “veli”

  15. onur gunduz

    oh yazmissin zaten

  16. arikan

    irb tab tamamlama yapabilmek için .irbrc dosyasına şunu eklemeniz lazım
    http://whytheluckystiff.net/clog/ruby/tabCompletionInIRb.html

  17. arikan

    Bazen hiç bir şeyin cevabı yoksa başkalarının kodları içinde dolaşmak iyi gelebilir:

    Google Kod Arama, her programlama dilinde
    http://www.google.com/codesearch

    Pastie, kod yapıştırma ve arama
    http://pastie.caboo.se/

  18. onur gunduz

    pastie irc.freenode.org #rubyonrails ve bilimum kanalla senkron gidiyor. irc http çalışan güzel bi eggdrop script yazılmış.

    pastie yi hazirlayan arkadasin diger bir projesi olan BEAST i de kontrol etmenizi şiddetle öneriyorum.
    http://beast.caboo.se/
    beast de challenge railsde 500 satırı aşmadan forum yazabilir miyiz? miş. railsde 500 satırı aşmadan neler yapılabildiğini görünce insanın gözleri doluyor.

    aynı tayfadan geliyor:

    http://www.mephistoblog.com/

  19. onur gunduz

    Bazen hiç bir şeyin cevabı yoksa başkalarının kodları içinde dolaşmak iyi gelebilir:

    http://www.gnu.org/

    :wq

  20. arikan

    Yein bir Rails projesine başlarken örnek uygulama ile yola çıkmak da pek çok işi kolaylaştırıyor. Mesela kullanıcı sistemi hazır olan, belli başlı gerek şart eklentileri önceden yüklenmiş… şurada çeşitli derecelerde hazır rails app bulabilirsiniz:

    http://sample.caboo.se/

    Yeni başlayanlar için tavsiye etmem, ancak olaylari biraz kaptıysanız, böyle hazır kodlardan bir çok şey, yeni kodlama örüntüsü (“pattern”) öğrenebilir alışkanlık yapabilirsiniz.

  21. onur gunduz

    burak çok teşekkürler mükemmel bir kaynak! bundan haberim yoktu :) :)

  22. arikan

    will_paginate + AJAX
    http://www.railsontherun.com/2007/9/27/ajax-pagination-in-less-than-5-minutes

    will_paginate + acts_as_taggable (etiket teknolojisi)
    http://blog.wolfman.com/articles/2007/07/30/paginating-acts_as_taggable-with-will_paginate

    will_paginate + ferret (çok hızlı metin arama, sonuç sayfası için)
    http://opensoul.org/2007/8/17/acts_as_ferret-will_paginate

    Kaynak: will_paginate geliştiricisi err ekibi

  23. arikan

    Ruby’de iki dizinin kesişimi için OR bileşimi için AND işareti:


    a = [1, 2, 3, 4, 5]
    b = [3, 4, 5, 6, 7]
    a | b #=> [1, 2, 3, 4, 5, 6, 7]
    a & b #=> [3, 4, 5]

  24. arikan

    Ruby modulo fonksiyonu bir bölümde kalan değeri verir. Genelde sürekli değişen sayıları belli bir aralıkta tutmak için kullanılır.

    13.modulo(4) #=> 1
    13.modulo(5) #=> 3

    divmod hem kalanı hem sonucu (bir dizi olarak) verir:

    13.divmod(2) #=> [6, 1]
    13.divmod(5) #=> [2, 3]

    Ayrıca Processing ile yapılmış görsel modulo örneğine bakmanızı tavsiye ederim:
    http://processing.org/learning/examples/modulo.html

Yorum Yaz