Hlavní navigace

Perličky: další čtení

13. 10. 2008
Doba čtení: 7 minut

Sdílet

U příležitosti 16. dílu seriálu bude dnešní článek namísto klasické spršky vykonatelného šumu na lince poněkud netradičně zaměřen na souhrn používaných zdrojů informací, které jsou dostupné jak na internetu, tak těch ve vašem oblíbeném knihkupectví a ze kterých bylo čerpáno při výrobě předchozích patnácti dílů.

Online zdroje informací

Pravděpodobně nejčastěji navštěvovaným zdrojem jsou manuálové stránky, dostupné na adrese perldoc.perl.org, která v době psaní tohoto článku obsahuje dokumentaci ke dvěma nejaktuálnějším verzím, 5.10.0 a 5.8.8. Manuál je také možno zobrazit pomocí programu perldoc (speciálně užitečný je příkaz perldoc -f funkce pro rychlou nápovědu k jakékoliv zabudované funkci), nebo v nejhorším případě klasicky přes man. Manuálové stránky neposkytují informaci ve formě vhodné pro učení neznámého, ale naopak jsou vynikající pro rychlé vyhledání přesných informací k již známým tématům.

Dalším známým zdrojem je stránka search.cpan.org. Zde je možno vyhledávat dostupné moduly v síti CPAN. Osobně se mi moc neosvědčilo vyhledávání přes kategorie či autory (pokud nevím, co přesně hledám), naopak vyhledávání pomocí klíčových slov často vede ke kýženému výsledku. Obvykle věnuji hledání v CPANu dostatečnou pozornost před tím, než se pustím do vlastní implementace nějakého řešeného problému. Je časté, že se problémem někdo již zabýval a v ideálním případě je k dispozici rovnou modul, který řeší všechny požadavky. V jiných případech se lze alespoň podívat na zdrojový kód modulu a inspirovat se.

Velkou směs různých článků, tipů, návodů, otázek a odpovědí představuje stránka perlmonks.org. Pro vyhledávání zde může být ale výhodnější použít klasický webový vyhledávač (např. Google) s omezením na tyto stránky.

Potřebujete-li se na něco zeptat, je možné použít zmíněné stránky perlmonks, nebo IRC kanál #perl na vaší oblíbené síti. Dobrou osobní zkušenost mám s tímto kanálem na sítích IRCNet a Freenode. Krom povídání s živými lidmi je také možno použít roboty k vyhodnocování perlovských výrazů. Ještě užitečnější může být obdobná funkce pro různé interprety jazyka Perl verze 6, a to na kanále #perl6 na síti Freenode.

Někdy se mi stává, že zapomenu, v které knize jsem něco četl. Tudíž si pozornost zaslouží funkce vyhledávače Google pro prohledávání knih (books.google­.com). Sice vám neukáže konkrétní text z knihy, ale poví, v které knize na které straně máte hledat. Pak mi stačí zajít do druhého pokoje a knihu vytáhnout. Některé knihy – zejména Perl Cookbook– jsem také našel online, a to na adrese www.unix.com.u­a/orelly/perl. (Je možné, že tam budou i jiné knihy než o Perlu.)

Knihy obecné

Studium tištěných materiálů pokládám za komplementární činnost ke studiu věcí dostupných na Internetu. Za prvé, ač někdo může nesouhlasit, kniha se lépe čte. Druhou výhodou je organizace textu v knihách – obvykle poskytují ucelený přehled o nějakém tématu, kde je možné sledovat určité myšlenkové postupy, na rozdíl od strohého technického rázu manuálových stránek a dalších online zdrojů. Nevýhodou ovšem je zastarávání informací a v některých případech nepřesnosti až chyby v textu.

Prvních několik dílů seriálu čerpalo informace a náměty z knihy Intermediate Perl. Tato kniha obsahuje stručně řečeno vše, co dělí perlistu-začátečníka od perlisty-středně pokročilého: efektivní práce s poli, hashi, referencemi, základy OOP (ačkoliv ne inside-out objekty), psaní modulů a testování (poslední dvě témata zatím nebyla hlouběji zmíněna). Toto všechno je překvapivě vměstnáno do cca 200 stran, které lze celkem rychle absorbovat. Nabyté znalosti pak čtenář může demonstrovat na cvičeních, zejména pak na tom posledním – „write a module to solve the halting problem“.

Nutno říci, že ačkoliv je tato úroveň znalostí označena jako intermediate, jedná se z praktického hlediska o oněch 80 %, které lze vstřebat za 20 % času. Kam se vydat pro zbylých 20 %, záleží především na povaze řešených problémů a samozřejmě také programátora.

Za komplementární knihy bych označil Perl Cookbook a Perl Best Practices. Zatímco Intermediate Perl je učebnicí více-méně teoretickou (ale důležitou), Perl Cookbook obsahuje na dobrých 900 stranách zhruba srovnatelně tolik praktických návodů k řešení nejrůznějších problémů. Aktuální druhé vydání je z roku 2003 (výše zmíněná online verze je první vydání, 1998). Ačkoliv spoustu návodů je možno použít beze změny, je dobré si vždy doplnit aktuální informace z manuálových stránek nebo CPANu.

Kniha Perl Best Practices (poměrně aktuální – 2005) pak doplňuje tyto praktické i teoretické znalosti seznamem doporučení ohledně psaní čitelných a udržovatelných programů. Najdeme zde rady k typografii zdrojového kódu, jeho nízko- i vysokoúrovňové organizaci, a další („Don't be clever.“). Jelikož mnohá doporučení nejsou specifická pro Perl, je možno ji k danému účelu doporučit i programátorům v jiných jazycích. Automatizovanou verzí Perl Best Practices je modul Perl::Critic, který umožňuje kontrolu zdrojového kódu vůči definovaným prohřeškům, jejichž většina právě čerpá z této knihy. Samozřejmě, pointou není slepé dodržování všech pravidel (se všemi najednou souhlasí snad jen sám autor), ale jejich vstřebání a rozumné použití.

Přirozené pokračování rozvoje znalostí může nabídnout Mastering Perl. Na rozdíl od Intermediate Perl ale není už učebnicí v pravém slova smyslu, spíše volně plynoucím proudem myšlenek. Článek o pokročilých regulárních výrazech má své kořeny právě zde, jakož některé další. Lze se tady dočíst mnoho o bezpečnosti, debugování, profilování a benchmarkování, jakož i o některých pokročilých technikách, např. práce s tabulkou symbolů a  tie, a to vše opět ve velmi kompaktní formě (cca 300 stran).

Praktickým komplementem k Mastering Perl bych nazval knihu Perl Hacks. Podobně jako u Cookbooku je zde vypsáno cca sto praktických problémů a jejich řešení. Některé z nich pokládám za ne příliš vydařené, až zbytečné, některé naopak za geniální. Modul na intervalovou aritmetiku v článku o přetěžování operátorů našel inspiraci právě v jednom z těch geniálních.

Kolekci obecné literatury uzavírá Mastering Algorithms with Perl. Tuto knihu bychom mohli nazvat „Knuthem v kostce“. Jedná se o velmi dobře zpracovaný přehled známých a používaných algoritmů ze všech běžných oblastí –řazení, hledání (v datových strukturách i v textu), lineární algebra, množiny, grafy, stromy, numerika, šifrování, pravděpodobnost a statistika. Algoritmy jsou implementovány v jazyce Perl a většina z nich je jistě k nalezení jako samostatný modul na CPANu; chcete-li ale znát jejich podstatu, nebo učíte-li se na státnice, je tato kniha velmi dobrým výchozím bodem.

The Perl Journal

Časopis The Perl Journal byl kolem přelomu tisíciletí shromaždištěm zajímavých článků z nejrůznějších oblastí, mj. také příspěvků do Obfuscated Perl Contest. „Výcuc“ nejzajímavějších článků poskytuje trilogie knih s podtitulem Best of The Perl Journal: Games, Diversions & Perl Culture, Web, Graphics & Perl/Tk a Computer Science & Perl Programming. Za nejvíce vydařenou považuji první knihu, obsahující kapitoly o kultuře kolem Perlu, něco o samotném TPJ, o jazyce (obzvlášť pěkné články o tom, jak nechat stroj porozumět lidem), o hrách a pak spousta odpočinkových věcí jako kvízy, poezie a také ten obfuscated contest. Zbylé dvě knihy se občas tematicky kryjí s některou ze specializovaných knih (viz níže), ale i tak je možné si doplnit některé mezery, případně získat jiný náhled.

Tematické knihy

Kdo se chce dovědět vše podstatné o nadcházející verzi Perlu, může sáhnout po knize Perl 6 and Parrot Essentials. Jelikož je nový Perl stále ve vývoji, je kniha poněkud nepřesná, ale tyto nepřesnosti nejsou nikterak dramatické a vždy je možno nejnovější informace dohledat na síti. Kromě struktury jazyka Perl 6 popisuje kniha assembler virtuálního stroje Parrot a nízkoúrovňový jazyk PIR. Na Perl 6 se také krátce podíváme v některém z článků.

Jelikož mám ve velké oblibě grafický toolkit Perl/Tk, musím vyzdvihnout knihu Mastering Perl/Tk. V této knize se pohodlně dočteme o všech vymoženostech tohoto toolkitu a zároveň je možno ji použít jako manuál a rejstřík (aktuální detaily se pak dají dohledat na CPANu). Pokud někdy chcete dělat GUI aplikace pomocí Perl/Tk, neměli byste tuto knihu přehlédnout. O toolkitu se také ještě zmíníme podrobněji v seriálu.

Perl Graphics Programming je příručkou ke knihovnám GD a SDL, práci s nástroji ImageMagick, Gimp, formáty PDF, SVG a další drobnosti. Zkrátka vše, co je potřeba ke generování nebo úpravě grafiky pomocí Perlu. Kniha je vhodná zejména k získání patřičných obzorů, funkci manuálu ale podle mne neplní, je lepší tedy konkrétní moduly a funkce hledat na CPANu.

CS24_early

Závěr

A to je vše, přátelé, více jsem zatím nepřečetl. Mezi nepřečtené se také řadí knihy „pro začátečníky“ – Learning Perl a Programming Perl – jejich obsah lze celkem dobře extrapolovat ze znalostí z ostatních knih a také jakákoliv publikace českých autorů, existuje-li. Tímto otevírám diskusi pod článkem k výměně informací o různých zdrojích jak na síti, tak v knihovnách.

K příležitosti 16. článku stojí za to se trochu ohlédnout za cca půlroční dobou trvání seriálu a poskytnout autorovi (mně) zpětnou vazbu: jak se vám tento seriál líbí, co se vám na něm líbí, co se nelíbí, co byste očekávali v budoucích dílech a tak dále.

Byl pro vás článek přínosný?