Pereiti prie turinio

PHP MVC, kaip tai veikia?


Rekomenduojami pranešimai

čia palyginai su kuo? patogumu naudoti? o dabar palygink su greičiu, kas veikia greičiausiai ir kas lėčiausiai :)

 

Jau man darosi juokinga nuo šito argumento. Jei kalbam apie greičio sąvoką, tai PHP nuleidžia kepurę prieš Python+Django ar NodeJS+express (kam labiau ruby on rails stiliaus programavimas patinka - NodeJS+geddy).

 

PHP kalbą turi daug problemų, kurias *bando* bent frameworkų kūrėjai maskuoti (http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/).

 

Dabar grįžtant į temą - kodėl kiti frameworkai geresni negu CI? Atsakymas labai paprastas - viskas priklauso nuo projekto dydžio. Jei kalbam apie didelį projektą, tai niekados niekas GYVENIME nesirinks CI frameworko. Aš ponai ir ponios matau tik vieną CI pliusą - jis labai lengvai perprantamas naujokui, bet, mano nuomone, Laravel tada žymiai geresnis pasirinkimas.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Dabar grįžtant į temą - kodėl kiti frameworkai geresni negu CI? Atsakymas labai paprastas - viskas priklauso nuo projekto dydžio. Jei kalbam apie didelį projektą, tai niekados niekas GYVENIME nesirinks CI frameworko. Aš ponai ir ponios matau tik vieną CI pliusą - jis labai lengvai perprantamas naujokui, bet, mano nuomone, Laravel tada žymiai geresnis pasirinkimas.

 

Deja, bet pasirinkome ir matome tik pliusus :)

 

Lyginau tą patį kodą parašytą su Symfony ir CI, tai CI pralenkia. Kodėl? Todėl, kad jeigu tavo rankos kreivos - neimk net Symfony - nepadės. O jei turi geras rankas - CI suksis kaip bitutė. Čia visi skiedžia, kad CI yra blogas pasirinkimas ir t.t. Man aktualu jame yra tai, kad turiu kai kurias f-cijas, galiu lengvai prasiplėsti ir šiaip įsidiegti bet ką ( žinoma, jei to reikia ). Tas pasakymas, kad vienas framework geresnis už kitą yra šūdų #####, nes kiekvienas jis skirtingas ir asocijuojasi su automobiliais. CI - lengvas, greitas ir turi daugybė galimybių plėstis. Symfony - griozdiškas, sunkus, tačiau jame geri įrankiai. Laravel - tarpininkas tarp CI ir Symfony, nes turi abiejų bruožų.

 

Taigi, jei nori, kad tavo web'as skrietų - imi CI ir pasidarai PADORIAI TIESIOMIS RANKOMIS, kad jis skrietų, o jei nenori - imi Symfony ir kreivomis rankomis bandai laužti kažką su gerais įrankiais.

 

ps. Man įdomu tik tai, kad CI RPS ( request per second ) yra gerokai didesnis nei symfony, laravel... Kodėl kažin? Gal todėl, kad jis skaitomas lightweight? :)

 

Aš pats naudoju CI ir jį ginu, nes turiu puiku pavyzdį kaip žmogus norėdamas geresnio su Symfony dirba kreivomis rankomis ir matome kelis kart didesnę apkrovą serveriui ( nekalbu apie execution time ). Laravel sutinku naudoti, bet vėl - yra tai, kad nevisada naudinga jame :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

stupid atsakymas, prašiau žmogaus, kad jis palygintų iš tų pateiktų 4 karkasų, kuris veikia greičiausiai. Nereikia man sakyti, kad su lėktuvu keliauti yra greičiau nei su mašina. Aš čia drageliui :)

Pilnas google sitokiu palyginimu, net antras rezultatas i "php framework speed comparison" tai atsako. Taciau greitis, kaip ir mineta, ne viskas.

 

Eiliniam puslapiui su basic funkcijom CI tinka geriau, nei Symfony. Kodel? Overheadas.

 

Siuo metu dirbu prie BTC tradinimo platformos, web dalis daroma su Symfony, o trade engine, ivairus real time dalykai (kainu atnaujinimas, ivyke dealai ir t.t.) su tam tinkamomis kalbomis, siuo atveju - Go.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nu chebra, dalis tų benchmarkų tai irgi. Tarkim, koks JSON serializavimas... Tai geriausiu atveju pratestuoja routerio greitį, ar ką... Čia kaip lygint sąnaudas nupjauti tris rugio varpas rankomis su sąnaudomis vien tam reikalui užkūrus kombainą.

 

CodeIgniter jau tą minusą turi, kad pakankamai pasenęs kodas, o ORM išvis vargiai ORM – tiesiog sql syntatic sugar. :) Negalima nuneigti, kad yra naujesnių ir geresnių frameworkų, jei lygintume funkcionalumą ir tinkamumą šiai dienai.

 

O greitis... Visų pirma, tai lyginkit dvi normalias aplikacijas, parašytas tokio pat lygio programuotojų, naudojančias tokį patį veikimo modelį, ir t.t. :)

 

O antra, tai kada jums tas greitis realiai buvo tokia didelė bėda? 86400 apsilankymų per dieną vis tiek dar reiškia tik 1 (PHP) rps (lygiai paskirsčius). Vargu, ar kuris imtumėt ir įrodytumėt, kad būtent koks nors frameworkas jums buvo bottleneck'as. Daug greičiau tai bus DB ar jūsų pačių kodas. Galiausiai, koks nors lievas shared serveris :) Trumpai tariant, čia susieina tiek faktorių, kad frameworkas beveik niekad nebus svarbiausias.

 

Apskritai, jei rūpi tik benchmarkų greitis (lies, damn lies, statistics and benchmarks), tai belieka imti Go, nes ant popieriaus daugiausiai rps :) Ar Phalcon, nes ir tas CI apdeda dešimtgubai :)

Redagavo Silke
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Apie benchmark'us tai čia taip, reikia, kad būtų ta pati struktūra, bet čia kita istorijos pusė, nes to niekada tiesiog nebus :)

 

Kas liečia CodeIgniter - nesakau, kad jis naujausias ir geriausias, nes tikrai yra geresnių, bet jeigu nenori apkrauto visokiais menknekiais - vienas geresnių pasirinkimų :) Žinoma, nieko prieš tokį Laravel neturiu, bet symfony.. Na gremėzdas :)

 

O kas liečia tą, kad už php yra geresnių kalbų - gali būti, nesakau, kad nėra ar nėra jos geresnės, tačiau php vienas pirmų dalykų, kuriuos išmoksi :) ( būna kaip visada išimčių )

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tu manau pats supranti, kad žiūri ne ten kur reikia? PHP Framework'as ir turi būti bibliotekų rinkinys su gera struktūra.

Ne, tikrai nesuprantu. Pats sakai - "PHP Framework'as ir turi būti bibliotekų rinkinys". Tai... Kur RT biblioteka?..

Viskas, nes daugiau iš jo neprašoma daugiau.

Na taip, nieko iš jo daugiau neprašau - tik bibliotekos - RT.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Ne, tikrai nesuprantu. Pats sakai - "PHP Framework'as ir turi būti bibliotekų rinkinys". Tai... Kur RT biblioteka?..

 

Na taip, nieko iš jo daugiau neprašau - tik bibliotekos - RT.

 

O tai nebandei nueini į google? :) Juk gali pasižiūrėti library su juo :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose
  • po 2 mėnesių...

Prie FW karo prisidedu ir aš :) CI yra frameworkas out-of-the-box. Parsiuntei, įkėlei į serverį ir papildomai kuri viską ką reikia. Laravel ir Symphony uzsiknisau kariaut bandydamas zaist su tom komandinėm eilutėm ir po kiekvieno minimalaus pakeitimo jungtis prie SSH kad 'comittint' pakeitimus. Neįsivaizduoju kurioje vietoje yra patogumas kai norint instaliuot pliką laravel turi pusvalandį skaityt kaip jį instaliuot per komandinę eilutę

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prie FW karo prisidedu ir aš :) CI yra frameworkas out-of-the-box. Parsiuntei, įkėlei į serverį ir papildomai kuri viską ką reikia. Laravel ir Symphony uzsiknisau kariaut bandydamas zaist su tom komandinėm eilutėm ir po kiekvieno minimalaus pakeitimo jungtis prie SSH kad 'comittint' pakeitimus. Neįsivaizduoju kurioje vietoje yra patogumas kai norint instaliuot pliką laravel turi pusvalandį skaityt kaip jį instaliuot per komandinę eilutę

Kąąąąąą. Kokių bėdų sukelia ssh? Nori pasakyt, jei nepriverstų laravelis, nenaudotum SSH ar normalios versijų kontrolės ir viską darytum į production FTP? Žiauru.

 

Joo, viena CLI komanda yra baisiai sunku. Geriau copy-paste folderius, back to the 90s :) Nebe tie laikai jau. Turim Vagrant, turim Docker, turim net Composer (vau!!). Jei kas nors pasakytų, kad jų workflow susideda iš copy paste, be jokio dependency management, be jokios versijų kontrolės, tokiam darbui tikrai nepasirašyčiau, nes tai yra baisu.

Redagavo Silke
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kąąąąąą. Kokių bėdų sukelia ssh? Nori pasakyt, jei nepriverstų laravelis, nenaudotum SSH ar normalios versijų kontrolės ir viską darytum į production FTP? Žiauru.

 

Joo, viena CLI komanda yra baisiai sunku. Geriau copy-paste folderius, back to the 90s :) Nebe tie laikai jau. Turim Vagrant, turim Docker, turim net Composer (vau!!). Jei kas nors pasakytų, kad jų workflow susideda iš copy paste, be jokio dependency management, be jokios versijų kontrolės, tokiam darbui tikrai nepasirašyčiau, nes tai yra baisu.

Nežinau ką tu ten copy-pastini, bet man užtenka atlikti Ctrl+S ir viskas užsikrauna. Beje CI turi dev,test ir production aplinkas, kuriom gali nusistatyt skirtingas DB ir skirtingus parametrus :) o šiaip kam ne sysadminui reik žaist su ssh ir linux/windows komandine eilute?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nežinau ką tu ten copy-pastini, bet man užtenka atlikti Ctrl+S ir viskas užsikrauna. Beje CI turi dev,test ir production aplinkas, kuriom gali nusistatyt skirtingas DB ir skirtingus parametrus :) o šiaip kam ne sysadminui reik žaist su ssh ir linux/windows komandine eilute?

Kas užsikrauna? Auto-uploadas į FTP? Baisiausia, ką galima sugalvot. Versijų kontrolė yra privalomas dalykas.

 

Tam ir reikia, kad minimalų supratimą turėtum bent. Visi geriausi programuotojų įrankiai ir yra CLI-based :) Nebent neišlipi iš Notepad++ ir PHP burbulo. Ne vien adminams reikia žinoti, kaip OS veikia ir ką daro, kai rašai "echo".

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prie FW karo prisidedu ir aš :) CI yra frameworkas out-of-the-box. Parsiuntei, įkėlei į serverį ir papildomai kuri viską ką reikia. Laravel ir Symphony uzsiknisau kariaut bandydamas zaist su tom komandinėm eilutėm ir po kiekvieno minimalaus pakeitimo jungtis prie SSH kad 'comittint' pakeitimus. Neįsivaizduoju kurioje vietoje yra patogumas kai norint instaliuot pliką laravel turi pusvalandį skaityt kaip jį instaliuot per komandinę eilutę

FTP laikai praėjo. Naujesnių projektų rimtesnėse firmose be FTP apseinama.

 

Composer yra gėris. Nuolat update gauni packages, nereik tau downloadintis, uploadintis kaip durneliui ir žiūrėt kodėl nugriuvo kažkas nes palūžo transferis. Ką kalbėt apie greitus rollback kai paleidi į live ir viskas nudvėsta. O CI parsisiuntei, sukėlei ir thats it. Jokių packages update viena komandine eilute, jokių greitų rollbackų ir t.t.

 

Rimtas programuotojas turi command line žinot labai gerai. Tuo labiau turi mokėt bent susisetupint aplinką su kuria dirba.

 

Labai geras pranešimas apie gerus developerius buvo Sergėjaus iš Adform per Infoshow šiemet ( http://www.bebetterdeveloper.com/ ).

 

Koks čia developeris jei nemoka net php susisetupint į servą. O jei įsirašyt tą patį laravel (viena komanda) kyla bėdų, tai reiktų susimąstyt.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...