Wątek przeniesiony 2023-04-24 17:54 z PHP przez Riddle.

Przejście z PHP na node.js

0

Witam koderów i koderki.

Zbierałem się i z tym tematem i z podjęciem tej rękawicy chyba z byt długo. Od kilkunastu lat z mniejszymi lub większymi przerwami realizowałem małe i duże projekty w oparciu o PHP na backendzie, bez laravela itp. na własnym frameworku wypracowanym i poprawianym latami i JavaScript na froncie (wcześniej jQuery później już czyste JS). Jednak patrząc na rozwój i możliwości doszedłem do takiego wniosku, że pora na zmiany i wygląda na to, że NodeJS/Javascript to jedyne słuszne wyjście.

Dosyć mocno zacząłem wchodzić w temat blockchain gdzie PHP jest wielokrotnie pomijane i słabo wspierane, samo PHP jak wiadomo jest wolniejsze więc chyba nie będę się dalej oszukiwał. Pytanie mam do osób doświadczonych w NodeJS i osób, które ewentualnie już takiego przejścia dokonały. Jakie frameworki, jakich unikać i na co zwrócić uwagę by nie musieć rzucać klawiaturą co pół godziny. Głównie chodzi o aplikacje mocno bazodanowe, portale itd. Nie specjalizuję w apkach graficznych grach itp.

Z góry dzięki za ułatwienie mi tej drogi :)

0
CThomas napisał(a):

Zbierałem się i z tym tematem i z podjęciem tej rękawicy chyba z byt długo. Od kilkunastu lat z mniejszymi

Wręcz przeciwnie, oszczędziłeś sobie zmagań. Teraz jest łatwiej pisać w Node.js, niż kiedyś.

Jakie frameworki, jakich unikać i na co zwrócić uwagę by nie musieć rzucać klawiaturą co pół godziny

Nie zaczynaj od frameworków, tylko od nowoczesnego JavaScriptu (ES6+), szczególnie kwestie asynchroniczności. Nawet jakbyś to robił w przeglądarce, to już by ci to pomogło. Możesz też sobie robić jakieś programiki z użyciem biblioteki standardowej Node.js. Warto poznać jakąś bibliotekę do testowania (np. Mocha, Jest) i nauczyć się pisać testy.

Później możesz wskoczyć w jakiś prosty framework typu Express czy Fastify.

Standardem też zrobił się TypeScript.

Jakąś chmurę warto poznać.

jakich unikać

odradzałbym na początek Nest.js, bo tam jest zbyt dużo magii, ALE jednak Nest.js jest poszukiwany na rynku pracy. No ale zawsze możesz się go douczyć później.

Głównie chodzi o aplikacje mocno bazodanowe,

Tu warto poznać Dockera, żeby móc sobie łatwo instalować te bazy i inne dodatkowe programy bez śmiecenia po całym systemie.

0

Widać ewidentnie za mało zaglądałem na to forum. Nie spodziewałem się ani tak szybkiej ani rzeczowej odpowiedzi. Nest właśnie zauważyłem więc dzięki, express poniekąd też na start wziąłem pod uwagę. Jednak tak jak lata temu uczyłem się mootools (chyba tak się to nazywało), a później poznałem jQuery tak zbyt późno zrozumiałem, że przez te biblioteki zaniedbałem samo javascript tak teraz wolę może nie tyle co iść przez las bez latarki ale jednak jak najbardziej wchłonąć javascript i przestawić się z PHP. Wiem jak działa asynchroniczność jednak ciekawi mnie jak mi pójdzie przestawienie się z budowania aplikacji synchronicznych? Tak czy inaczej PHP po tylu latach nie zapomnę (zaczynałem jeszcze na PHP4) ale brnięcie w to dalej raczej skarze mnie na bycie dinozaurem :)

1
CThomas napisał(a):

Widać ewidentnie za mało zaglądałem na to forum. Nie spodziewałem się ani tak szybkiej ani rzeczowej odpowiedzi.

dzięki :)

