Z Reacta do Node - historia Kacpra

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ę. 🙂

Ewa: Kacper, opowiedz czym się aktualnie zajmujesz w Pragmatic Coders (PC). Jaka jest Twoja rola?

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. 

Jak zaczęła się Twoja przygoda w PC?

Kacper: Rekrutowałem się na Frontend Developera z Reactem i miałem rozmowę rekrutacyjną bardziej w kierunku technologii webowych - rozmawialiśmy o React i Javascript. Trafiłem do projektu, gdzie wspólnie z Pawłem, Senior Fullstack developerem oraz ze Sławkiem zajmującym się technologiami Blockchain uznaliśmy, że przydałaby się nam dodatkowa para rąk na backendzie. Uznałem to za dobry pomysł i z chęcią się tego podjąłem. Swoją przygodę z programowaniem zaczynałem od Javy, więc takie rzeczy jak REST, MVC czy inne backendowe paradygmaty nie były mi obce. Miałem ogólne pojęcie o tym, czym jest backend i nie miałem nic przeciwko, aby rozpocząć swoją przygodę z Nodem w tym projekcie.

W jaki sposób Pragmatic Coders pomogło Ci wejść w Node.js?

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.

Z jakiego rozwiązania byłeś naprawdę dumny?

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.

Co byś poradził osobie, która chce przejść na stronę backendu?

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.

Strona kariera blogposty (6)

Przejdź na drugą stronę mocy, zostań Node Jedi!

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:

  • Pełne wsparcie w zdobyciu wiedzy z Node.js.
  • Dedykowanego opiekuna, który będzie Cię wspierał w poszerzaniu kompetencji z Node.js.
  • Możliwość wejścia w projekt, praktycznego nabycia umiejętności.
  • Wspierające środowisko, w którym będziesz mieć możliwości rozwoju w kierunku Node.js.
  • Wynagrodzenie adekwatne do Twoje wiedzy i doświadczenia w React.
  • Bliski kontakt z biznesem.
  • Możliwość podjęcia decyzji co zrobisz ze zdobytą wiedzą - do wyboru będziesz mieć pracę 100% tylko w Node lub realizację zadań Fullstack.