Что преимущества использования являются альтернативным механизмом представления?

Другой способ обработать это, которое устраняет любую необходимость, включает, вообще должен использовать автозагрузка функция. Включая все Ваши потребности сценария "На всякий случай" могут препятствовать производительности. Если Ваш включает, весь класс или интерфейсные определения, и Вы хотите загрузить их только при необходимости, можно перегрузиться эти __autoload() функция с собственным кодом, чтобы найти соответствующий файл класса и загрузить его только, когда это называют. Вот пример из руководства:

function __autoload($class_name) {
    require_once $class_name . '.php';
}

$obj  = new MyClass1();
$obj2 = new MyClass2(); 

, пока Вы устанавливаете свои include_path переменные соответственно, Вы никогда не должны включать файл класса снова.

5
задан Wayne Molina 11 November 2009 в 23:26
поделиться

5 ответов

Попробуйте немного усложнить задачу:

<div if="orders.Any()" each="var order in orders">
  Here's your order #${orderIndex+1}:
  <ul>
    <li each="var p in order.Products">
       ${pIndex}: ${p.Name}
       <span if="pIsLast"> (the end)</span>
    </li>
  </ul>
</div>

Я вижу здесь поток. Я могу увидеть здесь HTML . А теперь посмотри:

<% if (orders.Any()) { %>
  <% var orderIndex = 0; foreach (var order in orders") { %>
   <div>
    Here's your order #<%= (orderIndex+1) %>
    <ul>
      <% int pIndex = 0; foreach (var p in order.Products) 
         { bool pIsLast = pIndex == products.Count; %>
        <li>
           <%= pIndex %>: <%= p.Name %>
           <% if (pIsLast) { %>
              <span> (the end)</span>
           <% } %>
        </li>
      <% ++ pIndex; } %>  
    </ul>
   </div>
  <% orderIndex++; } %>
<% } %>

Я потерялся здесь. Там есть HTML?

Для меня это основная причина. Конечно, Spark предоставляет ТОННУ функций - макросы (где вы кодируете свои Html.Helpers в искровой разметке), экспорт PDF и т. Д. - перечисленные другими, но как программист я предпочитаю чистый код.

Другой пример, вы часто используют for (int i = 0; i

  • он лучше выражает намерение
  • он лучше читается
  • он скрывает дополнительные детали (например, .Count, .Length или .Count (); или если он ' s IEnumerable, которые вы должны пройти особым образом) из моего усталого ума
  • это уменьшает количество переменных, загромождающих контекст (и мой усталый разум)
  • , поэтому я могу сосредоточиться на проблеме, ничто не мешает
  • это помогает избежать {}, поскольку нет необходимости иметь переменную внутри - сокращая количество строк
  • , и когда вы меняете коллекцию с IList на массив, вы не меняете 50 циклов повсюду

и это о такой простой вещи, как foreach. Каждая причина проста, но они сводятся к чему-то большему. И эти причины идеально подходят для Spark. Эй, похоже, я влюблен; -)

Обновление: теперь знаете что? Посмотрите историю редактирования моего сообщения. Мне пришлось несколько раз редактировать этот чертов код ASP только потому, что я кое-где пропустил. Я просто не вижу , если это ' правильно или неправильно. Он полностью скрыт , если у меня есть диапазон там или условие на месте.

Обновление: хм, еще одно редактирование ... перемещение if / span ASP внутрь li ...

5
ответ дан 14 December 2019 в 01:10
поделиться

Лично я не использую альтернативные механизмы представления, но они привлекают более чистые представления. Если вы свободно владеете Spark, этот первый пример намного приятнее и легче для чтения.

Однако я предпочитаю обернуть логику, подобную той, которую вы передали, во вспомогательный метод. Мне не нужно изучать что-то новое, все мои коллеги могут это понять, и мои взгляды остаются относительно чистыми. Это полностью субъективный вопрос, и любой подход подходит.

Эти механизмы просмотра в значительной степени являются наследием других фреймворков, таких как RoR и Django. Аргумент Django в пользу своей системы шаблонов представлений состоит в том, что представления должны только быть для логики представления. Поэтому, если вы ограничиваете то, что возможно в вашем движке просмотра,

1
ответ дан 14 December 2019 в 01:10
поделиться

Все будет в порядке, если вы взяли трубку "

2
ответ дан 14 December 2019 в 01:10
поделиться

Я бы сказал, что это скорее вариант, чем что-либо еще. Это похоже на выбор между C # и Visual Basic: используйте то, что вы знаете лучше всего и в чем вы будете более продуктивны.

1
ответ дан 14 December 2019 в 01:10
поделиться

Некоторые преимущества Spark (что мне нравится):

  1. Вы можете использовать частичные представления, такие как теги html. Пример использования может быть тегом для закругленных углов.
  2. Вы не получите "тег супа". Возможно, вы не видите преимуществ прямо сейчас, но если у вас огромные просмотры, они гораздо более читабельны.
  3. Вы получаете строго типизированный доступ к ViewData ["..."].
  4. Вы можете легко визуализировать представления для строка.
  5. Автоматически применяет Html.Encode, повышая безопасность вашего приложения.

Что мне не нравится:

  1. Имеются проблемы с Intellisense и Resharper.
  2. Невозможно использовать параметр Форматировать документ.

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

0
ответ дан 14 December 2019 в 01:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: