Ruby on Rails
- Okunuşu
- rubi on reylz
Kısaca
Ruby on Rails, yapılandırma yerine kuralı öne çıkaran, Ruby için tam yığın web framework'üdür; veritabanı destekli web uygulamaları onunla hızla kurulabilir.
Ruby on Rails nedir?
Rails, David Heinemeier Hansson tarafından Basecamp proje yönetim aracından ayıklandı ve 2004'te açık kaynak olarak yayımlandı. Daha sonra çoğu web framework'ünün ödünç aldığı fikirleri yaygınlaştırdı: net klasörlerle MVC, veritabanı migration'ları, framework'e yerleşik bir ORM, sizin için kod üreten generator'lar ve neredeyse her şey için mantıklı varsayılanlar.
Yapılandırma yerine kural, temel ilkesidir. Bir Book modeli otomatik olarak bir books tablosuna karşılık gelir, bir BooksController /books route'larını sunar, görünümleri de app/views/books içinde yaşar. Her Rails uygulaması aynı şekilde düzenlendiği için geliştiriciler projeler arasında hızla geçebilir ve pek çok kodun hiç yazılması gerekmez.
Yerleşik ORM olan Active Record, SQL yerine Book.where(author: "Le Guin").order(:year) yazmanızı sağlar. Varsayılan ön yüz yaklaşımı olan Hotwire, sayfaları büyük bir JavaScript framework'ü yerine HTML ile ağ üzerinden günceller; arka plan işleri, e-posta, dosya yükleme ve WebSocket araçları da yerleşik gelir. GitHub, Shopify ve Basecamp bilinen Rails uygulamalarıdır.
Sık yapılan bir yanlış, Rails'in ölçeklenemeyeceğini düşünmektir. En büyük web sitelerinin bazıları onun üzerinde çalışır; ölçekleme sorunları genellikle framework'ten değil, veritabanından ve mimariden gelir. Asıl ödünleşimi, verimliliğin onun kurallarını ve Ruby'nin tarzını benimsemeye bağlı olmasıdır.
Önemli noktalar
- Rails, 2004'te yayımlanan tam yığın bir Ruby web framework'üdür.
- Yapılandırma yerine kural, standart bir yapı ve daha az karar demektir.
- Active Record modelleri tablolara eşler; migration'lar şemayı sürümler.
- Generator'lar, arka plan işleri, e-posta ve Hotwire yerleşik gelir.
- GitHub ve Shopify, Rails üzerine kurulmuş büyük uygulamalardır.
Örnek
# config/routes.rb
Rails.application.routes.draw do
resources :books, only: [:index, :show]
end
# app/models/book.rb → table "books"
class Book < ApplicationRecord
validates :title, presence: true
scope :by_author, ->(name) { where(author: name).order(:year) }
end
# app/controllers/books_controller.rb → views in app/views/books/
class BooksController < ApplicationController
def index
@books = Book.by_author(params[:author])
end
def show
@book = Book.find(params[:id])
end
endSık sorulan sorular
Ruby on Rails hâlâ kullanılıyor mu?
Evet. Aktif olarak geliştiriliyor ve GitHub, Shopify ve Basecamp gibi şirketler tarafından kullanılıyor; hızlı ürün çıkarmak isteyen girişimler arasında da popülerliğini koruyor.
Yapılandırma yerine kural ne demek?
Framework'ün, bir Book modelinin books tablosunu kullanması gibi standart adlar ve konumlar varsaymasıdır; böylece yalnızca varsayılandan farklı bir şeye ihtiyaç duyduğunuzda yapılandırma yazarsınız.
Ruby ile Rails arasındaki fark nedir?
Ruby programlama dilidir. Rails ise Ruby ile yazılmış bir web framework'üdür. Rails olmadan Ruby yazabilirsiniz, ama Rails uygulamaları Ruby ile yazılır.
İlgili sayfalar
- RubyProgramlama Dilleri, s. 28Ruby, geliştirici mutluluğu için tasarlanmış, okunaklı sözdizimi ve Ruby on Rails web çatısıyla tanınan, dinamik ve nesne yönelimli bir dildir.
- MVCYazılım Mimarisi, s. 26MVC, uygulamayı veri ve mantık için Model, gösterim için View ve kullanıcı girdisini yöneten Controller olmak üzere üçe ayıran bir mimari desendir.
- ORMVeritabanları, s. 24ORM, veritabanı tablolarını programlama dilinizdeki nesnelere eşleyen ve ham SQL yerine kodla veri okuyup yazmanızı sağlayan bir kütüphanedir.
- Veritabanı Migration'ıVeritabanları, s. 39Veritabanı migration'ı, bir sütun eklemek gibi veritabanı şemasını değiştiren sürümlü bir betiktir; her ortam aynı değişiklikleri aynı sırayla uygular.
- DRYYazılım Mimarisi, s. 13DRY, her bilgi ya da mantık parçasının çoğaltılmak yerine tek bir yetkili temsile sahip olması gerektiğini söyleyen bir yazılım tasarım ilkesidir.
- DjangoBackend ve API'ler, s. 10Django, ORM, yönetim paneli, kimlik doğrulama ve güvenlik korumalarıyla gelen açık kaynaklı bir Python web framework'üdür; bu sayede ekipler hızlı geliştirir.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin