Doua intrebari de la un incepator

Salut, nu am vrut sa postez pe forum doar pentru doua intrebari. Daca nu ai timp de ce am scris mai jos inteleg si trimite un raspuns doar cu “intreaba pe altcineva” .

Vreau sa fac un proiect mai mare, mai complex. Asa consider ca pot invata mai bine pe baza unui proiect real, ca si cum primesc bani pentru asa ceva. Eu am invatat php, css si html din cautari pe net, tutoriale si exercitii timp de 1 an. Recent am dat de ceva nou si m-am lovit ca de un zid, aveam impresia ca stapanesc bine limbajul si asa au fost realizate si anumite website-uri gen netflix, emag, olx, cinemacity. Acum aflu ca ar trebui sa cunosc bine un framework gen laravel sau cakePHP daca vreau un website pentru 2018, ca asa se lucreaza prin firme.

  1. Daca vreau sa urc proiectul meu peste 3-4 luni de lucru pe un webhost bun si este creat fara un framework php, este capabil să faca fata unui flux mare de utilizatori fara sa intampin probleme?

*Imaginar ca voi avea utilizatori. Poate voi primi o intrebare de la un angajator peste 2 ani gen: Proiectul asta ar putea tine pe platforma ta 3000 de utilizatori pe zi?

  1. Sa incep proiectul intr-un framework cakephp sau laravel? Asa invat plus fac si proiectul intr-un framework?

Multumesc,
Alexandru

1 Like

O zi are 1440 de minute. E destul de greu să faci un site care să nu ţină o medie de un hit la 30 de secunde :slight_smile:

Legat de framework… dacă faci un proiect mare în php chior, s-ar putea să ajungi să-ţi blestemi zilele la un moment dat (cel puţin eu o fac, pentru multe proiecte de-ale mele :slight_smile:). Cel mai bine e să foloseşti ceva care să permită separarea părţii logice (de execuţie, de pregătire a datelor etc) de partea de afişare. În felul ăsta, va fi simplu de extins aplicaţia sau de schimbat designul, dacă o să vrei să faci asta la un moment dat.

4 Likes

Eu recomand laravel, mai mult din cauza ca eu cu asta lucrez, dar si pentru ca au un ecosistem destul de bine dezvoltat. Gasesti destule resurse pentru a creste si, in mare, comunitatea este prietenoasa. Framework-ul este performant, dar chestia asta poate fi spusa despre majoritatea frameworkurilor iar cat de bine face fata aplicatia ta la trafic poate fi determinat prin teste. Am vazut ca a fost postat chiar aici pe forum un thread pe subiectul acesta: Unelte pentru load testing .

3 Likes

Dar CodeIgniter in loc de Laravel?

Ca sa inteleg mai bine de ce trebuie sa invat un framework.
Un website cu php pur este vulnerabil iar un website cu framework iti garanteaza securitatea datelor care sunt trimise catre utilizatori si invers?

Eu zic sa uiti de php daca nu ai facut web development de ceva timp si sa incepi cu bazele programarii. Uita-te peste algoritmi si structuri de date, incearca sa implementezi totul de pe un checklist de securitate la un API rest, invata despre concurenta, pattern-uri, SQL si baze de date (postgresql preferabil), graphql, testare.

Nu ai nevoie niciodata de un framework anume, ci trebuie sa oferi o solutie pentru client intr-un timp rezonabil la un cost rezonabil. PHP are deja cateva platforme care iti permit sa refolosesti o buna parte din ele, vezi wordpress, woocommerce, magento, pimcore si cam astea sunt motivele pentru care ai alege sa lucrezi cu PHP.

Daca clientul cere scalabilitate maxima la cel mai mic cost fara doar si poate invata Go, iti va lua o saptamana maxim (ca sa faci un backend simplu) si ai performanta maxima fara sa inveti un limbaj gen C#/Java, ai librarii de o calitate foarte buna, multe articole up to date si probabil iti gasesti foarte usor de munca.

Pentru frontend oricum iti trebuie o interfata cu JS, aici se complica lucrurile daca e nevoie de o aplicatie cu multe feature-uri.

Laravel e foarte elegant cu Vue JS, performantele sunt decente, dar chiar daca ‘stii php’ tot trebuie sa te adaptezi la pattern-urile utilizate in Laravel. Plus trebuie sa inveti JS ES6 pentru vue.

Daca vrei sa inveti un framework pentru frontend probabil vue.js va fi cel mai usor de inteles la inceput.

Pentru backend ar mai fi si o idee sa te familiarizezi cu docker, cu amazon aws, cu solutii serverless gen zeit now.

1 Like

Un framework este ca o bază pentru proiectele tale. O bază care va fi folosită în fiecare proiect, ca să-ți ușureze munca atunci când te apuci de un proiect nou. Dar asta nu înseamnă că e o regulă să folosești un framework. O regulă au făcut angajatorii ca să se poată lucra în echipă ușor, să fie pe înțelesul tuturor programatorilor.

