Choseho weblog o webu

Teng - perfektní šablonovací nástroj

20. 10. 2004

Teng (Template Engine) je univerzální šablonovací systém, který lze využít pro snadné oddělení aplikační a prezentační vrstvy. Autorem této technologie je vývojový tým portálu Seznam.cz, pričemž se vydán pod licencí GPL. Seznam v současné době používá Teng na většině svých aplikací, tudíž se nejedná o výkřik do tmy, ale o vyladěný produkční a denně používaný nástroj.

O co jde? K čemu šablovací systém?

Pokud nějaký tým lidí (nebo i jednotlivec) vytváří jakoukoliv webovou aplikaci, která je trošku na úrovni, je téměř nezbytně nutné použít šablonovací systém, aby bylo možné oddělit kód aplikace od designu. Poměrně často lze na webu potkat stránky napsané v PHP takovým způsobem, že PHP přímo generuje HTML kód. Pro webdesignera je to utrpení, protože musí lovit v PHP ten svůj kousek HTML, který potřebuje změnit a navíc hrozí nechtěné "poničení" aplikace.

V případě použití šablonovacího systému lze velmi efektivně tyty dvě složky oddělit. Programátor si píše aplikaci, přičemž webdesigner se stará o svoje šablony a může provádět změny nezávisle na aplikaci a naopak.

Teng - nástroj pro tvorbu šablon webových stránek

Jak jsem již zmiňoval, Teng je univerzální šablonovací nástroj, který je především využitelný na webu, tzn. pro tvorbu šablon stránek. Nyní je implementováno rozhraní pro skriptovací jazyky PHP, Python a samozřejmě i pro C++, ve kterém je celý šablonovací nástroj napsán.

Teng je navrhován s maximálním ohledem na výkon, ovšem i přes to umožňuje pokročilou práci se šablonami (funkce pro práci s řetězci, podmíněné bloky, vlastní proměnné, použití slovníků apod.) Teng je obecně podobný například systému Smarty. Smarty je šablonovací systém pro PHP, který je napsán přímo v PHP, tzn. není to zkompilovaný modul do PHP na rozdíl od Tengu. Tento velice významný rozdíl dává Tengu největší výhodu - rychlost, kdy se Smarty (ani jiný podobný systém) nemůže s Tengem rovnat.

Zpracování šablon pomocí Tengu zabírá minimum procesorového času, takže není problém vytvářet dynamické aplikace, které musí zvládat velkou zátěž. Teng je rychlý i díky inteligentní práci se šablonami, kdy se všechny šablony načtou do paměti v podobě bite kódu a poté se s nimi pracuje.

O způsobu práce a funkčnosti Tengu by se dalo napsat hodně, ale to je na samostatný příspěvek. Veškeré informace o Tengu naleznete na webu teng.sourceforge.net, kde si můžete prohlédnout jednoduchý příklad, manuál nebo si rovnou stáhnout zdrojový kód a začít nástroj zkoušet. Knihovny jsou zatím bohužel pouze pro Linux. Portace na Windows by určitě nebyla na škodu ... nenašel by se někdo ze zkušených Windows programátorů, který by to zkusil?

Pro širší použití Tengu by bylo skvělé, kdyby nějaký významný webhoster Teng nainstaloval na své stroje a začal ho nabízet zákazníkům. Myslím, že zanedlouho by to mohla být dobrá konkurenční výhoda :)

Související články:

Autor: Chose| 16:03 - 20. 10. 2004 | Trvalý odkaz | Homepage



© 2004 Josef Šíma - ja@chose.cz