Каждые страницы нуждаются в заголовке с большим количеством материала: мой дизайн фреймворка хорош? - PullRequest
1 голос
/ 09 января 2010

Я пришел к тому, что понял, что мне нужно интеллектуальное решение этой проблемы.

В моих рамках есть:

  • Представления (на самом деле это просто HTML-файлы с небольшим количеством PHP для вывода данных)
  • Контроллеры представления (создание представлений, выполнение некоторой логики)

Так, например, для каждой страницы, такой как https://stackoverflow.com/questions/ask, у меня есть ViewController, который вызывается платформой. Есть RootViewController, который создает представление макета. В макете указываются верхние и нижние колонтитулы, а также основная структура сайта. Например, он имеет заполнитель contentView.

При таком дизайне я указываю часть HEAD только один раз, поэтому DOCTYPE, TITLE и все остальные элементы привязаны к этому шаблону представления макета.

Каждый View Controller, который загружает этот RootViewController, может установить заголовок, добавлять CSS-включение или Javascript-включение (которое является одним из этих тегов rel-link rel в HEAD), просто вызывая некоторые методы RootViewController.

Пока что это на самом деле довольно гибко, потому что если вы ничего не укажете, вы получите полезные значения по умолчанию и разумную ГОЛОВКУ со всем необходимым.

Но я вижу эти проблемы:

  • Разве я не могу сделать жизнь для пользователя фреймворка более простой? Шаблон макета должен содержать весь этот «мусор», который убивает производительность. Почему пользователь фреймворка должен даже думать о настройке правильного заголовка? Это всегда одна и та же проблема, нужен тот же синтаксис, те же самые включения CSS и Javascript фреймворка и т. Д. ... Вы поймете.

  • Он должен содержать точные соответствующие переменные-заполнители для соответствия методам RootViewController.

Поэтому, чтобы решить эту проблему, я подумал, что могу предоставить необычную переменную, которую можно вставить в любой шаблон представления для вывода блока HEAD.

Я просто хочу посмотреть, что вы думаете об этом, и если мое решение просто отлично, или я собираюсь сделать большую ошибку дизайна здесь. И если да, то какие будут альтернативы?

1 Ответ

2 голосов
/ 09 января 2010

Ваш «пользователь» может указать только шаблон тела и автоматически вывести свою голову, тело «пользователя» и нижний колонтитул. Тогда дизайнеру шаблонов не нужно обязательно включать какую-то произвольную переменную, и если вы когда-нибудь решите изменить способ включения верхнего или нижнего колонтитула, вам не придется обновлять каждый отдельный шаблон.

Вы также можете позволить разработчику шаблона переопределить это поведение, вызвав некоторую функцию.

Это, вероятно, идеально: 90% времени ваша инфраструктура будет делать правильные вещи без каких-либо усилий разработчика. Только в 10% случаев, когда пользователь хочет сделать что-то еще, он должен приложить все усилия, чтобы это произошло посредством вызова функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...