Programování

Co je nového v Rails 5.1: Lepší JavaScript

Ruby on Rails, veteránský webový rámec na straně serveru, hraje s JavaScriptem v upgradu, který se nedávno přesunul na první beta verzi, hezky.

Rails 5.1 nabízí několik vylepšení, včetně šifrování, testů systému a správy závislostí JavaScript z NPM prostřednictvím nového správce balíčků Yarn Facebooku.

Díky správě závislostí JavaScriptu prostřednictvím aplikace Yarn mohou uživatelé záviset na knihovnách, jako je React via NPM. Prostředky jsou k dispozici v kanálu a pro přidání těchto závislostí se používá bin / yarn binstub. Vývojáři pracující s verzí 5.1 mohou také kompilovat JavaScript pomocí balíku modulů Webpack prostřednictvím klenotu Webpacker. Ale Rails 5.1 upustí jQuery jako výchozí závislost. S přepsáním nenápadného skriptovacího adaptéru rails-ujs pro použití vanilkového JavaScriptu již tato závislost není potřeba.

Rails 5.1 také obsahuje šifrovanou správu tajemství. Soubor šifrovaného tajemství se nastavuje pomocí funkce bin / rails secrets: setup, která generuje hlavní klíč pro uložení mimo úložiště a zároveň umožňuje vývojářům spáchat výrobní tajemství.

Pro testování systému obsahuje Rails 5.1 zabalení knihovny Capybara Ruby pro testování aplikací. Dodává se předem nakonfigurovaný pro prohlížeč Chrome a vylepšený o snímky obrazovky selhání. Funkce parametrizovaných mailerů nabízí možnost zavolat mailerům s parametry dostupnými před vyvoláním akce. Rails 5.1 zjednodušuje vytváření formulářů sjednocením dvou hierarchií, form_for a form_tag, s form_with. Funkce směrované trasy mezitím umožňuje deklaraci programových tras, které mohou pomocí Ruby provádět funkce v závislosti na parametrech.

„V průběhu let jsme měli bouřlivý, možná i sporný vztah s JavaScriptem. Ale ten čas je minulost,“ uvedl bulletin k vydání 5.1.0, jehož autorem je dhh, který je pravděpodobně zakladatel Rails David Heinemeier Hansson. Bulletin zdůrazňuje, že JavaScript se v posledních letech „nesmírně zlepšil“ s příchodem ECMAScript 6 a nástrojů jako Yarn a Webpack.

$config[zx-auto] not found$config[zx-overlay] not found