FRONT-END

RUBYONRAILS

Ruby on Rails - framework do tworzenia aplikacji webowych

Ruby on Rails (często nazywany po prostu Rails) to zaawansowany framework webowy oparty na języku Ruby, przeznaczony do szybkiego tworzenia aplikacji internetowych.

Rails został zaprojektowany z myślą o produktywności programisty, czytelności kodu oraz konwencjach, które eliminują konieczność pisania powtarzalnej konfiguracji.

Ruby on Rails opiera się na dwóch kluczowych zasadach: Convention over Configuration (CoC) oraz Don’t Repeat Yourself (DRY).

Historia i filozofia Ruby on Rails

Framework Ruby on Rails został stworzony w 2004 roku przez Davida Heinemeiera Hanssona (DHH). Od początku jego celem było uproszczenie procesu tworzenia aplikacji webowych oraz zwiększenie szybkości dostarczania gotowych rozwiązań.

Rails zyskał ogromną popularność dzięki:

  • minimalnej konfiguracji
  • czytelnej strukturze projektu
  • rozbudowanemu ekosystemowi bibliotek
  • silnemu naciskowi na testowanie

Architektura MVC

Ruby on Rails opiera się na wzorcu architektonicznym MVC (Model–View–Controller).

  • Model – logika biznesowa i baza danych
  • View – warstwa prezentacji (HTML, ERB)
  • Controller – obsługa żądań użytkownika

app/
 ├── models/
 ├── views/
 └── controllers/

Konwencja zamiast konfiguracji (CoC)

Rails zakłada domyślne nazewnictwo i strukturę katalogów, dzięki czemu programista nie musi ręcznie konfigurować większości elementów aplikacji.


class UsersController < ApplicationController
end

Rails automatycznie powiąże ten kontroler z widokami znajdującymi się w katalogu views/users.


Modele i Active Record

Active Record to wbudowana warstwa ORM (Object-Relational Mapping), która umożliwia pracę z bazą danych w sposób obiektowy.


class User < ApplicationRecord
  validates :email, presence: true
end

Każdy model odpowiada jednej tabeli w bazie danych, a rekordy są reprezentowane jako obiekty Ruby.


Migracje baz danych

Migracje pozwalają na wersjonowanie struktury bazy danych i jej bezpieczną modyfikację.


rails generate migration AddAgeToUsers age:integer

class AddAgeToUsers < ActiveRecord::Migration[7.0]
  def change
    add_column :users, :age, :integer
  end
end

Routing

Routing w Rails określa, jakie URL-e są obsługiwane przez aplikację i które kontrolery są za nie odpowiedzialne.


Rails.application.routes.draw do
  resources :users
end

Powyższa definicja automatycznie tworzy zestaw standardowych endpointów REST.


Widoki i szablony

Rails używa systemu szablonów ERB, który pozwala łączyć HTML z kodem Ruby.


<h1>Witaj, <%= @user.name %></h1>

REST i API

Ruby on Rails idealnie nadaje się do budowania aplikacji typu REST API.


class Api::UsersController < ApplicationController
  def index
    render json: User.all
  end
end

Testowanie

Rails posiada wbudowane wsparcie dla testów jednostkowych, integracyjnych i systemowych.

  • Minitest
  • RSpec (najczęściej używany)
  • FactoryBot
  • Capybara

Bezpieczeństwo

Rails zawiera wiele mechanizmów bezpieczeństwa domyślnie:

  • ochrona przed CSRF
  • ochrona przed SQL Injection
  • automatyczne escapowanie HTML
  • bezpieczne hasła (bcrypt)

Ekosystem i narzędzia

  • Gems – system bibliotek
  • Bundler – zarządzanie zależnościami
  • Rails Console
  • Rails Generator

Zastosowania Ruby on Rails

  • Aplikacje SaaS
  • Systemy CMS
  • Platformy e-commerce
  • REST API
  • Prototypy i MVP

Zalety i ograniczenia

Zalety

  • Bardzo szybki rozwój aplikacji
  • Spójna architektura
  • Dojrzały ekosystem
  • Czytelny kod

Ograniczenia

  • Wydajność przy bardzo dużym ruchu
  • Wyższe zużycie pamięci
  • Mniejsza popularność niż w przeszłości

Podsumowanie

Ruby on Rails to framework, który zrewolucjonizował sposób tworzenia aplikacji webowych. Jego filozofia i narzędzia pozwalają skupić się na logice biznesowej zamiast konfiguracji.

Rails pozostaje doskonałym wyborem dla zespołów, które cenią szybkość, czytelność kodu oraz dojrzałe rozwiązania.

1
HOME | CSS | HTML | CONTACT
RED | LIME | ORG |copy(Ⓒ)2023:xyh