Ruby on Rails – jakość w standardzie

Dość dziwny tytuł mi wyszedł, ale do końca nie wiedziałem jak to napisać. No ale zacząć muszę od początku.

Ruby on Rails jest to platforma do tworzenia serwisów internetowych, na licencji MIT. Powstała ona w przeciwieństwie do większości tego typu oprogramowania nie jako idea rozpoczęta od początku, ale została wyciągnięta bezpośrednio z działającego produktu – Basecamp. Różnica jest znaczna, gdyż na start był to już dojrzały produkt. Aktualnie mamy wersję 2.0.2, na co radzę zwrócić uwagę szukając tutoriali (np nie istnieje już instrukcja scaffold).

Ruby on Rails (RoR) nie jest to coś podobnego do np. PHP, gdyż PHP to tylko język programowania, którym w wypadku RoR jest Ruby. O Ruby może napiszę jeszcze kiedyś. Bycie platformą oznacza więc, że RoR daje coś więcej.

Przede wszystkim Rails zmienia sposób spojrzenia na utrzymanie jakości w oprogramowaniu. Np. bardzo popularny i ważny model MVC (Model, View, Controller) czyli trójwarstwówka (model odpowiada za dane, view za to jak są one wyświetlane, a controller za logikę biznesową). W Ruby on Rails jest to właściwie jedyna metoda dodawania czegoś na stronę. Możliwe że istnieją inne metody, ale tworząc w RoR wydają się one cokolwiek nie na miejscu.

Kolejną ważną rzeczą we współczesnym podejściu do jakości oprogramowania jest automatyczne testowanie programów. Dlaczego jest ono ważne? Po pierwsze dzięki automatycznym testom nie musimy sprawdzać sami, czy coś działa czy nie. Nie jest to bardzo odkrywcze stwierdzenia, ale ważności nabiera w momencie w którym np. optymalizujemy kod, czy robimy

“refactoring”. Wtedy chcemy, aby kod miał takie same efekty jak wcześniej, ale robił to w inny, lepszy sposób.

Następna interesująca sprawa to sposób zarządzania bazą danych. Tutaj RoR daje nam po pierwsze mechanizmy zarządzania trzema podstawowymi bazami danych: development na której tworzymy oprogramowanie, test na której je testujemy i production, czyli baza danych dla pracującego systemu. Dalej dostajemy piękny mechanizm migracji bazy danych.

Migracja baz danych do kolejnych wersji stanowi bardzo problematyczną sprawę dla większości systemów. Żaden ze znanych mi systemów bazodanowych nie wspomaga tego procesu. Tymczasem Rails rozwiązuje przepięknie ten problem poprzez system migracji bazy danych. Mówiąc z skrócie polega to na tym, że kodem w Ruby zmieniamy bazę danych. Tak, bez użycia SQLa. I to działa. A wygląda np. tak:

class CreateBooks < ActiveRecord::Migration
  def self.up
    create_table :books do |t|
      t.column :title, :string
      t.column :author, :string
      t.column :rating, :int
      t.column :description, :text
    end
  end
 
  def self.down
    drop_table :books
  end
end

Metoda self.up służy do przeniesienia wersji bazy danych na aktualna, natomiast self.down wycofuje wprowadzone zmiany. Ten kod tworzy tablicę “books” z czterma polami (i dodatkowo piątym – id). Zasadniczo każdą podstawową operację na bazie danych można w ten sposób opisać. Prościej się juz chyba nie da.

Do tego wszystkiego Rails oferuje generatory – skrypty które tworzą nowe element strony takie jak modele, widoki, czy migracje bazy danych, razem z wszystkimi testami które wypadałoby zrobić. Jakby tego było mało, aplikację RoR można połączyć z SVNem, dzięki czemu pozbywamy się problemu ręcznego dodawania plików.

O Ruby on Rails i jego zaletach możnaby pisać godzinami, więc tym razem to już wszystko.

Leave a Reply

You must be logged in to post a comment.