Ruby on Rails - co to jest?

Rails on Ruby jest framework na licencji open-source służący do pisania aplikacji webowych. Napisany jest, jak nazwa wskazuje, w języku Ruby. To wszyscy piszą i to jest prawda zajmijmy się rzeczami odróżniającymi go od innych szkieletów aplikacji.

Moje pozytywne emocje

Powiem, że jest to framework, który bardzo mnie zaskoczył. Zawsze myślałem, że technologia Spring Framework dla Javy nie ma konkurencji, a tutaj bardzo duża niespodzianka.

Jest to bardzo rozwinięty framework, który pozwala na bardzo wiele i niewiele jednocześnie. Chodzi tutaj o to, że można w nim rozwiązać dużo problemów programistycznych do aplikacji webowych, stworzyć wszelkiego rodzaju strony (publiczne, jak i dedykowane). Za to jest mało miejsc, gdzie można coś popsuć.

Implementując nasz produkt skupiamy się tylko na logice aplikacji, ponieważ framework działa według reguły "konwencja nad konfiguracją" (Convention Over Configuration).

Szkielet aplikacji narzuca nam stosowanie wzorców projektowych i reguł dobrego wytwarzania oprogramowania tj. MVC (Model-View-Controller), DRY (Don't Repeat Yourself) oraz AOP (Aspect-Oriented Programming)

Z powodu narzuconej konwencji programowania korzystanie z obcego projektu jest bardzo proste. Wiemy dokładnie, gdzie powinniśmy szukać różnych konfiguracji, kontrolerów, modeli, bazy danych, tak na prawdę wszystkiego. Projekt, dzięki temu, nie staje się tworem, który tylko autor potrafi uruchomić lub przeczytać. Bardzo mi się to podoba, bo często trafiają się projekty, gdzie aby wdrożyć się potrzebujemy stracić dużo czasu na czytanie i szukanie, gdzie coś zostało zaimplementowane. Tutaj raczej (bo dla chcącego nic trudnego) nie spotkamy się z takim przypadkiem.

Istnieje duża społeczność pisząca wtyczki, które możemy w prosty sposób wstrzyknąć do projektu. Pozwala nam to na "nie odkrywanie koła od nowa". Sposób wstrzykiwania jest na tyle prosty, że spędzamy przy tym bardzo mało czasu.

Czytelność kodu

Spotykałem się z opiniami (sam zauważyłem to w JavaScript), że języki skryptowe są mało czytelne. Tutaj nie posiadamy z tym problemów, ponieważ szkielet jest tak stworzony, aby zbędnego kodu było jak najmniej. Skupiamy się tylko na logice, co umożliwia nam pisanie kodu na jednym poziomie abstrakcji. Nie bawimy się tutaj w połączenia do bazy, zapisywanie obiektów, konwertowanie na obiekty DTO (Data Transfer Object) itd.. To wszystko robi za nas RoR.

Język "czysto" obiektowy

Powinienem jeszcze wspomnieć o tym, że Ruby (podobnie jak Smalltalk) jest językiem tylko i wyłącznie obiektowym. Tutaj wszystko jest obiektem, kontroler, model, funkcja, klasa, obiekt, a nawet wartość nil (null). Pozwala to nam na wykorzystywaniu masy ilości funkcji dla różnych obiektów operujących na nich samych. W praktyce posiadamy szeroką gamę takich metod do wykorzystywania, które ułatwiają naszą pracę nad implementacją projektu.

Podsumowując

W przyszłości możemy spodziewać się wypierania języków nieskryptowych skryptowymi. Mamy tutaj bardzo dobry przykład alternatywy do Javy, która uważana jest przez niektórych za starą i niemodną. Na dodatek bardzo szybko się rozwija. Bardzo podoba mi się pomysł narzucania dobrej konwencji programowania, dzięki której wszyscy możemy stać się lepszymi programistami. I z taką myślą zostawiam Was do następnego wpisu o Ruby on Rails.

Comments

Popular posts from this blog

Why TDD is bad practice?

How correctly imitate dependencies?

Software development using Angular 5 with Spring Boot