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

Предложите хорошую структуру MVC в perl

Можете ли вы предложить хорошую структуру MVC для perl - я знаю, это catalyst

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

4b9b3361

Ответ 1

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

В терминах "чистого" MVC я не уверен, что есть даже такие "зрелые" или, по крайней мере, готовые к производству альтернативы.

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

Ответ 2

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

  • Dancer (CPAN), который сильно зависит от Ruby Sinatra, известного как очень легкий
  • Mojolicious (CPAN), который написан оригинальным разработчиком Catalyst, чтобы использовать то, что он там узнал, он не имеет неосновных зависимостей, с очень современными встроенными функциями (HTML5/CSS3/Websockets, JSON/XML parsers, собственным механизмом UserAgent/templating).

(N.B. Я использовал Mojolicious больше, чем Dancer, и поэтому, если я пропустил некоторые особенности танцора, которые я перечислил для Mojolicious, я заранее извиняюсь)

Ответ 3

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

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

Но самым большим аргументом в пользу Catalyst, IMO, является тип отправки Chained. Я не видел ничего подобного во всей web-framework-dom, и это самый отличный инструмент для того, чтобы ваш код был как можно сухим. Это хорошо сочетается с еще одной замечательной вещью, которую предлагает Catalyst, а именно uri_for - метод, который принимает контроллер и кучу аргументов, а затем создает URI, который отправляет туда, откуда он возвращается. Вместе эти средства означают, что вы можете структурировать свое пространство URI любым способом, который вы считаете правильным, но в то же время можете структурировать ваши контроллеры, чтобы избежать дублирования логики и сохранять шаблоны независимо от структуры URI.

Его просто блестящий.

Ответ 4

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

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

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

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

Он делает то, что говорит на олове. Catalyst ++

Ответ 5

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

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

NB. На корточках (& Camping) нет компонентов модели, запеченных в каркасе. Здесь авторы комментируют модели... "Модели? Весь мир - ваша модель.;-) Я всегда был неоднозначным в определении политики здесь. Используйте все, что работает для вас"

Ответ 6

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

Ответ 7

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

Ответ 8

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

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

Wiki at http://jifty.org/ - это еще один ресурс с полезными битами.

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

Ответ 9

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

Ответ 11

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

Ответ 12

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

Ответ 13

Я создал некоторые приложения с Kelp, он легко учится и очень полезен.