Wiem jak działa asynchroniczność jednak ciekawi mnie jak mi pójdzie przestawienie się z budowania aplikacji synchronicznych?

async/await pomaga w pisaniu, tym niemniej i tak trzeba zrozumieć promisy czy callbacki, eventy. No i sam model asynchroniczności w JS ("What the heck is the event loop anyway?")

Tzn. pisanie asynchroniczne może być prawie tak samo wygodne, jak synchroniczne, ale pod warunkiem, że rozumiesz, jak to działa pod spodem. Bo brak właściwego modelu mentalnego może spowodować, że nie będzie ci działać program i nie będziesz wiedział, dlaczego. Albo co gorsza - program będzie działać, ale nie tak, jak myślisz, że działa.

0

program będzie działać, ale nie tak, jak myślisz, że działa.

Myślę, że czasami nawet PHP dochodzi do takiej sytuacji. Stąd po pół roku od uruchomienia projektu znajduje się jakiegoś buga.

Z promisami i callbackami już się zderzyłem po stronie frontu. Asynchroniczność wydaje mi się być sporą zaletą JS jednak jak piszesz muszę się mentalnie na to przestawić
i być świadomym tego co się dzieje w projekcie i tutaj akurat w przypadku PHP wydaje mi się, że debugowanie jest wiele bardziej przejrzyste.

No chyba że w node czy samym js jest mechanizm, którego jeszcze nie poznałem.

0

co do Node.js, to jak ci nie starcza dupa debugging (console.log), to możesz podłączyć dev toolsy z Chrome https://blog.logrocket.com/debugging-node-js-chrome-devtools/
ja jeszcze tak kiedyś robiłem, że odpalałem apkę Node.js w Electronie i robiłem dashboardy w HTML, które pokazywały na żywo, co się działo w apce (bo z apki backendowej zrobiłem na potrzeby debuggowania apkę desktopową), no i również miałem dostęp do dev toolsów.

1

Akurat spotkałem się z odwrotnym trendem, że to właśnie w nowoczesnym PHP z Symfony (jego komponentami) całkiem przyjemnie pisze się różnego rodzaju aplikacje, czy to webowe czy mikroserwisy. Własnego frameworka raczej bym nie rozwijał, bo wiadomo jak takie rozwiązania kończą.

pora na zmiany i wygląda na to, że NodeJS/Javascript to jedyne słuszne wyjście.

Jedyne i słuszne raczej nie, bo jest wiele różnych technologii do tworzenia webu. Pytanie czy rzeczywiście pasuje ci JavaScript/TypeScript i ekosystem NodeJS?

0

jest wiele różnych technologii do tworzenia webu

I to właśnie przeszkadza mi w PHP a jednocześnie kieruje w stronę node, że PHP ogranicza mnie do projektów Webowych. Raczej nie widziałem przypadków by dało się kompilować php do apki mobilnej.

Mimo, iż większość sieci śmiga na PHP to mi jednak wydaje się, że przesypiam możliwość przejścia na odpowiednią platformę, która finalnie zdominuje rynek całkowicie.

Co do własnych frameworków to akurat się nie zgodzę. Dzięki temu, że działałem na własnym kodzie nigdy nie miałem problemów z jakąś aktualizacją zabezpieczeniami itp. numerami. Albo
mi się tak udało albo po prostu zrobiłem to lepiej niż inni. Finalnie to fakt, że miałbym porzucić ten cały kod mnie najbardziej trzyma przy PHP w tej chwili. Sporo rzeczy będzie trzeba robić od nowa, a konkretnie to wszystkie :)

0

PHP to web i CLI, więc do aplikacji np. mobilnej, desktop (GUI) trzeba wybrać coś innego.

0
witcher1 napisał(a):

PHP to web i CLI, więc do aplikacji np. mobilnej, desktop (GUI) trzeba wybrać coś innego.

Nawet CLI to już tak średnio moim zdaniem, bo przyjemniej raczej do tworzenia CLI używać pythona

0
CThomas napisał(a):

