Your SlideShare is downloading. ×
0
Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Catalyst – MVC framework на Perl (RIT 2008)

1,298

Published on

Catalyst – MVC framework на Perl

Catalyst – MVC framework на Perl

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,298
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Catalyst – MVC framework на Perl Сергей Скворцов $Revision:: 11 $
  • 2. Кто аудитория этого доклада ? <ul><li>Разработчики на Perl </li></ul><ul><ul><li>на “ May Perl 2008 ” будет более детальный доклад </li></ul></ul><ul><li>Разработчики не на Perl </li></ul><ul><ul><li>которые почему-то (?!) его не знают </li></ul></ul><ul><li>Менеджеры </li></ul><ul><ul><li>спокойно, в докладе не будет ни строчки Perl- кода </li></ul></ul>
  • 3. Что такое Catalyst ? <ul><li>Web framework на Perl </li></ul><ul><li>Архитектурный паттерн MVC </li></ul><ul><li>Принцип TIMTOWTDI - « всегда есть более чем один способ сделать это » вместо « one way to do it ». </li></ul><ul><li>Постмодернизм – как в Perl , так и в Catalyst </li></ul>
  • 4. Что делает web-f ramework ? <ul><li>Взаимодействие с веб-сервером </li></ul><ul><ul><li>Apache, CGI, Zeus, FastCGI, … </li></ul></ul><ul><ul><li>Сделать что-то согласно URL </li></ul></ul><ul><ul><li>http :// www . shop . ru / catalog / item /13467 </li></ul></ul><ul><ul><li>http :// www . bigbrother . ru / add ? first_name = Ivan &amp; last _ name = Ivanov &amp; curator =1245 </li></ul></ul><ul><li>Управление пользователями </li></ul><ul><ul><li>Аутентификация, авторизация, сессии </li></ul></ul>
  • 5. Что ещё делает web-f ramework ? <ul><li>Прочесть и/или сохранить что-то в модели источника данных (БД, …) </li></ul><ul><ul><li>DBIx::Class, LDAP, </li></ul></ul><ul><li>Обработка HTML-форм </li></ul><ul><ul><li>FormBuilder, FormFu </li></ul></ul><ul><li>Собственно логика приложения </li></ul><ul><li>Отображение результатов </li></ul><ul><ul><li>(x)HTML, PDF, e-mail, JSON, … </li></ul></ul>
  • 6. Что такое MVC ? <ul><li>Request </li></ul><ul><li>Dispatch </li></ul><ul><li>Read / Store </li></ul><ul><li>Forward </li></ul><ul><li>Render </li></ul><ul><li>Response </li></ul>
  • 7. Какие могут быть Model ’и? <ul><li>Реляционные БД (через ORM или нет) </li></ul><ul><ul><li>DBIx :: Class , Class :: DBI , DBI </li></ul></ul><ul><li>Данные как результат запроса </li></ul><ul><ul><li>SOAP, XMLRPC, Jabber , LDAP, RSS/Atom </li></ul></ul><ul><li>Данные через API веб-служб </li></ul><ul><ul><li>YouTube , Flickr , Amazon - S 3 </li></ul></ul><ul><li>«Простые» модели </li></ul><ul><ul><li>Filesystem , Email , SVN , … </li></ul></ul>
  • 8. Какие могут быть View ? <ul><li>Системы шаблонов ( template systems ): </li></ul><ul><ul><li>Template-Toolkit, Mason, HTML-Template, … </li></ul></ul><ul><li>Представление данных для «машин» ( REST ) : </li></ul><ul><ul><li>JSON , YAML , XML , … </li></ul></ul><ul><li>Графика (SVG, PNG, …) и специальные форматы (Email) </li></ul>
  • 9. View : какие есть Template ’ы? <ul><li>Template-Toolkit – очень популярный </li></ul><ul><li>[% FOREACH book IN books %] </li></ul><ul><li>&lt;li&gt;[% book.title %] by </li></ul><ul><li>[% book.author.name %]&lt;/li&gt; </li></ul><ul><li>[% END %] </li></ul><ul><li>HTML-Mason – тоже популярный </li></ul><ul><li>HTML - Template – очень простой </li></ul><ul><li>XSLT - стандартный XML -язык шаблонов </li></ul><ul><li>ClearSilver - языко-независимый, очень быстрый </li></ul>
  • 10. View : какие есть Template ’ы? <ul><li>MicroMason – компилятор шаблонов </li></ul><ul><li>Petal – реализация спецификации TAL из Zope </li></ul><ul><li>PSP – Perl Server Pages (похож на JSP ) </li></ul><ul><li>Template :: Declare </li></ul><ul><li>PHP – (нет, правда!) </li></ul>
  • 11. URI-to-Action dispatch <ul><li>package MyApp::C ontroller ::Foo; </li></ul><ul><li>sub login : Global # /login </li></ul><ul><li>sub one : Path (&amp;quot;foo&amp;quot;) # /foo/foo </li></ul><ul><li>sub two : Path (&amp;quot; / bar&amp;quot;) # /bar </li></ul><ul><li>sub three : Path # /foo/* </li></ul><ul><li>sub four : Regex (&amp;quot;/group(d+)/view&amp;quot;) </li></ul><ul><li># /group12345/view </li></ul><ul><li>sub five : LocalRegex (&amp;quot;baz/(.*)/quux&amp;quot;) </li></ul><ul><li># /foo/baz/(.*)/quux </li></ul>
  • 12. Поддержка сессий <ul><li>Session:: State </li></ul><ul><ul><li>Cookie , URI </li></ul></ul><ul><li>Session:: Store </li></ul><ul><ul><li>Cache, DBI, FastMmap, Delegate, File, Memcached </li></ul></ul>
  • 13. Аутентификация и авторизация <ul><li>Аутентификация </li></ul><ul><ul><li>Credentials – способ / алгоритм </li></ul></ul><ul><ul><ul><li>Password , HTTP , OpenID , Atom , PAM , Facebook </li></ul></ul></ul><ul><ul><li>Store – хранилище данных о пользователе </li></ul></ul><ul><ul><ul><li>Htpasswd, DBIx-Class, LDAP, … </li></ul></ul></ul><ul><ul><li>набор Realms – пары &lt; Credentials , Store&gt; </li></ul></ul><ul><li>Авторизация </li></ul><ul><ul><li>Authorization::Roles </li></ul></ul><ul><ul><li>Authorization:: ACL </li></ul></ul>
  • 14. … и еще разного полезного <ul><li>HTML-формы </li></ul><ul><ul><li>CGI::FormBuilder , HTML::FormFu </li></ul></ul><ul><li>AJAX </li></ul><ul><ul><li>нет жесткой привязки, любой из: </li></ul></ul><ul><ul><li>Dojo , jQuery , script.aculo.us , Prototype , MochiKit , YUI </li></ul></ul><ul><ul><li>Jemplate - шаблоны на стороне клиента </li></ul></ul><ul><li>Unicode, L 10 N , I 18 N , … </li></ul><ul><ul><li>Unicode прекрасно поддерживает Perl </li></ul></ul><ul><ul><li>Catalyst::Plugin::I18N ( через Locale::Maketext) </li></ul></ul>
  • 15. Runtime : среда запуска <ul><li>development : </li></ul><ul><ul><li>Standalone (Engine::HTTP) </li></ul></ul><ul><ul><li>CGI ( не рекомендуем в production) </li></ul></ul><ul><li>production : </li></ul><ul><ul><li>mod_perl 1.x / 2.x </li></ul></ul><ul><ul><li>FastCGI – nginx, apache, lighttpd </li></ul></ul><ul><ul><li>Catalyst-Engine-*: </li></ul></ul><ul><ul><ul><li>HTTP-POE, HTTP-Prefork, Wx, Zeus, XMPP2, Embeddable </li></ul></ul></ul>
  • 16. Работа с Catalyst <ul><li>Готовые компоненты на CPAN </li></ul><ul><ul><li>порядка 200 модулей </li></ul></ul><ul><li>Детальная документация </li></ul><ul><ul><li>POD, Wiki, книги </li></ul></ul><ul><li>Helpers &amp; scaffolding </li></ul><ul><ul><li>scripts/myapp_create.pl model … </li></ul></ul><ul><li>Тесты </li></ul><ul><ul><li>Catalyst::Test </li></ul></ul><ul><ul><li>Test::WWW::Mechanize::Catalyst </li></ul></ul>
  • 17. TIMTOWTDI <ul><li>There is more than one way to do it </li></ul><ul><ul><li>« всегда есть более чем один способ сделать это » </li></ul></ul><ul><li>Итеративная миграция </li></ul><ul><ul><li>с других платформ или существующих проектов </li></ul></ul><ul><li>Гибкость будущего развития </li></ul><ul><li>One way to do it </li></ul><ul><ul><li>« есть только один верный путь » </li></ul></ul><ul><ul><li>« opinionated software » </li></ul></ul><ul><li>Миграция путем переписывания всего кода сразу </li></ul><ul><li>Зависимость от «линии партии» </li></ul>
  • 18. Постмодернизм : Perl и Catalyst <ul><li>Мы с благодарностью используем новые придумки из других систем и языков… </li></ul><ul><li>… и с одобрением смотрим, как адаптируют наши. </li></ul><ul><li>Интересные идеи легко и непринуждённо инкорпорируются , ведь… </li></ul><ul><li>… это мир open-source , не надо быть скупыми! </li></ul><ul><li>Постмодернизм – это круто ! </li></ul>
  • 19. <ul><li>Спасибо! </li></ul><ul><li>mailto: [email_address] </li></ul>Catalyst – ваш технологический и философский выбор :)

×