17.12.20213 min

Mateusz JaroszRedakcja Bulldogjob

Rails 7.0 wydane – opis nowości

Swoją premierę miała już duża nowa wersja jednego z najpopularniejszych webowych frameworków.

Rails 7.0 wydane – opis nowości

Sporo dzieje się ostatnio w światku frameworków webowych. Ledwie informowaliśmy o nowej wersji Django, a już dziś światło dzienne ujrzała nowa wersja Ruby on Rails oznaczona numerem 7.0. Trzeba przyznać, że nowości jest wiele, co nie powinno dziwić, biorąc pod uwagę, że od premiery wersji 6.1 minął ponad rok. Przez ten czas społeczność licząca ponad 6 tys. programistów dodała przeszło 4 tys. commitów. 

Według autorów projektu założenia stojące za zmianami w Rails 7.0 przyświecały pracom już od lat – rezultatem ma być całkowicie fullstackowe podejście do tworzenia aplikacji przeglądarkowych. 

Dotąd na drodze do realizacji tego pomysłu przeszkodą był ograniczenia techniczne, jednak dzięki implementacjom w przeglądarkach między innymi HTTP/2 oraz obsłudze modułów ES nowa wersja Ruby on Rails ma równie dobrze radzić na back-endzie, jak i na front-endzie. Dziś nic już nie stoi bowiem na przeszkodzie, by bez użycia transkompilatora uruchamiać ES6 bezpośrednio w przeglądarce – wersję tę obsługuje już Chrome, Firefox, Edge i Safari. 


Rails 7.0 – co nowego?

Kluczową zmianą w Rails 7.0 w stosunku do poprzednich wersji jest uniezależnienie frameworka od Node.js ze wszelkimi tego konsekwencjami, przy czym należy zaznaczyć, że nie odbyło się to kosztem utraty dostępu do paczek npm.

Domyślny scenariusz projektowania aplikacji webowych w Rails ma być odtąd znacznie prostszy, lecz równie bogaty w możliwości. Zamiast ścisłego powiązania z Node.js oraz takich komponentów jak Turbolinks i Rails UJS, developerzy otrzymują kombinację Hotwire, Turbo i Stimulus. 

Skutki takie podejścia z całą pewnością będą odczuwalne. Odtąd twórcy aplikacji nie muszą już między innymi polegać na Webpackerze i sami mogą wybrać swój bundler: sprawdzi się tu zarówno esbuild, jak i rollup.js, choć oczywiście chętni nadal mogą budować swoje aplikacje zarówno z Node.js, jak i Webpackerem. Podobnie sprawy mają się w przypadku obsługi bundlerów CSS zależnych od Node.js – w Rails korzystać można z Tailwind, Bootstrapa, Dart Sass czy PostCSS. Wystarczy, aby bundler był w stanie utworzyć plik application.css. 

Ruby on Rails od jakiegoś czasu stoi w kontrze do ruchu SPA i dalej kroczy swoją drogą. Nadal chce być kompleksowym rozwiązaniem do tworzenia zarówno back-endu, jak i front-endu. Oczywiście całość dzieje się w dość hipsterski, railsowy sposób. Z pewnością cieszy odejście od Webpackera, który starał się niepotrzebnie uprościć interakcję z Webpackiem.

Nowości pojawiły się także w kryptografii. W najnowszej wersji Rails dodano szyfrowanie atrybutów w Active Record, dzięki czemu dodatkową warstwę ochrony, nie musząc czekać, aż dane zostaną zaszyfrowane podczas zapisu czy przesyłania. Według twórców takie podejście pozwala chronić informacje nawet w sytuacji, kiedy atakujący uzyska dostęp do bazy danych czy logów danej aplikacji. Ponadto możliwe jest zdefiniowanie już na poziomie kodu warunków określających, czy dane są wrażliwe.

Kolejną nowość stanowi obsługa asynchronicznego wykonywania zapytań – odtąd dwa niepowiązane zapytania mogą być uruchamianie niezależnie od siebie. Warto także zaznaczyć, że Zeitwerk jest odtąd jedynym loaderem kodu. Ze wszystkimi zmianami w nowej wersji Rails można zapoznać się dzięki lekturze zaktualizowanej już dokumentacji.

<p>Loading...</p>