System szablonów – rodzaj biblioteki programistycznej stosowanej w aplikacjach WWW do osadzania danych w szablonach prezentacyjnych, dzięki czemu internauta może oglądać kompletny wynik w swojej przeglądarce.

Rodzaje systemów szablonów

edytuj

Systemy szablonów nie działają samodzielnie. Najczęściej wchodzą w skład frameworków lub współpracują z nimi, dzięki czemu możliwa jest duża automatyczna wymiana informacji między nimi. Obecnie biblioteki przetwarzania szablonów powstają głównie do celów tworzenia dynamicznych stron internetowych.

Niektóre języki programowania, np. Java, Ruby czy C albo posiadają wbudowane systemy szablonów, albo też udostępniają je dzięki dodatkowym bibliotekom i modułom. JSP, PHP i ASP same w sobie są już systemami szablonów, aczkolwiek dla nich również powstaje szereg alternatywnych rozwiązań.

Zasada działania

edytuj

Szablon jest zwyczajnym plikiem tekstowym zawierającym kawałek kodu wynikowego, np. HTML. Poumieszczane są w nim specjalne znaczniki mówiące, w których miejscach należy wstawić dane z aplikacji oraz jak przetwarzać cały szablon. Aplikacja WWW pobiera i przetwarza dane, po czym przekazuje je do parsera szablonów wraz z informacją, jaki szablon ma być użyty do ich wyświetlenia. Parser wczytuje szablon i umieszcza przekazane dane w znacznikach, a gotowy kod wysyła do przeglądarki lub innego miejsca, jeżeli programista tak zdecydował.

Typowe możliwości

edytuj

Większość systemów szablonów posiada możliwości zbliżone do tradycyjnych języków programowania, tj. pętle, zmienne, instrukcje warunkowe, z głównym naciskiem położonym na przetwarzanie tekstu. W ten sposób twórcy szablonów mają przy odpowiednich umiejętnościach bardzo duże możliwości manipulacji kodem wynikowym bez konieczności modyfikowania właściwego kodu źródłowego aplikacji. Na dłuższą metę czyni to jednak szablony wysoce nieczytelnymi i nieprzenośnymi, dlatego niektóre biblioteki dostarczają również wysokopoziomowych, abstrakcyjnych rozwiązań, których celem jest ograniczenie ilości programistycznych konstrukcji do absolutnego minimum.

Kontrowersje

edytuj

Systemy szablonów budzą kontrowersje zwłaszcza jeśli chodzi o języki PHP czy ASP, które w pierwotnych założeniach same miały być systemami szablonów. Projektom tego typu zarzuca się:

  • Wzajemną niekompatybilność – istnieją dziesiątki systemów szablonów i prawie wszystkie używają autorskiej składni znaczników oraz rozwiązań w kwestii osadzania danych w szablonie.
  • Trudności w opanowaniu – systemy szablonów właściwie zmuszają do nauki jeszcze jednego języka programowania.
  • Utrudnianie pracy – część systemów szablonów poza typowymi konstrukcjami programistycznymi nie oferuje nic ponadto. Stawia to pod znakiem zapytania sens ich stosowania, skoro dokładnie to samo można zaprogramować bezpośrednio w używanym języku z identycznym skutkiem.

Zalety

edytuj
  • Systemy szablonów wymuszają lepszą organizację kodu źródłowego przez odseparowanie od siebie logiki aplikacji oraz części prezentacyjnej (będące podstawą np. modelu MVC).
  • Usprawnienie pracy w większych zespołach projektowych z podziałem ról między poszczególnych członków. Graficy oraz webmasterzy mają dostęp jedynie do szablonów i nie ma obawy, że przypadkowo zniszczą część logiki aplikacji podczas wprowadzania własnych zmian.
  • Przez wprowadzenie dodatkowej warstwy abstrakcji i umiejętne z niej korzystanie możliwe jest znaczne poprawienie przenośności kodu.

Zobacz też

edytuj