Ruby on Rails (RoR)

Oct 11 2011 Published by under software development

Ruby on Rails kullanım kolaylığı olan, programcıların hızlı ve kolay web uygulamaları geliştirmesini amaçlayan, MVC tabanlı, açık kaynak kodlu bir yapıdır. Şu an bu yapıyı kullanan sitelere bakarsak (Twitter, Basecamp, Github, Groupon, Shopify, Yellow Pages..vs.) framework’ün gücünü hissedebiliriz. Rails 2003’te David Heinemeier Hansson tarafından yazıldı. Şu anda 1800 civarında yazılımcı ve büyük bir ekosistem tarafından destekleniyor. Eğer gerçekten kod güzelliği sizin için önemliyse hatta yazdığınız koda şiirine hayranlıkla bakan bir şair gibi bakıyorsanız, o zaman Rails’a tam da sizi düşünerek tasarlanmış bir yapı diyebiliriz. “Enterprise bir uygulamada yazılan kod, çirkin, güncellenmesi zor ve pahalı olmak zorunda değil!” sloganına sahip Rails’ın syntax’ını daha önce programlamayla az çok ugraşmış herkes birkaç günde öğrenebilir. Rails’i biraz daha anlamak için kendi reklamlarını yaparken maddeler halinde yazdıkları özelliklerden bahsetmek gerekebilir. Bu özellikler: MVC, Don’t Repeat Yourself, Dynamic Languages, Convention over Configuration, Object Relational Mapping ve Testing Tools. Ayrıca hemen hemen tüm açık kaynak kodlu javascript kütüphanelerini (Sproutcore, JQuery, Prototype, Dojo, MooToo, ExtJS..vs.) ve veritabanlarını (mongoDB, Cassandra, MySQL, Redis, PostgreSQL, CouchDB..vs.) destekler. Rails 3’le gelen ve bağımlılık yönetimini düzenleyen Bundler yapısı da acı çekmeden tüm bağımlılıkların kolay yönetilebilmesini sağlar. Plugin yükleme mantığı sayesinde çoklu dil desteği,arama ve sorgulama, istatistik, loglama, güvenlik ve test araçları gibi birçok özellik hızlı bir şekilde web uygulamasına eklenebilir. Şu an halihazırda 1614 plugin (http://agilewebdevelopment.com/plugins) bulunuyor ve gün geçtikçe sayıları artıyor.

Bir çok web framework’ü gibi MVC mimarisine sahip bir yapı olan Rails, model, view ve controller’ları otomatik yaratan araçlara sahip. (scaffolding). Bu araçlar sayesinde basit bir CRUD uygulaması çok hızlı bir şekilde geliştirilebiliyor. Framework’ün yapısına baktığımızda ise nesneleri DB’yle ilişkilendirmek için tasarlanmış ActiveRecord, web servis sağlayıcısı ActiveResource, ActionPack, ActionSupport ve ActionMailer gibi bir çok farklı pakete ayrıldığını ve bu paketlerin extension’lariyla plugin’ler geliştirilebildiğini görüyoruz.

Bu yazılanlardan sonra Rails hala ilginizi çekmediyse yazının devamını okumama özgürlüğüne sahipsiniz. Ama eğer “Güzelmiş, bir göz atmakta fayda var” diye içinizden mırıldanıyorsanız ilk yapmanız gereken şey Ruby’yi indirip yüklemeniz. (http://rubyforge.org/frs/?group_id=167). Ardından Ruby’nin standart paket yöneticisi olan RubyGems için aynı şeyi yapmalısınız. RubGems’in işletim sistemlerindeki paket yöneticilerinden pek bir farkı yok. (apt-get, emerge..vs.) RubyGems’i de yükledikten sonra tüm Rails’i ve bağımlılıklarını komut satırından

yazarak yükleyebilirsiniz. Kurulum işlemleriniz de gördüğünüz üzere en az framework kadar kullanıcı dostu. Kurulumlar bittikten sonra uygulamanızı yaratmaya başlayabilirsiniz. Uygulamanın iskeletini yaratmak için komut satırından

sunucuyu başlatmak için ise

ve

komutlarını çalıştırmanız yeterli. Artık uygulamanız http://localhost:3000 üzerinde çalışıyor. http://localhost:3000’i açıp oradaki talimatları yerine getirin.

Artık bir Ruby on Rails 3.0 ile yaratılmış bir uygulamanız var. Bu uygulamayı NetBeans veya Eclipse üzerinde geliştirebilirsiniz. 2007 yılından bu yana Eclipse desteği olmasına karşın uyumsuzluk sorunları yaşarsanız NetBeans’e geçmenizi tavsiye ederim. NetBeans’i yükleyip açtıktan sonra “New Project”‘e tıklayıp “Ruby on Rails Application with Existing Resources”‘a tıklayın ve komut satırından yarattığınız uygulamanın dizinini belirtin. (Not: Rails 3.0’dan sonrasını kullanmak istiyorsanız Ruby Platforom’dan Manage’e tıklayıp
Ruby directory’si olarak Ruby 1.8.7 ve sonrasını göstermeniz gerekmektedir.)

Uygulamayı NetBeans’e import ettikten sonra Model, View ve Controller’larınızı komut satırı yerine NetBeans üzerinden yaratabilirsiniz.
(http://netbeans.org/features/ruby/index.html)

Referanslar:
http://netbeans.org/features/ruby/index.html,
http://guides.rubyonrails.org/getting_started.html,
http://rubyonrails.org/documentation,

2 responses so far