Czy wiesz, że w 2021 roku Node.js był tagowany w zapytaniach na Stack Overflow częściej niż jakikolwiek inny framework backendowy, a na GitHub był najczęściej używanym frameworkiem backendowym?
Przypadek? Nie sądzimy.
Dla osób mających wiedzę z zakresu JavaScript / TypeScript, a chcących rozpocząć swoją przygodę z Node.js próg wejścia jest bardzo niski, a dodatkowym atutem jest to, że szybko można osiągnąć pierwsze rezultaty.
Jak może wyglądać ścieżka przejścia na drugą stronę mocy? Przeczytaj wywiad z Kacprem, który przeszedł taką drogę. 🙂
Kacper: Pracuję w roli, którą śmiało można nazwać Full Stack Developerem. Zajmuję się wszystkimi częściami aplikacji, którą tworzymy. Są to technologie od backendu, który jest w Node, poprzez frontend w React, smart contracty oparte o Solidity, kończąc szczyptą devopsu w oparciu o Terraform. Na przekroju czasu zajmowałam się wszystkimi tymi rzeczami w większym lub mniejszym stopniu.
Kacper:Jestem dość samowystarczalną osobą jeśli chodzi o przyswajanie nowych technologii, więc gdy Paweł opowiedział mi jaki jest stack technologiczny to sam zacząłem drążyć i pisać kolejne funkcjonalności [zamiast features/ficzery]. Nie miałem większych problemów z przestawieniem się na backend. Jednocześnie wiedziałem, że zawsze mogę liczyć na pomoc kolegów i zapytać np. Pawła, które z wymyślonych przeze mnie rozwiązań byłoby lepsze lub czy uważa, że w danej sytuacji można było coś zrobić inaczej. Tak wyglądał mój proces uczenia się. Wiesz, jak się programuje już w drugim lub trzecim języku, to w bardziej ogólny sposób patrzy się na zadania - masz taki problem i taki toolkit, który ma takie ograniczenia i to trzeba z jego pomocą zrobić. Uczyłem się w trakcie robienia i taki sposób zdobywania wiedzy jest dla mnie najlepszy.
Kacper: Dodałem jedną z kluczowych funkcjonalności w aplikacji. W backend jest tak, że dostaje się request i aplikacja musi go obsłużyć. Czasem te requesty muszą być autoryzowane, czyli tylko określona pula użytkowników ma uprawnienia do danego endpointa. Wcześniej nie miałem okazji zaimplementować takiego rozwiązania, a tu od zera z pomocą Pawła udało się w całkiem zgrabny sposób zaimplementować całość używając standardu JWT.
Drugie wyzwanie było na pograniczu Node i Blockchain - chodziło o podpisywanie danych. Dostaliśmy zgłoszenie na produkcji, że użytkownicy czasami muszą po kilka razy ponawiać próbę logowania. Mechanizm logowania do aplikacji oparty jest o wallety blockchainowe. Na froncie używamy metamaska, który pozwala użytkownikom podpisywać wiadomości. Raz na jakiś czas zdarzało się, że podpis który wysłali użytkownicy jest nieprawidłowy. W momencie wysyłania requestu po stronie infrastruktury tworzy się lambda, która ma określony czas życia. Mieliśmy bibliotekę, która w momencie wysłania requestu cachowała to co wysyłaliśmy do użytkownika. I tu pojawiał się problem. Czasami, kiedy użytkownik za długo czekał z wysłaniem podpisanej wiadomości lambda przestawała być aktywna. Wtedy podpis użytkownika trafiał już do innej lambdy, która miała w cache inną wiadomość i przez to podpisy się nie zgadzały. Przerobiłem to tak, aby nie czas był ważny, a adres walletu.
Kacper: Warto poczytać guida i poszukać jakiegoś tutorialu w JS i Typescript i napisać sobie jednego CRUda (Create-Read-Update). Jeden taki projekt może wiele wyjaśnić i uświadomić jak działa backend.
Niedawno uruchomiliśmy projekt wspierający przejście frontendowców na stronę backendu. Zapraszamy do współpracy wszystkie osoby, które chcą poszerzyć swoje umiejętności o backend i są zainteresowane pracą Node / FullStack Developera.
Ze swojej strony zapewniamy: