Recenze: PHP Okamžitě

Tato kniha mě zaujala především tím, že se snaží přiblížit jazyk PHP úplným začátečníkům. Osobně si myslím, že je to nesmírně složitý úkol. Proto jsem se rozhodl podívat se na tuto knihu podrobněji. A jak si podle mého názoru kniha stojí? Čtěte dále!

Když mi kniha dorazila, překvapilo mě, že celkový počet stránek se zajímavým obsahem (čti mimo rejstřík apod.) je jen 117. Vzhledem k velikosti stránky o něco větší než A5 jsem byl zvědav, jak dobře a hutně je kniha napsána. Na zadním přebalu knihy totiž stojí, že se čtenář za víkend naučí základy jazyka PHP a že se seznámí s některými jeho pokročilými rysy (OOP, sessions, zabezpečení). Mimo jiné má ale také čtenáře naučit nainstalovat lokální webový server, nastavit PHP a připojit se k databázi a pracovat s ní. Pokud by se jednalo jen o základy jazyka PHP samotného, asi bych nebyl rozsahem knihy tolik překvapen. Nicméně tato další témata mi zde připadala jaksi navíc.

ab7019267acf2ddc8cae8626471fd08c

Dále bych mohl hodnotit jednotlivé části knihy tak, jak jdou za sebou. Raději se ale zaměřím na ty části, které mě pozitivně nebo negativně zaujaly celkově.

Úvod a instalace

Zpočátku se mi část o instalaci webového serveru, PHP a MySQL databáze zdála poněkud táhlá. Nakonec je ale podle mého velmi užitečná. Je sice pravda, že na internetu je možné takových návodů najít velké množství, ale jako začátek knihy pro začátečníky je to určitě vhodné téma. Především mě ale zaujalo to, že autor popisuje instalaci nejen na jedné platformě, ale hned na třech nejpoužívanějších (v dnešní době) – Windows, Mac OS X a Linux. Dříve jsem se často setkával jen s jednou zmíněnou platformou a pokud jsem používal jinou platformu, musel jsem si návod najít sám.

Výsledkem většiny příkladů v knize má být jednoduchá blogovací aplikace s administrací. Ukázka použití jazyka PHP na „reálném“ příkladu jistě přispívá pochopení některých kontrukcí, ale zároveň může přinést další složitá témata, která mohou být pro začátečníka zbytečně matoucí. Například hned v druhé kapitole popisující základní konstrukce jazyka PHP (podmínky, cykly, …) je velká část věnována datům ukládaných do databáze. Asi by mi nevadilo tolik, kdyby byla tato znalost hned zužitkována. Databázi totiž reálně používají příklady až ve čtvrté kapitole. Působí to tak na mě trochu jako míchání jablek s hruškami.

Jedním z příjemných překvapení bylo uvádění odkazů na související články nebo dokumentaci. Pokud čtenáře dané téma zajímá více, okamžitě vidí, kam se ubírat dále. Především mě ale potěšila aktivita překladatele. Mezi odkazy totiž často přibyl odkaz na zdroj informací v češtině, což zcela jistě v originální knize nebylo. Osobně si myslím, že pro začátečníka je uvedení českého zdroje informací velkým přínosem.

Objekty

Poněkud matoucí se mi ovšem zdálo zařazení povídání o šablonách do kapitoly o objektech a OOP. Navíc tato kapitola je hned třetí v pořadí a obsahuje odkazy na návrhový vzor MVC a známé PHP frameworky. Osobně si myslím, že tyto informace začátečníka mohou jen zbytečně mást, když se jimi autor dále příliš nezabývá. Je sice dobré o těchto možnostech informovat, ale v knize pro úplné začátečníky by to být nemuselo.

Velkou část třetí kapitoly tvoří ukázky kódu, který autor slibuje rozšiřovat v dalších kapitolách. Osobně nevidím přínos v kompletní ukázce několika tříd s prázdnými metodami. Především pokud je možné kód ke knize stáhnout. Na druhou stranu autor slibuje zvýrazňovat v dalších kapitolách nově přidané nebo změněné části kódu, a tak stačí k pochopení kódu jen kniha. Toto zvýraznění jsem ale bohužel nikde neviděl a předpokládám, že se tato informace ztratila během překladu. Za sebe mohu říci, že se mi v dlouhých ukázkách kódu relativně špatně hledaly upravené části. Pro začátečníka tak může být opravdu složité najít v takové změti kódu nové části.

Bootstrap

Trochu zbytečné se mi zdálo použití frameworku Twitter Bootstrap pro stylování výsledné aplikace. Použití této knihovny je sice popsáno stručně a v kódech ke knize je vše připraveno, ale začátečníka to může jen mást. Navíc použití tříd této knihovny v ukázkách HTML kódu je zbytečně komplikuje.

Přihlašování

Autor se v knize věnuje i přihlašování uživatelů a tedy použitím cookies a sessions. Přestože v ukázkách kódu je nutné zachovat proměnnou $_SESSION, text obsahuje její překlad relace. Trochu zvláštně na mě působilo, že slovo cookies není přeloženo jako sušenky, respektive že slovo sessions přeloženo vůbec bylo. Je pravda, že překlad pomáhá pochopení smyslu sessions, ale to by dle mého názoru stačilo jen vysvětlit na začátku kapitoly. Jako pozitivum ale beru to, že je autor ve zbytku knihy konzistentní a používá jen výraz relace.

Pro přihlašování uživatelů autor používá hesla zahashovaná pomocí MD5 algoritmu. Přestože se nejedná o bezpečné ukládání hesel, začátečníkovi alespoň není potřeba vysvětlovat použití spolehlivějšího šifrování. Na druhou stranu je pak takový začátečník naučený používat MD5 a je potřeba ho v praxi přeučit. O co hůř, v knize není použit ani žádný salt pro hashování hesel. Kdyby alespoň ten byl zmíněn a použit, přimhouřil bych oči více.

Autor se hned na začátku knihy odkazuje na PHP ve verzi 5.4 (originální kniha je z roku 2013). Když už překladatel přidal několik odkazů na české zdroje informací, mohl přidat i odkaz na PHP verze 5.5 a použití funkcí password_hash a password_verify. Otázka ale je, jestli by tím příliš neměnil obsah knihy.

V souvislosti s uživateli používá autor službu Gravatar pro získání uživatelova avatara, který se zobrazuje v administraci vytvářené aplikace. Myslím si, že se jedná o stejnou zbytečnost jako použití knihovny Twitter Bootstrap.

Namespace

Nesmím zapomenout na to, že autor v celé knize až témař do konce nezmínil namespaces v jazyce PHP. Osobně jsem si toho nevšiml, dokud nepřišly na řadu tak nějak mimochodem. Autor se rozhodl pro psaní příspěvků ve výsledné aplikaci použít jazyk Markdown. Aby ho mohl zpracovat a přeložit do HTML, použil existující PHP knihovnu, která namespaces používá, a tak je tedy zmínil. Ovšem jejich vysvětlení je velmi krátké a nemusí začátečníkovi stačit. Kdyby bylo namespaces věnováno více prostoru, rozhodně bych to přivítal. Navíc se opět dle mého názoru jedná o zbytečné použití cizí knihovny.

Bezpečnost

Přestože autor použil MD5 hashování pro ukládání hesel, relativně často zmiňuje bezpečnost. Pro databázi používá rozšíření PDO a binding hodnot přes otazníky. Zmiňuje u toho útok SQL injection. Dále v souvislosti s cookies zmiňuje útok XSS. V poslední kapitole knihy se věnuje několika bezpečnostním tipům, především pro konfiguraci samotného PHP. Celkově na mě kniha po stránce bezpečnosti nepůsobí příliš dobře. Na druhou stranu, jako začátečník jsem sám nic podobného neřešil a je pozitivní, že alespoň něco málo se z knihy čtenář dozví.

Shrnutí

Jak jsem už několikrát zmínil, předklad přinesl několik odkazů na české zdroje informací. Bohužel se ale v překladu ztratilo i pár informací. Především již zmíněné zvýraznění nového nebo změněného kódu. Na několik místech jsem se zasekl u formulace, která mi neseděla. Nicméně mám za to, že se opět jednalo o problém překladu. Stačilo se totiž trochu zamyslet nad tím, jak to asi bylo formulováno v originále. U takových formulací se však začátečník nejspíš nepozastaví. Ale pokud ano, zbytečně ho to může mást.

Zmínil jsem několik pozitiv a hromadu negativ. Nicméně celkové hodnocení této knihy je pro mě náročné. Já se kolem PHP už pár let pohybuji a tedy nedostatky vidím a vím, jestli a jak moc velkým problémem jsou. Začátečník však ty nedostatky nevidí a může se tak naučit špatným zvykům. Pozitivem ovšem je, že kniha nezachází do přílišných detailů a jde ke svému cíli – napsat za víkend jednoduchou blogovací aplikaci. To může být pro začátečníka velmi motivující. Přestože se během čtení nedozví mnoho (dle mého názoru důležitých) informací, rychlý výsledek ho může motivovat k další aktivitě.

Kniha je dle mého názoru pro naprosté začátečníky, kteří si navíc hromadu informací sami dohledají a kteří si sami vyzkouší různé konstrukce. Samotná kniha totiž základy jazyka PHP téměř nenaučí. Velkou zásluhu na tom podle mě mají především velké přesahy na databázi, frontend a některá zbytečně zmiňovaná témata. Jejich prostor mohl být využit lépe. Pokud bychom chtěli podobnou knihu napsat například pro Python, velká část knihy by mohla zůstat stejná. Je možné, že si kniha své čtenáře najde. Zkušenější čtenáři ale budou překvapeni, protože knihu bych spíše pojmenoval „Jak za víkend zbastlit jednoduchý blog“ (ani není potřeba zmínit PHP). Raději bych tedy čtenáře nasměroval k hledání informací na internetu, protože stejné informace se dozví zadarmo i tam a mnohdy i v pěkných seriálech.

Údaje o knize

Název: PHP Okamžitě
Autor: Callum Hopkins
Počet stran: 136
Nakladatelství: Computer Press
Rok vydání: 2014
EAN: 9788025141960
Ukázky z knihy: knihy.cpress.cz

Od roku 2007 kódoval několik webů a o rok později se začal věnovat vývoji backendu v PHP a v Nette Frameworku. V roce 2014 vystudoval obor Softwarové inženýrství se zaměřením na webové inženýrství na FIT ČVUT. Od roku 2013 pracuje jako vývojář v DámeJídlo.cz. Jeho velkým zájmem je návrh a testování RESTful API.

Věděli jste, že nám můžete zasílat zprávičky? (Jen pro přihlášené.)

Zatím nebyl přidán žádný komentář, buďte první!

Přidat komentář
Zdroj: https://www.zdrojak.cz/?p=12818