Hlavní navigace

Šablony stránek pro Zope: překrývání technologií

Miloš Průdek 30. 5. 2003

Mocné technologie Zope byly v minulém dílu představeny v souhrnné tabulce. Dnes o některých z nich napíšu trochu víc informací, protože šablony stránek by se bez těchto technologií neobešly. Dozvíte se i, co znamená překrývání technologií a jak se s ním vyrovnat.

Tabulka technologií Zope v minulém dílu seriálu byla stručným přehledem. Některé pojmy z této tabulky si zaslouží bližší vysvětlení:

ZODB

ZODB je centrální datové úložiště pro aplikační server Zope. Poznáte ho snadno: v adresáři, do kterého jste nainstalovali Zope, je to soubor var/Data.fs. Tento soubor vidíte přes webové rozhraní (ZMI) jako soustavu složek (Folder), které obsahují instance výše uvedených typů (ZPT, Python Script, External Method, ZClass, DTML, ZSQL, ZCatalog).

ZMI

Zope se ovládá přes webový prohlížeč. Program, který to zajišťuje, se jmenuje Zope Management Interface (ZMI). Takže věta „Vložte obrázek přes ZMI“ znamená vlastně „Pomocí vašeho webového prohlížeče vložte obrázek do Zope.“

Skripty v Pythonu

Logická příprava dat pro prezentaci. Zpracování dat. Skripty v Pythonu jsou normální programy v jazyce Python. Jsou uloženy v objektové databázi ZODB. Mají přímý přístup ke všem datům uloženým v ZODB, vč. ZCatalog a REQUEST. Nemají přístup do souborového systému a nemohou přímo volat žádné externí programy. Hlavní výhoda: možnost modifikace programu skrze webové rozhraní. Vhodné pro krátké a středně velké programy v Pythonu.

Externí metody

Plní stejné úkoly jako Skripty v Pythonu. Jsou uloženy v souborovém systému. Mají přístup do souborového systému a mohou přímo volat libovolné externí programy.  Vhodné pro středně velké a rozsáhlé programy v Pythonu.

Produkty

Produkty jsou hotové prvky, které mohou sloužit jako stavební prvky (prefabrikáty) pro vaše aplikace. Produkty jsou většinou normální Externí metody doplněné o šablony, skripty v Pythonu, případně metody DTML, a obsahují povinná inicializační zaklínadla, která se postarají o bezešvé začlenění produktu do Zope a do ZMI. Produkt tedy transparentně rozšiřuje Zope o nové funkce. Uživatelé produktů jsou aplikační programátoři. Tvůrci produktů jsou jiní, zkušenější aplikační programátoři. Produkty si může větší softwarová firma vyvíjet pro svou potřebu a pro ulehčení programování, nebo je může distribuovat a prodávat.

ZClass

Technologie ZClass byla původně navržena pro doplnění objektově orientovaného programování do jazyka DTML. Dnes se DTML už pro programování nepoužívá, a proto technologie ZClass v této roli jen dosluhuje – zajišťuje slučitelnost starších programů pro Zope. Dnes se používá především pro rychlý návrh aplikací a vyzkoušení koncepcí, které se pak přepisují do Skriptů v Pythonu nebo do Externích metod.

Verze

Populární funkce Undo (krok zpět) je díky technologii Verzí dotažena do pozoruhodné hloubky. Neomezený počet kroků Undo a Redo, automatické citování jména uživatele a času změny, možnost vracet krok uprostřed historie změn bez vracení předchozích kroků a možnost porovnání dvou historických verzí, to vše přes web.

Získávání

Získávání zrychluje, zlevňuje a zjednodušuje programování dynamických stránek. Jednotlivé prvky není nutné kopírovat na všechna místa, kde je potřebujete. Stačí mít prvek v nejvyšším bodě (invertovaného) stromu adresářů. Tato technologie byla popsána v minulých dílech seriálu.

Překrývání technologií

Použití některých těchto technologii se překrývá. Například jazyk DTML se dlouho používal jako logický i prezentační jazyk a dodnes jej tak můžete používat. Jeho použití by ale mělo být omezeno jen na údržbu starých projektů. Pro prezentaci máme šablony a pro logiku se Python hodí mnohem víc než DTML.
Překrývání technologií je určitým nedostatkem Zope. Vždyť filozofie jazyka Python (základní kámen Zope) vždy byla protikladem přístupu jazyka Perl. Když se zeptáte na řešení nějakého problému v Perlu, často uslyšíte zkratku TIMTOWTDI (There is more than one way to do it – dá se to udělat více metodami). V Pythonu by mělo platit, že je jedna metoda, která je pro řešení nejlepší. Metodami zde myslím jednoduché problémy jako načtení obsahu souboru, ne složité probémy jako webserver nebo CAD. Takové jednoduché problémy by skutečně měly mít jedno nejrozumnější řešení. Zope následkem překrývání technologií způsobuje určitou regresi směrem k filozofii Perlu.

Našli jste v článku chybu?

30. 5. 2003 0:40

Yeti (neregistrovaný)

Jsem sice zastánce Pythonu, ale řekl bych, že obecně v programování platí, že jediná nejlepší metoda existuje leda v situaci, kdy jsou tak přesně specifikované podmínky, že už znáte výsledek všeho předem... Zrovna uvedené čtení souboru je pěkný příklad vývoje, současná ,,jediná nejlepší`` metoda je v pořadí už přinejmenším třetí.

Podnikatel.cz: Komunikace firem na Facebooku? Otřes!

Komunikace firem na Facebooku? Otřes!

Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Vitalia.cz: Nestlé vyvinula nový typ „netloustnoucího“ cukru

Nestlé vyvinula nový typ „netloustnoucího“ cukru

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

120na80.cz: Horní cesty dýchací. Zkuste fytofarmaka

Horní cesty dýchací. Zkuste fytofarmaka

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Podnikatel.cz: Víme první výsledky doby odezvy #EET

Víme první výsledky doby odezvy #EET

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Vitalia.cz: Dáte si jahody s plísní?

Dáte si jahody s plísní?

DigiZone.cz: ČRa DVB-T2 ověřeno: Hisense a Sencor

ČRa DVB-T2 ověřeno: Hisense a Sencor

Vitalia.cz: To není kašel! Správná diagnóza zachrání život

To není kašel! Správná diagnóza zachrání život

DigiZone.cz: ČT má dalšího zástupce v EBU

ČT má dalšího zástupce v EBU

Podnikatel.cz: Na poslední chvíli šokuje výjimkami v EET

Na poslední chvíli šokuje výjimkami v EET

DigiZone.cz: Flix TV má set-top box s HEVC

Flix TV má set-top box s HEVC

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Lupa.cz: Seznam mění vedení. Pavel Zima v čele končí

Seznam mění vedení. Pavel Zima v čele končí

Vitalia.cz: Co pomáhá dítěti při zácpě?

Co pomáhá dítěti při zácpě?