Ruby on Rails w Twoim kolejnym projekcie webowym

Kompleksowy przewodnik dla product ownerów, project managerów, adeptów RoR i wszystkich, którzy chcą lepiej zrozumieć Ruby on Rails.

Witaj w kompleksowym przewodniku po Ruby on Rails od Ideamotive!

Po naszym przewodniku po React Native to kolejny obszerny materiał, w którym zanurzamy się w naszych ulubionych frameworkach.

Koniec z guglaniem. Koniec z przekopywaniem internetu. Wszystkie informacje o Ruby on Rails dajemy Ci w jednym miejscu.

Eric Ries, autor „Lean Startup”:

Rails zrobił dla startupów więcej niż cała armia funduszy venture capital. Rails wywarł niesamowity wpływ na ekosystem startupowy.

Po lekturze tego przewodnika będziesz wiedzieć:

Czym właściwie jest Ruby on Rails?

Jak wypada na tle innych frameworków webowych?

Kiedy używać, a kiedy nie używać Ruby on Rails?

Jak wygląda proces wytwarzania w Ruby on Rails?

Dlaczego stworzyliśmy tę stronę?

Wpisy na blogach, tutoriale na YouTubie, fora programistyczne, warsztaty, repozytoria kodu… Materiałów do przejrzenia jest mnóstwo, gdy szukasz kompletnych i wiarygodnych informacji o Ruby on Rails.

Kto ma czas, żeby przejrzeć je wszystkie? To jedno wiarygodne źródło, które zbiera całą wiedzę o Ruby on Rails w jednym miejscu. Koniec z szukaniem!

Chcemy, żeby każdy — niezależnie od zaplecza — wyniósł z tego przewodnika coś wartościowego. Dlatego nie zakładamy znajomości terminologii i wszystko tłumaczymy szczegółowo.

Kto powinien przeczytać nasz przewodnik?

Szukasz odpowiedniej technologii do swojego kolejnego projektu webowego?

Jesteś programistą który chce nauczyć się Ruby on Rails?

Jeśli jesteś startupowcem, product ownerem, osobą na poziomie C-level albo marketerem, ten przewodnik pomoże Ci ogarnąć Ruby on Rails bez przekopywania się przez całego Google.

Przyda się też programistom, którzy chcą nauczyć się kodować w Ruby. Wreszcie — jest po prostu dla każdego, kogo interesuje tworzenie aplikacji webowych.

Jedyna osoba, której ten przewodnik raczej się nie przyda, to mistrz Ruby on Rails na najwyższym poziomie. Jeśli jeszcze na tym poziomie nie jesteś, na pewno wyniesiesz stąd coś dla siebie!

Śmiało — przeczytaj go offline na ulubionym czytniku. Możesz go nawet wydrukować, ale ze względów ekologicznych tego nie polecamy: przewodnik jest gigantyczny, więc poszłoby na to mnóstwo papieru (dbajmy o planetę!).

Klikając „Pobierz e-booka”, wyrażasz zgodę na przetwarzanie Twoich danych przez Ideamotive Sp. z o. o. w celach marketingowych, w tym e-mail marketingu.

