JS i PHP - jak się rozwijać

0

W końcu dojrzałem do stwierdzenia, że chcę się rozwijać w JS i PHP. Po prostu podobają mi się "dziwactwa" tych języków. Podobnie jak to, że obracają danymi (SQL, JSON) oraz powodują efekty graficzne (HTML, CSS). W wolnych chwilach tworzę proste projekty, zamierzam też stworzyć coś większego tj. Gra okręty. Obecnie czytam książkę autorstwa Nicholas C. Zakas - rewelacja. Chcę więcej.

Moje pytanie brzmi: w jakim kierunku dalej podążać? Prędzej czy później czeka mnie Angular/React/Larvaler?

Bazy SQL jak by co ogarniam, również z dziką satysfakcją i przyjemnością.

4

Jeśli chcesz iść w PHP (i to komercyjnie) to bym się zabrał za naukę Symfony - https://symfony.com/.

Jak znasz ten framework to po pierwsze - przesiadka na jakiś inny będzie w miarę prosta, a po drugie - nie powinieneś mieć kłopotów ze znalezieniem całkiem przyzwoicie płatnej pracy.

1

Ze swojego doświadczenia też polecę Ci Symfony jako rozwój w PHP. Nie mam porównania z frameworkami z innych języków ale sporo się słyszy o podobieństwach także uprzyjemni Ci to życie w momencie gdybyś musiał lub chciał zmienić technologię.
Front to prym wiedzie React.js. Tu jest duuużo pracy a fullstacków też chętnie biorą do pracy ze znajomością Reacta.
Także chwytaj dokumentację i lecisz z tematami.

0

Nie za wcześnie na framework jak dla mnie? Nie lepiej poznać jeszcze trochę składni oraz dobrych praktyk?

3
kosmonauta80 napisał(a):

Nie za wcześnie na framework jak dla mnie? Nie lepiej poznać jeszcze trochę składni oraz dobrych praktyk?

A jak czujesz się na siłach?
Bo to pojęcie względne. Frameworki też uczą podejścia. Zobaczysz też jak wygląda inny kod niż taki z titoriali od PHP5 których pełno w necie.

0

Myślę, że jeszcze trochę podstaw mi brakuje.

3

Jak brakuje Ci podstaw to lecisz wszystko po kolei https://phptherightway.com/

1

Warto w ogóle się uczyć PHP w 2022? Coś się jeszcze robi w tym języku poza utrzymaniem legacy?

0

Jak by język umierał, to by nie wydano PHP8 :)

2
kosmonauta80 napisał(a):

Jak by język umierał, to by nie wydano PHP8 :)

Trochę offtop, ale wydanie kolejnej wersji nie świadczy że język żyje. Wydano TCLa 8, a potem TCL umarł (niektórzy nawet mówili że wydanie TCLa 8 zabiło TCLa bo zrywał on kompatybilnośc). Wydano Perla 6, a Perl dalej jest w stanie wegetatywnym. W dodatku teraz jest w wersji 5 i 6 :D

Jednak @jackson-mike nie pytał się o to czy PHP umiera, ale czy powstają nowe projekty. Język może jeszcze siłą rozpędu żyć wiele lat nawet jak nowe projekty w zasadzie już w nim nie powstają, jak np Ruby. Dalej (podobno) są dobrze płatne oferty na Ruby RockStar developera, ale to głownie utrzymanie

1
KamilAdam napisał(a):
kosmonauta80 napisał(a):

Jak by język umierał, to by nie wydano PHP8 :)

Trochę offtop, ale wydanie kolejnej wersji nie świadczy że język żyje. Wydano TCLa 8, a potem TCL umarł (niektórzy nawet mówili że wydanie TCLa 8 zabiło TCLa bo zrywał on kompatybilnośc). Wydano Perla 6, a Perl dalej jest w stanie wegetatywnym. W dodatku teraz jest w wersji 5 i 6 :D

Jednak @jackson-mike nie pytał się o to czy PHP umiera, ale czy powstają nowe projekty. Język może jeszcze siłą rozpędu żyć wiele lat nawet jak nowe projekty w zasadzie już w nim nie powstają, jak np Ruby. Dalej (podobno) są dobrze płatne oferty na Ruby RockStar developera, ale to głownie utrzymanie

