PSGI: Что это такое и в чем суета? - PullRequest
18 голосов
/ 26 мая 2011

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

Я не совсем понимаю всю суету. Мне кажется, что PSGI - это фреймворк, который обеспечивает общий интерфейс между различными модулями Apache, который позволяет перемещать между ними ваше приложение. Например, вы можете легко перевести ваше приложение из mod_perl в fastcgi и обеспечить поддержку приложения для обоих вариантов.

Это правильно, или я что-то пропустил?

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

Я неправильно понял функционал PSGI или он просто не подходит для моего проекта?

Ответы [ 3 ]

25 голосов
/ 26 мая 2011

Забудьте бит Apache.Это способ написания вашего приложения, так что выбор веб-сервера становится менее актуальным.На $ work мы переключились на Plack / PSGI после того, как обнаружили, что наше приложение работает с очень высокой нагрузкой на ЦП после обновления до Apache2 - тестирование различных конфигураций Apache и NYTProf не смогли определить причину, а использование PSGI и веб-сервера Starman работало намного лучшедля нас.

Теперь все обрабатывается в одном месте нашим приложением PSGI (перезапись URL, статическое содержимое, заголовки срока действия и т. д.), а не конфигурацией Apache, так что это a) Perl и b) легко тестируютсячерез наши стандартные / t / скрипты.Кроме того, наши тесты теперь проверяют именно то, что видит пользователь, а не только само основное приложение.

Это может быть неважно для вас, если вы довольны Apache и mod_perl, и я уверен, что другиебудет в состоянии дать гораздо лучшие ответы, но для нас отсутствие необходимости иметь дело с чем-то, связанным с Apache, само по себе является таким облегчением.Простота тестирования и возможность просто вставлять Data :: Dumper и видеть, что происходит, а не бороться с ModRewrite и друзьями, - это большое преимущество.

17 голосов
/ 26 мая 2011

Взятый из недавнего сообщения в блоге chromatic, Почему PSGI / Plack Matters (Тестирование) , вот что это:

Это хорошая идея, заимствованная из Python WSGI иСтойка Руби, но сделал Перлиш;это простая формализация шаблона разработки веб-приложения, где точка входа в приложение является ссылкой на функцию, а точка выхода - это кортеж информации заголовка и тела ответа.

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

Важным преимуществом является Там же. ,

С учетом приложения Plack, вам не нужно развертывать на веб-сервере - даже локально - чтобы протестировать ваше приложение, как если бы оно было развернуто ... Plack и TWMP Plack :: Test ) использовать четко определенный шаблон Plack, чтобы превратить нечто, что раньше было сложным, во что-то поразительно легкое.Они не первые и не последние, но они демонстрируют ценность Plack.

7 голосов
/ 26 мая 2011

начал писать ответ и через 50 строк я его удалил. Просто потому, что невозможно сказать (вкратце), почему PSGI чрезвычайно крут. Я тоже новичок в PSGI, но теперь все гораздо проще, чем раньше, в мою эру apache / mod_perl.

Я могу дать вам следующие советы:

  1. прочитайте календарь приключений Plack - все дни, шаг за шагом. Вы должны понимать основную философию, что хорошо на луке и так далее ...:)
  2. поиск CPAN для "Plack :: Middleware ::" - и прочитать первые несколько строк в каждой. Вот МНОГО. (На самом деле должен быть где-то краткий обзор для каждого, к сожалению, не знаю более быстрого способа. Просто хорошо знать, какие промежуточные программы уже разработаны. (Например, вам наверняка понадобится Plack :: Middleware :: Session или Plack :: Middleware :: Static и так далее ...)
  3. читать о Plack :: Builder (уже сделано, когда вы закончили с календарем появления):)
  4. попробуйте написать с ним несколько приложений и обнаружите, что Плак - это как первый секс - теперь вы не понимали, что можете жить без него.

пс: Если здесь было что-то вроде "Perl Oscar", обязательно будет назначена MyiagavaSan. :)

...