Imaginează-ți că într-o companie sunt 10 programatori și fiecare dintre ei folosește un framework diferit. Apoi, dintr-un motiv sau altul, unul dintre programatori este nevoit să modifice ceva în proiectul unui coleg. Atunci, probabil că programatorul respectiv ar trebui mai întâi să înțeleagă ce se întâmplă în framework și cum functionează lucrurile de la bază (bază!) înainte să modifice ce era de modificat. Asta s-ar numi pierdere de timp. E mai ușor pentru toți să se lucreze pe 1-2 framework-uri.

Ăsta e numai unul din motivele pentru care angajatorii cer cunoașterea unui framework de top. La fel de bine se gândesc la simplitatea framework-ului, la peformanță, la compatibilitatea cu proiectele viitoare, la posibile vulnerabilități, la mentenanța pe care o oferă dezvoltatorii framework-ului șamd.

Vizavi de problema “aveam impresia ca stapanesc bine limbajul”, nu ești singurul. Cred că toți am crezut la un moment dat că suntem la “centrul de comandă”. Eu, când am învățat ce-s alea funcții și cum se lucrează cu ele, m-am auto-declarat senior. Care-i problema ?

Referitor la întrebările tale:

  1. Daca vreau sa urc proiectul meu peste 3-4 luni de lucru pe un webhost bun si este creat fara un framework php, este capabil să faca fata unui flux mare de utilizatori fara sa intampin probleme?

Greu de spus.

Dar mai bine ți-ai pune altă întrebare: Dacă o să apară o problemă, o s-o observi, o s-o poți detecta ? Dacă ești sigur că poți rezolva un potențial bug (presupunând că va apărea pe viitor), atunci poți să mergi înainte cu proiectul și fără să folosești un framework.

  1. Sa incep proiectul intr-un framework cakephp sau laravel? Asa invat plus fac si proiectul intr-un framework?

Poți să faci și asta. E alegerea ta. Dacă te gândești să te angajezi pe viitor, probabil că ai putea să te decizi asupra unui framework și să începi să lucrezi cu el. Dar nu uita că atunci când te apuci să lucrezi pe un framework, ar trebui să te uiți și în el. Nu numai să citești documentația care te ajută să faci ce ți-ai propus.

Există utilizatori de framework-uri care pun întrebări vizavi de posibilitatea de a face ceva pe un framework, în condițiile în care ei lucrează deja pe acel framework. Imaginează-ți subiectul “Salut, am un proiect făcut pe Laravel și vreau să mai fac unul în cadrul aceluiași framework. Se poate ?”

Se poate să citești framework-ul și să-ți dai seama de capacitățile lui. În general, framework-urile au o structură modernă, clară, ușor de intuit ce se întâmplă în ele, inclusiv în sistem. E bine să înțelegi cum de ai ajuns să lucrezi pe modelul MVC sau care o fi el.

  1. Dar CodeIgniter in loc de Laravel?

Majoritatea framework-urilor functionează pe același principiu, să te ajute să-ți termini treaba mai repede (nu numai, am scris mai sus). Dacă e să vorbim de o diferență, ține mai mult de ce-ți oferă fiecare, dar nu mulți pun în balanță lucrul ăsta.

Sunt framework-uri, ca laravel sau CI, care în general sunt folosite pentru proiecte de tip site-uri web. De exemplu, laravel are implementat un sistem de template care te va ajuta în afișarea datelor către utilizatori, pe când CI, din câte îmi aduc aminte, nu are implementat așa ceva și vei fi nevoit să coafezi acel view. Există și framework-uri care sunt destinate mai mult API-urilor, pentru arhitectura REST șamd.

  1. Un website cu php pur este vulnerabil iar un website cu framework iti garanteaza securitatea datelor care sunt trimise catre utilizatori si invers?

Well… în general în framework-uri vei găsi ceva implementări care îți asigură o anumită securitate. Asta dacă configurezi corect framework-ul. Dar, chiar și așa, tu ești cel care programează aplicația până la final. Și, deci, chiar dacă un framework îți garantează ceva, se întâmplă până la un anumit punct.

Din momentul în care te-ai apucat să programezi pe acel framework, în orice moment poți deveni vulnerabil dacă nu faci lucrurile corect.

Dacă e să ne gândim la modul în care poate fi configurat PHP-ul, atunci poți oricând modifica o setare care te poate face vulnerabil. Pentru că un framework nu-ți poate impune o anumită configurație.

La fel de bine poți afișa într-o pagină, așa aiurea, toți utilizatorii dintr-o bază de date, împreună cu parolele lor. Te poate opri framework-ul să faci asta ? Nu. Deci depinde și de tine.

Deci, termenul Framework doar inspiră Securitate, nu o și reprezintă.

3 Likes

Ti-as zice sa nu iti pui acum problema de nr de useri si altele ce tin de performanta. Concentreaza-te sa faci o aplicatie care are comportamentul dorit.

La un interviu tehnic te pot intreba ce probleme ai avut si cum ai gandit rezolvarea.

In spatele acestor site-uri se afla echipe intregi. Sa nu mai vorbesc de Netfilx cate cred ca nu are php in spate.

Te-ai gandit la varianta unui microframework ?
Lumen de exemplu :slight_smile:

Pt Vue, graph ql, ES6, go, java, c#, amazon aws, serverless este timp. Dar mai tarziu.

Ia-o pas cu pas !
Succes !

1 Like