Witam koderów i koderki.

kolejność zła

Dosyć mocno zacząłem wchodzić w temat blockchain gdzie PHP jest wielokrotnie pomijane i słabo wspierane, samo PHP jak wiadomo jest wolniejsze więc chyba nie będę się dalej oszukiwał. Pytanie mam do osób doświadczonych w NodeJS i osób, które ewentualnie już takiego przejścia dokonały. Jakie frameworki, jakich unikać i na co zwrócić uwagę by nie musieć rzucać klawiaturą co pół godziny. Głównie chodzi o aplikacje mocno bazodanowe, portale itd. Nie specjalizuję w apkach graficznych grach itp.

blockchain i JS ;)
a może od razu AI i JS (ironia)
lepiej Pythona się naucz

0
Miang napisał(a):
CThomas napisał(a):

Witam koderów i koderki.

kolejność zła

Dosyć mocno zacząłem wchodzić w temat blockchain gdzie PHP jest wielokrotnie pomijane i słabo wspierane, samo PHP jak wiadomo jest wolniejsze więc chyba nie będę się dalej oszukiwał. Pytanie mam do osób doświadczonych w NodeJS i osób, które ewentualnie już takiego przejścia dokonały. Jakie frameworki, jakich unikać i na co zwrócić uwagę by nie musieć rzucać klawiaturą co pół godziny. Głównie chodzi o aplikacje mocno bazodanowe, portale itd. Nie specjalizuję w apkach graficznych grach itp.

blockchain i JS ;)
a może od razu AI i JS (ironia)
lepiej Pythona się naucz

Wybacz, faktycznie nieelegancka kolejność :)
Akurat AI i JS to nie jest takie złe połączenie. Gdy się tak zagłębić w temat JS mocniej to jego połączenie z czymkolwiek nie jest złe.
Jednak jeśli chodzi o AI to pierwsze kroki stawiałem właśnie w pythonie i to był główny powód dla, którego nauczyłem się pythona. Jednak na potrzeby moich projektów python odpada, działam jako fullstack więc nie chcę się rozpraszać na wiele technologii, wolę wbić level expert w JS jak to robiłem wcześniej w PHP. FInalnie bez JS front i tak nie istnieje :)

1
CThomas napisał(a):

FInalnie bez JS front i tak nie istnieje :)

No nie wiem, teraz można pisać frontend w Rust czy C++ jak ktoś chce (chociaż i tak jakaś część musi się odpalać w JavaScript, bo obecnie nie da rady inaczej - chociaż jak ktoś bardzo chce, to zrobią to za niego bindingi do Wasma i ludzie piszą całe apki w Rust, a glue code w JS im się generuje sam (czy jest to dobrym pomysłem, to już inna kwestia)).

0
LukeJL napisał(a):
CThomas napisał(a):

FInalnie bez JS front i tak nie istnieje :)

No nie wiem, teraz można pisać frontend w Rust czy C++ jak ktoś chce (chociaż i tak jakaś część musi się odpalać w JavaScript, bo obecnie nie da rady inaczej - chociaż jak ktoś bardzo chce, to zrobią to za niego bindingi do Wasma i ludzie piszą całe apki w Rust, a glue code w JS im się generuje sam (czy jest to dobrym pomysłem, to już inna kwestia)).

Wiadomo. Równie dobrze można próbować wygenerować apkę desktopową przy użyciu PHP i PHP Desktop jednak nie taki był mój cel przesiadki. Chciałem nie mieć z niczym pod górę, by frameworki, api, przykłady użycia itp. były w języku na którym buduje i tak jest z JavaScriptem. Po miesiącu tej drogi to już nawet nie jest pytanie, ja już to zrobiłem. Teraz poznaje i odnajduje istniejące/popularne biblioteki by nie wymyślać koła na nowo. Jak ktoś coś możecie podrzucić z czego korzystacie. Paginacje, bazy danych to z czego korzystacie przy projektach.

1 użytkowników online, w tym zalogowanych: 0, gości: 1