nodejs mnogość frameworków

nodejs mnogość frameworków
lalarte
  • Rejestracja:około 5 lat
  • Ostatnio:7 dni
  • Postów:54
0

Zastanawia mnie to jak to jest z przejściem na pisanie backendu w nodejs. Przeglądając oferty na backend deva w nodejs przeważnie widzę express.js jako framework albo brak większej ilości informacji. Na przykład w php raczej to wygląda prosto, głównie wybór przypada na Laravel/symfony. W nodzie jest dziesiątki różnych frameworków Hapi/express/sails/nest które mają tysiące gwiazdek na githubie. Jak wygląda komercyjne wejście w technologię jaką jest node jeżeli chodzi o wybór frameworka?

semicolon
  • Rejestracja:ponad 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:114
0

Express to bardziej jest jak mikroramy pod które jeszcze dobierasz pomniejsze biblioteki. Z tego co mi się wydaje to zarówno sails jak i nest na nim bazują więc potencjalnie znajomość express praktycznie nie powinna Ci zaszkodzić.

Na Twoim miejscu bałbym się pakować swój czas w Node. Node to śliskie rozwiązanie, co prawda dawniej ten kierunek miał więcej sensu, bo pisanie asynchronicznego kodu w innych językach było kłopotliwe. Np nie słyszałem, by ruby/php coś tutaj oferowało, a np. w pythonie nie było asyncio, a zamiast tego było kilka różnych rozwiązań, i mieszanie api z synchronicznym :-/ także rozumiem czemu ludzie lubią Node. Natomiast z obecnego punktu widzenia to nie wiem po co się w to pchać - chyba tylko po to, żeby utrzymywać :-) Do asynchronicznych zadań 100-kroć lepszy jest elixir, w czy też drętwy go, albo kotlin od jetbrains.

ME
Bo biznesowi nie zależy na implementowaniu w kółko rzeczy, które jakaś biblioteka w nodejs już zaimplementowała. Piszę w golangu i czasem mnie to denerwuje i dlatego do niektórych aplikacji wolę node.js... Koniec końców twoja aplikacja jest tak dobra jak programiści którzy ją piszą a nie język który wybrali. Miałem okazję obcować już z kilkoma językami w projektach komercyjnych i szczerze to nodejs nie jest taki zły, szczególnie z typescriptem.
ME
Dodatkowo często bardziej liczy się wydajność programistów nad wydajnością języka. W takim firebasie wykorzystując functions, firestore i to logowanie możesz w bardzo krótkim czasie napisać aplikacje która będzie w stanie obsłużyć tysiące userów bez zająknięcia przy znikomych kosztach co w takim golangu zajęłoby mi przynajmniej ze dwa razy więcej czasu. W wielu przypadkach kilka dodatkowych dni opóźnienia w dostarczeniu mvc może kosztować więcej niż napisanie aplikacji na firebase a później przepisanie jej na inny język i/lub przeniesienie jej na inną architekturę
semicolon
Ok, a zatem tu o firebase chodzi. Robienie takich szybkich wydmuszek, by sprawdzić mvc i w przypadku zwrotu i większych kosztów przeskoczyć na coś normalnego.
semicolon
Próbuję to skumać, ale nie łapie. Co takiego ma firebase, że ludzie w to się pchają? Rozumiem np. mobilnego programisty, który nie ma czasu, ale żeby osoba z backendu się w to pchała to trochę nonsens. Co powoduje, że np. logowanie jest takie czasochłonne? Tym badziej, że logowanie to nic odkrywczego i gdy firma robi projekt za projektem to przecież taki kod jest łatwy do przepięcia.
semicolon
Deployment jestem w stanie zrozumieć, bo wtedy mniej czasu spędzasz nad administracją i mniej obciachu jest w przypadku przeciążenia.
semicolon
Ale w sumie to jest spora cena (tzn wybór języka node) jeśli tylko o to chodzi.
ME
To jest przykład, możesz sobie zastąpić firebase jakimś gcp czy awsem, podpięcie jakiegoś oidc do apki to też nie problem w nodzie. Jest wiele innych powodów dla którego ten język może być lepszym wyborem od tych wymienionych przez ciebie. Wybór technologii nigdy nie jest wyborem zero jedynkowy bo elixir jest 100 lepszy od innego języka, tak to nie działa. Nodejs cieszy się dużym zainteresowanie i moim zdaniem nie bez powodu. Fangi i inne podobne firmy korzystają z niego i nie narzekają. Ja na przykład nie rozumiem dlaczego node jest dla ciebie śliskim rozwiązaniem.
ME
Moim zdaniem taki nodejs, python czy golang lepiej się sprawdza od kotlina jeżeli w twojej organizacji wszystko stoi na kubernetesie. Te języki są idealne do architektury, którą k8s po części wymusza, czego o javie nie można powiedzieć.
ME
Jasne, do pisania wielowątkowych kobył może te języki będą lepsze ale powoli (raczej bardzo szybko) się odchodzi od takich aplikacji na rzecz mniejszych jednowątkowych mikroserwisów lub serwerlessu gdzie te języki i ich zalety już nie lśnią tak bardzo
semicolon
Pisząc śliski miałem na myśli to, że w node masz kilka sposobów na zapis asynchroniczny zapis: callback, promises, coroutines, await/async - różne biblioteki różne techniki, a praca z nimi nie zawsze układa się po Twojej myśli. Polecam zajrzeć do żółtych książek Kyle Simpsona. Nie wiem co go ugryzło, że poświęcił tyle uwagi temu javascriptowi.
semicolon
Poza tym sam node nie należy do środowisk, które słynie z niezawodności: crache, wycieki pamięci, problemy z npm. Natomiast JS bez pomyślanej bibloteki standardowej, ma luki w gramatyce języka - taka rzecz dokucza gdy piszesz logikę, a nie tylko kod, który uderza w API. Ogólnie babel i przeróżne protezy napędza rozwój JS, ale do pewnego stopnia i przewaznie skupiają się na problemach, których w innych językach zwyczajnie nie uświadczysz.
semicolon
Jasne, do pisania wielowątkowych kobył może te języki będą lepsze ale powoli (raczej bardzo szybko) się odchodzi od takich aplikacji na rzecz mniejszych jednowątkowych mikroserwisów lub serwerlessu gdzie te języki i ich zalety już nie lśnią tak bardzo - to zależy. Jeśli wszytko sprowadzasz do IO to pewnie tak jest, ale przy bardziej złożonych scenariuszach samo IO nie wystarczy.
lalarte
@metest: Pisząc w nodzie wybieracie jeden z dziesiątków frameworków dostępnych dla noda? Jeżeli tak, to czy nie jest to nurtujące? (chcesz pisać w nodzie - nastaw się na to, że będziesz żonglował frameworkami)
ME
  • Rejestracja:prawie 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:1
