Witam!
Jestem tu nowy więc witam wszystkich.
Pytanie takie jak w temacie, Kiedy wykorzystywać PHP a kiedy JavaScript?
Poznałem trochę oba te języki, i doszedłem do etapu gdzie można je ze sobą łączyć. I tu się zaczynam gubić.
Do czego w praktyce wykorzystywany jest PHP a do czego JS. Wyczytałem że aplikacja webowa to tylko php,
natomiast js służy jedynie do dodawania dynamiki na stronie, upiększania jej, i robienia tak by się nie musiał przeładowywać
kiedy coś klikniemy.
Skoro poznałeś oba języki to wiesz że js jest wykonywany po stronie klienta a php serwera ?
tak wiem, i wiem że js można bez przeszkód podejrzeć, np. za pomocą firebuga, a php nie. Ale nie jestem w tym pro i wciąż się uczę, i takie coś mnie zaczęło nużyć.
Ich zastosowanie w praktyce. Zwłaszcza że chyba na oba języki jest zapotrzebowanie na rynku
Najprościej - jeżeli czegoś nie trzeba robić po stronie serwera nie robisz tego. Na js-a straszne parcie jest a php ma sporo wiernych fanów, zresztą php7 bije rekordy więc o pracę bym się nie martwił. Jeżeli js albo php miałyby być twoimi pierwszymi językami to odradzam w pythonie też się robi stronki a o wiele mniej wtf-owania (ogólnie zdaje mi się że php ma złą opinie bo ludzie biednie w nim piszą często).
Jeżeli coś ma zrobić server to piszesz to w php. Jeżeli coś ma zrobić klient to js. Simple.
A tak serio to zależy jakiego frameworka sobie wybierzesz. Teraz podobno modny angular2, a backend można w php/c#/node i takie tam inne. Właśnie, gdybyś pisał backend w node.js to nie miałbyś pytań, bo zawsze pisałbyś w js :)
Ale taki rule of thumb
Php:
- dostęp do bazy (pobieranie, dodawanie rzeczy)
- renderowanie widoku (to też zależy w sumie od frameworka)
- zarządzanie jakimiś uprawnieniami
- przechowywanie plików (jakiś zdjęć czy czegoś)
- zarządzanie komunikacją między klientami (jakiś chat)
Js:
- waliacja formularzy przed wysłaniem formularza
- jeżeli angular2 to można całe webaplikacje w tym pisać (jakaś logika, kiedy ma sie co pojawic kiedy co sie kliknie)
Tak na prawdę ciężko tu zgadywać bo 99% rzeczy są oczywiste po której stronie powinny być wykonane, musiałbyś dać konkretny przykład.
Dzięki wielkie!
Mam jeszcze jedno pytanie. Kiedyś zainteresowałem się three.js oraz babylon.js są to biblioteki renderowania grafiki 3d w przeglądarce, zwalniają nas one z pisania od podstaw w webGL.
I tak wszytko szło fajnie, nawet udało mi wprowadzić do tego interaktywność można było przesuwać obiekty jak w jakieś prostej grze. I zacząłem się zastanawiać jak takie gierki działają.
Np wykorzystując to co mam z 3d to żeby dwie osoby naraz na jednej planszy mogły przesuwać swój obiekt, tak bez żadnej logiki gry itp, absolutne minimum żeby do działało. Wyczytałem że taka komunikacja to tylko websocket i właśnie node.js a php odpada. A gry typu plemiona działają w php tylko że tam widać to przeładowanie strony a mi zależny żeby go nie było.
Jakaś rada w tym temacie?
Od razu mówię daleko mi do stworzenia gry, zależy mi na razie na konkretnych funkcjonalnościach.
WebSockety są spoko, bo są lekkie, wydajne i dzięki nim możesz łatwiej mieć zależności tylko w jedną stronę (np źródło zdarzeń nie zależy od klientów, mimo że zdarzenia napływają do klientów natychmiast). Dynamiczne aktualizacje można jednak osiągnąć na wiele sposobów. Można użyć np Cometa: https://en.wikipedia.org/wiki/Comet_(programming)
Np wykorzystując to co mam z 3d to żeby dwie osoby naraz na jednej planszy mogły przesuwać swój obiekt, tak bez żadnej logiki gry itp, absolutne minimum żeby do działało. Wyczytałem że taka komunikacja to tylko websocket i właśnie node.js a php odpada.
Technologia to pikuś. Większym problemem jest przy tego rodzaju rzeczach zsynchronizowanie poszczególnych użytkowników, a nie to, jakiej technologii użyjesz. Masz problemy typu "jak zrobić to, żeby gracz A widział obiekt w tym samym miejscu ekranu co użytkownik B po drugiej stronie planety?" albo "jak zabezpieczyć grę przed cheatowaniem?". To czy użyjesz Node, PHP czy jeszcze czego innego, to zaledwie jedna z wielu decyzji projektowych, które trzeba podjąć.
(ogólnie zdaje mi się że php ma złą opinie bo ludzie biednie w nim piszą często).
To prawda, że ludzie biednie piszą w PHP. Problem w tym, że ludzie biednie piszą we wszystkim co się da. Widziałem już biedne kody nawet w Pythonie (co jest pewną profanacją, bo taki ładny język, a ludzie potrafią tak brzydko pisać w nim).
Na razie nie zależy mi na tworzeniu gry jako takiej, obecnie może być podatne na ataki i inne chety. Obecnie chce absolutnego minimum aby takie coś zadziało. Dwa komputery, dwóch ludzi wchodzi na stronkę, logują. Pokazuje sie pusta plansza dwa klocki i każdy przesuwa swój, jednocześnie widzi jak przesuwa się klocek tego drugiego, i tyle. Konta zrobione nawet na sztywno bez możliwości rejestracji. Nie chce od razu robić milion innych bajerów, jak pisałem absolutne minimum żeby zadziałało.
Najlepiej będzie chyba jak zobaczysz u źródła jak się takie coś robi, jakieś githubowe open-source gry etc.
Np: klon agar.io https://github.com/huytd/agar.io-clone , może nie jest to grafika 3d ale 2d canvas, jednak coś pewnie możesz podpatrzeć.
A tak swoją drogą:
https://www.google.pl/search?q=three.js+kmultiplayer , tu też sporo znajdziesz