Projekty powstają. PHP nie umiera. Oprócz wsparcia legacy jest mnóstwo projektów e-commerce jak wspomniał @Mjuzik ale także i innych nawet w branży fintech.

0

A czy jest jakiś prostszy sposób na ogarnięcie danych z formularza, niż tak to robi się w PHP?

2

Czy prostszy? Zobacz np. na C# https://docs.microsoft.com/pl-pl/aspnet/mvc/overview/older-versions/hands-on-labs/aspnet-mvc-4-helpers-forms-and-validation
Pierwszy lepszy link bo teraz to już chyba ASP.net 6 czy jak to się tam nazywa.
Python z Django: https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django/Forms
Spróbuj coś napisać i pobaw się w "znajdź różnicę"

2

Warto w ogóle się uczyć PHP w 2022? Coś się jeszcze robi w tym języku poza utrzymaniem legacy?

@jackson-mike: ciężko powiedzieć, chyba jedyną reprezentatywną grupą są PHPowcy, którzy klepią też w innych technologiach. Myślę, że większość forumowiczów nigdy nie pisała w PHP zawodowo i na pytanie gdybyś cofnął się w czasie to powiedziałbyś młodemu sobie, żeby uczył się PHPa? odpowiedziałaby stanowcze nie. Największy problem jaki widzę (jestem osobą, która nigdy nic nie napisała w PHP poza fixami do legacy systemów) to subiektywne wrażenie, że odsetek januszerki jest tam większy i PHP jest dużo mniej zróżnicowany jeśli chodzi o "ciekawe projekty"

2

@slsy - ale to jak z BMW - czy dlatego, że głównie jeźdźą nim idioci i prostaki to oznacza, że to kiepska marka i odradzamy kupno?

I prośba do wszystkich - nie róbmy offtopu.
@kosmonauta80 nie pytał CZY warto się uczyć PHP, ale JAK to robić.

2

Pytałem też o JS :)

Z JavaScriptu na początek może być to
https://javascript.info/

2
kosmonauta80 napisał(a):

W końcu dojrzałem do stwierdzenia, że chcę się rozwijać w JS i PHP. Po prostu podobają mi się "dziwactwa" tych języków.

A tak serio, to jakiś konkretny powód masz na akurat te dwa? Bo nie wiem czy jakiekolwiek gorsze na start sobie mogłeś wybrać. JavaScript jest pełen takich "gotcha"/"mam Cię", na które trzeba uważac; a PHP jest zjebany na maksa.

Moje pytanie brzmi: w jakim kierunku dalej podążać? Prędzej czy później czeka mnie Angular/React/Larvaler?

No jesli na prawdę się chcesz nauczyć języków; to ja bym zrezygnował z frameworków i webówki w ogóle całkiem i odpalał je z terminala, np

php program.php

oraz

node program.js

Dodanie webówki i frameworków na start tylko Ci namiesza w głowie (żeby napisać apke webową musisz połączyć na raz: server, jakiś apache albo nginx, backend, front (i to nie tylko JS'a, tylko też HTML, style i API przeglądarkowe jak localStorage), protokół, czyli pewnie HTTP+rest, czyli wszystkie headery, cookies, cors, session, persystencje, czyli pewnie SQL+PDO, ogarniacza tej bazy czyli pewnie jakiś phpmyadmin na hostingu albo krasnalu, i pewnie jeszcze byś chciał framework na backend i libke na UI na front - masa dużej komplikacji, a jak jesteś początkującym to tego nie ogarniesz i taki XSS albo SQLinjection murowany, nie mówiąc o masie antypaternów).

Webówka to po prostu challengujące środowisko dla początkujących.

Podobnie jak to, że obracają danymi (SQL, JSON) oraz powodują efekty graficzne (HTML, CSS).

Ale wiesz że każdy język to potrafi, nie?

Bazy SQL jak by co ogarniam, również z dziką satysfakcją i przyjemnością.

Again, w każdym języku ogarniesz bazy.

0

Czy dużo zmieni jeżeli napiszę, że popełniłem aplikację chat (JS + PHP + MySQL), która na poziome sieci lokalnej naprawdę działała? To odnośnie ogarniania kilku technologii.

1
kosmonauta80 napisał(a):

Czy dużo zmieni jeżeli napiszę, że popełniłem aplikację chat (JS + PHP + MySQL), która na poziome sieci lokalnej naprawdę działała? To odnośnie ogarniania kilku technologii.

Jak pokażesz kod to Ci powiemy.

1
kosmonauta80 napisał(a):

Całości nie mogę pokazać - to był projekt zaliczeniowy, do którego niby uczelnia ma prawo. Ale mogę ewentualnie pokazać fragment lub opisać jak rozwiązałem pewne kwestie.

screenshot-20220124205518.png

Czyli masz dokładnie 0 projektów do pokazania?

PS: @kosmonauta80 no to pokaż największy kawałek kodu jaki możesz (tylko nie HTML, tylko JS albo PHP).

0

No to na przykład kod odpowiedzialny za wyświetlanie treści rozmowy:

setInterval(pobierzDane, 1000); 

function pobierzDane()
{
    const adres = '...pobierz.php';
    let blad_odczytu = false;
    let tresc_rozmowy = "";

    fetch(adres,
    {
        mode: 'no-cors', 
    })
    .then(response => response.json())
    .then(data => 
    { 
        tresc_rozmowy = data;
        odswiezCzat(tresc_rozmowy, blad_odczytu);
        console.log("Dane pobrano pomyślnie!");
    })
    .catch((error) => 
    {
        odswiezCzat(null, !blad_odczytu);
        console.error("Treść błędu: " + error);
    });    
};

I to, co powyższe wywołuje:

<?php
    include_once 'polacz.php';

    if (!isset($_SESSION['zalogowany']))            
    {
        przekieruj('index.php');
    }

    $dzisiejsza_rozmowa = $_SESSION['data_rozmowy'];
    $tablica = array(); 

    $zapytanieSQL = $polaczenie->prepare("SELECT * FROM $dzisiejsza_rozmowa");
    $zapytanieSQL->execute();

    while ($wynik = $zapytanieSQL->fetchObject())
    {
        $wiersz = $wynik->osoba.' | '.$wynik->czas.' | '.$wynik->wiadomosc;
        array_push($tablica, $wiersz);
    }
    
    $jsonToSend = $tablica;     
    echo json_encode($jsonToSend);
?>

Wiem, że nazwy zmiennych są rakotwórcze. Teraz inaczej bym je nazwał.

0
kosmonauta80 napisał(a):

No to na przykład kod odpowiedzialny za wyświetlanie treści rozmowy:
[...]
Wiem, że nazwy zmiennych są rakotwórcze. Teraz inaczej bym je nazwał.

Słabe 2/10.

Brak autoloada w PHP, polskie nazewnisctwo, widok połączony z persystencją, 0 składni z nowych wersji języków, brak dependency inversion, to łączenie z pionowymi pałkami $wynik->osoba.' | '.$wynik->czas.' | '.$wynik->wiadomosc nawet nie wiem co to jest, czemu nie zwykły array?, console.log() jako forma interfejsu użytkownika.

mode: 'no-cors' bój się boga

0

Ale tu jest już lepiej :)
galeria z oknem modalnym, wersja 2

1

Ale podsumowując.

Ja bym na Twoim miejscu olał webówkę na razie; zajmij się jakimś jednym językiem z już dojrzałym paradygmatem, i zrób w nim kilka aplikacji, może być okienkowych lub konsolowych najlepiej. Jak już ogarniesz takie idee jak: solid, tdd (albo chociaż pisanie testów jednostkowych), dependency inversion, DRY/KISS, utrzymywanie sensownej struktury kodu, małe funkcje i klasy, i inne drobne praktyki, jak również git, obsługa IDE, wersjonowanie, etc. wtedy się zabierz za webówkę.

2

Po przeczytaniu Twoich uwag skojarzył mi się ten temat: Nie ma nic gorszego niż pewny siebie Senior-Debil

mode: 'no-cors' bój się boga

Ani nie zapytasz czemu tak zrobiłem, albo czy rozumiem co to spowoduje. Zamiast tego podejście typu "tato ładny zamek z piasku zrobiłem? NIE DO NICZEGO" i podeptane.

Druga kwestia to szczerze sobie powiedzmy: ile z tych pojęć człowiek sam może ogarnąć w domu?

Owszem, jakość kodu pozostawia wiele do życzenia. Ale wiesz jakie to uczucie stworzyć coś tak skomplikowanego, co działa? Jak to inspiruje?

1
kosmonauta80 napisał(a):

Po przeczytaniu Twoich uwag skojarzył mi się ten temat: Nie ma nic gorszego niż pewny siebie Senior-Debil

mode: 'no-cors' bój się boga

Ani nie zapytasz czemu tak zrobiłem, albo czy rozumiem co to spowoduje. Zamiast tego podejście typu "tato ładny zamek z piasku zrobiłem? NIE DO NICZEGO" i podeptane.

No jedyny powód jaki widzę ku temu, to postawiłeś sobie backend i front na różnych hostach albo portach, zobaczyłeś czerwony error o zwalonych CORS'ach, nie wiedziałeś skąd się wziął; wpisałeś w google "cors error", i wyłączyłeś walidację corsów w swoim kliencie, dodając no-cors.

A powinieneś postawić aplikacje na jednym origine, np. poprzez serwowanie static assetów z backendu albo poprzez proxy w dev serverze.

A napisałem "bój się boga", nie dlatego że "to jest złe z zasady", tylko dlatego że nie zdajesz sobie sprawy na jakie luki w bezpieczeństwie się wystawiasz dodając takie coś. Zabezpieczenia istnieją nie bez powodu; nie po to żeby nam przeszkadzać, tylko żeby nas chronić.

Druga kwestia to szczerze sobie powiedzmy: ile z tych pojęć człowiek sam może ogarnąć w domu?

Owszem, jakość kodu pozostawia wiele do życzenia. Ale wiesz jakie to uczucie stworzyć coś tak skomplikowanego, co działa? Jak to inspiruje?

No zgadzam się; może za ostro wyjechałem.

Jeśli masz ochotę usprawnić projekt to służę radą.

1

Wracając do głównego tematu to warto uczyć się PHP ale od wersji 7.1, z naciskiem na 8. Nawet 15 letnie legacy są już zmigrowane na PHP 7(widziałem już kilka), chociażby ze względu na wydajność. NIE tykaj żadnych książek, kursów z php5 bo szkoda sobie mętlik w głowie robic. Co do frameworka to z mojej strony proponował bym tylko Symfony, jest masa e-commerce i nie tylko, są także systemy wewnętrzne w corpo za których rozwój płacą nie małe pieniądze, a za utrzymanie jeszcze większe. Ja pracuję już kilka lat przy symfo i nie narzekam. Jak będziesz choć średni to nie dostaniesz mniej niż średni dev w javie i szpringu. laravel to raczej proste CRUD-y i niezbyt ciekawe projekty.

2

Webówka to tak złożony temat, że rozpoczynanie nauki od "Full Stacku", według mnie to zły pomysł. Zarówno backend i frontend ma wiele tematów do ogarnięcia, a im głębiej w las tym więcej drzew, dlatego najlepiej skupić się na 1 albo JS albo PHP i poznać daną technologię na tyle dobrze, żeby czuć się w niej w miarę "swobodnie".
A na pytanie co Cię czeka to jeżeli wybierzesz JS to ogarnięcie dobrze ES6, a potem Reacta bo imo jest bardziej przystępny na początek i z czasem dokładać React-Router, Redux, testy w Jestcie. Na pewno też w przyszłości warto zapoznać się z TypeScripem (A to tylko mowa o JS, a trzeba jeszcze wiedzieć co nieco o webpacku, css/scss/style w js jak np styled-components dla Reacta, accessibility, itd), także jest co ogarniać :D

0

Wydaje mi się, że bycie full-stackiem na początku nauki webówki jest ok. Zawsze fajnie wiedzieć jak projekt działa z drugiej strony medalu. Nie mówię tu o masterowaniu, ale sama jak najbardziej na plus.

1
Bosswell napisał(a):

Wydaje mi się, że bycie full-stackiem na początku nauki webówki jest ok. Zawsze fajnie wiedzieć jak projekt działa z drugiej strony medalu. Nie mówię tu o masterowaniu, ale sama jak najbardziej na plus.

No, jeśli masz na tyle capacity żeby włożyć tak dużo wysiłku w naukę to spoko; możesz się rozwijać w wielu dziedzinach.

Ale jeśli nie, to potem powstają takie kwiatki jak

<script>
  let var = "<?php echo $var ?>"
</script>

I to nie jest wina tego kto się uczy; tylko tego kto mu polecił uczenie się trzech języków na raz.

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