Komentáře k článku

Spouštíme letní ORM test PHP frameworků

V současné době je k dispozici veliké množství různých PHP frameworků, které usnadňují práci při tvorbě webových aplikací. Všechny mají specifické vlastnosti a ne vždy je úplně snadné zvolit ten pravý. Problém nastává ve chvíli, kdy chce programátor najít nějaký hromadný srovnávací test a podle něj se rozhodnout, který framework využít.

Zpět na článek

27 komentářů k článku Spouštíme letní ORM test PHP frameworků:

  1. martin.bazik

    stare verzie
    preco take stare verzie? je jul a vy pouzivate verzie zo zaciatku roka. take symfony je vo verzii 2.4, laravel dokonca zvysil major verziu na 4, zend takisto povysil a asi aj ostatne aktivne vyvijane.

    ak by som si podla tohto testu mal teraz vyberat fw, tak ma zaujima vykon v aktualnej verzii, nie v pol roka starej

    1. nechapu.lidi

      Re: stare verzie
      Místo toho aby jste autorovi poděkoval za to, že se do toho vůbec pustil, tak ho vyhejtujete? ( toto je prostě CZ-SK pohavaha, ničeho si nevážit ) Nejradši bych Vám dal pár facek, nikdo Vás to nenutí to číst a ještě lépe, místo „keců“ to udělejte vy!! Proberte se lidi, s takovým přístupem tu nebude nikdy nic.. Slušené by bylo se zeptat autra jestli může „přepsat“ testy na nové verze, nebo ještě lépe mu s tím pomoci.

      1. martin.bazik

        Re: stare verzie
        ehm, vy mate problemy s temperamentom?

        pytam sa ho preco zvolil take stare verzie, to je vsetko…

    2. Martin Hassman

      Re: stare verzie
      Celý test i jeho zpracování a vydání chvíli trvá. Nové verze budou vycházet neustále, dokud ale nedojde k nějakému dramatickému přepsání, bude srovnání stále dávat smysl.

    3. jkucharovic

      Re: stare verzie
      Kritizovať „staré“ verzie frameworku je nezmysel (navyše nepravdivý – stabilná verzia Symfony je 2.3.1; na verzii 2.4 sa ešte len pracuje). Je nepodstatné v akej verzii sú dané frameworky, ale ich databázová vrstva/ORM. Napríklad v Symfony 2.1 je taká istá verzia Doctrine ako v aktuálne vyvýjanej verzii 2.4. A čo sa týka prístupu k databázovej vrstve/práce s ORM tak som v changelogu Symfony nenašiel žiadnu zmenu.

    4. jenicek

      Re: stare verzie
      Jenom PHP patlal nasazuje úplně nové verze. Normální lidi používají ty prověřený se security updatama, tam půl roku není žádný stáří.

    1. Martin Hassman

      Re:
      …resp. který je součástí oněch frameworků. Dobrá připomínka ač ne kritická, zamyslíme se, zda to nezdůraznit v názvu.

      1. glubo

        Re:
        Což třeba u Nette, u kterého je databázová vrstva silně volitelná, může být dost zavádějící, ale nechme se překvapit, třeba autor zahrnul všechny tři varianty, které se běžně u Nette vyskytují Dibi, Doctrine a v poslední řadě Nette\Database.

        1. Petr Prchal

          Re:
          Toto prave neplati jen o Nette, vyber ORM je v podstate kdekoli (v Symfony a Zendu urcite). Proc tedy neudelat test ORM a ne frameworku, ktere pouzivaji nejake ORM?

          off-topic: je mi to celkem jedno, s PHP jsem se pred nejakym casem uz (mozna) nadobro rozvedli, ale mam rad zdrojak a chtel bych tu clanky, co davaji smysl.

  2. Michal Májský

    Výběr frameworku dle výkonu a rychlosti?
    By mě zajímalo kolik vývojářů vybírá framework primárně podle výkonu (klidně se ozvěte :) )? Domnívám se, že pokud nevytvářím zrovna Facebook, bude mi nejspíš výkonově stačit kterýkoliv z frameworků a budu řešit úplně jiné aspekty. Tím nechci schazovat tento článek, jen mě zaujalo ta věta o výběru.

    1. Martin Hassman

      Re: Výběr frameworku dle výkonu a rychlosti?
      Že by se nikdo nezajímal také o výkon? To se mi nechce věřit.

      1. Martin Sura

        Re: Výběr frameworku dle výkonu a rychlosti?
        O výkon se vývojáři samozřejmě zajímají, ale často to není to hlavní kritérium. Protože kdybych se zajímal čistě jen o výkon nepoužiju ORM atd..

        1. Martin Hassman

          Re: Výběr frameworku dle výkonu a rychlosti?
          Však nikdo netvrdí, že je to hlavní kritérium, Jaroslav píše o skupině lidí (podmnožině), pro které je to hlavní kritérium.

      2. frosty22

        Re: Výběr frameworku dle výkonu a rychlosti?
        Nejsem si jist, zda-li řešit rychlost ve frameworcích zrovna na úrovni databázových vrstev, vždyť každý může použít jakoukoliv vrstvu a dokonce je to i relativně běžná záležitost = někdo Doctrine, dibi, notORM, atd. A porovnávat rychlost těchto databázových vrstev také dost dobře nejde, zvláště když tedy ORM není jen nějaká PDO obálka na tahání dat.

        Při testu rychlosti frameworků bych se spíše zaměřil právě na ty ostatní aspekty – rychlost a paměťovou náročnost renderování šablon, routování, v podstatě jednotlivých komponent daného cyklu requestu.

        A jenom na okraj, tak v praxi u navštěvovanějších webů, kde je výkon podstatný, se stejně používá cachování, čili při výběru frameworku bych se mnohem více zaměřil na čistotu kódu, který mi umožní vytvářet a efektivitu využití – v podstatě kolik práce dokáže ulehčit – zjednodušeně o kolik se méně upíši, abych dosáhl cíle.

  3. Peter z vesnice bez vodovodu

    Neviem ci to je dobry napad
    Ved napriklad v Zende mozem do DB pristupovat:

    1. priamo v controllery pristupovat do DB cez PDO
    2. mozem pouzit Zend\Db\Sql
    3. mozem pouzit TableGateway sposob pristupu
    4. mozem si zacat vytvarat nejake biznis modely (Customer) s metodami ktore pristupuju do DB
    5. pridam k tomu dalsiu vrstvu, biznis model Customer nepristupuje do DB priamo ale pouziva na to nejaku Resource classu
    6. zacnem riesit ako budem svoj biznis model v controllery pouzivat takze pouzijem ServiceManager aby mi cez Dependency Injection automaticky loadoval moju classu.
    ..
    …atd

    Takze ak v jednom frameworku pouzijem metodu 1 a v dalsom metodu 6 aku relevanciu budu mat vysledky?

  4. tomas.fejfar

    Jako fajn, ale
    Ano, oceňuji, že si někdo dal tu práci a všechny ty frameworky porovnal. Ale je to už několikáté porovnání frameworků a všechny trpí tím samým. Neznalostmi toho, kdo je dělá.
    Nechci autora podceňovat, ale nepředpokládám, že by byl nějak extra zdatný ve všech zmíněných frameworcích. Typicky je zdatný v jednom konkrétním a ten porovnává s ostatními (což je logicky biased – když v jednom používá best-way a v ostatních newbie-way). Tím pádem i kdyby byla samotná metodika testu v pořádku (tj. prostředí odpovídající reálnému nasazení a použití a ne syntetické testy „tisíckrát requestnu tuhle url bez cache“), tak stejně výsledek nebude vůbec vypovídající, vzhledem k výše zmíněnému.
    Mimo to myslím, že není třeba znovu vymýšlet kolo. Poměrně respektované porovnání frameworků již existuje. Provnává dokonce mezi sebou různé jazyky a konfigurace! http://www.techempower.com/benchmarks/ Existuje tam určitá metodika, která se během jednotlivých kol ladí a autoři přijímají na githubu pullrequesty na nové frameworky a vylepšení/zrychlení u těch stávajících.
    Dále tento typ benchmarkování neříká nic o tom, jak výkonná bude výsledná aplikace nebo kolik dá práce zaintegrovat do toho memcache, atp. Aby měl benchmark smysl, bylo by potřeba, aby někdo napsal třeba celý eshop v několika frameworcích s naprosto stejnou strukturou URL a výsledného HTML a pak napsal třeba seleniový test, který udělá 1000x nějaký komplexnější proces – třeba projití několika kategorií, objednávku, atp. Ale investovat tolik práce nedává vůbec žádný smysl, proto myslím, že maximum, které ještě smysl dává je ten techempower benchmark.
    Chápu, že přimět někoho něco delšího napsat je problém, ale myslím, že zrovna tady měla redakce včas zasahnout a říct, že to nemá smysl ani začínat.

    1. Patrik Šíma

      Re: Jako fajn, ale
      No vidíš. Mě to zajímá i přes všechny výtky i tak. A jsem rád, že redakce nezasáhla.

    2. Martin Hassman

      Re: Jako fajn, ale
      Díky za připomínky. Bude zajímavé srovnat pak výsledky s Techempower benchmarkem. Pochopil jsem, proč se někomu aktuální test nelíbí, takový už je podle mě osud většiny testů a v tomhle případě horko těžko něco změníme. Věřím, že i tak to někomu něco přinese.

      1. tomas.fejfar

        Re: Jako fajn, ale
        Já jsem se právě Martine bál, že to přinese jen zmatení. Vypadne z toho nějaký hezký grafík „nejrychlejší framework“, ze ktrého bude všem všechno jasné, půjde hezky nasdílet jako ultimátní argument a celkově všem bude hned jasné, jak se to s tou rychlostí má a proč je který framework úplně na prd, protože tam jeden request trvá 3x déle než jinde :)
        Zdroják by neměl přece být jen nějakým „prestižním agregátorem“ článků, které by jinak vyšli na nějakém zapomenutém blogu. To, že má nějakou redakci, nebo alespoň šéfredaktora by se mělo odrazit v tom, že zde publikované věci prochází nějakou revizí a mají určitou úroveň. Ten výše linkovaný web je TOP na „framework benchmark“ a dokonce i na „how to do framework benchmark“ – a já z toho vidím absenci jakékoli rešerše před napsáním…

        Patriku, to jsem rád :) Ono to klidně zajímavé i být může, ale je to třeba brát v kontextu a ten by bez mého (a dalších) vyjádření chyběl. Já si ale myslím, že má smysl hledat spíš kvalitu (pokud potřebujeme srovnání rychlosti, udělejme jedno a to vylaďme), než kvantitu (srovnání CRUD operací v PHP frameworcích po 101.).

        1. Jaroslav JakouběAutor příspěvku

          Re: Jako fajn, ale
          Velice si cením vašich příspěvků a omlouvám se že reaguji až tak pozdě. Při tvorbě aplikací jsem začínal vždy úplně od začátku a bez předchozích znalostí s daným frameworkem. Jsem si vědom, že takovéto testování není perfektní, ale neznám nikoho, kdo umi perfektně pracovat se 14ti frameworky.
          Grafík z toho určitě vypadne, ale jak asi málo čtenářů pochopilo, tak nikomu jeho výsledky nenutím. Je pouze na každém jedinci, zda se mu bude tento test zdát užitečný nebo ne.
          Bohužel jsem momentálně mimo stabilní připojení a nemohu okamžitě reagovat na všechny komentáře.

  5. janek

    můj názor
    Myslim, že nikdo nechce zpochybnit práci autora článku (o tom žádná), ale jde spíš o výsledky testu, u kterých už teď je jasné, že budou zavádějící a nicneříkající.

    Představme si, že už je konec a máme výsledky. Na prvním místě se umístil fw X, na posledním fw Y. Rozdíl mezi X a Y je 500 ms. Znamená to tedy, že X je absolutně vždy nejrychlejší, zatímco Y je pomalá mrcha, kterou není radno vůbec používat.

    U aplikací s větší zátěží, je volba fw důležitá, ale mnohem důležitější je spíš, jestli vůbec použít PHP. Pokud ano, tak to nakonec většinou skončí u toho, že se tak dlouho přepisují a upravují kritická místa, až z fw zbude jen část. Typicky mám vlastní jádro a z fw použiju jen části, komponenty..a to ne z jednoho, ale z vícero frameworků.

    U fw mě spíš zájímá celkové soužití, efektivnost práce, dokumentace apod. Při výběru předpokládám, že všechny top fw jsou přiměřeně podobně rychlé, že žádný fw neklade při request toliko překážek, aby se očividně prodlužoval výstup. I kdyby fw sám o sobě odpověděl za 1 ms, tak pro SQL patlala je to nicneříkající číslo, protože výkon zabije nějakym „superdotazem“….

    Celkově mi to přijde jako kdybychom postavili na start sporťáky od Mercedesu, BMW, Audi apod. a měřili, které je nejrychlejší. Výsledek testu by byl, že je to vlastně úplně jedno… (i když absolutní čísla by byla třeba 320, 319, 310 km/h atd…

    1. podhy

      Re: můj názor
      Kdyby použil „superdotaz“, tak by to bylo ještě dobré. Patlal vám těch „superdotazů“ na jednu primitivní věc udělá víc :-)

Napsat komentář

Tato diskuse je již příliš stará, pravděpodobně již vám nikdo neodpoví. Pokud se chcete na něco zeptat, použijte diskusní server Devel.cz

Zdroj: https://www.zdrojak.cz/?p=8825