'

Catalyst – MVC framework на Perl

Понравилась презентация – покажи это...





Слайд 0

Catalyst – MVC framework на Perl Сергей Скворцов $Revision:: 11$


Слайд 1

2 Кто аудитория этого доклада? Разработчики на Perl на “May Perl 2008” будет более детальный доклад Разработчики не на Perl которые почему-то (?!) его не знают Менеджеры спокойно, в докладе не будет ни строчки Perl-кода


Слайд 2

3 Что такое Catalyst? Web framework на Perl Архитектурный паттерн MVC Принцип TIMTOWTDI - «всегда есть более чем один способ сделать это» вместо «one way to do it». Постмодернизм – как в Perl, так и в Catalyst


Слайд 3

4 Что делает web-framework? Взаимодействие с веб-сервером Apache, CGI, Zeus, FastCGI, … Сделать что-то согласно URL http://www.shop.ru/catalog/item/13467 http://www.bigbrother.ru/add?first_name=Ivan&last_name=Ivanov&curator=1245 Управление пользователями Аутентификация, авторизация, сессии


Слайд 4

5 Что ещё делает web-framework? Прочесть и/или сохранить что-то в модели источника данных (БД, …) DBIx::Class, LDAP, Обработка HTML-форм FormBuilder, FormFu Собственно логика приложения Отображение результатов (x)HTML, PDF, e-mail, JSON, …


Слайд 5

6 Что такое MVC? Request Dispatch Read / Store Forward Render Response


Слайд 6

7 Какие могут быть Model’и? Реляционные БД (через ORM или нет) DBIx::Class, Class::DBI, DBI Данные как результат запроса SOAP, XMLRPC, Jabber, LDAP, RSS/Atom Данные через API веб-служб YouTube, Flickr, Amazon-S3 «Простые» модели Filesystem, Email, SVN, …


Слайд 7

8 Какие могут быть View? Системы шаблонов (template systems): Template-Toolkit, Mason, HTML-Template, … Представление данных для «машин» (REST): JSON, YAML, XML, … Графика (SVG, PNG, …) и специальные форматы (Email)


Слайд 8

9 View: какие есть Template’ы? Template-Toolkit – очень популярный [% FOREACH book IN books %] <li>[% book.title %] by [% book.author.name %]</li> [% END %] HTML-Mason – тоже популярный HTML-Template – очень простой XSLT - стандартный XML-язык шаблонов ClearSilver - языко-независимый, очень быстрый


Слайд 9

10 View: какие есть Template’ы? MicroMason – компилятор шаблонов Petal – реализация спецификации TAL из Zope PSP – Perl Server Pages (похож на JSP) Template::Declare PHP – (нет, правда!)


Слайд 10

11 URI-to-Action dispatch package MyApp::Controller::Foo; sub login :Global # /login sub one :Path("foo") # /foo/foo sub two :Path("/bar") # /bar sub three :Path # /foo/* sub four :Regex("/group(\d+)/view") # /group12345/view sub five :LocalRegex("baz/(.*)/quux") # /foo/baz/(.*)/quux


Слайд 11

12 Поддержка сессий Session::State Cookie, URI Session::Store Cache, DBI, FastMmap, Delegate, File, Memcached


Слайд 12

13 Аутентификация и авторизация Аутентификация Credentials – способ / алгоритм Password, HTTP, OpenID, Atom, PAM, Facebook Store – хранилище данных о пользователе Htpasswd, DBIx-Class, LDAP, … набор Realms – пары <Credentials, Store> Авторизация Authorization::Roles Authorization::ACL


Слайд 13

14 …и еще разного полезного HTML-формы CGI::FormBuilder, HTML::FormFu AJAX нет жесткой привязки, любой из: Dojo, jQuery, script.aculo.us, Prototype, MochiKit, YUI Jemplate - шаблоны на стороне клиента Unicode, L10N, I18N, … Unicode прекрасно поддерживает Perl Catalyst::Plugin::I18N (через Locale::Maketext)


Слайд 14

15 Runtime: среда запуска development: Standalone (Engine::HTTP) CGI (не рекомендуем в production) production: mod_perl 1.x / 2.x FastCGI – nginx, apache, lighttpd Catalyst-Engine-*: HTTP-POE, HTTP-Prefork, Wx, Zeus, XMPP2, Embeddable


Слайд 15

16 Работа с Catalyst Готовые компоненты на CPAN порядка 200 модулей Детальная документация POD, Wiki, книги Helpers & scaffolding scripts/myapp_create.pl model … Тесты Catalyst::Test Test::WWW::Mechanize::Catalyst


Слайд 16

17 TIMTOWTDI There is more than one way to do it «всегда есть более чем один способ сделать это» Итеративная миграция с других платформ или существующих проектов Гибкость будущего развития One way to do it «есть только один верный путь» «opinionated software» Миграция путем переписывания всего кода сразу Зависимость от «линии партии»


Слайд 17

18 Постмодернизм: Perl и Catalyst Мы с благодарностью используем новые придумки из других систем и языков… … и с одобрением смотрим, как адаптируют наши. Интересные идеи легко и непринуждённо инкорпорируются, ведь… …это мир open-source, не надо быть скупыми! Постмодернизм – это круто!


Слайд 18

19 Спасибо! mailto: skv@protey.ru Catalyst – ваш технологический и философский выбор :)


×

HTML:





Ссылка: