Dlaczego Ruby on Rails?

Dlaczego ten framework zyskał popularność?
Dlaczego część programistów się w nim zakochała i nie wyobrażają sobie przejścia do innej technologii?
Co sprawia, że tworzenie aplikacji w nim jest tak łatwe?

Dziś postaram się odpowiedzieć na te pytania.

Zacznijmy od początku. Co to jest Ruby on Rails?

Jest to framework, napisany w języku Ruby, oparty o wzorzec Model-View-Controller. Model jest reprezentacją danych, które są przechowywane w bazie. Przy wyborze bazy danych możemy skorzystać z bardzo wielu rozwiązań m.in. MySQL, PostgreSQL, MongoDB czy Sqlite. Widok jest tym co widzi użytkownik końcowy. W tej warstwie przesyłamy gotową stronę do wyświetlenia użytkownikowi. Kontroler odpowiada za wymianę danych między użytkownikiem a bazą danych. Tutaj jest realizowana logika biznesowa i autoryzacja użytkowników.

Dlaczego Ruby On Rails?

1. Wygoda programisty

Każdy kto napisał chociaż kilka programów w języku Ruby, wie jak ciężko jest przesiąść się na inną technologię. Różnego rodzaju skróty składniowe powodują, że kod w tym języku jest bardzo zwięzły i czytelny. Podstawowa biblioteka tego języka jest na tyle rozbudowana, że w większości przypadków możemy skorzystać z gotowych obiektów i funkcji. Chyba nie muszę wspominać o tym, że Ruby on Rails jest w pełni oparty na języku Ruby.

2. Gemy

Tak nazywają się paczki rozszerzeń języka Ruby. Ułatwia to zdecydowanie proces tworzenia aplikacji. Wiele funkcjonalności możemy wprowadzić do projektu korzystając z gotowych, przetestowanych fragmentów kodu. Główną platformą udostępniającą takie gemy jest rubygems.org. Wystarczy dodać nazwę paczki i żądaną wersję do pliku ‘Gemfile’ w katalogu głównym projektu, a zostanie ona dołączona i przygotowana do użycia.

3. Konwencja ponad konfiguracją

Godziny spędzone na konfiguracji projektu, czy sposobu działania poszczególnych elementów może bardzo skutecznie zniechęcić do rozwijania projektu. Nie raz spotkałem się z sytuacją, w której gubiłem się w długich, słabo udokumentowanych plikach konfiguracji pracując w różnych technologiach. Jednym z głównych założeń RoR jest konwencja ponad konfiguracją. Oznacza to, że konfiguracja jest ograniczona do niezbędnego minimum, a programista może się skupić na dodawaniu nowych funkcjonalności.

4. Proste wystawianie API

Do gotowych kontrolerów w łatwy sposób możemy dodać obsługę zapytań w formacie JSON czy XML. Ułatwia to dalszą integrację z chociażby aplikacjami mobilnymi. Wystarczy dodać kilka linijek w kontrolerze, aby nasz serwer odpowiadał także na zapytania danego formatu.

5. Szybkie prototypownie aplikacji

Pod tym względem jest to jedne z najlepszych znanych mi narzędzi. Prototypy aplikacji można pisać błyskawicznie. Wbudowane generatory pomagają w typowych przypadkach, a gotowe paczki kodu pozwalając na implementację typowych elementów aplikacji. Wiele rozwiązań front-endowych można równie szybko dołączyć do projektu. Dzięki temu pierwszy zarys działającej aplikacji można dostarczyć bardzo sprawnie. Dokładanie kolejnych funkcjonalności jest równie proste. Nie trzeba także pisać tysięcy linii kodu, aby uzyskać pożądany efekt.

Oczywiście nie w każdym przypadku RoR okaże się najlepszym rozwiązaniem. W niektórych sytuacjach brakuje szybkości, jaką oferują rozwiązania jak .NET Core czy Node.js. W bardziej złożonych aplikacjach problematyczna może się także okazać monolityczna architektura aplikacji. Istnieją oczywiście prototypy zakładające wykorzystanie mikro-serwisów w aplikacji Railsowej, natomiast nie widuję ich często.

W jednym z kolejnych postów postaram się opisać w jaki sposób można wydzielić pewne zadania z aplikacji napisanej w Ruby On Rails i w ten sposób zwiększyć jej wydajność.

Zapraszam do dzielenia się swoimi przemyśleniami w komentarzach 😉

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *