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

Dancer vs Catalyst [Perl Web Frameworks]

Что вы думаете обо всех? Я начал читать книгу о Catalyst и нашел ее довольно сложной по сравнению с Dancer. так что теперь я даю танцору попробовать, и это выглядит легче учиться и более "дружелюбно".

4b9b3361

Ответ 1

Это несколько субъективный вопрос, но я постараюсь дать вам ответ объективным способом. Прежде всего, отказ от ответственности: я часть команды разработчиков Dancer, поэтому мое мнение должно быть, конечно, несколько предвзятым:)

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

Dancer - это более молодой проект и нацелен скорее на меньшие проекты, что позволяет быстро и легко вставать и работать, и стараться оставаться с вашего пути. Это не означает, что танцор не подходит для крупных проектов; та же привычка оставаться на своем пути означает, что вы можете организовать свой проект таким образом, который вам подходит.

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

Для отзывов пользователей о том, что люди говорят о танцорах, см. раздел внизу страницы на новом веб-сайте: http://www.perldancer.org/

В интересах отображения других вариантов также есть Mojolicious, еще одна современная веб-структура Perl, которая в последнее время завоевывает популярность.

Ответ 2

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

Оба фреймворка предоставляют вариации в парадигме Web MVC.

Основным уровнем абстракции катализатора является контроллер. Catalyst ожидает, что вы сможете разделить отдельную логику на отдельные пакеты каким-то логичным способом (здесь вводится код входа, здесь идет регистрационный код, функция поиска здесь). Это работает невероятно хорошо, если у вас есть команда программистов, поскольку каждый из вас может работать над отдельными файлами, а не перешагивать друг друга во время слияний. Catalyst предоставляет множество инструментов для обеспечения гибкости и гибкости логики контроллера, я думаю, что главным примером этого является цепочки действий, которые позволяют разделить и построить сложный поток для любого заданного запроса. Недостатком является то, что становится очень соблазнительно вводить вашу бизнес-логику в контроллеры, и вы оказываетесь в очень толстой логике в контроллерах, где она (теоретически) принадлежит модели.

Основным уровнем абстракции танца является Маршрут. Мой опыт работы с Dancer заключается в том, что это приводит к гораздо меньшим приложениям. Частично мой опыт здесь связан с тем фактом, что я имел дело с несколькими тысячами линейных приложений в Catalyst, но мне еще предстоит написать приложение Dancer, которое длиннее 200 строк (с гораздо меньшим объемом). Я думаю, однако, что этот опыт остается верным. Толчок в Dancer заключается в том, что логика контроллера очень тонкая, потому что у нее нет одинаковых инструментов для управления сложным поведением там, которое делает Catalyst.

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

Ответ 3

Catalyst обеспечивает ту же абстракцию, что и Dancer, сила танцора или, скорее, слабость Catalyst или, скорее, слабость Dancer, заключается в том, как Catalyst заставляет разработчика придерживаться передовых методов Perl OO и шаблона проектирования MVC. После выполнения webapps какое-то время это станет очевидным.