0

Dużo tych frameworków jest opartych na expresie jak np nest.js... Wybierasz to co zrobi robotę, jeżeli musisz szybko stworzyć apkę która ma być dobrze napisana to wybierzesz bardziej "opinionated framework" jak nest (oczywiście jeżeli team umie typescript i jest zaznajomiony z wzorcami projektowymi wykorzystanymi w tym frameworku). Express jest bardzo podstawowym frameworkiem a tym samym bardzo prostym ale trzeba wiele rzeczy implementować samemu które już są w innych zaimplementowane. Ze względu na to express jest bardzo dobrym frameworkiem do pisania funkcji serwerlesowych ale istnieje też więc większe prawdopodobieństwo, że mniej doświadczeni programiści napiszą w nim nietestowalną kupę. Fastify na przykład jest bardzo podobny do expressa tylko znacznie wydajnieszy ale również mniej popularny i rzadziej wykorzystywany.

lalarte
Generalnie widzę, że sprowadza się to do tego - chcesz pisać dobry kod w node, musisz mieć doświadczenie z innych języków które wyznaczają jakieś ramy w jaki sposób "coś" zaimplementować.
LU
  • Rejestracja:ponad 8 lat
  • Ostatnio:9 miesięcy
  • Postów:289
0

Dla kasy? ;) Zarobki w PHP są sporo niższe niż w Node... dodatkowo jest dość sporo ofert pracy w przeciwieństwie do elixira czy kotlina :)

semicolon
Cóż.. bywa i tak :-)
lalarte
Bardziej chodziło mi o to, że praca z nodem nie ma jakiejś utorowanej ścieżki pracy. Tylko mnogość frameworków/rozwiązań - możesz napisać dobry lub spartaczony kod. I szukam odpowiedzi od kogoś kto pracuje w tej technologi czy rzeczywiście tak jest?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.