Автор Тема: [MVC] Template система  (Прочетена 955 пъти)

koleto

  • Напреднали
  • *****
  • Публикации: 52
  • Distribution: Ubuntu
  • Window Manager: Gnome
    • Профил
    • WWW
[MVC] Template система
« -: May 02, 2010, 13:56 »
Аз имам един малък въпрос. Добра идея ли е във view файловете да се ползва template система? Не знам до колко това е свързано с MVC, но видях, че се обсъждат view файловете и реших да попитам, защото този въпрос ме тормози вече цели 2 седмици. Според мен не трябва, защото това добавя още едно отежняване на кода. Логиката е достатъчно разделена с MVC шаблона, така че не виждам нито едно предимство. А много хора държат да ползват template система. Вие какво мислите?
Активен

Поражение не съществува, докато човек не се признае за победен!

VladSun

  • Moderator
  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
[MVC] Template система
« Отговор #1 -: Jul 26, 2010, 22:18 »
Според мен template системата се използва за да се постигне идеална (етсествено в идеалния случай) разделеност на отговорностите в един екип - разработчици и дизайнери. Template езикът има синтаксис, който определя и ограничава напълно възможностите за комуникация с данните - т.е. нарочно се ограничава достъпа до данните с цел да не се допускат груби грешки от страна на дизайнерите, които обикновено нямат добра представа от програмиране. От друга страна не е добре разработчиците да се занимават с всеки дизайнерски проблем, което поражда необходимостта от създаването на междинен език за двата подекипа.

Лично аз, винаги съм работил с що-годе "грамотни" дизайнери и съм избягвал този междинен език, който иначе би утежнил както разработката, така и производителността на продукта (в моя случай).
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

ivo3d

  • Напреднали
  • *****
  • Публикации: 161
  • Distribution: Mint Linux
  • Window Manager: Gnome
    • Профил
[MVC] Template система
« Отговор #2 -: Jul 27, 2010, 02:18 »
Идеята "уж" на тия template системи, както каза VladSun е да имат готови да ги наречем функции, с които да могат лесно, без познания по програмиране да извъртат масиви с информация, да генерират форми и изобщо да могат да правят всякакви глезотии по данните, които идват от контролера. И на второ място - да не им се дава възможност да се пипа извън темплейта. Стигаме дотук с хубавите идеи, оттам нататък ми се губи логиката:

1. Аз до ден днешен като видя сайт със (най-често) smarty и бягам надалеч - така и не можах да свикна със синтаксиса. Общо взето с колкото дизайнери съм работил, на всичките им е по-лесно да научат за 1-2 часа малко php (примерно), колкото да могат да извъртят масив и да направят някоя проста проверка.

2. Всичките глезотийки са елементарни helper-и. Ако времето е толкова скъпо - има хиляди из нета, ако не - пишат се елементарно.

3. Трудно се разширяват, при smarty е абсурдно.

А отностно сигурността - така или иначе ако нямаш доверие на дизайнера, можеш да проверяваш какво се случва в темплейта. А щом е MVC, предполагам имаш някакъв клас, с който зареждаш темплейта - там спокойно можеш да си направиш така нещата, че в темплейта да не може да се пипа нищо друго освен данните, подадени от контролера. Ама това си е параноя, така или иначе някой ако иска да ти направи беля - ще я направи, не вярвам да работиш с такива хора. А за да счупиш нещо от view-то, трябва бая да си смъкнал от дамаджаната преди това.

Затова си ползвай сървърния език и html за темплейти, открадни си/напиши си няколко helper-а за повтарящи се досадни дейности и не го мисли :)

Поздрави,
Иво
Активен