Предложите хорошую структуру MVC в Perl [закрыто]

StackOverflow https://stackoverflow.com/questions/45470

  •  09-06-2019
  •  | 
  •  

Вопрос

Можете ли вы предложить какую-нибудь хорошую структуру MVC для Perl? Я знаю, что это катализатор

Необходимо иметь возможность предоставлять сервисы в инфраструктуре Perl, которые могут беспрепятственно вызываться приложениями Java/.Net.

Это было полезно?

Решение

Я скажу вам прямо сейчас, что Catalyst имеет, безусловно, лучшую репутацию среди разработчиков Perl с точки зрения среды MVC для быстрой разработки приложений.

Что касается «чистого» MVC, я не уверен, что существует столько «зрелых» или, по крайней мере, готовых к производству альтернатив.

Если Catalyst вам не кажется подходящим, вы можете использовать облегченную структуру. CGI::Приложение в соответствии с вашими потребностями или взгляните на некоторые менее известные фреймворки MVC, такие как ПейджКит и Майский шест.

Другие советы

Поскольку эта старая тема всплыла, я упомяну два интересных новых дополнения в мире Perl MVC:

  • Танцор (КПАН), на который сильно повлиял Синатра Руби, известный своим очень легким весом.
  • Модный (КПАН), который написан первоначальным разработчиком Catalyst с использованием того, что он там узнал, у него нет неосновных зависимостей, с очень современными встроенными функциями (HTML5/CSS3/Websockets, парсеры JSON/XML, собственный UserAgent/движок шаблонов)

(Н.Б.Я использовал Mojolicious чаще, чем Dancer, и поэтому, если я пропустил некоторые функции Dancer, перечисленные для Mojolicious, заранее прошу прощения)

Другой альтернативой, помимо уже упомянутых, является Непрерывность;однако он (как следует из названия) основан на продолжении, а не на MVC в обычном смысле.Тем не менее, об этом стоит упомянуть, поскольку это один из лучших веб-фреймворков Perl.

Тем не менее, Catalyst мне нравится гораздо больше, чем любая другая альтернатива.И с каждым разом все становится лучше!Обратной стороной этого является то, что нынешние предпочтительные подходы к кодированию продолжают развиваться довольно поспешно – но в последних двух версиях сильный акцент был сделан на совместимости API, поэтому нагрузка теперь в основном носит умственный, а не административный характер.Предстоящий порт внутренних компонентов на Moose, в частности, может принести ряд отличных преимуществ.

Но самым большим аргументом в пользу Catalyst, по моему мнению, является тип отправки Chained.Я не видел ничего подобного во всем мире веб-фреймворков, и это отличный инструмент, позволяющий сохранить ваш код максимально СУХИМ.Это хорошо сочетается с еще одной замечательной вещью, которую предоставляет Catalyst, а именно: uri_for – метод, который принимает контроллер и набор аргументов, а затем создает URI, который будет отправляться в это место и возвращать его.В совокупности эти возможности означают, что вы можете структурировать пространство URI так, как считаете нужным, и в то же время можете структурировать свои контроллеры, чтобы избежать дублирования логики. и сохраняйте шаблоны независимыми от структуры URI.

Это просто великолепно.

Подтверждение комментариев, сделанных другими:Catalyst (который более или менее является ответвлением Maypole) является, безусловно, наиболее полным и надежным из них.Есть книга Джонатана Роквея, которая наверняка поможет вам в этом разобраться.

В дополнение к типу отправки «Цепочка» методы отправки :Regex (и :LocalRegex) обеспечивают огромную гибкость.Последнее приложение, которое мы здесь создали, поддерживает множество разнородных URL-адресов с помощью всего лишь нескольких подпрограмм, использующих :LocalRegex.

Мне также особенно нравится тот факт, что вы не ограничены конкретным языком шаблонов или базой данных.В списке рассылки (и в книге) предпочтение отдается Template::Toolkit (как и я) и DBIx::Class (мы продолжаем использовать Class::DBI), но вы можете использовать практически все, что захотите.В этом отношении Catalyst удивительно агностичен.

Пусть вас не смущает тот факт, что Catalyst, похоже, требует половину CPAN в качестве зависимостей.Как только вы его запустите, это будет хорошо отлаженная машина.Сейчас оно достигло такого уровня зрелости, что, как только вы вникнете в него, вы обнаружите, что оно «отходит на второй план».Вы тратите свое время на решение бизнес-задач, а не на борьбу с инструментами, которые используете.

Он делает то, что написано на банке.Катализатор++

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

Это микро-веб-фреймворк (или веб-микрофреймворк ;-) и он находится под сильным влиянием Кемпинг который написан на Ruby.

Примечание.Сквоттинг (и кемпинг) не включает в себя компоненты модели, встроенные в структуру.Вот комментарии авторов к моделям... «Модели?Весь мир — ваша модель.;-) Я всегда неоднозначно относился к определению политики здесь.Используйте то, что вам подходит»

Существует также CGI::Application, который больше похож на внутреннюю часть фреймворка.Это помогает человеку написать базовую компьютерную графику и приклеить к ней кусочки, чтобы сделать ее настолько индивидуальной, насколько ему хочется.Таким образом, вы можете использовать практически все модули или почти все, что есть на свете.

Катализатор – это правильный путь.Еще есть Jifty, но (когда я смотрел в последний раз) у него была ужасная документация.

Если вы уже знакомы с Catalyst, то рекомендую сосредоточиться на нем.Он зрелый, хорошо документированный и имеет очень большую базу пользователей, сообщество и коллекцию плагинов.

Для решения вашей проблемы я бы рассмотрел Jifty::Plugin::REST, который обеспечивает доступ к моделям и действиям в различных форматах.

Позвольте мне только сказать, что у Jifty нет ужасной документации.Тем не менее, большая часть включенной документации представляет собой документацию по API, но существует очень тихий список рассылки, в котором есть полезные советы и ссылки на приложения.

Вики на http://jifty.org/ это еще один ресурс, в котором есть полезные сведения.

Если ваша цель — создать видеомагазин (мой любимый тест для 4GL и CRUD-фреймворков) во второй половине дня, на него действительно стоит обратить внимание!

Другие варианты: Портальный при использовании в сочетании с модулем BigTop он может сократить время, необходимое для создания простых сайтов CRUD.

А также есть Клирпресс который я могу порекомендовать как полезное приложение с поддержкой базы данных.Ему требуется меньше зависимостей, чем Catalyst.Мы написали с его помощью несколько крупных приложений, и я запускаю с его помощью веб-сайт по бадминтонной лестнице.

Я создал несколько приложений с Келп, этому легко научиться, и это очень полезно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top