Jakou technologii použít?
Často se můžete ocitnout před problémem, který lze vyřešit pomocí tří technologií: DTML, Skripty v Pythonu aExterní metody. Obecně se jedná o všechny problémy nebo zadání, které jsou logického charakteru a vyžadují si skutečný programovací jazyk (na rozdíl od prezentace, kterou byste měli řešit pomocí šablon ZPT). U takových problémů a zadání byste měli zavrhnout jazyk DTML (ať hnije na propadlišti dějin) a podle velikosti projektu se rozhodnout pro Skripty v Pythonu (u menších programů) nebo Externí metody (u větších programů). Obě tyto technologie se realizují v Pythonu a není problém je v rámci jednoho webu kombinovat. Skripty v Pythonu jsou jednak pohodlnější díky možnosti ovládání přes web, jednak bezpečnější (není přístup do souborového systému, „nebezpečné“ knihovny jsou zakázány). Externí metody jsou mocnější (můžete používat všechny knihovny a máte plný přístup do souborového systému), ale musíte dávat větší pozor na případné bezpečnostní mesaliance.
Hledání dokumentace
Bez kvalitní dokumentace se v profesionální práci neobejdete. V minulosti nebyl aplikační server Zope v této otázce vzorem všech ctností. Nejdřív neexistovala žádná dokumentace. Pak něco málo sepsali programátoři, ovšem nebylo to moc čitelné ani pochopitelné. Pak najali slečnu, která tomu dala řád a nesrozumitelné se záhy stalo snadno pochopitelným. V poslední době bohužel opět dokumentaci píší lidé, kteří tráví většinu času programováním. Tak vznikla základní literatura o Zope, tzv. Zope Book. Hlavním autorem Zope Book je v současnosti Chris McDonough, který knihu doplnil o mnoho nových kapitol a intenzivně pracuje na jejím zkvalitnění. Chris ale věnuje knize jen čas, který nemusí trávit programováním.
Zope Book je dnes velmi kvalitním zdrojem informací. Její snad jedinou, ale podle mého názoru vážnou chybou jsou chybějící příklady. Zvlášt nepříjemné jsou chybějící příklady v referenční části. Programátoři – autoři Zope se domnívají, že syntaktické definice jsou dostačující a příklady jen překážejí v pochopení. Aplikační programátoři, kteří se teprve seznamují se Zope, by ale prodali vlastní sestru do nevěstince za více příkladů v referenční dokumentaci. Dokonce i Chris McDonough se domnívá, že by více příkladů prospělo, ale nemá čas je psát, protože má i jiné úkoly. Proto umožnil čtenářům on-line verze Zope Book doplňovat komentáře, které jsou pak čas od času integrovány do knihy (nepříliš často, asi jednou za 6 měsíců).
Když hledáte příklady programů pro Zope, nezbývá než obrátit se na jiné zdroje. Nejlepším zdrojem na webu je zopelabs.com s mnoha „recepty“ roztříděnými podle technologií (DTML, Skripty v Pythonu, Externí metody atd.). Všem vážným zájemcům o Zope ale silně doporučuji stáhnout si archivy emailové konference zope, a to alespoň od počátku roku 2000, protože bohatší a spolehlivější zdroj informací prostě nenajdete. Připravte se na to, že budete mít dotazy, které pomocí Zope Book nevyřešíte. Pak se přihlašte do konference zope, ale střezte se položit dotaz, zodpovězený v minulosti. Budete odkázáni na výše zmíněný archiv – a právem.
Nedokumentované funkce
Některé důležité funkce Zope nejsou zdokumentovány, nebo jsou dokonce zdokumentovány špatně. V předchozí kapitole jsem uvedl, že Zope Book umožňuje vkládání komentářů dokonce i anonymním uživatelům. Můžeme si tak přečíst, že už 20. června 2002 anonymní programátor upozorňuje, že „funkcemanage_addDocument by se měla nazývat manage_addDTMLDocument! Když použijete funkci manage_addDocument, přidáte metodu DTML, nikoliv dokument DTML…“
Čas běží a nic se nemění. 10. ledna 2003 jiný programátor doplňuje, že „funkce manage_addDocument vytvoří metodu DTML a funkcemanage_addDTMLDocument vytvoří dokument DTML. Přitom v dokumentaci se tvrdí pravý opak a v knize Zope Book se nic nezměnilo, i když první upozornění na problém se objevilo před šesti měsíci.“
Jisté funkce nejsou vůbec v dokumentaci uvedené, i když jsou to zcela klíčové, nezbytné funkce. Například bez funkce manage_delObjects nemůžete žádný objekt smazat. Přesto nebyla zatím zdokumentována, i když první komentář upozorňující na tento problém je z 13. září 2002.
Když tedy máte pocit, že vám v Zope chybí nějaká funkce, a nemůžete ji najít v oficiální dokumentaci (Zope Book), nezoufejte. Podívejte se do archivu konference zope nebo na web zopelabs.com. Ta funkce tam pravděpodobně je, ale ukrývá se :-)
Doufám, že vás nenudily obecné informace posledních několika dílů. Snažil jsem se předat nejen nadšení pro Zope, ale i upozornit na přetrvávající nedostatky. Vím, že mnozí lidé Zope opakovaně zkoušeli a vzdávali. Frustrace z nedostatku dokumentace a potíže způsobené velkým objemem materiálu, který je nutné pochopit pro efektivní práci v Zope, odrazují mnoho programátorů. Přesto věřím, že s každým novým pokusem bude pro vás Zope pochopitelnější, jak se vám postupně rozhrne jedna opona za druhou. V příštím pokračování už se budeme opět plně věnovat šablonám ZPT.