Blog | Webexpo 2012: Souboj frameworků

Webexpo 2012: Souboj frameworků

Tak jak to teda dopadlo? Přečtěte si textové shrnutí toho, jak dopadl souboj frameworků. Získejte konkrétní tipy a další informace, které na konferenci nezazněly.

Pořadí

  • první místo: čisté PHP a Jakub Vrána (16/16 úloh v určeném čase, dokončené)
  • druhé místo: Nette a Ondra Mirtes (15/16 úloh v určeném čase, dokončené)
  • třetí až páté místo: Yii a Igor Hlina, Rails a Jiří Knesl, Symfony a Honza Marek (8/16 úloh v určeném čase, 8. rozpracovaná u všech, 7 dokončených)

Úlohy nebyly stejně těžké. Konkrétně 3 a 8 úloha byly nejtěžší, tedy vybudovat CRUD a vytvořit objednávku. Většinu času jsme strávili právě na těchto úkolech.

Další důležitá věc je, že jsme dělali databázové migrace, tedy všichni kromě Jakuba Vrány. Takže když by se odečetl čas, vyšlo by Nette a čisté PHP takřka nastejno.

Zároveň velmi dobře uměli Jakub PHP, Ondra Nette a Igor Yii. Já s Railsy a Honza Marek se Symfony pracujeme míň často, ne denně, což se na našem výkonu poznamenalo, ikdyž míň, než by člověk čekal.

Samotný průběh

Jakub Vrána dělal soutěž samostatně, o průběhu budu referovat tedy bez něj.

Na startu jsem získal náskok já s Railsy (zadání jsem udělal tak dlouho dopředu, že jsem ho stihl zapomenout, takže doufám, že to můžeme považovat za fér) a hned za mnou Igor s Yii. Není divu, máme scaffolding a generování kódu a to nám ohromně pomohlo.

Ondra byl na 3. místě. Když jsme si dělali přestávku, vypadalo to, že bude CRUD dělat po zbytek dne a soutěž pro něj končí.

Honza Marek se hodně zasekl na prvním úkolu, kdy vůbec rozbíhal Symfony a Doctrine.

Třetí úkol: vytvořit CRUD jako administraci, byl poslední, kde výrazně pomohlo generování kódu.

Já jsem použil Active Admin, který vypadal nádherně. Igorův YII má v sobě taky admin, který je super. Jakub Vrána použil svůj Adminer Editor, což byl jeden z mála objektů, které při vývoji použil (mimo PDO). Ondra a Honza psali CRUD v čistém HTML bez kousku CSS.

Honza, který celou dobu doháněl nás ostatní, nás dotáhl až u těžké 3. úlohy. Bohužel, zpoždění, které nabral na 1. úloze, už nedohnal.

Další úkol, přihlašování, byla věc na chvilinku.

Po 3. úkolu byly věci na napsání naschvál zadané tak, aby testovaly, jak dobře se dá upravovat to, co je obvykle generováno.

O chvíli později Ondra předběhl Igora a ještě o chvíli později (u druhé těžké: 8. úlohy) i mě. 8. úloha v sobě měla chyták. Validace a zobrazení kreditní karty jen pokud je hodnota selectboxu Platební metoda ve 2 z 6 specifi­kovaných hodnot.

Tady se ukázala síla Nette formulářů a nepraktičnost Rails. V Rails, když chce člověk data mimo DB validovat „systémovou cestou“, tak si musí vytvořit Active Model, což je takový Active Record, ale bez databáze. Tím jsem se už zasekal na zbývající dobu. Igor se k tomuto problému dostal taky a Honza končil se 7. hotovými úlohami a tuto konkrétní vychytávku 8. úlohy ani nezačal.

Zadání, slajdy, repozitáře

Zadání, slajdy a naše repozitáře si můžete stáhnout tady:

https://www.dropbox.com/…8jmwnb/f.zip

Vyhodnocení

Vyhodnocení zní: „Pokud můžete najmout Jakuba Vránu, udělejte to. Pokud nemůžete najmout Jakuba Vránu, vyberte si Nette, Rails nebo Symfony a pořádně se ho naučte.“

Za zmínku stojí i samotné zdrojáky, byť je to věc částečně subjektivní.

Úplně nejhezčí zdrojáky mají Rails. Nejméně se mi líbilo Jakubovo PHP, které používalo objekty jen velmi málo (< 10 % kódů).

Nette a Symfony mají opravdu hezký a čitelný kód. Zdrojáky v Yii se mi moc nepozdávaly.

Další věc je, že stejné zadání v různých frameworcích vede k různým výsledkům. Nejviditelnější je to, když se podíváte na jednotlivá administrační rozhraní od čistého HTML (což bylo mimochodem v zadání) až po opravdu hezký design v Rails Active Adminu. Dá se říct úplně zadarmo.

Co dál?

Soutěž jsem vyhodnotil takto:

  1. nejlepší je umět skvěle svůj jazyk
  2. dál je důležité opravdu skvěle znát svůj framework (na to jsem trochu narazil já a Honza)
  3. pak je až důležité použít správný framework (i dobrá znalost Yii Igorovi nepomohla)

Ať už používáte PHP, Ruby, Javascript, C# nebo Javu, najděte si pravidelně dostatek času na to, abyste poznali svůj jazyk a platformu a to, co vám nabízí. Přinese vám to nejvíc. Pak se vzdělávejte co nejvíc ve frameworku, který jste zvolili.

A jak zvolit framework? Podle výsledků soudím, že je dobré používat buď Nette, nebo nějaký světoznámý framework, tedy třeba Rails, Django, Symfony. Je otázkou, jak by se výsledky změnily, kdybychom já nebo Honza uměli Rails / Symfony tak dobře, jako Ondra Nette.

Chcete se zúčastnit?

Chcete si vyzkoušet zopakovat soutěž? Do toho a pak napište, jak vám to šlo a nasdílejte svůj repozitář, rád vás odkážu, retweetnu.

Chcete se účastnit příští akce? Kromě veřejných školení plánuju dvě akce, kde si zaprogramujete:

  1. Code Retreat – nemusíte umět jen PHP, nakonec možná nebude jen pro PHP vývojáře, ikdyž budete vítáni
  2. Školení Rails, PPC, A/B testování a budování příjmu se svými miniaplikacemi – stojí za to!

O obou akcích budu informovat v newsletterech. Přihlašte se a dozvíte se včas všechno.

Programování

Předejte zkušenosti i dalším a sdílejte tento článek!

Předchozí článek
Následující článek


Jiří Knesl
Business & IT konzultant

Jiří Knesl poprvé začal programovat v roce 1993. Od té doby, díky skvělým učitelům a později zákazníkům, měl možnost neustále růst v oboru vývoje webových aplikací a informačních systémů. v roce 2002 se přidal zájem o ekonomii a v roce 2006 o organizaci práce. Vším tím se konstantně profesně zabývá jak ve svém podnikání, tak i u zákazníků. Za posledních 5 let vydal na tato témata přes 400 článků.

Prohlédněte si moje reference

Mám zkušenosti z rozsáhlých projektů pro korporace, velké podniky, střední i malé firmy, ale i pro startupy v cloudu. Zvyšoval jsem jejich know-how, pomáhal nastavovat jejich organizační strukturu, byl lektorem a mentorem v náročných situacích. Podívejte se, jak vidí můj přínos samotní klienti.

Sledujte mé postřehy na sociálních sítích