Programowanie, które nie boli

Subskrybuj RSS A A A
21 sierpnia 2007
Paweł Matyjasek

Ruby on Rails to bardzo prosty do nauczenia się język, który istotnie zwiększa produktywność. Dlatego interesuje się nim coraz więcej programistów PHP i Javy.

Ruby on Rails to bardzo prosty do nauczenia się język, który istotnie zwiększa produktywność. Dlatego interesuje się nim coraz więcej programistów PHP i Javy.

Ruby on Rails, czyli inaczej Rails lub w skrócie RoR, to szkielet aplikacji i zestaw bibliotek, które wspomagają tworzenie oprogramowania umożliwiający tworzenie dynamicznych stron WWW. RoR napisany został przy wykorzystaniu Ruby - dynamicznego języka programowania stworzonego przez Yukihiro Matsumoto w 1995 r. W dziedzinie technologii i języków umożliwiających tworzenie dynamicznych stron WWW na rynku panują obecnie PHP, Java i ASP/ASP .Net. Z ich pomocą stworzyć można zarówno prostego bloga, sklep internetowy, jak i wymagające rozwiązania dla biznesu. Wszechstronność i elastyczność niewątpliwie są ich zaletami, ale jak twierdzi twórca Ruby on Rails, David Heinemeier Hansson, zabierają one przyjemność z programowania. RoR to stosunkowo młody projekt (pierwsza wersja została udostępniona w połowie 2004 r.), który nie jest wspierany przez żadnego wielkiego producenta oprogramowania, a pomimo tego wprowadził zauważalne zamieszanie w środowisku programistów webowych.

Filozofia RoR

Główne filary Ruby on Rails to:

  • podejście agile do tworzenia aplikacji,
  • zasada don't repeat yourself (w skrócie DRY),
  • strategia convention over configuration.

Metodologie typu agile są najczęściej stosowane przy małych i średniej wielkości projektach. Kładą one szczególny nacisk na dostarczanie poszczególnych funkcjonalności oprogramowania w krótkich cyklach obejmujących fazy projektowania, programowania i testów. W ten sposób zleceniodawca może zgłaszać swoje opinie już we wczesnych fazach projektu, a w efekcie programiści nabierają pewności, że produkt odpowiada jego wymaganiom. Tworzenie z duchem agile oznacza też gotowość na ciągłe zmiany wymagań lub struktury kodu. Jest to zdecydowanie łatwiejsze, gdy zarządza się niewielką ilością kodu, co właśnie umożliwia RoR.

Dwie ostatnie zasady prowadzą do dramatycznego zmniejszenia ilości kodu i czasu wymaganego do zarządzania nim. Hasło "konwencja ponad konfigurację" oznacza, że odpowiednie konwencje nazewnicze eliminują potrzebę tworzenia złożonych plików konfiguracyjnych, choć nie oznacza to, że Rails kompletnie eliminuje z projektu pliki konfiguracyjne.

Framework, czyli bolączka programistów i architektów

Wiele osób zapewne zada sobie pytanie: czy gotowy framework nie jest poważnym ograniczeniem programisty? Czy nie tracimy na elastyczności rozwiązania? Odpowiedź jest prosta: tak! Jednak w tym przypadku "ograniczenia wyzwalają". W tradycyjnym podejściu projektowanie architektury poprzedzało fazę kodowania. Zespół lub jego przedstawiciele pracowicie dobierali niezbędne biblioteki, dzielili aplikację na moduły i w ten sposób powstawał framework. Niejednokrotnie proces ten "rozciągał się w czasie", gdyż należało dokładnie przedyskutować i ocenić podjęte decyzje oraz przetestować stworzony kod. Nie muszę przypominać, że klient jest zazwyczaj mało zainteresowany architekturą aplikacji, bo ważniejsze dla niego jest dostarczenie na czas gotowego produktu.

Z Ruby on Rails te problemy nie istnieją, gdyż każdy z projektów stworzonych w RoR ma taką samą strukturę i korzysta z tych samych bibliotek. Dodatkowo zaangażowanie i wdrożenie do projektu nowych programistów nie jest ani kosztowne, ani pracochłonne. Interesujące jest to, że np. na platformie .Net podobny problem adresowany jest od niedawna przez tzw. "software factories" ("fabryki oprogramowania"). Proponowane rozwiązania są jednak o wiele bardziej złożone (CAB, Enterprise Library) niż Rails.

Przetestuj RoR szybko i bezboleśnie z Instant Rails

Najszybszy start z Ruby on Rails na platformie Windows gwarantuje Instant Rails. Mając świeżo w pamięci długą instalację SQL Servera 2005 i Visual Studio 2005 wraz z sp1, nastawiłem się na 2-3 godziny ściągania i instalowania bibliotek. Jakie było moje zaskoczenie, gdy już po ściągnięciu 60 MB archiwum miałem do dyspozycji RoR, serwer WWW Apache, silnik bazodanowy MySQL oraz proste narzędzie do zarządzania bazami (PhpMyAdmin), a to wszystko bez jakiejkolwiek instalacji oraz zmian w systemie! Dla użytkowników Mac OS X odpowiednikiem Instant Rails jest Locomotive.

