Přejít k navigační liště

Zdroják » PHP » „1001 tipů a triků pro PHP“ není jen sbírka tipů

„1001 tipů a triků pro PHP“ není jen sbírka tipů

Články PHP, Různé

Kniha Jakuba Vrány „1001 tipů a triků pro PHP“ je na pultech už delší dobu. Pokud vyvíjíte weby v PHP, je knihou, kterou si musíte přečíst, protože v ní, trošku paradoxně, nenajdete jen halabala sbírku tipů a triků, ale po jejím přečtení budete mít jasno hlavně v tom, jak v PHP psát správně a „neprasit“!

Nálepky:

Jméno Jakub Vrána není čtenářům Roota ani Zdrojáku nutno představovat. Pro napsání knihy o PHP pravděpodobně dnes neexistuje v ČR povolanější člověk, který by měl tak zevrubné znalosti PHP a přitom je uměl na jednoduchých příkladech srozumitelně vysvětlit. Jakub Vrána se podílel a stále ještě podílí na tvorbě oficiální dokumentace PHP, vede řadu školení a kurzů, propaguje „správné psaní“ a je zvyklý publikovat. Tyto faktory dohromady už před vydáním naznačovaly, že jeho knížka by mohla být výborná, a stavěly laťku očekávání velmi vysoko.

Co v knize najdeme?

Kniha „1001 Tipů a triků pro PHP“ (1001TT) obsahuje opravdu tisíc a jeden tip a trik pro psaní v PHP. Tipy jsou utříděny do logických oddílů, věnovaných vždy nějaké oblasti, s níž se vývojáři setkávají – od instalace a konfigurace  přes samotné jazykové konstrukce či návrhové vzory až po větší problematiku, jakou je třeba zpracování dat z formulářů, práce se soubory, s databázemi, lokalizace, práce s obrázky, s XML… Naštěstí se dostalo i na otázky bezpečnosti aplikací, bezpečnosti dat, výkonu a přehledného kódu, což jsou oblasti, které jsou při vývoji v PHP nejčastěji opomíjeny. Zhruba sto stránek (z celkových 440), věnovaných těmto oblastem, tak představuje v českém jazyce naprosto unikátní materiál, který by si povinně měli přečíst všichni PHPčkaři, včetně těch zkušených.

Kniha není pro začátečníky v PHP. Myslet si, že se stačí naučit základy syntaxe a mohu uplácat web jen slepením tipů z této knihy je naivní. Kniha míří spíš na ty, kteří s PHP dnes a denně pracují; je to svým způsobem „kurz PHP pro starší a pokročilé“. Pokud se domníváte, že po třech letech vyvíjení v PHP víte prakticky všechno a nic vás nepřekvapí, budete touto knihou vyvedeni velmi rychle z omylu.

Jen tipy…?

Na rozdíl od obdobných titulů, mířených na pokročilé uživatele, má Vránova kniha jednu podstatnou výhodu: díky formátu stručných tipů není „ukecaná“. Jednotlivé tipy jsou malé, kompaktní a informačně hutné „perličky“ bez zbytečného „příběhu“ okolo. V porovnání např. s knihou „Mistrovství v PHP5“ je 1001TT přeci jen o něco stravitelnější a zaměřená víc prakticky.

Většina tipů v knize počítá s PHP verze 5.2 či 5.3. Autor na případy, kdy odlišnost mezi těmito verzemi hraje v daném problému roli, vždy upozorňuje a popisuje oba způsoby.

V knize se autor věnuje i některým knihovnám či nástrojům, a je sympatické, že si zvolil tam, kde to šlo, české knihovny s uživatelským zázemím. V knize se tak setkáme s Nette, Dibi či Texy od Davida Grudla (ten se na knize rovněž podílel připomínkami), autor zmínil i svůj Adminer a NotORM, tedy projekty v české vývojářské komunitě populární a čtenářům Zdrojáku povědomé.

Autor předpokládá, že čtenář ví, co je např. PDO a jak se s ním pracuje, takže jednotlivé oblasti nepředstavuje, nevysvětluje – pouze v případech, kdy je to potřeba, je v tipech využívá. Mlčky tak předpokládá, že čtenář buď ví, nebo, když neví, má po ruce literaturu, z níž se doučí.

Na druhou stranu jsou jednotlivé tipy opravdu „z praxe“ a jsou to věci, s nimiž se většina PHP programátorů setkala či setká. Nejsou to z prstu vycucané umělé příklady či sbírka kuriozit, co použijeme jednou a budeme ji ukazovat všem kolegům jako unikát, jsou to živé a reálné příklady.

Má kniha co říct ostřílenému PHPčkáři?

Autor v mnoha případech popisuje věci, které jsou „přece každému jasné“ – tedy po přečtení názvu tipu. Mnohdy ale po přečtení samotného tipu zjistíte, že sovy nejsou tím, čím se zdají být a že třeba něco, co jste měli za samozřejmou věc, má své hlubší příčiny a ve skutečnosti třeba žijete v bludu. Obzvlášť v tipech věnovaných výkonu aplikací narazíte na spoustu „nelogických“ věcí, které by „selským rozumem“ měly fungovat přesně obráceně. V těchto chvílích je autorův přístup neocenitelný: nejen že popíše, jak to ve skutečnosti je, ale přiměřeným způsobem dokáže vysvětlit, proč to tak je a kde se „obecné přesvědčení“ mýlí.

Velmi pozitivní je na této knize fakt, že se autor nesoustředil pouze na technickou stránku věci, ale že se v mnoha tipech věnuje „správnému psaní“. Vysvětluje, proč bychom měli kód psát určitým způsobem, a svá vysvětlení dokáže i přesvědčivě podepřít argumenty. Kniha tak může přispět ke kultivaci úrovně PHP vývojářů, a už jen z tohoto důvodu by neměla chybět v žádné PHPčkářově knihovně.

Kniha nesupluje jiné tituly ani není nějakým rychlokvašeným odvarem vzorových „sbírek tipů a triků“ – v tomto směru je název poněkud nespravedlivě zavádějící, protože odkazuje ke knihám, jejichž úroveň formální a leckdy i obsahová bývá tristní. 1001TT je plnohodnotná odborná kniha, která velmi šikovně kombinuje jak informace pro pokročilé vývojáře, tak obecné tipy z oblasti „štábní kultury“, a její koupi lze tedy s klidným svědomím jen doporučit. (A pokud v ní nenaleznete nic nového, pak gratulujeme – jste opravdu velmi dobrý PHP vývojář.)

Laťka očekávání překonána…

Celkový recenzentův dojem z knihy je vysoce pozitivní. Kniha neunavuje, čte se opravdu svižně, formát krátkých tipů autorovi vyloženě „sedí“ a dokáže do nich zhustit spoustu užitečných informací – pravděpodobně se zde pozitivně podepisuje dlouholetá blogerská zkušenost. Ve spojení s přesahem mimo čistě technickou oblast se stává opravdu výjimečným titulem, kterému nelze vytknout nic po odborné stránce, ani po stránce „ideové“.

Když budeme parafrázovat název jiné známé knihy: „1001 Tipů a triků dělá z PHP kodérů opravdové vývojáře!

Knihu si můžete objednat přímo od autora – jednak ho tím podpoříte, ale hlavně získáte možnost mít v knize i podpis, popřípadě i věnování.

Komentáře

Subscribe
Upozornit na
guest
156 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
Ján Jaďuď

Recenziu ladenu vo velmi podobnom optimistickom duchu som nedavno napisal aj sam: http://westrem.posterous.com/1001-tipov-a-trikov-pre-php

Neda mi teda inak, ako plne suhlasit s tymto clankom a zazelat Jakubovi vela stastia pri pripadnom pokracovani :)

Martin Soušek

Čím to je, že mi celá tahle komunita v ČR připadá jako sekta. Pár jednotlivců se vzájemně klepe po zádech, honí si pindíky na Twitteru a navzájem se ubezečuje o své jedinečnosti.

Genigální pan Grudl chodí s geniálním panem Vránou a rodinu posiluje hodný děda Plaváček. Zástupy obdivovatelů je „folowují“ a šíří jejich slávu dál českou kotlinou. Nette již povinně používají skoro všechny české weby a kdo nemá Vránovu knihu, ten musí konat veřejné práce u popelnic.

Výsledky a zahraniční úspěchy neexistují a pokud má nějaký imperialista problém, tak ho pan Vrána veřejně zostudí v diskusi. Nejlepší framework je přece Nette a k databázi přistupujeme jedině přes NotORM! A jestli existuje ve světě něco lepšího již léta? Hlupáci! Dělali to špatně!

My si totiž jdeme tou naší krásnou českou cestou a uspějeme všem navzdory! Kupředu levá!

Skalimil Vuk

To se vám zdá. Třeba globalizovaná mánie kolem Ruby na kolejích působí také jako sekta, jen v tom širém globálním světě tolik netrčí.

Druhá věc je ta, že Nette je opravdu na poli PHP frameworků špičkou. Není světovou špičkou, protože nemá ani anglický web, ani anglický manuál a ani anglickou komunitu. Kdyby měl, bude i celosvětě spolu se Zendem a Symfony v první trojce (no flame prosím).

NotORM je zase velice inovativní přístup. Adminer jako alternativa k PHPMyAdmin je svižnější a rychlejší.

Prostě ten důvod je ten, že jde skutečně o produkty na světové úrovni. Samozřejmě ve světě PHP.

Třetí důvod je ten, že mnoho lidí a firem, když už si může vybrat mezi řekněme srovnatelným zahraničním produktem a produktem českým, sáhnem po českém. Když si z tohoto důvodu kupují Škodovku, smysl to nemá. Ale u programovací knihovny, třeba u toho Nette je česká komunita výhodou (ano a možná i nevýhodou zároveň, protože anglická komunita by byla větší, ale nezdá se mi že by třeba komunita kolem Symfony byla výrazně aktivnější než jazykově omezená komunita kolem Nette)

Jediný negativní přínos té „české mánie“ vidím v tom, že se kvůli tomu spousta vývojářů nedokáže odpoutat od světa PHP. Jestli existuje ve světě něco lepšího již léta, není to v PHP.

Cechjos

Že jsem tak smělý. Z čeho pramení vaše soudy o aktivnosti Symfony komunity a kvalitách jiných frameworků v PHP?

Skalimil Vuk

Používal jsem je.

jc

ale fakt? tak se mrknete na nette a na symfony v githubu. Symfony ma minimalne 4x tolik commitu denne.

Symfony ma 410 forku, Nette pak jenom 58. Kdyz se koukneme na uzavreny pull requesty, symfony ma 91 a nette 37.

Takze nejenom ze hlavni vyvojari jsou v symfony minimalne 4x vic aktivni, jejich komunita je i 2x tak sdilna.

MW

Vydělte to velikostí komunity a pak můžeme srovnávat.

jc

mozna to treba i vypovida o tom, kde je treba vic fixovat nez pujde neco delat.

Skalimil Vuk

to je mi úplně jedno kdo má kolik forků a kdo má kolik vdolků.

Mně zajímá, to, když mám problém, jestli ho vyřeším v dokumentaci nebo v diskusi. Symfony má daleko lepší dokumenatci než Nette, pro někoho problém, někomu to nevadí.

Co to je dvakrát tak sdílná komunita? Jako že když se na něco zeptám, tak dostanu místo šesti odpovědí dvanáct odpovědí :-) Mně stačí jedna odpověď. Nebo že se tam celkově položí více dotazů? Ať se ptá kdo chce na co che, mně zajímá ten můj dotaz a jestli na něj dostanu odpověď.

4x více commitů to znamená co? Že je Symfony 4x chybovější a nebo že je David Grudl 4x línější komitovat, škudlí si kód u sebe na disku a chrlí to tam naráz?

V praxi funguje Symfony i Nette stejně dobře, stačí si jen vybrat. Někomu třeba funguje stejně dobře i Zend nebo cakePHP, které se mně moc nelíbí.

Lepší psát o Nette než řešit kokotiny o nějaké české sektě. Tož napište něco v češtině o těch světových super věcech, ať se David Grudl zastydí za svůj lokální framework :-) a ať vidí, jak se to teda má dělat

jc

ja bych neceknul ani hlasku kdyby na serveru, kterej ctou snad vsichni cesky linuxaci ktery znam nepublikovali ty hnusny PR clanky a jeste k tomu tam nespinili Doctrine. Ty cisla samozrejme o moc vecech nevypovidaj ale kdo koukne do tech gitu, je mu okamzite jasny na cem je.

MW

Zajímavé, že recenze Dive into Python nebyla „hnusný PR článek“.

jc

tu jsem nevidel, ale to ze to dela nekdo jinej neznamena, ze to budem delat my.

djanosik

Mohu se na něco zeptat? Kdo vy?

jc

to bylo mysleny tak, ze kdyz uz to nekdo jinej dela, neni to zrovna nejlepsi vec k inspiraci

drevolution

Druhá věc je ta, že Nette je opravdu na poli PHP frameworků špičkou. Není světovou špičkou, protože nemá ani anglický web, ani anglický manuál a ani anglickou komunitu. Kdyby měl, bude i celosvětě spolu se Zendem a Symfony v první trojce (no flame prosím).

Osobně si myslím, že to není pravda a stejně jako u vás je můj názor ryze subjektivní :)

drevolution

Jenom pro upřesnění, ta citace měla být bez první věty.

Neměl jsem v úmyslu hodnotit to, zda je nebo není Nette špičkou mezi PHP frameworky, na to nemám bohužel dostatečné znalosti.

Chtěl jsem pouze vyjádřit můj názor na to, že by z mého pohledu nestačila anglická dokumentace a anglicky mluvící komunita k tomu, aby se Nette dostalo na pomyslné 3. místo za Zend a Symfony.

Skalimil Vuk

Ano, s tím souhlasím. Myslím že v kvalitě kódu by se vyrovnal (pokud věříme že objektový MVC(P) je v PHP to správné)

Ale jistě je nespočet případů, kdy kvalita na popularitu nestačí. Někdy zvítězí naprosto nedodělané věci, zatímco ty dobře udělané se bez povšimnutí povalují na zapomenutých serverech.

JakubS

A jaká je ta správná NE-česká cesta?

V tomto kontextu existují přibližně tři druhy programátoru:

  • Ti co umí a zvládají selfpromo levou zadní
  • Ti co umí ale selfpromo nezvládají
  • A ti co neumí

Proč vám vadí jen první skupina?

Martin Soušek

Kdepak první skupina. Mě vadí skupina (na kterou jste raději „zapomněl“)

„neumíme to, ale o to víc o tom kecáme a ostatní přesvědčujeme, že tohle je ta správná cesta“

Mě je totiž líto těch chudáků, kteří na tohle skočí a jako bonus si odnesou nesmyslné návyky a názory.

jc

nekoukal sem sice na jejich zdrojaky ale mam takovej ten pocit, ze az me nekdo nas*re a mrknu tam, asi najdu neco zajimavyho. Ale ono i jako na venek – anglicka dokumentace, ktera je tak z 50% anglicka a presmerovava na ceskou? ale notak :)

krizak

to je tim, ze oni se nestydej pod svoji praci podepsat, jit s ni na verejnost. oni o tom pisou a mluvej. takze nebrec po diskusich jako zneuznanej genius, misto toho neco udelej, napis o tom, predved to svetu a pak si s celou touhle sektou budes moct vytrit vis co!

xtr

Jsem rád, že se v knize píše o dobrých programátorských návycích, „neprasení“ a podobně.

Mám ale rozporuplné pocity, pokud koukám na autorovy nejnovější zdrojáky (k dnešnímu datu) Admineru.. Podívám-li se do knihy „Robert C. Martin: Čistý kód, Computer Press, září 2009“ dává mi tato větší smysl co se „neprasení“ týče. Ostatně kdo ji čtete, porovnejte myšlenky, které kniha nabízí třeba s kódem v adminer/sql.inc.php ( http://pastebin.com/hef5uHXM ).

Martin Soušek

Pan Vrána prostě není programátor, smiřte se s tím.

Špagetový kód, prapodivné algoritmy, nesmyslné názory. I kdyby napsal deset knih a plácal ho po zádech samotný Vašek Klausů.

Typický „pojídač koláčů“!

Richard Šerý

Nemohl jsem si nevšimnout výrazu „pojídač koláčů“. Tento výraz pochází ze článku Opravdoví programátoři nepoužívají Pascal (např. zde: http://www.logix.cz/michal/humornik/Pojidaci.Kolacu.xp ), který vyzdvihuje „opravdové programátory“, kteří pokud možno nepoužívají žádné vyšší jazyky a vyznají se v jakkoli zamotaném kódu.

Samozřejmě šlo o humoristický článek, takového „opravdového programátora“ by žádná rozumná IT firma nezaměstnala a pokud ano, tak jen na velmi specifický typ úkolů. Realita je taková, že skutečně cenní vývojáři, které lze bez potíží zařadit do jakéhokoli vývojového týmu, aniž by zcela rozvrátili jeho produktivitu, pocházejí prakticky výhradně z kategorie, kterou článek označuje jako „pojídače koláčů“.

Jestli šlo z Vaší strany o nějakou sázku typu „budu vodit ajťáky za nos, ačkoli o programování skoro nic nevím“, pak Vám to tak bohužel nevyšlo – zradila Vás neznalost reálné vývojářské praxe. Ale pěkný pokus, rozhodně vzbudil dost rozruchu.

Mennion

No tohle je ovšem pěkná sra*ka.

Pokud někdo, kdo napíše podobný kod přednáší a vyučuje ostatním jak psát čistej kod, tak je něco šeredně špatně.

blizzboz

takýto hrozný kód som mal ako siedmak na základnej škole, ešte šťastie že príkaz goto je v PHP až od verzie 5.3 inak by ho pán vrána určite použil.

Michal Zahradnicek

Prikaz GOTO je podla mna genialna vec a dost mi chybal. Da sa pomocou neho pri spravnom pouziti dosiahnut lepsia rychlost niektorych algoritmov, kedze sa kod nemusi spomalit volaniami funkcii.

Mam na mysli samozrejme mensie algoritmy – nie take na 400 riadkov – tam uz sa to potom moze stat dost neprehladne.

Nobody

Tak ten se poved :D

Oldisy3

goto zmizel z dost dobreho duvodu, sam o sobe znamenal zanaseni bordelu do kodu a necitelnost, pokud je algoritmus na 400 radku, tak je s nim neco spatne …

jc

goto naopak pribyl v PHP 5.3 ;) http://cz.php.net/manual/en/control-structures.goto.php

A pozor, nez vas napadne neco silenyho, break, continue a spol berou volitelene jako parametr cislo, o kolik vnorenej smycek vylyzt.

Oldisy3

bohuzel ma, osobne sem se naucil vhodne pouzivat break, a nedelam tak velke algoritmy abych musel pouzivat zrovna goto, natoz zacit pouzivat nejakou predikci pro urcine kolik tak cyklu po break se ma jeste provest. kdyz o tom tak premejslim, tak abych to musel pouzit, musel bych vymyslet algoritmus nejdriv bud spatne a nebo ho nedodelat.

Jiří Kosek

A není náhodou cílem Admineru mít co nejkratší kód v jednom skriptu? Když chcete mít kód co nejkratší píše se jinak, než když ho chcete mít přehledný, aby mu rozumněl někdo jiný nebo vy sám za 10 let.

blizzboz

keď chcete mať čo najkratší kód tak ho treba kôli znovupoužiťeľnosti napísať čo najviac objektovo. tento kód http://pastebin.com/hef5uHXM by sa dal určite skrátiť je to len jeden veľký copy – paste zlepenec, to predsa neni programovanie ale lepenie kódu

Jiří Kosek

<i>keď chcete mať čo najkratší kód tak ho treba kôli znovupoužiťeľnosti napísať čo najviac objektovo</i>

Když chci mít co nejkratší kód, tak ho většinou nechci nikde znovupoužívat. A psaní „objektově“ jde většinou naprosto proti psaní úsporného kódu. No navíc nevím, co byste „zobjektováním“ toho kódu získal.

Jezeter

Klíd, Jirko, vždyť von to taky neví. Ten je celej šťastnej, že si může tahat triko a masírovat ego, jak von píše lepší kód než Vrána. Přitom je vidět, že naprosto netuší která bije: odkud ten kód je, proč je takhle, proč není objektově, neví nic. Naprosto mu nedochází, proč to Kuba takhle napsal. Akorát vidí, že to je jinak než jak si von přečet, že to má bejt, a tak je na koni a myslí si, že je chytrej jak Rádio Impuls!

blizzboz

Kto OOP naozaj ovláda, píše úsporný kód, jadna zo základných výhod OOP je znovupoužiteľnosť kódu. Kód si rozdelím na menšie logické celky a potom ich používam znova a znova.

Jakub Vrána

Kde je jaké copy-paste? Na zkrácení bych byl opravdu moc zvědavý. Samozřejmě předpokládám, že po zkrácení zůstane kódu plus-mínus stejná paměťová náročnost a plus-mínus stejná výkonnost (mimo jiné zachovávající zde velmi důležité průběžné vypisování výstupu).

O špageti-kód samozřejmě jde, to nezastírám – konkrétně HTML kód zkombinovaný s PHP a částečně i volání JS funkcí z HTML (i když většina JS je vyčleněna stranou). Ale problém při vývoji a úpravách to kupodivu žádný nepřináší, spíše naopak. Samozřejmě by šel HTML kód vyčlenit do šablon a lineární kód rozsekat do úhledných metod, ale prioritám Admineru by to uškodilo (dotklo by se to výkonnosti a velikosti výsledné aplikace).

Takže zatímco při vývoji webových prezentací používám šablony, model, routování, NotORM, jQuery, kód rozděluji do pokud možno krátkých metod a malých tříd, tak při vývoji Admineru jsem se rozhodl k tomu přistoupit jinak, protože účel světí prostředky. A musím říct, že rozhodnutí nelituji, protože se praxí ukázalo jako správné. Nejen, že je kód rychlý a krátký (což jsem si při vývoji stanovil jako prioritu), navíc se mi s ním dobře pracuje – a to Adminer při svém vývoji prodělal dvě poměrně zásadní změny (možnost velmi rozsáhlého přizpůsobení a podpora dalších databázových systémů) a žádná z nich nebyla přehnaně bolestivá.

Shark_cz

A když se nad tím opravdu zamyslíš, jak velké zpomalení by způsobilo rozdělení kódu do krátkých funkcí? Troufám si tvrdit, že zanedbatelné, skoro neměřitelné, zato přínos v čitelnosti by byl ohromný. Dále si myslím, že tímto kódem odrazuješ ostatní programátory, kteří by chtěli přispět k vývoji Admineru.

jc

taaak to sem chtel aby tu nekdo napsal. Kdo je chytrej, pouziva aspon na produkci APC. Co dela APC ? cacheuje bytecode. A co dela PHP kdyz zjistuje, jestli nahodou neni nejakej soubor zmenenej? stat(), nic jinyho. A odkud pochazi ty informace? No ze stat cache ! Tzn jak dlouho muze trvat opetovnej request nad knihovnou, kde je 500 souboru s mrnavejma funkcickama a vsechny staty jdou z cache? no asi mozna na par ns stejne dlouho, jako kdyby to bylo v jednom souboru :D
Plus jako, kazdej normalni autoloader vyndava jenom to, co je treba pro ten a ten request. Sam sem se divil kdyz sem zjistil, ze dibi je pomalejsi nez doctrine, ale je to tak.

Jako s timhle nazorem souhlasim na 100%. Predcasna optimalizace je zlo. A tady navic jeste uplne nesmyslny zlo.

A kdo chce namitnout, ze bytecode se nemusi vsude cacheovat – dobre, neprojde to ze stat cache ale z datovyho. Sice min ucinny ale taky to funguje. A rozhodne je vetsi sance, ze z 10 mrnavejch souboru bude aspon 1 v cachi, nez aby tam byl jeden minifikovanej balast, kterej uz bude davno odlitej.

drevolution

Dále si myslím, že tímto kódem odrazuješ ostatní programátory, kteří by chtěli přispět k vývoji Admineru.

Přiznám se, že s tímto souhlasím. Před nějakou dobou jsem myslel, že bych pro Adminer napsal nějaké části pro PostgreSQL, pokud by byl zájem, ale nesedla mi jeho štábní kultura, což se bohužel negativně podepsalo na mém dalším odhodlání :(

Jakub Vrána

To mě zajímá. Čím přesně ti nevyhovovala štábní kultura? Zde se bavíme především o souboru adminer/driver­s/pgsql.inc.php, tedy samé malé funkce, dvě třídy a trocha obslužného kódu.

Na druhou stranu si kladu otázku – učiní mě příspěvky ostatních programátorů šťastnějšího? Přidají snad nějakou funkci, kterou bych já osobně ocenil? Nebo se jen budu trápit se začleňováním kódu, aniž bych z toho sám něco měl? Sobecké – samozřejmě.

jc

ty 2 tridy na jeden zdrojak odporujou standartnimu PEAR doporuceni a novymu standardu na jmenny prostrory. ( http://groups.google.com/group/php-standards/web/psr-0-final-proposal?pli=1 ). Ok, neni to autoritativni ale aspon nejakej pokus o standardizaci PHP je fajn. A krome toho da rozum ze autoloadery z toho nebudou moc nadseny.

drevolution

Jasně, dvě třídy to jsou a metody mají krátké. Stejně mě ten kód ale trochu odradil.

Je jiný, než který běžně píši, což jsi tu ale už komentoval, takže důvody chápu i když bych jim osobně dal trochu jinou prioritu.

Na některých místech mi chybí i komentář, který by mi pomohl k pochopení některých konstrukcí, nebo mi zasadil používané proměnné do širšího kontextu. Ale uznávám, jedná se o hodně subjektivní měřítko.

Navíc ono by se to pravděpodobně netýkalo pouze této třídy, protože v té době nebylo rozhodnuté, jakým způsobem například zobrazovat v rozhraní schémata, takže by se změny týkaly i nějakým obecnějších částí.

Druhou část tvého příspěvku plně chápu. Záleží to samozřejmě hlavně na tom, jakou porci času jsi ochotný vývoji Admineru sám věnovat a dokud je velká, tak je začleňování příspěvků ostatních časově spíše nevýhodné. Sobectví v tom nevidím.

Jakub Vrána

Díky za vysvětlení. Dokumentační komentáře jsou v souboru adminer/driver­s/mysql.inc.php, z čehož je vygenerovaná dokumentace na webu. Drivery implementují stejný interface, který je dokumentovaný jen na jednom místě, protože se mi to nechce ručně ani nějak automaticky kopírovat.

Honza Kuchař

Myslím si, že to máš vymyšleno velmi dobře. Kód se mi zdá přehledný a dokumentace existuje a pěkná. Tedy děkuji Ti monohokáte za čas strávený nad Adminerem. Stálo to za to – co bych mohl chtít více?

František Kučera

Možná to smyslem je, ale otázka je: proč proboha? Ještě bych možná chápal snahu namastit to do jednoho souboru, ale omezovat velikost na úkor čitelnosti a udržovatelnosti? Copak servery nemají dost velké disky? Jsou snad linky moc pomalé? Běží ten program na nějakých jednočipech?

Jakub Vrána

Když by to bylo „na úkor“, tak bych to samozřejmě přehodnotil. Ale jak jsem psal – mě se s kódem pracuje překvapivě dobře. Snadno se do něj přidávají nové vlastnosti, hledání chyb (a jejich přidávání…) je pro mě zhruba stejně náročné jako třeba u vlastních MVC aplikaci a nestává se mi, že bych kódu po čase přestával rozumět. Navíc bez znalosti celkové architektury aplikace může být podle mě snadněji pochopitelný i pro nezaujatého pozorovatele. Alespoň já se vždycky dost trápím, když se dívám do cizí aplikace a snažím se pochopit, proč a jak je do sebe volání metod zanořeno do hloubky 9 zrovna daným způsobem.

Adminer je prostě trochu specifická aplikace, kterou jsem napsal trochu jinak, než jak to radí knížky.

jc

Dalo by se to udelat i podobne, jako to dela Symfony 2. Zdrojaky mit uplne normalni OOP, pouzivat jmenny prostory a pak pro realease nejakym skriptem nechat vsechny zdrojaky zdrcnout do jednoho souboru. Viz tady: http://www.php.net/manual/en/language.namespaces.definitionmultiple.php
PHP uz jde taky ‚minifikovat‘ pokud neni prasacky napsany.
Ale k cemu to? mozna tak si udelat nejaky mrnavy utilitky ktery jdou pohodlne pretahovat mezi serverama ? (a co pak phar, kterej je na to urcenej, diky kterymu to zas pro zmenu vubec nepotrebujem ?)
Beztak to bude stejne rychly ve vysledku. Ten Vranovo Adminer je tak max. spis neudrzovatelnej.

jc

ten paste je teda masakr

jc

jako presne tak, ty kecy co mel Vrana na Doctrine mel fixnout v jejich repu, ne jim to omlatit o hlavu a pekne si zacit na svojem pisecku. Ceska PHP komunita je pekne jedovata.

David Grudl

Takže ty jsi ty „kecy“ četl, možnost fixovat máš úplně stejnou, udělal jsi to? Ani náhodou, místo toho jsi jen jedovatý :-)

jc

ja ty funkce co on potrebuje nepotrebuju. Kdybych potreboval, fixnu to v Doctrine.

David Grudl

Samozřejmě. A teď tu o Červené karkulce.

To dá moc práce, snažit se pochopit námitky proti Doctrine, mnohem jednodušší je zůstat povrchní a dělat ze sebe nejchytřejšího. Kdybys pochopil, že námitky jdou proti samotné podstatě Doctrine, tak bys nemohl napsat takovou ptákovinu o „fixování v repu“. Jak říkám, lepší zůstat hloupý, povrchní a jedovatý :-)

jc

z tech jeho kecu:

Doctrine 2 WTFs

Depends on Symfony (only the doctrine.php script)
Requires specifying proxy even if not used
Typo in annotation causes no error
First character is missing in M:N table and column names
New column is added at the end of the table
One query for each loop iteration (can be solved by Paginate extension)
Must use DQL for order and limit
No LIMIT clause in DQL
One piece of data is transferred repetitively with DQL joins
No way to specify another column in M:N relation

Ani nevim jakej je soucasnej stav (a jestli u neceho nekeca), ale co z toho se neda opravit ?
Mimochodem vzhledem k tomu, ze Symfony je komponentni framework, nezavisi na Symfony ale asi jenom na konzoli a na yamlu myslim. takze o tom bych radsi pomlcel.

David Grudl

A co z toho jsi opravil?

A víš co, vlastně nebudu v diskusi pokračovat. Pěkně ses odkopal tím komentářem, že jsme všichni pěkný šmejdi, co si myslím o tobě snad netřeba psát, a s lidmi, na které mám takový názor, se nebavím.

jc

proc bych to mel opravovat? ja nic z toho nechci. kdybych chtel, opravim to. A mimochodem, jeden z vyvojaru doctrine na to odpovidal, myslim ze na neco i zalozil bugy. Proste z toho je uplne jasne videt ze pan Vrana ani nezasel pokecat s vyvojarema doctrine a o zadny filozofii se s nima pravdepodobne nikdy ani nepohadal.

David Grudl

Nezamlžuj a přiznej, proč jsi to neopravil. Že nic z toho nechceš? Jakub snad chce? Doctrine nepoužívá. Takže jsi to neopravil buď proto, že to neumíš, nebo proto, že jsi (cituji tě) jedovatý šmejd a schválně ubližuješ Doctrine. Nebo obojí?

jc

Pokud NotORM napsal proto, ze se mu nelibilo, ze Doctrine nejaky veci neumi tak je asi chce. Ja ne.

martin

a pokial to napisal kvoli inym dovodom, tak sa mu ospravedlnis?

jc

porad neni duvod, proc bych to mel opravit. Ja Doctrine pouzivam dlouho, sem s ni spokojenej, dela presne to co chci, nikdy sem ji prekvapive ohnout nepotreboval, na to jak ma bejt podle Vrany plna ‚WTF‘. Opravdu, kdyby byl, opravim. Ale neni treba.

David Grudl

Takže používáš Doctrine dlouho, jsi s ním spokojen a zároveň záměrně odmítáš opravit chyby, o kterých moc dobře víš! To je naprosto nechutné. Dokážeš jen brát a odmítáš komunitě vracet.

Něchť je co nejvíce takových, kteří komunitě dávají, jako je třeba Jakub Vrána, a co nejméně pokrytců, jako jsi ty. Jak už kdosi v této diskusi poznamenal, v ČR jsou některý lidi okolo PHP pěkní šmejdi.

jc

kdyby me neco palilo tak to jdu opravit. Kdybych mel moc volnyho casu a dobrou naladu, pravdepodobne se hrabu v Symfony 2 protoze to momentalne potrebuje vic, nez Doctrine.

Vrana komunite dal dalsi roztristenost a poskodil image Doctrine, to je teda darecek, diky za to.

A jeste porad plati, bavil sem se o Vranovi, furt nechapu jak s tim souvisim ja.
A s tim, ze v CR jsou nektery lidi okolo PHP pekni smejdi naprosto souhlasim, mistre Grudle :) Nemuzou ti vsichni kourit c**aka prece.

jc

asi fakt neco z toho zkusim opravit (mozna ten LIMIT, jestli tam teda opravdu chybi a nekdo ho vubec v DQL pouziva). Ciste jenom aby byla sranda :)
Ale pomoz mi, co mam napsat k pull requestu? :D napada me tak akorat tohle:

My rationale for this code:
– an idiot in the Czech PHP community thinks this feature is critical in Doctrine.
– another idiot in the Czech PHP community thinks, I can’t fix this
– I don’t really need this feature but apparently, I really need to fix this or I’m an idiot, according to the second idiot from the beginning described here.

krizak

napis tam na konec jeste bod „hlavne jsem sam idiot, co ma hlavu strcenou v prdeli, nechape psany text, ale rad se hada a neco si dokazuje“. pak to bude naprosto presny.

jc

myslim, ze Cesky tomu asi rozumet nebudou :D :D On taky existuje svet mimo tuhle republiku si predstav.

krizak

jiste to zvladnes nejak kvalitne prelozit, je to beztak o tobe!

uz se ani nenamaham odpovidat vecne, protoze ses svejma komentarema definitivne zaradil: jsi uboha picka, kterou hryze, ze se tu mluvi o vranovi, ale po tobe, svetove uznavanem odbornikovi, ktery commituje do zahranicnich, rozumis vole ZAHRANICNICH projektu, tu nestekne ani pes! takze se radsi tvaris, ze tobe o usmoleny pr v zavsiveny cesky komunite nejde. ty prece smerujes vejs, ty jsi svetoobcan! pripadas mi ale spis jako takovej typickej usranej cech, co se cejti v cesku nedostatecne docenenej, tak tu vsechny nazve smejdama, aby si dodal pocitu vnitrni prevahy.

jestli mas koule, tak napises, kterej kod jsi commitoval, at muzem padnout na prdel udivem. do ty doby ale plati to co jsem napsal vys.

jc

no ja tam asi fakt vrazim tu silenost co si Vrana vymyslel. A zatim se muzes pochlubit, cos udelal ty, kdyz uz tak strasne zalezi na tom ‚kdo je vetsi opice‘ ;) A jak furt dokola rikam, me je jedno ze se mluvi o Vranovi, nikdy sem nerek ze sem nejakej buhvi jakej odbornik, snazim se casem zlepsovat v tom, co rad delam. Duvod proc tu pisu je, ze se Vrana zacal navazet do Doctrine a udelal uplne neuveritelnej PR kousek a dokonce na rootu a konecne se tu pod diskuzi ozval prvni clovek, kterymu to taky vadi.

David Grudl

Jsem rád, že jsem tě konečně přinutil splnit svou povinnost vůči Doctrine a jít ty chyby opravit. Ale počítej s tím, že si to půjdu zkontrolovat a jestli jen kecáš, napíšu to sem.

jc

Pointa cely ty akce je, ze tim, ze si nekdo jinej neco vymyslel, na zaklade toho odsoudil celej projekt a i pres to, ze to nikomu jinymu nechybi, mi nevznika povinnost to jit opravit i presto, ze ten projekt pouzivam. Ty asi moc netusis jak funguje open source, co? Ten commit delam jenom abych demonstroval nesmyslnost tech tvojich kecu ;) Pak sem hodim link.

martin

ten commit robis preto, ze si sa do toho tak trochu zamotal :) ale to je v pohode, si este maly a neskuseny…

jc

ty vis, jak sem vysokej, starej nebo zkusenej ?

krizak

uz od zakladky vsichni vedi, ze nejvetsi idiot neni ten kdo pitomost vymyslel, ale ten kdo ji udelal. jak decko, co se vsadi o bura, ze olize podlahu, a kdyz ji olize, tak vitezoslavne krici „tak kdo je tu ted za idiota?“. selfpwn jak prase, ale pssst, jeste o tom nevi! :)

jc

co je na tom za blbost? Me nevadi se podivat do vnitrnosti Doctrine. Treba to jeste nekdy nekomu bude uzitecny (i kdyz pochybuju ze to nekdo krome Vrany chce)

jc

tak, jak sem slibil, tady: https://github.com/doctrine/dbal/pull/19
Neni to LIMIT, protoze ten uz byl opravenej. Misto toho sem si vybral jinej kec – AFTER, kterej mimochodem z podporovanejch platforem Doctrine funguje v MySQL. V SQLite ani PostreSQL sem je nenasel, s Oraclem nedelam. Hodil sem to do DBAL.

A jeste jednou a naposled:
1) vuci Doctrine nemam zadnou povinnost.
2) kdyz neco opravim v Doctrine, protoze mi to chybelo, je fajn kdyz to poslu do upstreamu (coz taky jinde delam)

Co rozhodne nedelat:
1) Vyzkouset ORM knihovnu
2) Zalozit novou ORM knihovnu proto, ze par veci nebylo jak si predstavuju
3) Verejne sjet extremnima vyrokama na nejvetsim ceskym linuxovym serveru puvodni projekt
4) Neomluvit se za to, kdyz jeste k tomu autori toho puvodniho projektu odpovedeli pozitivne a snazili se veci, co je pali, resit.
5) Zacit potom poucovat lidi, jak se programuje

A extra k tobe a dalsim tady:
zalezi opravdu na tom, co kdo udelal? Cim tohle zmeni moje postaveni v tyhle diskuzi ? Snad NICIM, ne ? Kritizuju Vranovo prusvih. Co s tim ma spolecnyho co sem ja naprogramoval ?

David Grudl

Hééj, chlapi, tak se přiznejte, kdo z vás píše jc? Přece nikdo nemůže být tak moc … :-)))

Ale jsem rád, že konečně vidím nějaký tvůj kód. Po celovečerní usilovné práci se ti podařilo vypotit jeden if, který demaskuje tvoji zoufalou neznalost PHP (operátor instanceof už je s námi 7 let, dobré ráno) a neschopnost komunitního vývoje, to když jsi porušil hned 4 pravidla Doctrine Coding Standards. Zkusíš to dnes předělat, nebo na tu už síly a znalosti nestačí?

K tomu tvému výčtu, co rozhodně nedělat: vážně myslíš, že pokud se něco jmenuje NotORM (česky „ne-ORM“), jde o ORM knihovnu? Hmmm. A kde přesně na tom největším českém linuxovém serveru ten článek vyšel? Já ho tam nevidím http://www.root.cz/autori/jakub-vrana/ – nebo že by to vyšlo na nějakém jiném serveru?

MW

Já bych mu chtěl poděkovat za rozšíření mých obzorů. Funkci is_a() jsem do této chvíle neznal.

jc

1) Co kdyz bude nekdo tu tridu Column extendovat? Pak z ni nepujde vytahnout jmeno ?
V tomhle pripade je is_a lepsi.
2) VUBEC to nesouvisi s tim, co Vrana udelal.
3) Doctrine coding standards sem ani necet a mimochodem vetsina veci jsou zkopirovany a upraveny kousku kodu, co byly nad tim, takze myslim ze to je na miste. Ale at se vyjadri ti, co Doctrine vyviji. Pokud se ti to nelibi Davidku tak pouziju tvoji logiku: OPRAV TO (jo, ja vim ze to nepotrebujes, ale patrne musime vsichni pridavat veci co nechcem zejo)
4) mj. tady: http://zdrojak.root.cz/clanky/videotutorial-doctrine-2-a-notorm-ukladani-dat/ (a pokracuje na svojich strankach)

MW

A proč tedy byla od PHP 5 funkce is_a() označena jako deprecated ve prospěch instanceof, když (podle vás) nedělají totéž? Doporučuji vám se kouknout do manuálu PHP.

krizak

jc nema zapotrebi se zaobirat nejakejma manualama apod, asi pravdepodobne sedi nekde na IRC, bavi se v anglictine a tyhle s**cky neresi.

jc

ba naopak, jc si rad z tyhle tahanice alespon rad odnese novy znalosti

jc

aha, diky za pouceni. Narozdil od nekoho priznam svoji chybu.

David Grudl

Narozdíl od koho? :-)

jc

coz treba Vrana ?

David Grudl

Co znám Jakuba, nikdy neměl problém přiznat svou chybu. Takže tak silné tvrzení bys asi musel podpořit nějakým konkrétním argumentem.

jc

Coz treba celej ten PR stunt, kterej tu furt dokola popisuju ?

jc

btw.:
The instanceof operator was introduced in PHP 5. Before this time is_a() was used but is_a() has since been deprecated in favor of instanceof. Note that as of PHP 5.3.0, is_a() is no longer deprecated.

Nevim proc (asi protoze funguje i ve starsich verzich ?).

MW
David Grudl

Použití is_a() bylo špatné, tvůj kód je nefunkční a chybný.

Operátor instanceof funguje pochopitelně i pro extendované třídy, což je naprostý základ PHP a pokud tohle nevíš, tak asi nemá ani smysl vysvětlovat, co jsou to třeba jmenné prostory a proč nestačí napsat jen is_a(…, ‚Column‘) bez uvedení namespace. Doporučil bych ti překousnout svou hrdost a navštívit školení PHP pro začátečníky, které pořádá Jakub Vrána, dozvíš se tam mraky nových věcí. Až zvládneš základy, oceníš i recenzovanou knihu 1001 tipů a triků pro PHP.

jc

dobre, zapomel jsem na jmennej prostor, s tridou sem to netestoval, jenom se stringem (s tim to funguje). Coz takhle abys ty prestal mektat a udelal to ‚spravne‘, kdyz ses tak chytrej? :)
A porad dokola: to, co sem udelal ja, nijak nesouvisi s tim, co udelal Vrana. Kritizuju Vranu a jeho PR tah. Nebo si navzajem kourite c**ky ze se okamzite musis ozvat na jeho obranu a delat osobni utoky? :)

MW

Téda, podat pull request na neotestovaný kód, to už chce koule.

jc

Otestovanej, ale ne zcela.
stejne nikdo tu vec nechce, pravdepodobne si toho vsimnou az buhvi kdy. Bylo to mysleny spis jako vtip. Kdyby se tam nahodou ozvali a brali to vazne, zvazim jestli to neopravim. Ale kvuli Vranovi se rozhodne nepretrhnu. Mimochodem od toho je to REQUEST – oni ten kod zkritizujou, ja ho upravim a pak (ne)prijmou. Je to jako poslat patch, nijak zavazny to neni.

Mimochodem kdyz ste tak chytri mohli ste si vsimnou toho, ze jsou tam mnohem zasadnejsi problemy nez nejaky is_a. Treba ten fakt, ze pri vytvareni tabulky to muze kontrolovat, jestli ten sloupec uz neexistuje, nebo to, ze by to mohlo ty sloupce preskupit vnitrne v poli a vubec AFTER pri vytvareni nepouzivat. Nebo taky ten celkem podstatnej detail, ze to funguje jenom v MySQL a jinde to tise projde a nic neudela. Kdo to chce, ten si to opravi. A kdo rikal ze sem na tom stravil celej vecer? byl to jenom pokus o vtip. Se tam koukni na casy, ta uprava mi trvala mozna 20 minut.
Jo a trosicku podstatnejsi vec vlastne – DBAL je jenom nepatrna cast Doctrine. Kdyby to nekdo FAKT myslel vazne, asi to prida do ORM. Necht si pak uzije s*ani s anotacema a dynamicky preskupovani sloupcu pri migraci.

djanosik

No, potřeboval bys někoho, kdo by tě pořádně nakop, aby ti otevřel oči :) Ve svém vlastním zájmu bys měl přestat, začínáš se v tom docela topit. A mimochodem, zdroják není linuxový server :)

jc

pointa toho tvojeho prispevku ? Zdrojak mozna neni linuxovej server ale root je. A co sem koukal naposledy, je pod rootem. Dokonce i na uvodni strance jsou clanky z roota. Ja se v nicem netopim, naopak se naramne bavim. To jejich ego je uplne neuveritelny. S tema chybama o kterejch taky moc dobre vi nic neudelal a jeste me poucuje misto toho aby poslal patch. A ta chazka co komentuje tady pod tim clankem, vcetne tebe ? Je holt videt kdo to dneska cte, no. Asi bych si to mel odendat z RSS. V predchozi firme sem to sledovat musel, protoze nam ta mafie byla vnucovana. Mimochodem fakt diky za tu kopu s**cek ktery rikas dibi, grudle, pripravils me o spoustu hodin zivota ktery sem moh travit jinak, nez obchazenim toho tvojeho skvelyho logovaciho systemu. Ja vim, ze za to nemuzes. Bohuzel nektery cesky firmy jsou takovy, ze co je videt a je pouzivany cechama je svaty. Moh bys aspon vic psat poradnou dokumentaci + lepsi kod a min tady mit blby kecy. Ja ted spokojene i v praci pouzivam mnohem kvalitnejsi veci, kde se s vyvojarema da rozumne mluvit a jsem za to velice rad. Me tyhle servery vlastne ani chybet nebudou, jenom je mi lito Cesky Republiky, protoze jestli vy je vychovavate tak to teda pomoz panbuh Cesky PHPkovy komunite.

djanosik

O tom nepochybuji, tady se bavíme všichni, jinak by diskuze dávno skončila. Je na první pohled jasné, že to nebude mít žádný rozumný konec, takže i moje příspěvky jsou čistě pro pobavení.

Zdroják určitě není linuxovej server a nic na tom nemění ani fakt, že pod root patří. Tahle informace se zde objevila už mnohokrát, v několika diskuzích (ne, všechny je nečtu). Předpokládám tedy, že je to stále pravda, nebo snad ne?

Měl by sis uvědomit, že stejně jako ty neměl / nemá Jakub Vrána žádnou povinnost s těmi chybami něco dělat, pokud to nepovažuje za rozumné řešení svého problému.

Cháska? Včetně mě? No to vůbec netuším, do jaké skupiny mě to vlastně řadíš. Aby bylo jasno, k tý tvojí PHPkový komunitě nepatřím a vůbec nemám potřebu se tu někoho zastávat. Jsem jen pouhý pozorovatel. :)

snook

Stačí napsat, že jsi ten idiot z diskuze na Zdrojak.cz, oni už budou vědět :)

jc

tak si tam taky udelej commit a ja ti to pripisu do komentaru

come and play

-my englishky is perfectsky

jc

napis to lip a upravim to tam

martin

takto nejak to vyzera, ked si niekto mysli, ze zhodi druhych. a pritom robi zo seba akurat debila. a to ti ide pekne ;)

jc

cim konkretne sem ze sebe urobil debila ? Kritizuju Vranu za to, co udelal. Myslim si, ze je to naprosto spravna vec s ohledem na to, co udelal.

djanosik

No, přesně tím a pak ještě svým vyjadřováním. On totiž v zásadě nic špatného neudělal :) Možná považuješ Doctrine za kus geniálního kódu, který musí každý pečlivě udržovat a nikdo o něm nesmí říct nic špatného. Ujišťuji tě, že to tak není.

David Grudl

Myslím, že velmi dobře tvůj komentář chápu, ale nemůžu s ním souhlasit. Protože vlastně říkáš, že vše, co vznikne v ČR, je apriori horší, než to, co vznikne za hranicemi. Většinou to tak skutečně je, ale brát to jako dogma je zase sektářství, jen s opačným znaménkem.

Protože jsem přesvědčen o kvalitách Nette nebo NotORM, tak je pro mě nejcennější racionální hledisko, kdy každý použije to, co se mu zdá pro daný úkol nejvhodnější. Chceš si vytvořit racionální názor? Rád tě pozvu na školení http://www.skoleniphp.cz/skoleni-nette-vyvoj-webovych-aplikaci – když usoudíš, že Nette je skutečně nesmysl uctívaný leda sektou, nemusíš nic platit a bude tě to stát jen dva dny života.

jc

muj subjektivni nazor je, ze v CR mozna vznikaj pekny veci. Ale ty lidi okolo PHP co jsou videt jsou pekny smejdi. Kdo nema zapotrebi se zaobirat nejakejma reklamickama a PR apod, asi pravdepodobne sedi nekde na IRC, bavi se v anglictine a tyhle s**cky neresi. Ale to je muj ciste subjektivni pocit z toho co sem zatim videl.

Ján Jaďuď

Pekni smejdi? Ou.. Silne slova, kedze tito `smejdi` ponukli CR komunite rozne zaujimave a najme uzitocne nastroje, ktore sa dokazu presadit aj za hranicami. Ale mas pravdu, minimalne Davidek na mna posobil sympaticky, ked som s nim hovoril ;)

Sedi na IRC a bavi se anglicky? Yo yo, takze kto sa nerozprava po anglicky je n00b a cestina (alebo moja rodna slovencina) sa mozu ist hanbit do kuta lebo nie su dost dobre ano? Mna by len zaujimalo ake s**cky teda tito `inglis spikeri` na tom IRC riesia ;)

A aby sa nepovedalo, toto je len moj subjektivny pocit z toho, co som tu zatial od teba cital.

jc

fakt jo? Pokud tam za hranicema mluvi cesky tak by se to prosadit mohlo, to jo no. Myslis Slovensko? tam by tomu mohli rozumet asi. Smejdi proto, ze nejenom ze neprispejou k projektum, ktery uz existujou a jsou dobry kdyz jenom potrebujou priohnout pro jejich ucely. Nejenom ze si zacnou delat na svym pisecku. Oni dokonce takhle musi ukazat na tu puvodni vec a sjet to pekne verejne na nejvetsim ceskym linuxovym serveru. Proto smejdi. S tou anglictinou to bylo mysleny tak, ze spousta dobrejch lidi nad tou ceskou php komunitou uz asi povzdychlo a slo o dum dal. A pokud te zajima jaky ‚sr*cky tito inglis spikeri na tom IRC resia‘, skoc si na freenode.

Filip Procházka

:D :D :D

/ban 188.120… Ignorant

MW

Vy jste dáreček :) Mimochodem, odkdy je Zdroják největší český linuxový server?

anonymous whore

Jojo, vidime… Resis jak pracovat s GitHubem, jak dopadly volby a jakej tarif v telefonu je nejlepsi, PR ani reklama to rozhodne neni.

jc

ale ale, k tomuhle se snizit?

1) co to s tim ma spolecnyho?
2) vsechno ani nejsem ja
3) nelogujou se vsechny kanaly
4) nektery logy ani nejsou indexovany

ale tohle je teda pekne trapny. Kdyz te to tak zajima, chvilinku sem pomahal vyvijet gentoo-openmoko a snazim se prispivat spis do Symfony. A ani zdaleka veskera komunikace se neodehrava na IRC.

krizak

Ostatni oznacovat za smejdy, co si otviraji tlamy, to ti jde dobre, co? Ale jak nekdo trefi tebe, tak kvicis o urovni a o trapnosti… No, odkopal ses kvalitne.

jc

Mluvim o tom, co Vrana a spol. provedli. Realna dohledatelna vec. Jak s tim souvisi to, co sem udelal ja ?

MW

Třeba tak, že u nich se ví, co udělali, nebojí se jít s kůží na trh a hromada lidí to rádo používá. Vy jenom dštíte síru. Kdopak toho provedl víc pro dobro ostatních?

jc

vyzdvihnul sem neco, co rozhodne pro dobro ostatnich nebylo. Tezko rict jestli to bylo vubec i pro jejich dobro.

martin

odkial to vies? si nejaka vyssia autorita, ktora rozhoduje o tom, co je vacsie dobro, a co je zlo? alebo mas nejaky problem s konkurencnym prostredim?

djanosik

On má problém především sám se sebou. Z toho už vyplývá zbytek.

jc

ja se sebou zadnej problem nemam, jenom vyjadruju svuj nazor. Nesmim snad? Pokud jste takovi puritani ze to tu nezkousnete tak mi to klidne smazte. Jenom me zajimalo, kolik lidi ten nazor sdili.

djanosik

Jistě, na to máš samozřejmě plné právo, ale, víš, všichni jsme si tvůj názor už přečetli a myslím, že si každý udělal určitý obrázek. Jen tím chci říct, že svůj názor prezentuješ jako vůl (pánové prominou) a že to určitě nemáš zapotřebí. Také je pro mě dost zarážející, jak moc ti ta česká PHP komunita leží v žaludku. Skoro z toho kouká závist :)

A mimochodem, někde jsi tu zmínil, že pošpinili Doctrine. Moc o tom nevím, ale co to je za blbost? Pokud poukážu veřejně na slabé stránky nějakého produktu, je to jen dobře.

jc

Ten problem sem tu uz popsal v hodne prispevcich, staci to precist a mrknout na Vranovo clanky (+ asi i ten clanek o Doctrine co vysel na rootu).
Zavist v tom samozrejme neni, jak uz sem rikal, spis me stve ze se diky tomu minimalne slusni PHPkari, ktery znam, se od ty cesky PHP komunity distancujou. Srovnejte to treba se Symfony, kde dokonce i spolupracujou se Zendakama a pouzivaj si navzajem komponenty. To je ‚konkurence‘, co ? Muj nazor je, ze takovyhle chovani by vubec komunita okolo open source projektu mit nemela.

djanosik

Hmm, jeho články čtu. Zmínění „slušní“ PHPkaři zřejmě postrádají nadhled. Napadlo tě, že to třeba nejsou „open source“ projekty, že prostě jen mají otevřený kód?

jc

Ze stranek NotORM: Free for commercial and non-commercial use (Apache License or GPL), obe uznany jako open source.

djanosik

Samozřejmě, ale licence sama pouze stanovuje podmínky šíření / využívání díla, nikoliv to, jakým způsobem by se měl chovat jeho autor nebo komunita. V žádném případě to neznamená, že projekt naplňuje nebo že musí naplňovat podstatu open-source. Dá-li se o něčem takovém mluvit :)

jc

Ona ta open source definice je celkem jasne dana, doporucuju kouknout na wikipedii. A mluvils o kodu. Kazdopadne ale sem rad ze nemas pocit, ze se takhle chovaji komunity ‚opravdovych‘ open source projektu, za to +

djanosik

Děkuju, ale já netuším, jak se takové komunity chovají a už vůbec si nemyslím, že je nějaké chování v tomto ohledu správnější než jiné :) Já vlastně vůbec nerozlišuju open-source a ne open-source projekty, ale spíše kvalitní a nekvalitní :) Ono to totiž svádí k nesprávným úvahám.

A ne, nemluvíme o kódu, ale o produktech a o jejich autorech, komunitách kolem nich.

jc

je to proste muj nazor, jenom jsem reagoval na prispevek cloveka, kterej ma podobnej nazor jako ja a to OT zacal. Kdyz uz tu byla okolo chovani ty komunity rec, proc nepripomenout neco co je dle mojeho osobniho nazoru docela slusne zvorany. S tim, kdo komu ma pravo kazat jak se programuje ma asi vetsi zkusenosti nekdo jinej, do toho se mu fusovat nebudu ;)

krizak

kazes tu o urovni a trapnosti a sam se o druhych vyjadrujes jako sprosty dobytek, tak to souvisi…

jc

pointa je obsah, ne podani

Verajo

Pokud jsme u te ceske kotliny. Chtel bych se zeptat Vas jako jednoho z nasich vydatnych „pojidacu kolacu“, jak je to s rychlosti dibi a jak je to s jeji budoucnosti? Nekde vyse ve vlakne bylo zmineno, ze Doctrine je rychlejsi? (me osobne to prijde jako nesmysl, snad i z tohoto testu). Me osobne by zajimal, jak by dopadl, kdyby se nepouzil DibiFluent zapis (koukal jsem totiz, ze http://github.com/dg/ORM-benchmark/tree/dibi neni dostupny). A co integrace NotORM do dibi 2.0?

Neco k te ceske PHP kotline. Kdysi jako kazdy „spravny“ PHP-kar jsem se pustil do psani vlastniho frameworku a ejhle, pres Zend a Kohanu ted pozivam Nette, resp. pouziva ho cela nase firma a kritiku ve smyslu, ze NotORM, Nette atd. jsou dilem lidi co si chteli pohonit tricko a rekli si „udelame to lepe, cesky, hezky…“, obcas slycham a vim, ze takove reci rikaji lidi co ty ‚komponenty‘ nestuduji dukladne anebo by si prave oni radi to triko pohonili (:D) a jak tak koukam podobne je na tom i tato diskuze.

Abych to shrnul. Dik Vam i Jakubovi, ze pecete kolace i pro dalsi hladovce, mit moznost tak bych vas za to poplacal i po tech zadech a kupil nejaky opravdy kolac (i kdyz pro Vas spise ten tekuty :D)

Ondra

Brání Vám něco v sepsání odborného článku, který by podtrhnul problémy Nette Frameworku, NotORM a ostatních knihoven vzniklých v Česku; nebo tady jen tlučete hubou?
Věřím tomu, že David Grudl, Jakub Vrána a komunity u všech projektů uvítají konstruktivní kritiku jejich práce.

František Kučera

A proč vůbec psát tyhle negativní články? Špatného softwaru* je spousta, tak proč o něm psát? Přijde mi to stejně ujeté, jako když někdo píše o exotech a idiotech českého internetu a tráví tím hodiny a hodiny. No dobře, jsou to idioti, ale proč nad nimi ztrácet čas? Proč se radši nezabývat něčím/někým, kdo za něco stojí? Když už si najdu čas na psaní (a že bych si ho zase měl najít :-) tak radši budu psát o něčem dobrém, o něčem, co se mi líbí a baví mě – ne kydat proti cizí práci (pokud je tak mizerná, tak ani nestojí za to o ní psát).

*) to myslím obecně, nemluvím přímo o Nette, neznám ho.

Čelo

Mám dojem, že zrovna od vás jsem četl celkem zcestný článek „Humbuk kolem NoSQL databází“… odpověděl jste si na vaše první dvě otázky? :)

František Kučera

Doporučuji si z toho článku přečíst víc než jen nadpis. Není o tom, že by nosql byla špatná technologie – špatná není, je jen hodně speciální. Ve světě nerelačních databází se najdou i některé dost zajímavé věci a líbí se mi to, akorát to prostě není pro masové nasazení (jak se naopak někteří „evangelisté“ snaží přesvědčovat).

Čelo

Ale naopak, já pochopil, co jste se snažil popsat, ale pokud vás ocituji „radši budu psát o něčem dobrém, o něčem, co se mi líbí a baví mě – ne kydat proti cizí práci“, tak z článku a vašich posledních příspěvků jsem nabyl dojem, že vy sám považujete hype kolem NoSQL databází jen za humbuk.

Souvětí „databázové systémy vyvíjejí ti nejlepší programátoři desítky let a tyto systémy se důkladně testují – zatímco aplikaci vyvíjejí průměrní programátoři třeba půl roku“ mi přijde opravdu záměrně pošpiňující a zevšeobecňující práci určité skupiny lidí.

Takže se pletu a vám se jak píšete NoSQL „líbí a baví vás“ a proto jste vlastně článek napsal?

František Kučera

Co se týče „záměrného pošpiňování“ práce určité skupiny lidí – sám do té skupiny lidí patřím, takže si snad takovou sebekritiku můžu dovolit :-) Vlastně to není až tak kritika, jako neutrální konstatování faktu – prostě vím, co se dá v rámci běžného komerčního projektu stihnout a co už ne. Některé věci se ti „nevejdou do rozpočtu“, ani kdyby ses rozkrájel, je potřeba dlouhodobé zázemí a klid na primární výzkum – to ve většině firem není. Dá se to zvládat při spolupráci na svobodném softwaru napříč několika firmami, nebo na univerzitách, nebo v opravdu velkých korporacích. Takové podmínky k práci mají třeba autoři PostgreSQL – za to jim patří obrovský dík.

A ano, některé NoSQL se mi líbí, zajímám se o ně a baví mě – časem o nich taky něco víc napíšu (možná trochu paradoxně na serveru, který má v názvu SQL :-)

jc

naprostej souhlas ve vsem. Ja si ten cas udelal, protoze uz me to fakt namichlo. Kdyby zustali v tom svojem pisecku a nevystrkovali hlavy mezi slusny lidi a neotvirali si tlamy, jsem zticha.

Čelo

„Začnete-li rozdělovat lidi na kategorii my a oni, stáváte se automaticky členem kategorie oni.“

jc

sice nechapu vetu ale asi chapu pointu. To je pravda. Myslel sem urcite hlavne Vranu a vsichni, kdo se na zrodu NotORM podileli. Nette a spol se aspon chova celkem slusne, at uz je marketing jakej chce.

loki

Kazdy se muze rozhodnout, jakou cestou se budou jim vyvijene projekty ubirat. Osobne si myslim, ze php a nette neni nejlepsi cestou, ale kdyz se tak nekdo rozhodne, tak proc ne? Vy budete patrne jeden z tech uzasnaku u popelnic, kdyz mate v ustech tolik jedovatych slov. Jinak vami jmenovani a kritizovani panove neco dokazali (patrne narozdil od vas).

Článek přitahuje trolly a magory

Čím to, že tento článek má troll-appeal?

Radek Hulán

Mám na knihu podobný (pozitivní) názor. I když, prvních cca 100 stránek mě nudilo, ovšem než jsem se dostal k návrhovým vzorům a objektům, tam je hodně moc zajímavých doporučení, a pokračuje to i v databázích, XML a bezpečnosti. Jsou to věci z praxe, které si člověk nemusí nutně uvědomit. Ta kniha dohromady dává větší smysl než se zdá z názvu, není to jen soubor náhodných a osamocených perliček a je užitečná i pro lidi, co v oboru dělají roky (či desetiletí).

mikiqex

Myslel jsem si, že jsem v PHP už zběhlý, ale pak jsem si koupil tuhle knihu… :)

JakubS

Jediné co mohu knize vytknout je její zpoždění. Kdyby vyšla před pár lety ušetřila by mi mnoho hodin objevování.

Teki

Každá skupina lidí se dá rozdělit. Někdo dělá (někdo dobře, někdo špatně), někdo žvaní (někdo dobře, někdo špatně)…

Některé skupiny se nám prolínají. Někdy je to dobře, někdy špatně.

Pan Grudl, Vrána, Plaváček – ti všichni něco udělali. Možná dobře, možná špatně. Nás ostatní to může přivést minimálně k tomu, že o tom začneme přemýšlet. Lépe něco dělat. Ještě lépe něco dělat dobře.

Pokud z toho vznikne něco použitelného, je to IMHO dobře.

Smutné je (a IMHO špatné), že jc, Martin Soušek a další moc nepřemýšlí. Postiženi momentální oborovou genialitou dokáží posoudit a vyhodnotit. A tak tu během týdne máme geniální jaderné fyziky, neoceněné briliantní programátory atd. Jen o nich bohužel nikdo neví. A IMHO nikdy vědět nebude.

Jdu něco dělat. Možná dobře, možná špatně.

A pane Grudle, Vráno, Plaváčku, …. Díky.

Teki

Ještě jsem zapomněl: pane Malý, Vám taky – díky.

Filip Procházka

Chtěl jsem si taky rýpnout, ale udělal jsem dobře, že jsem počkal, až to někdo napíše lépe :)

v6ak

… ale i triků. :-)

Omlouvám se, ale nedalo mi to. Jakkoli je článek zajímavý, nadpis k tomuto opravdu svádí.

Oldis

znam Vranuv web, z dob kdy jsem hledal nejaka reseni jistych veci, a dnes musim rict ze kod ktery jsem tam vzdy nasel, nebyl, jak bych to rekl, podle mich predstav, z toho bych mel trochu obavu si tuto knihu poridit.

kony

tos toho pak asi moc nevidel (jen subjektivni nazor)

MW

Byl bych pro, aby se tahle diskuse smazala, alespoň vlákno „česká cesta“. Nic dobrého to nepřináší.

Jakub Vrána

Smazání je podle mě zbytečné. Ale vzhledem k tomu, že hned první příspěvek (a všechny následující ještě víc) nijak nesouvisí s článkem, tak bych je na svém webu přesunul do obecného Fóra, kam se to hodí lépe. Já jsem v této diskusi reagoval na příspěvky ke zdrojáku Admineru, což s článkem také nijak nesouvisí.

Lucius

Mne se kniha libi a je pro me zajimava a uzitecna, takze dekuju panu Vranovi za dobre odvedenou praci.

Te cast diskuze o ceske PHP komunite a ceskych PHP projektech mi pripomnela vsechny ty „valky“ mezi C#, Java, C++ atd. a nebyt tech invektiv, tak se tomu dalo i smat. Snad se to nestane tady na Rootu standardem.

mkoula

Já si jí snad budu muset koupit „kucí“ ;-)

Zatím jsem byl línej a trochu skeptickej, ale možná ani o Bibli by se tolik nediskutovalo :-)

Jaroslav Šindler

Pridam sem take svuj skromny nazor a vezmu to mozna z trochu jineho uhlu pohledu. Vsichni zaciname od piky. V autoskole nas uci znat znacky a krizovatky, ve skole louskame slabikar. Muzeme vsak o autorech ci obsahu techto publikaci prohlasit, ze jsu mene kvalitni, ci ze nic neprinasi? Naopak, kdyby jich nebylo, jak bychom se pak dozvěděli o teorii relativity?
Ja jsem knihu pana Vrany prelouskal za tri dny. Nemohl jsem se od ni odtrhnout a shledal jsem ji velice pozitivni a prinosnou. Spoustu veci jsem vedel a pouzil, spoustu veci nikoliv nebo jsem videla treba dalsi zpusob reseni, ktery mne jeste nenapadl a mnohdy elegantnejsi.
Ocenuji, ze se nasel nekdo, kdo se s nami ostatnimi, kteri nemaji ambice ani vedomosti na to vydat knihu, podelil o sve zkusenosti a predlozil rozmanite napady. Nepovazuji knihu za zacatecnickou, ale za takovou, ktera mi utridila nazory a rozsirila obzory.
Jestli se nekomu zda reseni nekterych problemu jine, „chybne“ ci „spatne“, pak vezte, ze cest k vysledku vede mnoho a kolik programatoru, tolik moznych reseni.
Domnivam se, ze je treba podporovat jakoukoliv snahu o rozvoj informovanosti v oblasti programovani. Zkratka knizek o programovani neni nikdy dost a jsem stastny a hltam kazdou, ktera mi prijde do ruky. A myslim s, ze si umim udelat nazor na hodnotu informaci, ktere mi prinasi a vybrat prave ty relevantni.
Takze: „Pane Vrano, tesim se na 1001 triku pro PHP 2, 3 a 4.“

P.S. knizka mi take pomaha v mem zamestnani: vyucuji programovani na stredni skole a spoustu prikladu z knihy jsem prezentoval studentum. Pro mne idelani hotove kousky kodu s velkou demonstracni hodnotou k prave probiranym tematum.

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.