RedwoodJS – nowy framework JavaScript od twórcy GitHuba
Dobrych javascriptowych frameworków nigdy za wiele – zapewne z takiego założenia wyszli twórcy frameworka RedwoodJS, który po niespełna dwóch lat prac w końcu doczekał się wersji 1.0. Przyjrzyjmy się zatem bliżej funkcjom, innowacjom i zastosowanym w nim rozwiązaniom.
RedwoodJS – nowy otwarty framwork JS
Redwood to w stu procentach opensource’owy framework łączący uznane biblioteki, tak aby dostarczać obsługę całego stosu technologicznego. Wykorzystywać można go do przygotowywania aplikacji webowych zarówno w JavaScripcie, jak i TypeScripcie.
Sami twórcy – wśród których znalazł się Tom Preston-Werner, twórca GitHuba i Jekylla – są zdania, że RedwoodJS to wybór idealny dla startupów – ma on oferować możliwie jak najwięcej out-of-the-box, tak aby przygotowanie kompletnej aplikacji webowej przebiegało w sposób możliwie jak najdalej zautomatyzowany.
Jak to wygląda w praktyce? Redwood to konglomerat, w którym interfejs opracowany z użyciem Reacta wywołuje API z użyciem GraphQL. Do przeprowadzania operacji na bazach danych wykorzystywana jest Prisma, nic zatem nie stoi na przeszkodzie, by korzystać z PostgreSQL, MySQL, SQL Server, SQLite, a także – choć na razie w wersji testowej – MongoDB.
Ponadto ściśle zintegrowane z frameworkiem zostało Jest (testowanie), Pino (logowanie), a także katalog komponentów do wykorzystania w budowaniu UI dzięki Storybook. Ponadto twórcy chwalą się, że takie operacje, jak implementacja uwierzytelniania np. z użyciem Auth0 czy wdrożenie frameworka CSS to kwestia wydania jednego polecenia.
RedwoodJS – najważniejsze funkcje
Aplikacje przygotowane z użyciem Redwooda są podzielone na frontend i backend reprezentowane przez dwa osobne projekty JavaScript lub TypeScript przechowywane w ramach jednego monorepo. Backend, nazywany tutaj „stroną API”, to implementacja wspomnianego już GraphQL, zaś wszystkie procesy zostały rozdzielone na usługi z własnym wewnętrznym API. Frontend budowany jest z użyciem Reacta i komponentów pobranych ze Storybook.
Wśród najważniejszych funkcji RedwoodJS należy wymienić prekonfigurowane domyślne komponenty (m.in. Webpack, Babel), co ma przyśpieszyć i uprościć uruchomienie aplikacji, uproszczono także konfigurację routingu – wszystkie trasy są w jednym pliku. Prostota idzie tu w parze z szerokimi możliwościami – korzystać można z dynamicznych parametrów, własnych typów i ogółem ma się dość dużą kontrolę nad generowaniem URL-i. Ponadto Redwood oferuje automatyczne dzielenie kodu na podstawie tego, jak wykorzystywany jest on na konkretnych stronach.
Do kolejnych ciekawych funkcji warto zaliczyć mechanizm deklaratywnego pobierania danych z API backendu, możliwość łatwej walidacji formularzy zarówno po stronie klienta, jak i serwera oraz funkcje związane z uproszczeniem migracji danych i baz danych. Wrażenie robi także ścisła integracja z Jest – testować można w zasadzie całą bazę kodu składającego się na aplikację.
Ważnych cech i funkcji nowego frameworka jest oczywiście znacznie więcej – ze szczegółami można zapoznać się tutaj. Również w githubuowym repozytorium projektu znajdziemy linki do dokumentacji i instrukcji instalacji RedwoodJS. Czy ten składający się z wielu uznanych komponentów konglomerat ma szansę na sukces? Przez ostatnie miesiące poprzedzające premierę wersji 1.0 nie wybił się on ze swojej niszy, jednak historia pokazuje, że Tom Preston-Werner stał już za niejednym udanym przedsięwzięciem.