W sieci
Instant Rails - instantrails.rubyforge.org/wiki/wiki.pl?Instant_Rails
NetBeans 6 ze wsparciem dla JRuby i Rails - www.netbeans.org/community/releases/60/
Oficjalne materiały szkoleniowe - www.rubyonrails.org/screencasts
Dokumentacja - api.rubyonrails.org/
Rails vs Java na wesoło - www.railsenvy.com/2007/5/14/ruby-on-rails-commercial


RoR - pierwsze wrażenia

Początki pracy z Instant Rails przytłaczają. Nie mamy do dyspozycji przyjaznego IDE, a jedynie tekstową konsolę do wpisywania komend. Najszybszym sposobem na wygenerowanie prostej witryny jest zastosowanie scaffoldingu (rusztowania).

Szkielet aplikacji jest generowany po wpisaniu w konsoli komendy
rails Blog
Domyślnie wykorzystywaną w projekcie bazą będzie Blog_development (szczegóły połączenia można znaleźć w pliku config/database.yml). Taką bazę najłatwiej jest wygenerować z poziomu PhpMyAdmin lub dowolnej graficznej nakładki na silnik MySQL.

Nie musimy mozolnie tworzyć struktury bazy za pomocą kodu SQL, wystarczy, że zdefiniujemy ją za pomocą kodu Ruby. Dzięki temu eliminujemy różnice między poszczególnymi systemami bazodanowymi:

#plik db/schema.rb, tabela z postami
ActiveRecord:: Schema.define do
create_table "Posts",: force => true do |t|
t.column "title",: string,: null => false
t.column "content",: text,: null => false
end
end

Oceń artykuł

średnio: 0 liczba ocen: 0
1  2  dalej »

Komentarze (0)

Najnowsze

Nowe, unijne zamówienia publiczne

Komisja Europejska proponuje ważne zmiany prawa wspólnotowego w obszarze zamówień publicznych. Warto im się przyjrzeć bo to jeden z elementów nowej perspektywy finansowej UE. Warto zatem przyjrzeć się owej propozycji bliżej.

Bezpieczeństwo rządowych stron - analiza

Zespół zadaniowy ds. ochrony portali rządowych opublikował wytyczne. Trudno stwierdzić, że to najlepsze rekomendacje, jakie można było przy okazji zaistniałych ataków wypracować.

DEBATA: Kiedy walka polityczna w sieci przemienia się w cyberterroryzm?

Skuteczny atak cybernetyczny przyniesie opłakane skutki dla państwa i gospodarki. Boleśnie się o tym przekonaliśmy, gdy nie można było dostać się na strony internetowe najważniejszych instytucji w Polsce.

Czy MSW chce unieważnienia przetargu na pl.ID?

Rośnie ryzyko całkowitego unieważnienia przetargu na nowe dowody osobiste. Krajowa Izba Odwoławcza odrzuciła odwołanie firmy Sygnity, która nie zgadzała się na wydłużenie o trzy miesiące terminu składania ofert na dostawę blankietów nowych dowodów osobistych. Wydłużenie całego postępowania o trzy miesiące może spowodować skargi uczestniczących w nim firm, a w konsekwencji unieważnienie przetargu.

Garść rad dla roztropnego szefa IT

Trudne czasy w gospodarce to okres, kiedy szczególnego znaczenia nabiera hasło: Jak cię widza, tak cię piszą. Osłabienie rynku przekłada się na oszczędności w przedsiębiorstwie, a oszczędności najłatwiej szukać w działach, które, w opinii zarządu, nie są bezpośrednio związane z prowadzoną działalnością - czyli również w dziale IT.

Sprzeczne wizje e-dowodu

Koncepcja elektronicznego dowodu osobistego powstała w Polsce wiele lat temu. Starsze są koncepcje elektronicznego systemu świadczeń ochrony zdrowia. Mimo to, nadal są w trakcie budowy.

Biznes decyduje o inwestycjach w IT

Decyzje dotyczące projektów IT coraz częściej podejmują kierownicy działów biznesowych, bezpośredni beneficjenci wdrożeń. Rolą CIO jest wsparcie merytoryczne realizacji projektu.

Rekomendacje

Serwisy IDG - Warunki obsługi - Kontakt - Redakcja - Regulamin - O nas - Polityka prywatności - Serwis zgodny z ASME
Reklama - Licencjonowanie treści
Computerworld Polska i Computerworld Polska online są znakami towarowymi IDG Poland SA.
© Copyright 2012 International Data Group Poland S.A. 04-204 Warszawa ul. Jordanowska 12 tel.(+4822)321-78-00 fax(+4822)321-78-88