Spis treści

      Cover-Chapter-01

      01 Czym tak naprawdę jest Rails?

      Ruby on Rails (znany też jako Rails znany też jako RoR) to otwartoźródłowy framework do budowy aplikacji webowych. Pozwala programistom korzystać z gotowych rozwiązań typowych problemów, dzięki czemu oszczędzają czas — i pieniądze — w trakcie prac.

      Podobnie jak wiele najlepszych projektów software'owych na świecie, powstał najpierw jako projekt poboczny. Stworzył go David Heinemeier Hansson, założyciel i CTO Basecampa. Basecamp był pierwszą prawdziwą aplikacją webową w Rails.

      Czym jest aplikacja webowa i czym różni się od strony internetowej?

      „[...] stronę internetową definiuje jej treść, a aplikację webową — jej interakcja z użytkownikiem. Innymi słowy, strona może być statycznym zbiorem treści serwowanym wszystkim odwiedzającym, podczas gdy aplikacja webowa opiera się na interakcji i wymaga programowego wprowadzania danych przez użytkownika oraz ich przetwarzania.

      Na przykład serwis informacyjny to „strona internetowa”, a arkusz kalkulacyjny czy wspólny kalendarz to „aplikacje” webowe. Serwis informacyjny pokazuje w zasadzie te same informacje wszystkim odwiedzającym, a kalendarz przetwarza indywidualne dane”.

      Rails został wyodrębniony z Basecampa w 2003 roku. Kolejne dwa lata prac prowadzonych przez Davida i wspieranych przez globalną społeczność podobnie myślących programistów zakończyły się publicznym wydaniem Rails 1.0 w 2005 roku.

      Szybko zaczął zyskiwać na popularności jako otwartoźródłowy framework webowy zoptymalizowany pod kątem szczęścia programisty i pięknego kodu”.

      Pamiętaj: rolą frameworków  jest dawanie programistom gotowych elementów (bibliotek kodu), które oszczędzają czas przy budowie nowego oprogramowania.

      Ten konkretny framework to zbiór bibliotek kodu napisanych w języku programowania Ruby. Te biblioteki to gotowe, niezbędne funkcje aplikacji webowych — takie jak formularze, przyciski czy menu.

      Wiesz, jak to jest: pisząc raport albo pracę, czasem po prostu kopiujesz akapity z innych tekstów i przepisujesz je własnymi słowami? Biblioteki kodu są dla programistów czymś podobnym.

      Dla praktycznie każdego języka programowania istnieje kilka frameworków o różnych zastosowaniach. Ale Rails to bardzo szczególny framework, i świetne środowisko do tworzenia aplikacji webowych.

      Różni się od większości frameworków. Dlaczego? Na to pytanie najlepiej odpowiadają twórcy oficjalnego przewodnika po Ruby on Rails:

      „[Rails] został zaprojektowany tak, by ułatwiać programowanie aplikacji webowych, przyjmując założenia co do tego, czego każdy programista potrzebuje na start. [...] Rails to oprogramowanie z poglądami”.

      Jak większość frameworków, Rails dostarcza gotowe elementy (w zasadzie szablony) do budowy konkretnego rodzaju oprogramowania — w tym przypadku aplikacji webowych.

      Ale ze względu na swoją wyjątkową konstrukcję  zmusza też programistów do stosowania określonych praktyk — „The Rails Way”.

       

      Dwie fundamentalne zasady „The Rails Way”

      Don't Repeat Yourself:

      „Każdy element wiedzy musi mieć w systemie jedną, jednoznaczną i autorytatywną reprezentację”. Innymi słowy, aplikacje mają mniej błędów, gdy ta sama informacja nie powtarza się w kodzie w kółko.

      Convention Over Configuration:

      w komercyjnym tworzeniu produktu działające MVP zwykle trzeba zbudować tak szybko, jak to możliwe. Rails to ułatwia, dostarczając domyślne ustawienia, które drastycznie ograniczają ilość początkowej konfiguracji.

      To z pewnością inspiracja filozofią, która doprowadziła do powstania samego języka, Ruby.  Czym różni się Ruby od Ruby on Rails?

      Ruby a Ruby on Rails

      Ruby Ruby on Rails

      Ruby to język programowania zaprojektowany wokół prostoty i produktywności. Można w nim tworzyć niemal każdy rodzaj oprogramowania, w tym:

      • gry (desktopowe i mobilne)
      • aplikacje (desktopowe, mobilne, webowe)
      • API
      • narzędzia wiersza poleceń
      • aplikacje wbudowane
      • aplikacje w Javie
      • aplikacje po stronie klienta
      • narzędzia testowe dla aplikacji spoza Ruby

      Ruby on Rails (RoR, Rails) to framework aplikacji webowych działający na języku programowania Ruby.

      Daje programistom narzędzia do szybszego budowania aplikacji webowych — i do większej frajdy z tej pracy.

      Praca w Rails wymaga od programistów nauczenia się i przyjęcia „The Rails Way”, czyli ścisłego zestawu praktyk, które twórcy Rails uważają za najlepsze przy budowie aplikacji webowych.

       

      Ciekawostki o Ruby: 

      • stworzony przez Yukihiro „Matza” Matsumoto
      • pierwsze publiczne wydanie w 1995 roku
      • zupełnie niepopularny aż do wydania Rails w 2005 roku
      • Matz często mówił, że chciał „uczynić Ruby naturalnym, a nie prostym”
      • zaprojektowany tak, by być „[...] potężniejszym niż Perl i bardziej obiektowym niż Python”

      Bardzo podobnie jak w Rails, najważniejsze w Ruby są mocne przekonania jego twórcy, które wpłynęły na każdy aspekt tego języka. Pod wieloma względami Ruby również zaprojektowano tak, by maksymalizować szczęście programisty.

      Ruby i Rails łączy jeszcze jedno: jeśli nie potrafisz przyjąć fundamentalnych filozofii kodowania tych technologii, praca z nimi nie sprawi Ci żadnej przyjemności.

      Co jest wyjątkowego w Ruby?

      • Wszystko jest obiektem
        W przeciwieństwie do większości języków programowania w Ruby możesz nadać właściwości i zachowania każdej informacji — nawet liczbom i symbolom
      • Ruby jest elastyczny
        Pozwala programistom swobodnie zmieniać, usuwać i przedefiniowywać podstawowe elementy języka
      • Bloki
        Programiści mogą dołączać do kodu bloki (domknięcia opisujące dokładnie, jak ma działać metoda)
      • Obsługa wyjątków
        Podobnie jak Java czy Python, Ruby ma mechanizmy obsługi wyjątków, dzięki czemu łatwo radzi sobie z błędami
      • Niezależne wątki
        Wielowątkowość na wszystkich platformach, na których działa Ruby, niezależnie od tego, czy wspiera ją system operacyjny

      02 Ruby on Rails na tle popularnych alternatyw

      Gdy spojrzysz na wyniki Stack Overflow Developer Survey 2020,  Ruby plasuje się gdzieś pośrodku, między technologiami najbardziej niszowymi a najczęściej używanymi.

      W kategorii frameworków Ruby on Rails nie załapał się do grona najpopularniejszych. Nie dziwi to — RoR nie jest dla każdego. Ale ci, którzy potrafią go używać, robią z nim niesamowite rzeczy.

      Z Ruby korzysta 7,1% spośród 57 378 programistów, którzy wzięli udział w badaniu.

      Widać to, gdy spojrzysz nie na popularność wśród programistów, lecz na zapotrzebowanie na specjalistów Ruby on Rails. Zobaczysz wtedy, że popyt na Ruby on Rails jest duży.

      RoR to dojrzała technologia, a branża software'owa potrafi być mocno napędzana trendami. Kilka lat temu Rails był „tym czymś”, jeśli chciałeś budować aplikacje webowe.

      Ale choć inne technologie przejęły jego mocną pozycję w rankingach popularności, Ruby on Rails pozostaje równie potężny — a w wielu przypadkach okazuje się nawet potężniejszy — niż aktualnie modne rozwiązania.

      Do tego RoR ma ogromną społeczność programistów i zwolenników, którzy pracują nad tą technologią od lat.

      Trudno jednak powiedzieć, gdzie dokładnie stoi ta technologia, dopóki nie porównamy jej z popularnymi alternatywami. Zróbmy więc to!

      Ruby on Rails a środowisko webowe PHP

        Ruby on Rails PHP
      Wydajność Potrafi być wolny, jeśli aplikacja jest źle zaprojektowana. Świetny do zadań obciążających CPU. Czysty PHP jest szybszy, dopóki nie dołożysz frameworka takiego jak Laravel — wtedy wydajność spada poniżej poziomu RoR.
      Utrzymanie Aplikacje łatwo utrzymać dzięki społeczności i nieustannym usprawnieniom. Utrzymanie bywa łatwe, o ile użyto popularnego frameworka webowego ze wsparciem społeczności. W przeciwnym razie aplikacje są znacznie trudniejsze w utrzymaniu.
      Skalowalność Zużywa dużo zasobów — jest próg, po którym skalowanie staje się zbyt trudne. Zużywa mniej zasobów, nieco łatwiej go skalować.
      Wsparcie Pomocna globalna społeczność, może mniejsza niż liczba programistów PHP, ale z pewnością nie zostaniesz bez odpowiedzi, gdy napotkasz problem. Mniej dostępnych edytorów i narzędzi. Prawdopodobnie największa liczba materiałów wsparcia ze wszystkich języków programowania — ale wiele z nich jest przestarzałych. Do PHP jest mnóstwo zewnętrznych edytorów i narzędzi.
      Koszt Umiejętności z innych języków (jak PHP) łatwo przenieść. Łatwiejszy do nauki. Łatwiej znaleźć programistów. Hostowanie aplikacji też jest dość drogie (w przypadku nowoczesnych aplikacji o rozbudowanej funkcjonalności).
      Szybkość wytwarzania Szybciej zbudujesz w pełni działającą aplikację webową. Oferuje „scaffolding” — potrafi generować kod na podstawie zadanych parametrów. Nieco wolniej zbudujesz w pełni działającą aplikację webową, zwłaszcza jeśli nie używasz popularnego frameworka webowego.

      Nie zapomnij!

      • RoR to framework dla języka programowania Ruby, a PHP to język programowania nastawiony na web, z wieloma frameworkami, które można porównywać z RoR — jak Zend, Codeigniter, Laravel, Symfony2, CakePHP i inne.

      • Jak pamiętasz z pierwszej części tego przewodnika, Rails to oprogramowanie z poglądami. Programiści wybierają go, bo łatwo się go konfiguruje i używa. W przypadku PHP wielu programistów woli budować własne frameworki, zamiast korzystać z istniejących.

      Potrzebujesz więcej informacji? Sprawdź to porównanie Ruby on Rails i PHP.

      Ruby on Rails a Django (framework Pythona)

        Ruby on Rails Django
      Wydajność Świetny do komercyjnych startupów i nowoczesnych aplikacji webowych. Świetny do zadań obciążających CPU. Świetny do zastosowań akademickich i naukowych ze względu na konstrukcję Pythona.
      Utrzymanie Łatwy w utrzymaniu. Niektórzy twierdzą, że aktualizacja Django jest nawet łatwiejsza niż RoR.
      Skalowalność Trudniejszy do skalowania. Łatwiejszy do skalowania.
      Wsparcie Duża społeczność nastawiona na web development. Mniejsza społeczność nastawiona na web development.
      Koszt Nieco trudniejszy do nauki. Mniej popularny, znalezienie programistów może być trudniejsze i droższe. Koszty hostingu podobne jak w Django. Łatwiejszy do nauki. Python jest popularniejszy wśród programistów. Koszty hostingu podobne jak w RoR.
      Szybkość wytwarzania Wymaga znacznie mniej konfiguracji, co przyspiesza prace. Większe możliwości dostosowania oznaczają więcej konfiguracji, co spowalnia prace.

      Nie zapomnij!

      • Największa różnica między Django a RoR polega na tym, że Django daje więcej możliwości dostosowania, a Rails podejmuje decyzje konfiguracyjne za Ciebie, żeby przyspieszyć pracę.
      • Python, czyli język używany w Django, jest bardzo często wykorzystywany w celach akademickich, podczas gdy społeczność Ruby — dzięki Rails — jest bardziej nastawiona biznesowo.

      Potrzebujesz więcej informacji? Sprawdź to szczegółowe porównanie Ruby on Rails i Django.

      Ruby on Rails a Node.js + Express (JavaScript)

        Ruby on Rails Node.js + Express
      Wydajność Przede wszystkim dobry do komercyjnych startupów i nowoczesnych aplikacji webowych. Świetny do zadań obciążających CPU. Mocne biblioteki pod spodem dają bardzo szybkie aplikacje webowe — ale nie nadaje się do zadań obciążających procesor. Świetny do zadań intensywnych wejścia/wyjścia.
      Utrzymanie Łatwy w utrzymaniu. Łatwe migracje bazy danych — przenośny na wszystkie platformy. Wciąż nowy, więc zdarzają się usterki i niestabilności. Ale nadal stosunkowo łatwo go monitorować i wspierać.
      Skalowalność Łatwo skalować do pewnego progu — powyżej pewnego poziomu robi się znacznie trudniej. Nieporównywalna skalowalność — wybierany przez firmy o szalonym ruchu (jak Netflix).
      Wsparcie Duża społeczność nastawiona na web development. Społeczność wciąż musi urosnąć, ale dobre materiały już są.
      Koszt Wymaga dużo zasobów obliczeniowych, żeby działać wydajnie. Wymaga bardzo dobrych programistów. Pozwala używać tego samego języka (JavaScript) po stronie klienta i serwera, dzięki czemu łatwiej zatrudnić programistów. Zmniejsza zapotrzebowanie na zasoby obliczeniowe.
      Szybkość wytwarzania Wymaga minimum konfiguracji. Ma poglądy, zakłada najlepsze praktyki budowy aplikacji. Bezapelacyjnie najszybszy sposób na zbudowanie aplikacji. Bez własnych poglądów — wymaga dodatkowego kodu i konfiguracji, zanim dorówna temu, co RoR oferuje od ręki.

      Nie zapomnij!

      • Node.js nie jest frameworkiem jako takim — to otwartoźródłowe środowisko serwerowe, które pozwala uruchamiać JavaScript po stronie serwera aplikacji.
      • Frameworkiem jest tu Express, który daje wiele funkcji dla aplikacji webowych i mobilnych.
      • Node.js, podobnie jak Ruby on Rails, można łączyć z frameworkami front-endowymi, takimi jak React — czasem z Node.js jest łatwiej, bo wystarczy znać jeden język programowania. Ale w wielu przypadkach nauka frameworka bywa trudniejsza niż przyswojenie nowego języka!

      Ruby on Rails vs C#

        Ruby on Rails C#
      Wydajność Ruby on Rails ma wolny czas przetwarzania na CPU w porównaniu z wieloma innymi językami, co działa na jego niekorzyść. Co więcej, Ruby nie jest kompilowany, tylko w pełni interpretowany w czasie działania. To również nie przemawia na korzyść RoR. Pod tym względem C# jest bezdyskusyjnym zwycięzcą. Wskaż dowolną procedurę — w C# wykona się znacznie szybciej niż w Ruby on Rails. Jest kompilowany do kodu pośredniego, który następnie uruchamia CLR (Common Language Runtime). 
      Utrzymanie Aplikacje łatwo utrzymać dzięki społeczności i nieustannym usprawnieniom. Dzięki wsparciu Microsoftu C# ma znacznie bardziej rozbudowaną dokumentację niż Ruby czy Rails. Utrzymanie stoi więc na odpowiednim poziomie.
      Skalowalność Zużywa dużo zasobów — jest próg, po którym skalowanie staje się zbyt trudne. Zużywa mniej zasobów, nieco łatwiej go skalować.
      Wsparcie W przypadku Ruby on Rails nie znajdziesz wielu informacji i pomocy od twórców, ale społeczność Ruby dostarczyła ogromny i wysokiej jakości zestaw narzędzi oraz bibliotek. C# jako komercyjny produkt dużej korporacji oferuje mnóstwo materiałów informacyjnych i profesjonalne wsparcie. Wsparcie społeczności jednak słabnie i nawet działania Microsoftu zachęcające do współtworzenia projektów publicznych nie przynoszą efektu. 
      Koszt Mniej popularny, znalezienie programistów może być trudniejsze i droższe.  Pula programistów jest większa. Łatwiej więc znaleźć tańsze rozwiązania.
      Szybkość wytwarzania Złożona składnia, ale ma rozwiązania ograniczające ilość kodu w większych aplikacjach. Bardzo szybki i intuicyjny. Lepszy do małych aplikacji.

       

      Nie zapomnij!

      • Jeśli planujesz zbudować szybkie MVP — RoR jest zdecydowanie technologią dla Ciebie. Ale przyda się też na wiele innych sposobów: mnóstwo startupów korzysta z Ruby on Rails na co dzień. To wciąż świetny wybór dla MŚP, platform e-commerce, a nawet produktów SaaS.
      • Jeśli jednak planujesz długi rozwój ogromnej aplikacji — pomoże Ci w tym C# wraz z .NET. RoR i C# różnią się tak samo mocno, jak różnią się projekty, do których dobrze się nadają.

      Potrzebujesz więcej informacji? Sprawdź nasze szczegółowe Ruby on Rails vs C# porównanie.

      Ruby on Rails a Angular

        Ruby on Rails Angular
      Wydajność Ruby on Rails ma wolny czas przetwarzania na CPU w porównaniu z wieloma innymi językami, co działa na jego niekorzyść. Co więcej, Ruby nie jest kompilowany, tylko w pełni interpretowany w czasie działania. To również nie przemawia na korzyść RoR. AngularJS jest używany właściwie do front-endu. Jego główną cechą są dynamiczne widoki — po zmianie adresu URL treść zmienia się bez przeładowania strony.
      Utrzymanie Aplikacje łatwo utrzymać dzięki społeczności i nieustannym usprawnieniom. Dość trudny w utrzymaniu. Wymaga porządnych programistów.
      Skalowalność Zużywa dużo zasobów — jest próg, po którym skalowanie staje się zbyt trudne. Zużywa mniej zasobów, nieco łatwiej go skalować.
      Wsparcie W przypadku Ruby on Rails nie znajdziesz wielu informacji i pomocy od twórców, ale społeczność Ruby dostarczyła ogromny i wysokiej jakości zestaw narzędzi oraz bibliotek. Angular ma całkiem imponującą społeczność, która pomaga z dokumentacją i dodatkowymi pytaniami.
      Koszt Wymaga dużo zasobów obliczeniowych, żeby działać wydajnie. Wymaga bardzo dobrych programistów. Pula programistów jest znacznie mniejsza. 
      Szybkość wytwarzania Ruby on Rails to znacznie dojrzalszy framework niż AngularJS. Podstawową aplikację opartą na operacjach CRUD zbudujesz w kilka minut. Całkiem szybki. Lepiej sprawdza się w aplikacjach jednostronicowych.

       

      Nie zapomnij!

      • AngularJS i Ruby on Rails to zupełnie różne frameworki: Ruby on Rails służy do backendu, a AngularJS do front-endu. RoR pozwala łatwo i szybko pisać usługi webowe. Z AngularJS możesz się do nich odwoływać, żeby komunikować się z backendem.
      • Rails jest dość popularny po stronie backendu, natomiast do SPA (aplikacji jednostronicowych) lepiej użyć Angulara albo Node.js.

      Cover-Chapter-03

      03 Do czego służy Ruby on Rails?

      Rails jest świetny — ale nie jest „złotym rozwiązaniem” dla każdego rodzaju projektu webowego (choć spektrum jest całkiem szerokie).

      Oficjalny „Getting Started” przewodnik po RoR pokazuje, jak zbudować prostego bloga jako pierwszą aplikację, ale możliwości są znacznie, znacznie większe — od dedykowanych stron po niezwykle skomplikowane platformy, takie jak GitHub, Shopify, Airbnb, SoundCloud, Zendesk czy Square.

      Zastanawiasz się, czy Ruby on Rails pasuje do Twojego projektu? Przeczytaj sekcję poniżej!

       

      Co mogę zrobić w Ruby on Rails?

      „Ruby on Rails pozwala szybko wystartować z produktem i uruchomić MVP w małym startupie”.

      Startupy i MŚP

      Ruby on Rails sprawia, że budowanie aplikacji jest łatwe i przyjemne. Umożliwia tworzenie aplikacji webowych w modelu open source. A gdy programiści są zadowoleni, zwykle kończą pracę szybciej. Ale nie to jest głównym powodem, dla którego RoR jest świetny dla startupów i MŚP.

      Główny powód jest taki: dzięki zasadzie „Convention over Configuration” Rails to naprawdę jedna z najlepszych technologii do projektów, jakie często realizują startupy i MŚP:

      • Prototypowanie
      • Budowa MVP
      • Projekty z krótkim czasem wejścia na rynek
      • Rapid Application Development

      Rapid Application Development to przeciwieństwo metodyk kaskadowych. To metoda zarządzania projektem zbudowana wokół szybkiego prototypowania, krótkich iteracji i dostosowywania oprogramowania do potrzeb użytkowników w możliwie najkrótszym czasie.

      Kolejna bardzo pomocna rzecz to niezrównana liczba otwartoźródłowych bibliotek i projektów (znanych jako gemy) w społeczności Ruby. A programiści nieustannie tworzą nowe!

      Czym są gemy?

      W Ruby gem to biblioteka zawierająca konkretny fragment funkcjonalności wraz ze wszystkimi powiązanymi z nią plikami i zasobami. Gemy znajdziesz do wszelkich typowych funkcji aplikacji — obsługi pieniędzy i walut, integracji z płatnościami kartą, narzędzi ułatwiających kodowanie w Ruby i wielu innych. Możesz napisać to samodzielnie, ale duża zaleta gema polega na tym, że oszczędza czas.

      RubyGems działa bardzo podobnie do apt-get, portage i yum

      W chwili pisania tego tekstu do pobrania z popularnego serwisu RubyGems dostępnych jest 148 845 gemów, a serwis ma 128 228 użytkowników.

      Oznacza to, że cokolwiek jest Ci potrzebne w aplikacji, prawdopodobnie istnieje na to gem. A jeśli istnieje, skończysz aplikację znacznie szybciej, niż gdybyś musiał budować każdą funkcję od zera.

      Popularne startupy, które zbudowały swój pierwszy produkt w Rails (część przeszła potem na inne technologie)

      Aplikacje e-commerce i marketplace

      „To szaleństwo, że ktoś sugeruje, iż Shopify odniósł sukces MIMO Rails. Shopify odniósł sukces DZIĘKI Rails”.

      Jakie aspekty aplikacji e-commerce są najważniejsze? Dla nas to wydajność, doświadczenie użytkownika i bezpieczeństwo.

      Ruby on Rails jest z nami od ponad dziesięciu lat. Przez ten czas dopracowywała go globalna społeczność programistów, z których wielu pracuje dla największych firm technologicznych. Nie ma co do tego wątpliwości — Ruby on Rails to dojrzała technologia.

      Dla project managerów i programistów w e-commerce przekłada się to na stabilność — a wraz ze stabilnością przychodzą dobra wydajność i bezpieczeństwo. Rails opiera się na mocnym fundamencie najlepszych praktyk wytwarzania oprogramowania, więc trudno zepsuć aplikację w Rails.

      W kontekście sklepów internetowych jest to niesamowicie pomocne. Pamiętaj, że każda sekunda niedostępności sklepu to traceni klienci. Ostatecznie więc dojrzała i stabilna technologia, taka jak RoR, to właściwy wybór, jeśli nie chcesz tracić pieniędzy na projekcie e-commerce.

      Domyślnie aplikacje RoR są chronione przed popularnymi atakami, takimi jak SQL injection, cross-site scripting i cross-site request forgery. Ma proste, ale skuteczne mechanizmy szyfrowania i podpisywania ciasteczek, i to już w podstawowym pakiecie Rails.

      Rails ogranicza potrzebę konfiguracji, ale widać to przede wszystkim na etapie budowania aplikacji. Na późniejszych etapach, gdy pracujesz nad żywym produktem, Rails daje programistom dużo elastyczności tam, gdzie ma to znaczenie.

      A co z doświadczeniem użytkownika? Znów na ratunek przychodzą gemy. Są gotowe gemy do integracji aplikacji z innymi kluczowymi elementami e-commerce:

      • dostawcami infrastruktury
      • bramkami płatności
      • rozwiązaniami do e-mail marketingu
      • oprogramowaniem do inbound marketingu

      Dzięki temu programistom znacznie łatwiej budować serwisy z całą funkcjonalnością, jakiej klienci oczekują od nowoczesnego e-commerce'u.

      Popularne aplikacje e-commerce zbudowane w Rails

      Software-as-a-Service (SaaS)

      Produkty SaaS to aplikacje webowe w najczystszej postaci. Muszą być skalowalne, szybkie i bezpieczne. Software-as-a-Service prawdopodobnie bije wszystkie pozostałe kategorie aplikacji opisane tutaj pod względem liczby połączeń i operacji potrzebnych do zadowolenia użytkownika końcowego.

      Ten rodzaj oprogramowania mocno opiera się na budowie bezpiecznych i szybkich API, które pozwalają serwerowi komunikować się i wymieniać dane z wieloma innymi usługami. Na szczęście Rails jest głęboko osadzony w architekturze REST służącej do budowy niezawodnych API.

      REST to skrót od „Representational State Transfer”.

      To styl architektury oprogramowania, który definiuje pewne reguły tworzenia usług webowych. Aplikacje zgodne z tym stylem nazywa się RESTful.

      Do tego Rails udostępnia mocne narzędzia do testowania i debugowania, dzięki którym programiści mogą upewnić się, że aplikacje działają zgodnie z projektem. To, wraz z pozostałymi zaletami, czyni Rails świetną technologią do budowy produktów Software-as-a-Service.

      Popularne serwisy SaaS zbudowane w Rails

      Nie używaj Ruby on Rails, gdy…

      • Twój produkt od pierwszego dnia ma obsługiwać tysiące żądań na sekundę - istnieje próg, powyżej którego skalowanie produktów RoR staje się zbyt kosztowne, by miało sens. Na szczęście próg ten odsuwa się z każdą nową wersją Rails, ale przy projektach budowanych pod skalę lepiej wybrać inną technologię. Nie mówimy jednak, że zbudowanie takiej aplikacji jest niemożliwe — świetnym przykładem jest Cookpad, zbudowany w RoR, który radzi sobie z 15 tys. żądań na sekundę!
      • Budujesz aplikację intensywnie korzystającą z wejścia/wyjścia - udowodniono, że takie aplikacje pisane w Rails mają słabą wydajność. Ruby on Rails znacznie lepiej sprawdza się w aplikacjach obciążających CPU.
      • Ty (albo Twoi programiści) chcecie wszystko budować sami - społeczność Rails opiera się na współpracy i otwartoźródłowych gemach. Choć RoR daje programistom dużo elastyczności, jeśli Ty lub Twój zespół wolicie budować wszystko od zera, prawdopodobnie lepiej wyjdziecie na innym frameworku, czystym Ruby albo zupełnie innym języku programowania.
      • Potrzebujesz tylko strony firmowej - użycie Rails do zbudowania strony firmowej, która jest tylko internetową wizytówką, to przerost formy nad treścią. Da się, ale… po prostu tego nie rób. Użyj Wixa albo zrób statyczną stronę w HTML-u i CSS-ie.
      • Budujesz bloga - choć pierwszym projektem w oficjalnym przewodniku po Rails jest prosty blog, RoR nie jest świetny do projektów będących wyłącznie blogiem. Do postawienia bloga sprawdź Jekyll — świetny generator blogów napisany w… Ruby :)

      Możesz też sprawdzić:
      1. Czy Ruby on Rails to dobry wybór dla Twojej strony?
      2. Jak zbudowałem dochodową aplikację do ankiet i feedbacku dla Slacka w Rails

      Cover-Chapter-04

       

      04 Ostateczna lista zalet i wad RoR

      Czas na konkrety. Przeczesaliśmy internet w poszukiwaniu mocnych, opartych na faktach opinii programistów i project managerów, którzy naprawdę używali Rails.

      Jedni go pokochali, inni niekoniecznie! Oto przegląd tego, co globalna społeczność programistów myśli o Ruby on Rails.

      Dlaczego ludzie kochają Ruby on Rails?

        • Twórcy i główni kontrybutorzy Ruby on Rails bardzo poważnie traktują bezpieczeństwo. Mają cały proces, szczegółowo opisany na swojej stronie, zgłaszania, naprawiania i wydawania poprawek bezpieczeństwa. Kluczowe funkcje bezpieczeństwa są częścią podstawowego pakietu Rails, a programiści korzystający z najnowszej wersji RoR są informowani o nowych zagrożeniach. [źródło]
        • Bez Rails Ruby mógłby nigdy nie stać się popularnym językiem programowania aplikacji webowych. A to świetna sprawa, bo Ruby napędza wyjątkowa filozofia i uszczęśliwia programistów. [źródło]
        • Jest łatwy do nauki — zwłaszcza jeśli masz doświadczenie w językach takich jak Python czy PHP. [źródło]
        • Zbudowanie aplikacji od zera jest znacznie szybsze niż przy użyciu innych popularnych technologii.
        • To pragmatyczny język, a pragmatyzm widać w całej kulturze Ruby on Rails. W porównaniu z innymi językami i frameworkami w RoR jest bardzo mało sztucznej złożoności. [źródło]
        • W przeciwieństwie do wielu innych technologii obecnych na rynku od ponad dekady Rails wciąż jest aktualizowany. To stabilna technologia, która ewoluuje bez większych zmian łamiących zgodność. [źródło]
        • Rails ułatwia programistom przeskakiwanie między projektami, bo filozofia i zasady wytwarzania są zawsze takie same. [źródło]
        • Społeczność wokół Ruby on Rails to sama w sobie wspaniała rzecz. Rozwojem RoR wciąż kieruje jego pierwotny twórca. Liczba programistów używających RoR stale rośnie. Do publicznych repozytoriów nieustannie trafiają nowe gemy. To bardzo odróżnia go od innych popularnych frameworków i jest ogromnym atutem tej technologii. [źródło]
        • Rails łatwo zintegrować z popularnymi frameworkami front-endowymi, a także z innymi zewnętrznymi technologiami webowymi.
        • Ruby on Rails jest darmowy. Nie ma opłat licencyjnych. Podstawowy pakiet, wszystkie materiały wsparcia i niekończące się otwartoźródłowe biblioteki kodu — wszystko to pobierzesz i wykorzystasz bez płacenia grosza.
        • RoR jest elastyczny. Gdy projekty stają się bardziej złożone, programiści czasem orientują się, że muszą wprowadzić fundamentalne zmiany w kodzie, na przykład zmienić silnik bazy danych. W Rails takie rzeczy są bardzo łatwe i nie wymagają żadnych zmian w kodzie aplikacji. [źródło]
        • Rails ułatwia budowanie testów automatycznych, co przekłada się na mniej czasu spędzonego na debugowaniu na późnych etapach prac. [źródło]
        • To dojrzała technologia. Choć złote lata RoR minęły, społeczność nie przestała rosnąć, a Rails wciąż jest ulepszany. Niewiele technologii miało tyle szczęścia przez tak wiele lat, co pokazuje, że RoR to po prostu świetne narzędzie. [źródło]
        • Rails to narzędzie, które sprawdza się w wielu scenariuszach. Jest dobry do dużych, nowoczesnych serwisów publicznych, a także do skomplikowanych wewnętrznych aplikacji korporacyjnych z szaloną logiką i regułami biznesowymi. [źródło]
        • RoR jest czytelny, łatwy w utrzymaniu i produktywny. Pozwala programistom pracować nad problemami wysokiego poziomu zamiast mikrozarządzać kodem swoich aplikacji. [źródło]
        •   Ruby on Rails zawiera cały zestaw rozwiązań typowych problemów, na jakie natrafiają programiści przy budowie aplikacji. Jest mnóstwo gotowych, przetestowanych funkcjonalności, które można wdrożyć jako wtyczki. Razem z gemami znacznie przyspiesza to i ułatwia pracę.
        • Dokumentacja Ruby on Rails jest jasna i zwięzła, dzięki czemu łatwo znaleźć rozwiązanie każdego problemu, na jaki możesz natrafić. [źródło]

      Dlaczego ludzie nie lubią Ruby on Rails?

          • Dla części programistów Rails jest zbyt wolny — bywa zbyt ciężki w pewnych zastosowaniach, ale na tle innych rozwiązań to naprawdę jedna z szybszych technologii. Szybkość działania jest niższa niż w niektórych innych technologiach. Problem widać najmocniej wtedy, gdy produkt trzeba mocno przeskalować w krótkim czasie. Nie znaczy to, że Ruby nie da się skalować — GitHub jest aplikacją w Ruby, jest ogromny i wciąż działa znakomicie. [źródło]
          • Nie wszystkie firmy hostingowe wspierają Rails. To się jednak stale zmienia, bo w ostatnich latach większość dużych dostawców zaczęła hostować aplikacje Rails.
          • Ruby on Rails narzuca konwencje programistyczne i programiści muszą się do nich dostosować. Nie każdy lubi takie podejście, bo wielu programistów ma własny zestaw najlepszych praktyk budowy oprogramowania. [źródło]
          • Jeśli programiści nie zaprojektują aplikacji ostrożnie, aplikacje w Rails mogą krztusić się przy wielowątkowości, co daje słabą wydajność i wyższe koszty infrastruktury. [źródło]
          • Łatwiej znaleźć programistów z doświadczeniem w Javie, PHP czy Pythonie.
          • Gemów jest wiele, więc programiści mogą spędzić sporo czasu na weryfikowaniu, ile dany gem jest naprawdę wart i czy pasuje do ich projektu. Istnieje jednak też grupa sprawdzonych, przetestowanych gemów, których wszyscy chętnie używają. [źródło]

      Możesz też sprawdzić:
      1. Wątek na Reddicie o zaletach i wadach programowania w Ruby on Rails
      2. Jakie są zalety i wady Ruby? [wątek na Quorze]
      3. Dlaczego Ruby on Rails to idealna technologia backendowa?



      Cover-Chapter-05

      05 Proces tworzenia aplikacji webowych w Ruby on Rails

      Każdy programista, a co za tym idzie — każdy zespół produktowy, ma własny proces wytwarzania. Wiesz, jak zbudować aplikację webową? Jak stworzyć aplikację webową w Ruby?

      RoR to świetny framework do tworzenia aplikacji webowych. Gdy używasz technologii takiej jak Ruby on Rails, która wymusza na programistach ścisłe konwencje, wiele aspektów procesu wciąż możesz dopasować do siebie. Programowanie webowe w Ruby on Rails to dla programistów przyjemność.

      Dlatego nie chcemy zbyt głęboko wchodzić w sam proces budowy aplikacji webowych w Ruby on Rails.

      Zamiast tego, bez rozwodzenia się nad technicznymi detalami i niuansami, chcemy pokazać Ci rewolucyjne metody zarządzania projektami, które idą w parze z filozofią i konwencjami Rails.

      Rapid Application Development

      Project managerowie i programiści zawsze szukają sposobu na szybsze budowanie produktów. RAD (Rapid Application Development) to jedna z wielu metod, które im w tym pomagają.

      Opracował ją w 1991 roku brytyjski konsultant IT James Martin.

      Podstawowa idea RAD to mniej planowania, więcej prototypowania.

      Globalna branża software'owa już wtedy pędziła na łeb na szyję. Planowanie było problematyczne ze względu na tempo zmian na rynku.

      Okazało się, że długoterminowe planowanie i realizacja w tradycyjnym stylu kaskadowym są dalekie od najlepszego sposobu budowania komercyjnie udanych produktów software'owych.

      RAD zyskał popularność, bo pozwalał programistom i menedżerom zachować elastyczność i dostosowywać się do rynku.

      Rapid Application Development ma cztery podstawowe etapy:

      1. Plan wstępny

        Pierwszy etap dotyczy przede wszystkim jasnej komunikacji między klientem, zespołem deweloperskim i wszystkimi zaangażowanymi menedżerami. Powinien też obejmować solidną dawkę researchu i analizy strategicznej.

        Celem tego etapu jest ustalenie ostatecznych wymagań produktowych, zrozumianych i zaakceptowanych przez wszystkich uczestników prac.

      2. Projektowanie UX

        Ten krok polega na wzięciu ostatecznych wymagań z etapu pierwszego i stworzeniu prostych prototypów niezbędnych funkcjonalności.

        To jeszcze nie pełne kodowanie. Głównym celem tego etapu jest uzyskanie akceptacji klienta (użytkownika) dla podstawowych modeli doświadczenia użytkownika opartych na wymaganiach produktowych i — jeśli trzeba — zmiana lub przedefiniowanie wymagań, których nie da się spełnić.

      3. Wytwarzanie

        Tu zaczyna się zabawa. Gdy modele UX aplikacji są zaakceptowane, czas zbudować produkt.

        Tradycyjnie programiści budowaliby wszystko zgodnie z pierwotnym planem przez lata. Problem w tym, że gdy kończyli, rynek zwykle już nie potrzebował tego produktu albo klient orientował się, że chce czegoś zupełnie innego.

        Żeby tego uniknąć, RAD zmusza zespół produktowy do stałej komunikacji z klientem (lub przyszłymi użytkownikami aplikacji), aby zbierać opinie, informować o postępach i wcześnie wychwytywać destrukcyjne problemy projektowe.

      4. Wdrożenie

        Na ostatnim etapie produkt jest testowany i wdrażany. To także czas na przygotowanie niezbędnych instrukcji, żeby użytkownikom łatwiej było nauczyć się nowej aplikacji.

      Agile Development

      W 2001 roku, dziesięć lat po powstaniu RAD, w domku narciarskim w Utah narodził się nowy, radykalny pomysł (a przynajmniej tak głosi legenda).

      Stało się to podczas spotkania 14 znanych postaci z branży technologicznej, które zauważyły, że programiści na całym świecie zaczęli przechodzić na nowy, bardziej elastyczny i iteracyjny proces wytwarzania.

      Efektem tego spotkania był Manifest Agile — krótki dokument będący zbiorem ogólnych filozofii i konwencji nowego, lepszego sposobu tworzenia oprogramowania.

      Manifest jest na tyle krótki, że możemy zacytować go w całości:

      „Odkrywamy nowe metody programowania dzięki praktyce w programowaniu i wspieraniu w nim innych. W wyniku naszej pracy zaczęliśmy bardziej cenić:

      Ludzi i interakcje od procesów i narzędzi

      Działające oprogramowanie od szczegółowej dokumentacji

      Współpracę z klientem od negocjacji umów

      Reagowanie na zmiany od realizacji założonego planu

      Oznacza to, że elementy wypisane po prawej są wartościowe, ale większą wartość mają dla nas te, które wypisano po lewej”.

      Na tych czterech podstawowych wartościach zbudowano też 12 szczegółowych zasad .

      Manifest ten zamknął kluczowe fundamenty nowych metodyk zarządzania projektami, które — podobnie jak RAD — opierały się na komunikacji i pozwalały programistom zmieniać produkty wraz ze zmieniającymi się potrzebami użytkowników.

      Jeśli myślisz, że Agile to tylko Scrum, pomyśl jeszcze raz! Metod zwinnych jest wiele, między innymi:

      Różnią się pod pewnymi względami, ale wszystkie mają te same kluczowe składniki zwinnego wytwarzania. Jakie to składniki?

      1. Wizja produktu — definiuje cele produktu końcowego.
      2. Roadmapa produktu — strategiczny zarys tego, co trzeba zrobić, żeby osiągnąć cele.
      3. Backlog produktu — lista konkretnych zadań, które trzeba wykonać, żeby ukończyć produkt
      4. Plan wydań — daty i terminy udostępniania aplikacji
      5. Backlog sprintu — każde zadanie wraz z niezbędnymi dodatkowymi informacjami, które ma zostać wykonane w trakcie jednego sprintu.
      6. Przyrost — nowe funkcje ukończone i prezentowane klientowi (użytkownikowi) na koniec każdego sprintu.

      Ogólnie rzecz biorąc, Agile polega na skupieniu się na dobrej komunikacji (co przekłada się na wiele strategicznych spotkań i rozmów z wcześniej zaplanowaną agendą) oraz na idei, że prace należy dzielić na krótkie, na przykład tygodniowe, przedziały czasu (sprinty).

      Możesz też sprawdzić:
      1. Szczegółowy przegląd metodyki Agile
      2. Idealny proces tworzenia aplikacji webowej
      3. Rapid Application Development w praktyce



      Cover-Chapter-06

      06 Ekonomia Ruby on Rails

      Wiesz, jak najłatwiej zirytować zawodowego programistę?

      Poproś go o wycenę aplikacji! (tu śmiech z puszki)

      Część z Was doskonale wie dlaczego, ale jeśli nie łapiesz tego żartu — przeczytaj ten odkrywczy krótki esej Michaela Wolfe'a, seryjnego przedsiębiorcy i założyciela ponad pięciu komercyjnie udanych startupów:

      Mówiąc poważnie: szacowanie kosztów budowy aplikacji webowej jest tym trudniejsze, im mniej masz informacji. Trudno powiedzieć dokładnie, ile godzin pracy i pieniędzy potrzeba, jeśli nie wiesz o projekcie nic poza jednozdaniowym pomysłem.

      Ale ogólne pojęcie o potencjalnym koszcie zyskasz, patrząc na średnie koszty produkcji i utrzymania typowych rodzajów projektów.

      Średnie koszty produkcji i utrzymania aplikacji webowych w Rails

      Trudno znaleźć solidne dane albo uniwersalny sposób szacowania kosztów wytwarzania. Musimy zadowolić się tym, co udało nam się znaleźć.

      Ile kosztuje programowanie w Ruby? Żeby dać Ci ogólne pojęcie, oto bardzo prosty przewodnik po tym, ile średnio kosztują poszczególne projekty:

      • Od 5000 do 15 000 dolarów — zbudujesz prostą stronę, pojedynczy landing page z podstawowymi elementami interaktywnymi albo dodasz funkcję do istniejącej strony.
      • Od 15 000 do 60 000 dolarów — zbudujesz dużą interaktywną stronę, sklep internetowy zdolny wygenerować 1 000 000 dolarów przychodu, dodasz dużą funkcję do istniejącej strony albo zbudujesz  bardzo podstawowe MVP aplikacji webowej lub mobilnej.
      • Od 60 000 do 200 000 dolarów — zbudujesz stronę najwyższej klasy z dedykowanym CMS-em, sklep internetowy zdolny wygenerować 10 000 000 dolarów przychodu, aplikację webową automatyzującą procesy w korporacji albo bardziej zaawansowane MVP aplikacji webowej lub mobilnej.
      • Od 200 000 do 500 000 dolarów — zbudujesz dodatki do starszej infrastruktury korporacyjnej, stworzysz fundament dedykowanej infrastruktury IT dla średniej firmy albo MVP aplikacji webowej lub mobilnej zawierające wszystkie wymagane funkcje.
      • 500 000 dolarów i więcej — zbudujesz skomplikowane aplikacje webowe wymagające wielu integracji, zbudujesz i zintegrujesz kompletne, dedykowane rozwiązanie software'owe dla swojej firmy albo pełną aplikację webową lub mobilną.

      Czy Ruby on Rails daje jakieś przewagi kosztowe podczas prac?

      Tak. Ruby on Rails daje pewne punkty przewagi w zarządzaniu budżetem produkcji.

      Oszczędność czasu — Ruby on Rails zawiera wiele gotowych wtyczek i modułów, dzięki którym programiści nie tracą czasu na pisanie kodu od zera. Średnio programiści Ruby on Rails budują aplikacje o 30–40 procent szybciej niż zespoły korzystające z innych języków i frameworków. Każda godzina mniej to więcej pieniędzy w Twoim budżecie.

      Brak kosztów licencji — ponieważ Ruby on Rails jest otwartoźródłowy i rozpowszechniany na licencji MIT, nie zapłacisz za korzystanie z frameworka.

      Wsparcie społeczności — RoR ma ogromną społeczność programistów, którzy nieustannie tworzą i publikują nowe gemy. One również są otwartoźródłowe i darmowe. Aktywna społeczność oznacza też, że jeśli masz problem z kodem, najprawdopodobniej ktoś na Reddicie, Slacku czy Discordzie jest gotów Ci pomóc.

      Przykłady gotowych do wdrożenia wtyczek w RoR — wybór zespołu Ideamotive!

      • zarządzaniu bazami danych

      • internacjonalizacji

      • routingu aplikacji

      • wysyłaniu plików

      • testach automatycznych

      • pracy z dynamiczną treścią w przeglądarce (obsługa nowoczesnego JavaScriptu)

      • edytorach tekstu WYSIWYG

      • walidacji danych wejściowych

      • generowaniu widoków (silnik szablonów)

      • wysyłce e-maili

      • bezpieczeństwie aplikacji

      • cache'owaniu (żeby aplikacja ładowała się jeszcze szybciej!)

      • dynamicznych aktualizacjach po stronie klienta (websockety)

      • podstawowym raportowaniu awarii (np. na e-mail)

      Tyle o produkcji — ale ile kosztuje utrzymanie aplikacji w RoR?

      Podstawowa odpowiedź brzmi: „to zależy”. Od tego, jak duża i jak złożona jest Twoja aplikacja, ile osób nad nią pracuje, ilu ma użytkowników i od nieskończenie wielu innych czynników.

      Są jednak pewne podstawowe koszty, które pojawią się praktycznie w każdym projekcie aplikacji webowej w Rails. Należą do nich:

      • Usługi continuous integration — nieocenione narzędzie przy dodawaniu nowych zmian i funkcji do istniejących aplikacji. Usługi CI dostarczają przede wszystkim automatyczne testy, które zapewniają, że nowy kod nie koliduje z istniejącym. Średni koszt tych usług to około 300–600 dolarów rocznie.
      • Hosting i przechowywanie zasobów — w przeszłości nie każdy dostawca hostingu pozwalał na aplikacje Ruby on Rails, ale dziś większość dużych dostawców nie ma z tym problemu. Więcej o najpopularniejszych dostawcach hostingu RoR przeczytasz na naszym blogu.
      • Wytwarzanie — żeby aplikacja działała, przez cały cykl życia produktu będziesz płacić programistom. Błędy zawsze się zdarzają i ktoś musi je naprawiać.
      • Aktualizacje — gdy pojawia się nowa wersja Rails, aktualizacja aplikacji zajmie trochę czasu, ale jest koniecznością. Jeśli będziesz dalej używać przestarzałego Rails, aplikacja przestanie być bezpieczna i stanie się podatna na ataki. Dobrze mieć w zespole kogoś, kto się tym zajmie, albo śledzić aktualizacje RoR, żeby żadnej nie przegapić.
      • Repozytorium kodu — nowoczesne aplikacje webowe opierają się na przechowywanych w chmurze repozytoriach kodu zawierających wszystkie pliki wykonywalne i konfiguracyjne. Największym graczem na rynku repozytoriów jest Github (zbudowany w Ruby on Rails!), gdzie koszty wynoszą od 9 do 21 dolarów za użytkownika miesięcznie. Wicelider rynku, GitLab też jest zbudowany w Ruby!
      • Integracje z zewnętrznymi usługami — te koszty pojawiają się, gdy musisz połączyć aplikację z gotową usługą premium do obsługi płatności, wysyłki e-maili, bezpieczeństwa albo czegokolwiek innego, czego potrzebujesz, a nie masz budżetu na rozwiązanie dedykowane. Do wielu usług, na przykład Stripe'a, są gemy pozwalające na szybką i łatwą integrację.
      • Analityka — jeśli chcesz zbierać podstawowe dane, w zupełności wystarczy darmowy Google Analytics. Ale przy bardziej zaawansowanym zbieraniu danych, takim jak mapy ciepła czy nagrywanie sesji użytkowników, możesz dopłacić (najpopularniejsze rozwiązanie, Hotjar, jest darmowe dla małych projektów, ale jeśli chcesz zbierać dane na dużą skalę, będziesz potrzebować wersji płatnej).
      • Monitorowanie awarii — szczególnie ważne w przypadku aplikacji zewnętrznych. Rozwiązanie zewnętrzne, które pozwala śledzić krytyczne błędy, żebyś mógł szybko zareagować, gdy się pojawią. Świetnym przykładem jest Rollbar, który pozwala ustawić alerty e-mailowe.

      Czy budowanie i utrzymanie aplikacji w Ruby on Rails jest więc tańsze niż w innych technologiach?

      Nie twierdzimy, że Ruby on Rails przyniesie Ci więcej pieniędzy.

      Nie przyniesie.

      Wciąż musisz wydawać na zespół (programistów, project managerów, projektantów i tak dalej), na zasoby i na utrzymanie aplikacji po jej ukończeniu.

      Ale Ruby on Rails z pewnością pomoże Ci znaleźć możliwości optymalizacji kosztów przy budowie kolejnego produktu webowego. Ogromna liczba gotowych gemów i wcześniej przygotowanych rozwiązań to jeden z najważniejszych powodów, dla których warto postawić na Ruby. Oczywiście skala zysku mocno zależy od złożoności projektu i liczby innowacyjnych rozwiązań, jakie chcesz w nim wdrożyć. Część z nich będziesz musiał zbudować samodzielnie.

      Ale z Ruby on Rails nigdy nie będziesz musiał wymyślać koła na nowo.

      A społeczność RoR wymyśliła już solidną liczbę różnych kół.

      Możesz też sprawdzić:
      1. Ten wątek na Quorze o zaletach Ruby on Rails
      2. Ruby on Rails: potężne i opłacalne narzędzie do web developmentu

       

      Cover-Chapter-07

       

      07 Właściwa droga do nauki i opanowania Ruby on Rails

      Do opanowania sztuki i filozofii frameworka Ruby on Rails oraz programowania w nim prowadzi wiele dróg.

      Zawodowym programistom, którzy mają już doświadczenie w budowie aplikacji w Ruby, Pythonie czy PHP, przejście na Rails powinno przyjść dość łatwo. Po poznaniu Ruby wejście w Rails sprowadza się głównie do:

      • nauki i praktyki Ruby (dla osób przechodzących z innego języka),
      • poznania konwencji Rails,
      • oswojenia się z menedżerem pakietów Ruby oraz gemami,
      • stania się częścią społeczności Rails,
      • praktyki, praktyki i jeszcze raz praktyki.

      Jeśli jednak nie jesteś mistrzem programowania, który przeskakuje między językami i frameworkami bez mrugnięcia okiem, albo dopiero zaczynasz swoją zawodową drogę w wytwarzaniu oprogramowania, oto wszystko, czego potrzebujesz, by zostać dobrym programistą Rails.

      Podstawy — dla początkujących

      Zanim wejdziesz w Rails, musisz poznać podstawowe technologie nowoczesnego web developmentu, w tym:

      • HTML + CSS (do organizowania i stylowania treści na stronach i w aplikacjach webowych)
      • system kontroli wersji, taki jak GIT (do zarządzania kodem i sprawnej pracy zespołowej programistów)

      Wbrew niektórym popularnym opiniom znajomość JavaScriptu i zarządzania bazami danych jest niekonieczna do nauki Ruby on Rails. Choć z pewnością by pomogła ;)

      A jak się tego wszystkiego nauczyć? Jednym z najlepszych źródeł dla początkujących programistów jest FreeCodeCamp. To interaktywny kurs programowania w przeglądarce. Rejestrujesz się, od razu zaczynasz kodować, a program prowadzi Cię przez wszystko, co trzeba wiedzieć, żeby zostać zawodowym programistą — w tym, choć nie tylko, przez wszystko wymienione wyżej.

      Co więcej, na koniec kursu dostaniesz certyfikat oraz swoje pierwsze zawodowe projekty, które szybko zbudują Twoje portfolio. Wspominałem, że to wszystko za darmo? A do tego jest tam niesamowicie pomocna społeczność. Jeśli dopiero zaczynasz z celem, by zarabiać na budowaniu aplikacji webowych, naprawdę nie ma lepszej drogi niż FreeCodeCamp:

      Początkujący programiści: poznajcie podstawy nowoczesnego web developmentu na FreeCodeCamp

      Jeśli masz na to pieniądze, możesz też wybrać płatne kursy, takie jak Codecademy i dosłownie tysiące podobnych kursów w sieci. Większość blednie przy tym, co za darmo daje FreeCodeCamp, ale mogą oferować dodatkowe materiały poszerzające wiedzę.

      Najważniejsze jest tu, żeby się nie spieszyć. Budowanie nowoczesnych aplikacji webowych to nie fizyka jądrowa, ale też nie zbieranie ziemniaków na polu. Nie bez powodu zarobki programistów są tak nieproporcjonalnie wysokie na tle innych zawodów — nauczenie się potrzebnych umiejętności wymaga mnóstwa ciężkiej pracy.

      Zwiększysz swoje szanse, jeśli będziesz działać powoli. Bądź cierpliwy i nie oczekuj, że w kilka miesięcy zaczniesz zarabiać takie pieniądze jak programiści. Opanowanie podstaw web developmentu zajmie Ci co najmniej rok, jeśli zaczynasz bez wcześniejszego doświadczenia i wiedzy.

      Gdy opanujesz podstawy, możesz zacząć myśleć o wejściu w Ruby on Rails.

      Wejście w Ruby

      Czy ktoś z podstawowymi umiejętnościami webowymi może skonfigurować środowisko Ruby on Rails i zbudować aplikację? Zdecydowanie tak! Czy to dobry sposób nauki? Zdecydowanie NIE!

      Przykro nam, ale najpierw musisz nauczyć się Ruby. Nie ma innej drogi. Nie musisz go opanować do perfekcji, zanim zaczniesz używać Rails, ale musisz zrozumieć, jak działa, i trochę poćwiczyć budowanie różnych rzeczy w tym języku.

      Oto materiały, które Ci pomogą:

      • TryRuby — interaktywne środowisko, w którym możesz pobawić się językiem
      • Oficjalny 20-minutowy tutorial — gdy zainstalujesz Ruby, możesz przejść oficjalny tutorial, który pokaże Ci trochę z tego, co da się zrobić
      • Dokumentacja Ruby (+ lista najlepszych materiałów do nauki) — na stronie Ruby, w sekcji dokumentacji, znajdziesz też wszystkie materiały potrzebne do nauki, ćwiczeń i opanowania Ruby
      • Learn Ruby the Hard Way — również wymieniony w dokumentacji Ruby, ale chcieliśmy go tu wyróżnić, bo to jeden z najlepszych kursów, który daje coś ekstra. Nie tylko uczy, ale też pomaga zorganizować naukę tak, żeby porządnie przygotować Cię do zawodowej pracy z Ruby. Prawdopodobnie najlepsza książka o Ruby on Rails.
      • CodeWars — warto tu zajrzeć, gdy zaczniesz łapać Ruby. To platforma z mnóstwem wyzwań programistycznych, które rozwiążesz w przeglądarce. Rozwiązywanie prawdziwych problemów to najlepszy sposób na ćwiczenie i poszerzanie umiejętności! Do tego po ukończeniu wyzwania zobaczysz, jak rozwiązali je inni. Prawie nigdy nie ma tylko jednego sposobu rozwiązania problemu, a czytanie kodu innych programistów to kolejny świetny sposób nauki.

      Zapraszamy też, żebyś od czasu do czasu zajrzał na nasz blog — nasi programiści Ruby on Rails regularnie dzielą się tam swoimi spostrzeżeniami, wskazówkami i trikami!

      Wejście w Ruby on Rails

      Z solidnymi podstawami web developmentu oraz znajomością i praktyką w Ruby będziesz gotowy, żeby wejść w świat Ruby on Rails. A to świetny świat, patrząc na średnie zarobki programisty Ruby on Rails. Czy warto uczyć się Ruby on Rails? Zdecydowanie tak!

      Jednym z najlepszych kursów jest Ruby on Rails Tutorial autorstwa Michaela Hartla. To dość długi kurs budowania aplikacji w Rails, co w tym przypadku jest zaletą, bo z nauką nie warto się spieszyć. Ukończenie go pozwoli Ci zacząć budować aplikacje w Rails, ale do nauczenia się jest znacznie więcej!

      Musisz poznać wszystkie elementy składające się na Rails (jak l18n i ActiveJob) oraz oswoić się z gemami. Pomogą Ci w tym te materiały:

      Warto też przeglądać aplikacje w Rails na GitHubie i w innych repozytoriach kodu oraz analizować, jak zostały zrobione. Oto kilka linków na początek:

      Na koniec jedna uwaga — nie próbuj przerobić wszystkich materiałów edukacyjnych ani przeczytać wszystkich blogów o RoR. Gdy będziesz już pewnie budować aplikacje w Rails, skup się na jak największej praktyce (na faktycznym pisaniu kodu), a materiałów i społeczności używaj wtedy, gdy utkniesz albo nie masz pewności co do kodu, który piszesz.

      Cover-Chapter-08

      08 Najlepsze przykłady Ruby on Rails

      Jeśli zastanawiasz się, które firmy korzystają z Ruby on Rails i które popularne serwisy naprawdę są zbudowane w Ruby on Rails — nie szukaj dalej. Oto kilka naszych ulubionych.

      github

      Jeśli pracujesz w web developmencie i przy aplikacjach — znasz GitHuba. To najpopularniejszy serwis hostingu oprogramowania z gigantyczną otwartoźródłową biblioteką.

      Z serwisu korzysta dziś 1,8 miliona firm, startupów i software house'ów. Wspiera go też niesamowita społeczność 28 milionów programistów, którzy dodali dotąd ponad 85 milionów repozytoriów.

      Front-end GitHuba przeszedł wiele zmian i przez lata programiści GitHuba używali różnych bibliotek JS (Pjax, jQuery i innych), a obecnie stawiają wyłącznie na Vanilla JS.

      Ale back-end to wciąż czysty Ruby.

      shopify

      Shopify to platforma e-commerce z ponad 600 000 sprzedawców internetowych. Daje im łatwy w konfiguracji framework do prowadzenia biznesu w internecie i sprzedaży online. Platforma pozwala klientom tworzyć własne doświadczenie zakupowe dzięki mnóstwu łatwych do dostosowania motywów.

      Shopify to prawdopodobnie jedna z najbardziej udanych firm technologicznych opartych na Ruby on Rails na świecie. Skalują się w ramach tego frameworka na ogromną skalę. Simon Eskildsen z Shopify chwalił się obsługą 80 000 żądań na sekundę. Korzystają też z języka szablonów Liquid na froncie oraz z Turbograftu, czyli własnego forka Turbolinks.

      codeacademy

      Ten pewnie znasz. To jeden z najpopularniejszych internetowych bootcampów programistycznych, oferujący kursy Ruby i 11 innych języków programowania.

      Powstał w 2001 roku i miał dotąd 45 000 000 użytkowników. Technologia stojąca za Codecademy jest napisana w Ruby on Rails wraz z Go i JavaScriptem, a hostowana na Amazonie.

      Firma zebrała 47,5 miliona dolarów w czterech rundach finansowania, z których ostatnią zamknięto w 2016 roku.

      yammer

      Bardzo wartościowe narzędzie, co potwierdziło przejęcie za 1,2 miliarda dolarów przez Microsoft w 2012 roku. To zestaw narzędzi społecznościowych dla nowoczesnej firmy, który ułatwia pracownikom współpracę w czasie rzeczywistym niezależnie od tego, gdzie się znajdują, w jakim dziale pracują i z jakich aplikacji korzystają.

      Yammer oferuje aplikacje webowe, desktopowe i mobilne, a także integruje się z innym oprogramowaniem firmowym. Powstał w 2008 roku i urósł do 7 milionów użytkowników. W swoim stosie technologicznym

      airbnb

      korzysta z Rails, Javy i Node.js. Wiele podróży mogłoby się nie wydarzyć, gdyby nie ta aplikacja i ogromna wartość, jaką wniosła do światowej społeczności podróżników. To jedna z największych startupowych historii świata, w której ciężka praca założycieli opłaciła się z nawiązką i doprowadziła do przewrotu w całej branży.

      Powstał w 2008 roku i urósł do jednego z największych marketplace'ów wynajmu pokoi i mieszkań dla turystów zwiedzających nowe miasta. Na Airbnb dostępnych jest ponad 4 500 000 ofert z 65 000 miast w 191 krajach. Cała ta potęga jest napędzana, między innymi, przez Ruby on Rails, Javę i JavaScript.

      Z 4 500 000 ofert w ponad 65 000 miast w 191 krajach Airbnb oferuje najszerszy wybór wyjątkowych przestrzeni dla każdego i w każdym przedziale cenowym na świecie. Projekt zebrał 4,4 miliarda dolarów w 12 rundach, z których ostatnią zamknięto w 2017 roku.

      heroku

      Większość programistów zna Heroku, jedną z najpopularniejszych chmurowych platform aplikacyjnych. Dziś należy do Salesforce (od 2011 roku), a powstała w lipcu 2007 roku.

      Dzięki obsłudze wielu języków programowania, w tym Ruby, Javy, Node.js, Pythona, PHP i Scali, daje programistom bardzo prostą drogę do szybkiego wypuszczenia produktu na rynek. Eliminuje wiele typowych problemów związanych z wdrażaniem, skalowaniem i zarządzaniem aplikacjami.

      Jest zbudowana na stosunkowo zwartym stosie technologicznym, napisanym w Ruby on Rails wraz z Go i Erlangiem. Zanim przejął ją Salesforce, zespół zdołał zebrać 13 milionów dolarów w trzech rundach finansowania w zaledwie trzy lata.

      fiverr

      Założony w 2010 roku Fiverr to wyjątkowa platforma do wystawiania i kupowania usług freelancerskich wszelkiego rodzaju — od typowych, jak copywriting, po dziwaczne, jak zamówienie filmiku z dedykacją nagranego przez faceta przebranego za Jezusa.

      Wystawionych jest tam ponad 3 000 000 usług w 100 różnych kategoriach, od osób ze 196 krajów. Serwis znajduje się w gronie 400 najpopularniejszych stron świata według Alexa.com. Stos technologiczny składa się z wielu technologii, a Ruby on Rails jest jedną z nich.

      Firma zebrała 111 milionów dolarów w pięciu rundach finansowania.

      scribd

      Dostępny na urządzeniach mobilnych i w przeglądarce Scribd to aplikacja otwierająca dostęp do ogromnego zbioru książek, audiobooków, dokumentów, artykułów prasowych i innych treści literackich. To największa tego typu biblioteka internetowa tworzona przez społeczność.

      Powstał w 2005 roku i urósł do ponad 100 milionów aktywnych użytkowników miesięcznie. Projekt zebrał 47,8 miliona dolarów w sześciu rundach finansowania, z których ostatnią zamknięto w 2015 roku.

      Jego stos technologiczny składa się z Ruby on Rails, a także Reacta i Backbone.js oraz innych technologii.

      twitch

      Ta platforma to światowy lider streamingu dla graczy. Napędza największe wydarzenia w scenie e-sportowej, a także udostępnia swoją infrastrukturę do treści na żywo i na żądanie we współpracy z mediami, wydawcami i twórcami gier.

      To główne miejsce, w którym gracze streamują i oglądają innych — nie tylko grających, ale też prowadzących swoje codzienne życie, chodzących na siłownię i wiele więcej. Treści na tej platformie mocno ewoluowały od jej powstania w 2007 roku.

      Twitch zebrał 35 milionów dolarów w dwóch rundach finansowania, z których ostatnią zamknięto w 2013 roku. W 2014 roku serwis przejął Amazon za 970 milionów dolarów. Jego stos technologiczny to mieszanka C++, Ruby on Rails, Go i Ember.js oraz innych technologii.

      indiegogo

      Założone w 2008 roku IndieGoGo urosło do jednej z najpopularniejszych platform crowdfundingowych na świecie.

      Firma zebrała 56,5 miliona dolarów w pięciu rundach finansowania, z których ostatnią zamknięto w 2014 roku. Mocno opiera się na Rails w swoim stosie technologicznym, obok AngularJS, Less i wielu innych technologii.

      angellist

      AngelList to startup, który opiera się głównie na Ruby i nie ma w swoim stosie technologicznym wielu innych języków programowania poza odrobiną JavaScriptu.

      Założony w 2010 roku, jest platformą społecznościową łączącą aniołów biznesu i potencjalnych pracowników ze startupami. Zebrał 26,2 miliona dolarów w ośmiu rundach finansowania, z których ostatnią zamknięto w 2015 roku.

      groupon

      Groupon to serwis oferujący zniżki i karty podarunkowe od lokalnych firm oraz dużych przedsiębiorstw. To niszowy rodzaj e-commerce'u, a od powstania w 2008 roku serwis urósł do jednego z największych tego typu.

      Jego stos technologiczny składa się z Ruby on Rails wraz z Go, JRuby, Javą, Clojure, Scalą i kilkoma innymi technologiami. Serwis jest dostępny w 48 krajach. Groupon zebrał 1,4 miliarda dolarów w siedmiu rundach finansowania, z których ostatnią zamknięto w 2016 roku.

      kickstarter

      Naszym zdaniem to jedna z najlepszych stron firmowych zbudowanych w Ruby on Rails. Ta świetna platforma pozwala szukać finansowania dla swojego projektu albo wspierać pomysły innych.

      Dzięki Kickstarterowi udało się dotąd sfinansować prawie 150 000 projektów, w tym Oculus Rift i Wasteland 2. Widzieliśmy też znacznie dziwniejsze projekty, na przykład bojowe naczynia kuchenne (patelnia przymocowana do miecza) albo kopanie dziury bez żadnego powodu.

      Kickstarter to jeden z naszych ulubionych serwisów opartych na RoR pod względem projektu UX/UI — z przyjaznym interfejsem i intuicyjną ścieżką użytkownika. Sam serwis zbudowano we frameworku Ruby on Rails i języku Perl, a głównymi bibliotekami są jQuery, React i History.js.

      500px

      Jeśli nie jesteś fotografem, pewnie go nie znasz — ale uwierz, w tej branży to potęga.

      To wiodąca na świecie społeczność i zestaw narzędzi dla początkujących i zawodowych fotografów, którzy chcą publikować swoje prace, zdobywać rozpoznawalność i zarabiać na nich dzięki sieci wyłącznych partnerów dystrybucyjnych. Serwis pozwala fotografom budować portfolio, a także daje narzędzia do lepszego rozumienia trendów i własnej fotografii.

      Powstał w 2009 roku, a dziś ma ponad 15 000 000 użytkowników ze 195 krajów, którym pomaga żyć ze swojego rzemiosła. Projekt zebrał 22,3 miliona dolarów w siedmiu rundach finansowania, z których ostatnią zamknięto w 2015 roku.

      Ta aplikacja webowa korzysta z Rails w połączeniu z Node.js, Pythonem i Go oraz innymi technologiami.

       

       

      Cover-Chapter-09

       

      09 Stan Ruby on Rails w 2021 roku i możliwości na przyszłość

      Od wydania pierwszej wersji frameworka webowego Ruby on Rails minęło szesnaście lat. W świecie internetu to cała epoka, w której produkt może zyskać popularność, a potem powoli odejść w zapomnienie.

      Ruby on Rails to jednak nie spotkało. Dziś jest naprawdę dojrzałą technologią, aktywnie rozwijaną przez zespół oddanych twórców i wspieraną przez świetną społeczność. Ogromna praca włożona we framework sprawiła, że Ruby on Rails jest jedną z najlepiej przemyślanych technologii backendowych dostępnych na rynku.

      Długa historia rozwoju Ruby on Rails daje szereg przewag:

      • Zapewnia wysoki poziom bezpieczeństwa — lata rozwoju RoR pozwoliły znaleźć ogromną liczbę luk, błędów i usterek do naprawienia.
      • Bardzo stabilne API — proces aktualizacji Ruby on Rails nie wymaga od programistów zmiany kodu aplikacji. Przy mniej stabilnych frameworkach programiści często muszą wprowadzać serię poprawek w kodzie, co potrafi zająć dni, a nawet tygodnie. W połączeniu ze stabilnością samego RoR daje to ogromną przewagę biznesową!
      • Zmiany we frameworku są ewolucyjne, nie rewolucyjne. Od Rails 3.0 (gdy połączono Rails i Merb) jest to stabilny framework, a aktualizacje nie przynoszą zmian łamiących zgodność, które „wywracają stolik”.

      Ważniejsze jest to, że zespół rdzenia Ruby on Rails wciąż pracuje nad aktualizacjami frameworka (więcej o tym w kolejnej sekcji). Jeśli chcesz przyjrzeć się z bliska temu, co dokładnie dzieje się dziś z Ruby on Rails, możesz przeanalizować stronę Rails na GitHubie, gdzie znajdziesz wszystkie potrzebne informacje, aż po każdą pojedynczą zmianę wprowadzoną w RoR przez lata.

      Ruby on Rails w liczbach

      Popularność jeszcze lepiej pokazują liczby:

      Rozwój Ruby on Rails w 2021 roku

      Pod koniec 2020 roku ukazał się Rails 6.1 — i ma naprawdę sporo świetnych rzeczy! Przez ostatnie miesiące programiści ciężko pracowali nad usprawnieniem obsługi wielu baz danych, dodaniem wsparcia dla usuwania powiązań w zadaniach zamiast w pamięci, zamianą błędów na obiekty i nie tylko.

      To niesamowite, jak Rails urósł przez lata — i choć proces dostosowywania wciąż wymaga usprawnień, Rails nigdy nie był lepszy. Nowości w tym wydaniu skupiają się na funkcjach, których potrzebujesz, żeby Twoja aplikacja działała płynnie przez kolejne lata.

      Przyjrzyjmy się kilku nowym funkcjom:

      Usprawnienia obsługi wielu baz danych

      Przełączanie połączenia z bazą danych

      Rails 6.1 pozwala przełączać połączenia dla każdej bazy danych z osobna. W wersji 6.0 przejście na rolę odczytu przełączało na nią wszystkie połączenia z bazami. Teraz, w wersji 6.1, jeśli ustawisz legacy_connection_handling na false w konfiguracji, Rails pozwoli Ci przełączyć połączenie dla jednej bazy, wywołując connected_to na odpowiedniej klasie abstrakcyjnej.

      Separacja pozioma

      Rails 6.0 zapewniał separację funkcjonalną bazy danych (wiele partycji, różne schematy), ale nie wspierał shardingu poziomego (ten sam schemat, wiele partycji). Rails nie może wspierać shardingu poziomego, bo modele w Active Record mogą mieć tylko jedno połączenie na rolę na klasę. Zostało to naprawione i sharding poziomy jest już w Rails dostępny.

      Dodatkowe usprawnienia

      Poza dodaniem obsługi shardingu poziomego programiści dodali wiele nowych funkcji i usprawnili sporo wewnętrznych mechanizmów obsługi wielu baz danych.

      Więcej informacji znajdziesz na oficjalnej stronie Ruby on Rails.

      Na razie — czekamy. Ale zaktualizujemy tę sekcję, gdy tylko pojawią się nowe wersje Rails!

      Ruby on Rails — co przyniesie przyszłość?

      Trudno przewidywać odległą przyszłość frameworków. Ale rysuje się ona jasno.

      Ważna jest też społeczność Ruby — ludzie będą nieustannie tworzyć nowe gemy i wspierać sam produkt. Większość nowych frameworków nie może liczyć na takie wsparcie użytkowników.

      Nie zapominajmy też o ogromnej liczbie aplikacji już napisanych w Ruby on Rails. One również będą rozwijane i utrzymywane, co będzie generować stały popyt na nowe rozwiązania, aktualizacje i specjalistów Ruby on Rails na rynku.

      Ogólnie rzecz biorąc, Rails ma się dobrze, a popyt na programistów Ruby on Rails zostanie z nami na dłużej. To jedna z najpopularniejszych technologii do tworzenia dedykowanych aplikacji webowych. Jako firma tworząca w Ruby on Rails możemy z dumą powiedzieć, że to nasza ulubiona technologia.

      A dla niedowiarków, którzy wolą patrzeć na liczby niż wgłębiać się w temat, mamy opinię Aviego Flombauma, organizatora NYC on Rails. Powstała pierwotnie jako odpowiedź na pytanie na Quorze z 2016 roku o schyłek Rails, ale pozostaje aktualna:

      • Dlaczego Ruby on Rails podupada? Dlaczego mówicie, że jest wolny?
      • Twilio to duża aplikacja w Rails i właśnie weszła na giełdę.
      • DollarShaveClub to duża aplikacja w Rails i właśnie została przejęta za miliard dolarów.
      • Shopify wszedł na giełdę 6–8 miesięcy temu i jest dużą aplikacją w Rails.
      • Pogłoski o śmierci Ruby on Rails są mocno przesadzone.
      • Co zamierzasz robić, goniąc trendy w nieskończoność?

      Cover-Chapter-10

      10 Podsumowanie — czy Ruby on Rails to właściwy wybór dla Ciebie w 2023 roku?

      Nie powiemy Ci z całą pewnością, czy powinieneś używać Ruby on Rails w stosie technologicznym swojego produktu. Zmiennych jest zbyt wiele i wszystko zależy od wyjątkowego kontekstu Twojego projektu.

      Jeśli jesteś startupem, jest mnóstwo obszarów, w których Ruby on Rails może się przydać. Jeśli dopiero zaczynasz budować produkt, Ruby pozwala szybko wystartować i uruchomić MVP.

      Jeśli jesteś product ownerem istniejącego produktu, zwłaszcza w e-commersie lub SaaS, też możesz rozważyć przejście na Ruby. Daje świetną wydajność, znakomite doświadczenie użytkownika i wysoki poziom bezpieczeństwa.

      Jeśli jesteś programistą który chce podszlifować umiejętności i zwiększyć swój potencjał zarobkowy, nauka Ruby wraz z Rails zdecydowanie powinna znaleźć się na Twojej liście.

      W każdym innym przypadku, jeśli potrzebujesz dodatkowych danych, by świadomie zdecydować, czy Ruby on Rails to właściwa technologia dla Ciebie, Twojego zespołu lub produktu, poniżej podsumowaliśmy najważniejsze informacje z tego przewodnika. Mamy nadzieję, że pomogą!

      • Ruby on Rails (znany też jako Rails albo RoR) to otwartoźródłowy framework do budowy aplikacji webowych, napisany w języku programowania Ruby. Powstał najpierw jako część kodu Basecampa, został z niego wyodrębniony w 2003 roku i udostępniony publicznie w 2005.
      • Jak potwierdza globalna społeczność RoR, to technologia  zoptymalizowana pod kątem szczęścia programisty i pięknego kodu. To jedna z najszybszych technologii do zbudowania szybkiego MVP, więc idealnie nadaje się do projektów z napiętym terminem.
      • Rails to oprogramowanie z poglądami. Przyjmuje założenia co do tego, czego potrzebujesz, by zbudować aplikację webową, robi za Ciebie wiele podstawowych rzeczy i pozwala skupić się na projektowaniu aplikacji na wysokim poziomie. Wymaga od programistów przyjęcia „The Rails Way”.
      • Ruby on Rails to dojrzała technologia z dużą i bardzo aktywną globalną społecznością. Programiści wciąż budują nowe otwartoźródłowe gemy, dzięki którym inni budują produkty jeszcze szybciej.
      • Rails świetnie sprawdza się w startupach i MŚP (szybkość i łatwość pracy), projektach e-commerce (bezpieczeństwo, dojrzałość, stabilność) oraz produktach SaaS (architektura RESTful i łatwość integracji z innymi usługami).
      • Rails idzie w parze z nowoczesnymi metodykami zarządzania projektami, takimi jak Scrum, Rapid Application Development i inne metody zwinne.
      • Rails daje przewagę kosztową na wczesnych etapach prac nad produktem, bo jest technologią otwartoźródłową bez kosztów licencji, a ogromna społeczność programistów RoR nieustannie tworzy i publikuje nowe gemy, z których inni mogą korzystać za darmo.
      • Właściwa droga od A do Z do mistrzostwa w Ruby on Rails to najpierw nauka podstaw web developmentu (HTML, CSS, JavaScript, Git itd.), potem języka programowania Ruby, a dopiero na końcu Ruby on Rails.
      • Rails jest używany w stosach technologicznych wiodących firm, takich jak Basecamp, Airbnb, GitHub, Soundcloud, Codecademy, Yammer, Heroku, Fiverr, 500px, Scribd, Twitch, Indiegogo, Angellist i Groupon.
      • Społeczność Rails od ponad dziesięciu lat utrzymuje stałą liczbę kontrybucji do kodu, a na rynku są tysiące otwartych ofert pracy wymagających Ruby on Rails oraz tysiące istniejących aplikacji w Rails, które wymagają utrzymania.

      Podsumowanie

      Wraz z 2023 rokiem Ruby on Rails (RoR) pozostaje solidnym i niezawodnym wyborem do tworzenia aplikacji webowych. Znany z podejścia „convention over configuration”, RoR upraszcza i przyspiesza pracę, co pozwala zaoszczędzić zarówno czas, jak i zasoby.

      Ruby on Rails oferuje mnóstwo bibliotek, czyli „gemów”, dzięki którym programiści dodają funkcjonalności bez budowania ich od zera. Wbudowane środowisko testowe oraz płynne tworzenie tabel w bazie danych i migracje to dla wielu programistów kolejne mocne argumenty.

      Przydatność RoR mocno zależy jednak od konkretnych potrzeb i celów Twojego projektu. Dla startupów i małych firm, które chcą szybko zbudować i wdrożyć aplikacje webowe, Ruby on Rails to znakomity wybór ze względu na szybkość i prostotę. Nacisk RoR na konwencje i standaryzację sprawia też, że kod jest bardziej utrzymywalny i ogranicza przyszły dług technologiczny.

      Przy złożonych, wysokowydajnych systemach lub aplikacjach wymagających dużej współbieżności lepiej sprawdzą się inne frameworki lub języki. RoR doskonale radzi sobie z dużym ruchem i złożonością, ale narzędzia takie jak Node.js czy Go zaprojektowano specjalnie pod wysoką współbieżność i systemy czasu rzeczywistego, więc w takich przypadkach mogą dać lepszą wydajność.

      Podsumowując, Ruby on Rails pozostaje w 2023 roku sensownym wyborem dla wielu projektów webowych, zwłaszcza tam, gdzie liczą się szybkie i uproszczone prace przy wsparciu dojrzałej i pomocnej społeczności. Ale jak zawsze — „właściwy wybór” zależy od konkretnych wymagań i celów Twojego projektu.

      Wow! Dotarłeś do końca!

      Dziękujemy za przeczytanie naszego przewodnika.

      Mamy nadzieję, że Twoje rozumienie Ruby on Rails jest teraz znacznie głębsze, a może nawet zaczynasz czuć do tego frameworka sympatię (tak jak my!).

      Zrobiliśmy, co w naszej mocy, żeby omówić wszystkie ważne obszary związane z Ruby on Rails. Wiemy jednak, że wraz z rozwojem frameworka ta strona też będzie musiała rosnąć. Dlatego możesz liczyć na to, że będziemy stale ją aktualizować i rozwijać, żeby zawsze była na czasie i dawała informacje najwyższej jakości.

      W międzyczasie możesz szerzyć wiedzę o Ruby on Rails, udostępniając ten przewodnik.

      Zespół Ideamotive

      Udostępnij ten przewodnik w mediach społecznościowych