Подтвердить что ты не робот

Почему XSLT, похоже, раздражает так много людей?

Что такое XSLT, что люди находят раздражение? Является ли это синтаксисом (что довольно необычно) или просто как XSLT работает вообще? Есть ли недостатки?

Я немного немного XSLT (около 800 строк) некоторое время назад и нашел, что это не так уж плохо. Итак, почему общая враждебность против него?

4b9b3361

Ответ 1

Я думаю, что людям трудно разобраться с XSLT (и сукой об этом), потому что он функциональный и декларативный по своей природе, в отличие от программирования на С# или java. Навигация по документам может оказаться сложным, когда инструкции XPATH становятся умными, хотя это функция XPATH, а не XSLT. XPATH обычно становится сложным, когда вы не знаете во время разработки точной структуры документа, чтобы вы начали запрашивать братьев и сестер, потомков и предков. Это когда люди, наследующие сложный XSLT, начинают рассматривать изменения карьеры!

С XSLT это очень "правильный инструмент для правильной работы". Он разработан для быстрого и эффективного преобразования XML-документа в другой XML-документ. XSLT - почти наверняка лучший инструмент для использования с этой целью из-за его расширяемости, того факта, что он был написан для этой цели, повсеместной поддержки для него в xml-процессорах по всем направлениям, и в случае, если я уже не упоминал об этом, производительность. Общие варианты использования:

  • преобразование XML-документа, содержащего чисто данные, в документ, отображающий пользовательский интерфейс, такой как документ xhtml
  • преобразование XML-документа в другую структуру в соответствии с какой-либо схемой elses, например. Связь Biz2Biz

Отличная реализация технологии xslt - это проект apache-cocoon, который преобразует XML-документы в несколько выходных форматов, включая html, excel, графические изображения, PDF с расширяемой архитектурой плагина. Мы много используем его для нашей платформы отчетности, и он работает очень хорошо. Когда разработчики начинают с этого, они находят те же самые знакомые проблемы. Как только они преодолеют их, они обычно пишут, что я здесь.

Я когда-то работал с парнем, который не хотел работать с (и учиться) XSLT и в итоге представил демо клиенту, которому потребовалось более 20 секунд, чтобы отобразить страницу. Когда я, наконец, убедил его использовать XSLT-преобразование вместо его немого кода DOM, он занял секунды.

Ответ 2

Мне нравится xslt, и я использую его совсем немного. До тех пор, пока вы думаете о функциональном программировании (т.е. Переменные одноразового использования, аналогичные F # и т.д.), Тогда он очень универсален. Я регулярно использую его для преобразования данных, презентации (в частности, [x] html) и универсальной генерации кода.

Определенно, связанное с высоким программированием; никто, кроме программиста, не забудет его - но очень мощный инструмент.

У меня есть несколько xslt (разделение на несколько файлов xsl:import/xsl:include), что существенно больше, чем 800, которые вы упоминаете в сообщении... он действительно может (при правильном использовании) быть полнофункциональной средой.

Примечания:

  • лучше всего использовать на сервере; поддержка на стороне клиента hit'n'miss
  • несколько ключевых вещей, пропущенных в 1.0; регулярное выражение; случай-нечувствительность; и т.д.
  • может быть сложным, если важны пробелы

Одной из особенно полезных функций xslt (как отдельного файла) является то, что она позволяет изменять преобразование без перестройки какого-либо кода. Пример кода-генерации выполняется из проекта с открытым исходным кодом, который я запускаю; Я знаю нескольких пользователей, которые погрузились и настроили код-gen для своих локальных стандартов. Одно использование даже дошло до написания преобразования для всего второго языка - и все, не касаясь двоичных файлов.

Ответ 3

Мне лично не нравится XSLT, потому что, похоже, он сочетает в себе несколько вещей, которые обычно не нравятся в сообществе разработчиков:

  • он использует магические строки (XPATH), которые выглядят как шум aka perl reg exs.
  • xml теги, которые могут делать утверждения verbose - aka xml язык программирования.

Ответ 4

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

Просто из любопытства, что сделали ваши 800 строк XSLT?

Ответ 5

XSLT - мощный инструмент действительно в арсенале разработчика. Я использую его все время для генерации кода. Счетчики производительности, уровень доступа к данным, интерфейсы REST, вы называете это. что-то повторяющееся.

Как язык, он уверен в своих причудах, но как инструмент неоценим.

Ответ 6

Многие программисты не имеют опыта работы с функциональным программированием. XSLT во многом напоминает функциональное программирование и новую и иностранную парадигму для изучения.

Изучение незнакомой парадигмы программирования может быть сложным, не говоря уже о изучении незнакомой парадигмы программирования, выраженной в XML.

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

Ответ 7

Я лично считаю, что он очень подходит для определенных типов проблем программирования. Для меня в некоторых ситуациях гораздо проще поддерживать форму, используя XSLT, вместо того, чтобы переписывать/перекомпилировать/передислоцировать изменения кода. Хотя XSLT - это не единственный способ добиться этого, я не нашел никаких других решений для тех случаев, которые намного чище и проще.

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

Ответ 8

XSLT очень эффективен, если вы хотите, чтобы он соответствовал тому, что ему нужно. Тем не менее, поддержка другого XSLT может быть немного сложной задачей. Это язык программирования, но он также является XML файлом, поэтому его трудно понять, даже если его выложить в чистоту и адекватно прокомментировали.

Ответ 9

Наша библиотека CMS в основном состоит из html stylesheets, чтобы делать почти все. Конечно, наши данные XML. Некоторые из наших программистов не получают парадигмы функционального программирования. Ваш первый опыт может привести к тому, что сложные шаблоны неправильно используют итеративные функции XSLT. Первое, что вам нужно сказать программисту - не использовать для каждого оператора или перемещать оси xpath Если они учатся воздерживаться, они могут научиться понимать концепции шаблонов.

Ответ 10

  • XSLT одновременно функциональный и императивный. Это вызывает множество людей. они имеют match и for loops с переменными.
  • В нем легко писать плохой код. Но если вы будете следовать хорошим шаблонам, вы можете сделать очень аккуратные вещи очень легко.

Отъезд http://www.worldofwarcraft.com/index.xml и http://www.wowarmory.com/index.xml если у вас есть браузер с поддержкой XSLT (FF 3 хорош). Они полностью написаны на клиентской стороне XSLT с базовым XML. Это делает царапины этих сайтов ДЕЙСТВИТЕЛЬНО легкими и приятными, и они вынуждены хранить данные и презентацию отдельно. Отличным примером являются страницы их персонажей http://www.wowarmory.com/character-achievements.xml?r=Mal%27Ganis&cn=Vosk&gn=Juggernaut

Ответ 11

Я нахожу, что люди, которые жалуются на XSLT, это те, кто злоупотребляет им. Например, я думаю, что использовать его в качестве языка шаблонов HTML для CMS - это ужасная идея, если только ваши данные не находятся в XML. Эти люди могут жаловаться на то, что XSLT является уродливым или многословным или что-то еще, но это потому, что они используют его по неправильным причинам.

Ответ 12

Это пример превращения XML в язык программирования. Тьфу. Я бы хотел, чтобы люди этого не сделали. У нас уже есть неплохие языки программирования, и они намного лучше, чем XML.

Ответ 13

потому что MS не реализует exslt2