ݺߣ

ݺߣShare a Scribd company logo
Catalyst  – MVC framework на  Perl   Сергей Скворцов $Revision::  11 $
Кто аудитория этого  доклада ? Разработчики  на  Perl на  “ May Perl 2008 ”  будет более детальный доклад Разработчики   не  на  Perl которые почему-то (?!) его не знают Менеджеры спокойно, в докладе не будет ни строчки  Perl- кода
Что такое  Catalyst ? Web  framework   на   Perl Архитектурный паттерн  MVC Принцип  TIMTOWTDI  - « всегда есть более чем один способ сделать это »   вместо « one way to do it ». Постмодернизм – как в  Perl ,  так и в  Catalyst
Что делает  web-f ramework ? Взаимодействие с  веб-сервером 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 Управление  пользователями Аутентификация, авторизация, сессии
Что ещё делает  web-f ramework ? Прочесть и/или сохранить что-то в  модели  источника данных  (БД, …) DBIx::Class, LDAP,  Обработка  HTML-форм FormBuilder, FormFu Собственно  логика  приложения Отображение  результатов (x)HTML, PDF, e-mail, JSON, …
Что такое  MVC ? Request Dispatch Read / Store Forward Render Response
Какие могут быть  Model ’и? Реляционные БД (через  ORM  или нет) DBIx :: Class ,  Class :: DBI ,  DBI Данные как результат запроса SOAP, XMLRPC,  Jabber , LDAP, RSS/Atom Данные через  API  веб-служб YouTube ,  Flickr , Amazon - S 3 «Простые» модели Filesystem ,  Email ,  SVN , …
Какие могут быть  View ? Системы   шаблонов  ( template systems ): Template-Toolkit, Mason, HTML-Template, …   Представление данных для «машин» ( REST ) : JSON ,  YAML ,  XML , … Графика  (SVG, PNG, …)  и специальные форматы (Email)
View : какие есть  Template ’ы? Template-Toolkit   – очень популярный [% FOREACH book IN books %] <li>[% book.title %] by [% book.author.name %]</li> [% END %] HTML-Mason   –  тоже популярный HTML - Template   – очень простой XSLT  -  стандартный  XML -язык шаблонов   ClearSilver  -  языко-независимый, очень быстрый
View : какие есть  Template ’ы? MicroMason  –  компилятор шаблонов Petal  – реализация спецификации  TAL  из  Zope  PSP  – Perl Server Pages (похож на  JSP ) Template :: Declare PHP  –  (нет, правда!)
URI-to-Action  dispatch   package MyApp::C ontroller ::Foo; sub login : Global  # /login sub one  : Path (&quot;foo&quot;)  # /foo/foo sub two  : Path (&quot; / bar&quot;)  # /bar sub three : Path   # /foo/*   sub four  : Regex (&quot;/group(\d+)/view&quot;) # /group12345/view sub five  : LocalRegex (&quot;baz/(.*)/quux&quot;) # /foo/baz/(.*)/quux
Поддержка сессий Session:: State Cookie , URI Session:: Store Cache, DBI, FastMmap, Delegate, File, Memcached
Аутентификация и авторизация   Аутентификация Credentials  – способ / алгоритм Password ,  HTTP ,  OpenID ,  Atom ,  PAM ,  Facebook Store  –  хранилище   данных о пользователе Htpasswd, DBIx-Class, LDAP, … набор  Realms  –  пары  < Credentials ,  Store> Авторизация Authorization::Roles  Authorization:: ACL
… и еще разного  полезного HTML-формы CGI::FormBuilder , HTML::FormFu AJAX нет жесткой привязки, любой из: Dojo ,  jQuery , script.aculo.us ,  Prototype ,  MochiKit ,  YUI Jemplate  - шаблоны на стороне клиента Unicode, L 10 N ,  I 18 N , … Unicode  прекрасно поддерживает  Perl Catalyst::Plugin::I18N ( через  Locale::Maketext)
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
Работа с   Catalyst Готовые компоненты на  CPAN порядка 200 модулей Детальная документация POD, Wiki,  книги Helpers & scaffolding scripts/myapp_create.pl model … Тесты Catalyst::Test Test::WWW::Mechanize::Catalyst
TIMTOWTDI There is more than one way to do it « всегда есть более чем один способ сделать это » Итеративная миграция с других платформ или существующих проектов Гибкость будущего развития One way to do it « есть только один верный путь » « opinionated software » Миграция путем переписывания всего кода сразу Зависимость от «линии партии»
Постмодернизм : Perl  и  Catalyst Мы с благодарностью используем новые придумки   из других систем и языков… …  и с одобрением смотрим, как  адаптируют  наши. Интересные идеи   легко и непринуждённо  инкорпорируются , ведь… … это мир  open-source ,  не надо быть скупыми! Постмодернизм – это  круто !
Спасибо! mailto:   [email_address] Catalyst  –  ваш технологический и философский выбор :)

More Related Content

What's hot (18)

Корневая директория WordPress
Корневая директория WordPressКорневая директория WordPress
Корневая директория WordPress
versusbassz
Install denwer
Install denwerInstall denwer
Install denwer
Vladimir Burdaev
Html лаб 2
Html лаб 2Html лаб 2
Html лаб 2
Vladimir Burdaev
Конструктор / Денис Паясь (Яндекс)
Конструктор / Денис Паясь (Яндекс)Конструктор / Денис Паясь (Яндекс)
Конструктор / Денис Паясь (Яндекс)
Ontico
Компиляция скриптов PHP. Алексей Романенко
Компиляция скриптов PHP. Алексей РоманенкоКомпиляция скриптов PHP. Алексей Романенко
Компиляция скриптов PHP. Алексей Романенко
Fuenteovejuna
Стабы для фронтенда - Никита Мостовой (HeadHunter)
Стабы для фронтенда - Никита Мостовой (HeadHunter)Стабы для фронтенда - Никита Мостовой (HeadHunter)
Стабы для фронтенда - Никита Мостовой (HeadHunter)
AvitoTech
Mini-essay final
Mini-essay finalMini-essay final
Mini-essay final
Ксения Березина
JPHP - О проекте на простом языке
JPHP - О проекте на простом языкеJPHP - О проекте на простом языке
JPHP - О проекте на простом языке
Dmitry Zaytsev
Алексей Иванкин: Highload + PHP
Алексей Иванкин: Highload + PHPАлексей Иванкин: Highload + PHP
Алексей Иванкин: Highload + PHP
Oleg Poludnenko
Браузерные API обмена данными: какие и зачем
Браузерные API обмена данными: какие и зачемБраузерные API обмена данными: какие и зачем
Браузерные API обмена данными: какие и зачем
Pavel Klimiankou
Phalcon. Что нового?
Phalcon. Что нового?Phalcon. Что нового?
Phalcon. Что нового?
Oleksandr Torosh
Работаем с API по-взрослому - Максим Кислов (Badoo)
Работаем с API по-взрослому - Максим Кислов (Badoo)Работаем с API по-взрослому - Максим Кислов (Badoo)
Работаем с API по-взрослому - Максим Кислов (Badoo)
AvitoTech
Браузеры
БраузерыБраузеры
Браузеры
Ekaterina Mandik
Сергей Яковлев "Phalcon 2 - стабилизация и производительность"
Сергей Яковлев "Phalcon 2 - стабилизация и производительность"Сергей Яковлев "Phalcon 2 - стабилизация и производительность"
Сергей Яковлев "Phalcon 2 - стабилизация и производительность"
Fwdays
Symfony as the platform for open source projects (sympal, apostrophe, diem)
Symfony as the platform for open source projects (sympal, apostrophe, diem)Symfony as the platform for open source projects (sympal, apostrophe, diem)
Symfony as the platform for open source projects (sympal, apostrophe, diem)
Alex Demchenko
Корневая директория WordPress
Корневая директория WordPressКорневая директория WordPress
Корневая директория WordPress
versusbassz
Конструктор / Денис Паясь (Яндекс)
Конструктор / Денис Паясь (Яндекс)Конструктор / Денис Паясь (Яндекс)
Конструктор / Денис Паясь (Яндекс)
Ontico
Компиляция скриптов PHP. Алексей Романенко
Компиляция скриптов PHP. Алексей РоманенкоКомпиляция скриптов PHP. Алексей Романенко
Компиляция скриптов PHP. Алексей Романенко
Fuenteovejuna
Стабы для фронтенда - Никита Мостовой (HeadHunter)
Стабы для фронтенда - Никита Мостовой (HeadHunter)Стабы для фронтенда - Никита Мостовой (HeadHunter)
Стабы для фронтенда - Никита Мостовой (HeadHunter)
AvitoTech
JPHP - О проекте на простом языке
JPHP - О проекте на простом языкеJPHP - О проекте на простом языке
JPHP - О проекте на простом языке
Dmitry Zaytsev
Алексей Иванкин: Highload + PHP
Алексей Иванкин: Highload + PHPАлексей Иванкин: Highload + PHP
Алексей Иванкин: Highload + PHP
Oleg Poludnenko
Браузерные API обмена данными: какие и зачем
Браузерные API обмена данными: какие и зачемБраузерные API обмена данными: какие и зачем
Браузерные API обмена данными: какие и зачем
Pavel Klimiankou
Работаем с API по-взрослому - Максим Кислов (Badoo)
Работаем с API по-взрослому - Максим Кислов (Badoo)Работаем с API по-взрослому - Максим Кислов (Badoo)
Работаем с API по-взрослому - Максим Кислов (Badoo)
AvitoTech
Сергей Яковлев "Phalcon 2 - стабилизация и производительность"
Сергей Яковлев "Phalcon 2 - стабилизация и производительность"Сергей Яковлев "Phalcon 2 - стабилизация и производительность"
Сергей Яковлев "Phalcon 2 - стабилизация и производительность"
Fwdays
Symfony as the platform for open source projects (sympal, apostrophe, diem)
Symfony as the platform for open source projects (sympal, apostrophe, diem)Symfony as the platform for open source projects (sympal, apostrophe, diem)
Symfony as the platform for open source projects (sympal, apostrophe, diem)
Alex Demchenko

Viewers also liked (20)

Vitamin Group / Design and Digital Portfolio 2013 / Портфолио 2013
Vitamin Group / Design and Digital Portfolio 2013 / Портфолио 2013Vitamin Group / Design and Digital Portfolio 2013 / Портфолио 2013
Vitamin Group / Design and Digital Portfolio 2013 / Портфолио 2013
Vitamin Group
Merry Berry Franchise
Merry Berry FranchiseMerry Berry Franchise
Merry Berry Franchise
Merry Berry
презентация 2010 г.
презентация 2010 г.презентация 2010 г.
презентация 2010 г.
fisherbar
Subway presentation 2011
Subway presentation 2011Subway presentation 2011
Subway presentation 2011
vvvdx
10 Leadership Lessons I Wish I Learned In My 20's
10 Leadership Lessons I Wish I Learned In My 20's10 Leadership Lessons I Wish I Learned In My 20's
10 Leadership Lessons I Wish I Learned In My 20's
Todd Wilms
20 Jobs of the Future
20 Jobs of the Future20 Jobs of the Future
20 Jobs of the Future
sparks & honey
Trading Up The Chain: How To Make National News in 3 Easy Steps (Excerpt from...
Trading Up The Chain: How To Make National News in 3 Easy Steps (Excerpt from...Trading Up The Chain: How To Make National News in 3 Easy Steps (Excerpt from...
Trading Up The Chain: How To Make National News in 3 Easy Steps (Excerpt from...
Ryan Holiday
Nail the First 60 Seconds of Your Presentation
Nail the First 60 Seconds of Your PresentationNail the First 60 Seconds of Your Presentation
Nail the First 60 Seconds of Your Presentation
Bruce Kasanoff
The Growth Hacker Wake Up Call
The Growth Hacker Wake Up CallThe Growth Hacker Wake Up Call
The Growth Hacker Wake Up Call
Ryan Holiday
16 Unique & Innovative Ways to Market your Business
16 Unique & Innovative Ways to Market your Business16 Unique & Innovative Ways to Market your Business
16 Unique & Innovative Ways to Market your Business
NicoleElmore.com
PSFK Future of Work Report 2013
PSFK Future of Work Report 2013PSFK Future of Work Report 2013
PSFK Future of Work Report 2013
PSFK
The Plateau Effect: Why People Get Stuck...and How to Break Through
The Plateau Effect: Why People Get Stuck...and How to Break ThroughThe Plateau Effect: Why People Get Stuck...and How to Break Through
The Plateau Effect: Why People Get Stuck...and How to Break Through
ThePlateauEffect
50 Powerful Statistics About Tech Mega Trends Affecting Every Business
50 Powerful Statistics About Tech Mega Trends Affecting Every Business50 Powerful Statistics About Tech Mega Trends Affecting Every Business
50 Powerful Statistics About Tech Mega Trends Affecting Every Business
Vala Afshar
Restaurant Business Plan Presentation
Restaurant Business Plan PresentationRestaurant Business Plan Presentation
Restaurant Business Plan Presentation
Mahadi Hasan
99 Facts on the Future of Business
99 Facts on the Future of Business99 Facts on the Future of Business
99 Facts on the Future of Business
removed_98c8d4827eb0208c4db118838b8f6010
Profits before People
Profits before PeopleProfits before People
Profits before People
Bruce Kasanoff
The Sharing Economy
The Sharing EconomyThe Sharing Economy
The Sharing Economy
Loic Le Meur
Official ݺߣshare for What's the Future of Business by Brian Solis #WTF
Official ݺߣshare for What's the Future of Business by Brian Solis #WTFOfficial ݺߣshare for What's the Future of Business by Brian Solis #WTF
Official ݺߣshare for What's the Future of Business by Brian Solis #WTF
Brian Solis
Congratulations Graduate! Eleven Reasons Why I Will Never Hire You.
Congratulations Graduate! Eleven Reasons Why I Will Never Hire You.Congratulations Graduate! Eleven Reasons Why I Will Never Hire You.
Congratulations Graduate! Eleven Reasons Why I Will Never Hire You.
Mark O'Toole
7 Tips to Beautiful PowerPoint by @itseugenec
7 Tips to Beautiful PowerPoint by @itseugenec7 Tips to Beautiful PowerPoint by @itseugenec
7 Tips to Beautiful PowerPoint by @itseugenec
Eugene Cheng
Vitamin Group / Design and Digital Portfolio 2013 / Портфолио 2013
Vitamin Group / Design and Digital Portfolio 2013 / Портфолио 2013Vitamin Group / Design and Digital Portfolio 2013 / Портфолио 2013
Vitamin Group / Design and Digital Portfolio 2013 / Портфолио 2013
Vitamin Group
презентация 2010 г.
презентация 2010 г.презентация 2010 г.
презентация 2010 г.
fisherbar
Subway presentation 2011
Subway presentation 2011Subway presentation 2011
Subway presentation 2011
vvvdx
10 Leadership Lessons I Wish I Learned In My 20's
10 Leadership Lessons I Wish I Learned In My 20's10 Leadership Lessons I Wish I Learned In My 20's
10 Leadership Lessons I Wish I Learned In My 20's
Todd Wilms
Trading Up The Chain: How To Make National News in 3 Easy Steps (Excerpt from...
Trading Up The Chain: How To Make National News in 3 Easy Steps (Excerpt from...Trading Up The Chain: How To Make National News in 3 Easy Steps (Excerpt from...
Trading Up The Chain: How To Make National News in 3 Easy Steps (Excerpt from...
Ryan Holiday
Nail the First 60 Seconds of Your Presentation
Nail the First 60 Seconds of Your PresentationNail the First 60 Seconds of Your Presentation
Nail the First 60 Seconds of Your Presentation
Bruce Kasanoff
The Growth Hacker Wake Up Call
The Growth Hacker Wake Up CallThe Growth Hacker Wake Up Call
The Growth Hacker Wake Up Call
Ryan Holiday
16 Unique & Innovative Ways to Market your Business
16 Unique & Innovative Ways to Market your Business16 Unique & Innovative Ways to Market your Business
16 Unique & Innovative Ways to Market your Business
NicoleElmore.com
PSFK Future of Work Report 2013
PSFK Future of Work Report 2013PSFK Future of Work Report 2013
PSFK Future of Work Report 2013
PSFK
The Plateau Effect: Why People Get Stuck...and How to Break Through
The Plateau Effect: Why People Get Stuck...and How to Break ThroughThe Plateau Effect: Why People Get Stuck...and How to Break Through
The Plateau Effect: Why People Get Stuck...and How to Break Through
ThePlateauEffect
50 Powerful Statistics About Tech Mega Trends Affecting Every Business
50 Powerful Statistics About Tech Mega Trends Affecting Every Business50 Powerful Statistics About Tech Mega Trends Affecting Every Business
50 Powerful Statistics About Tech Mega Trends Affecting Every Business
Vala Afshar
Restaurant Business Plan Presentation
Restaurant Business Plan PresentationRestaurant Business Plan Presentation
Restaurant Business Plan Presentation
Mahadi Hasan
Official ݺߣshare for What's the Future of Business by Brian Solis #WTF
Official ݺߣshare for What's the Future of Business by Brian Solis #WTFOfficial ݺߣshare for What's the Future of Business by Brian Solis #WTF
Official ݺߣshare for What's the Future of Business by Brian Solis #WTF
Brian Solis
Congratulations Graduate! Eleven Reasons Why I Will Never Hire You.
Congratulations Graduate! Eleven Reasons Why I Will Never Hire You.Congratulations Graduate! Eleven Reasons Why I Will Never Hire You.
Congratulations Graduate! Eleven Reasons Why I Will Never Hire You.
Mark O'Toole
7 Tips to Beautiful PowerPoint by @itseugenec
7 Tips to Beautiful PowerPoint by @itseugenec7 Tips to Beautiful PowerPoint by @itseugenec
7 Tips to Beautiful PowerPoint by @itseugenec
Eugene Cheng

Similar to Catalyst – MVC framework на Perl (RIT 2008) (20)

2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
JSC “Arcadia Inc”
Web programming modern tendencies
Web programming modern tendenciesWeb programming modern tendencies
Web programming modern tendencies
DarkestMaster
Symfony 3
Symfony 3Symfony 3
Symfony 3
Дмитрий Золотов
Client Side Autotesting Flash
Client Side Autotesting FlashClient Side Autotesting Flash
Client Side Autotesting Flash
guestb0af15
Пост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновениеПост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновение
beched
Воюем за ресурсы (ZFConf2011)
Воюем за ресурсы (ZFConf2011)Воюем за ресурсы (ZFConf2011)
Воюем за ресурсы (ZFConf2011)
Alexey Kachayev
Мировые информационные ресурсы. Лекция 5
Мировые информационные ресурсы. Лекция 5Мировые информационные ресурсы. Лекция 5
Мировые информационные ресурсы. Лекция 5
Dmitriy Krukov
2014-04-04 03 Александр Курочкин. PHP. Ускорение, о котором нет смысла спорить.
2014-04-04 03 Александр Курочкин. PHP. Ускорение, о котором нет смысла спорить.2014-04-04 03 Александр Курочкин. PHP. Ускорение, о котором нет смысла спорить.
2014-04-04 03 Александр Курочкин. PHP. Ускорение, о котором нет смысла спорить.
Омские ИТ-субботники
Компиляция скриптов PHP (Алексей Романенко)
Компиляция скриптов PHP (Алексей Романенко)Компиляция скриптов PHP (Алексей Романенко)
Компиляция скриптов PHP (Алексей Романенко)
Ontico
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработки
-Доминанта
Платформа для автоматического тестирования Erlang проектов на примере UserGat...
Платформа для автоматического тестирования Erlang проектов на примере UserGat...Платформа для автоматического тестирования Erlang проектов на примере UserGat...
Платформа для автоматического тестирования Erlang проектов на примере UserGat...
DevDay
Программируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusПрограммируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco Nexus
Cisco Russia
Highload2009 Rybak Badoo Os
Highload2009 Rybak Badoo OsHighload2009 Rybak Badoo Os
Highload2009 Rybak Badoo Os
HighLoad2009
Использование Symfony
Использование SymfonyИспользование Symfony
Использование Symfony
Media Gorod
Automation Flex Applications with Selenium rc
Automation  Flex Applications with Selenium rcAutomation  Flex Applications with Selenium rc
Automation Flex Applications with Selenium rc
automated-testing.info
Node.JS: возможности для РНР-разработчика
Node.JS: возможности для РНР-разработчикаNode.JS: возможности для РНР-разработчика
Node.JS: возможности для РНР-разработчика
Alexei Smolyanov
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5
Provectus
Доставка данных в реальном времени.
Доставка данных в реальном времени. Доставка данных в реальном времени.
Доставка данных в реальном времени.
beshkenadze
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
JSC “Arcadia Inc”
Web programming modern tendencies
Web programming modern tendenciesWeb programming modern tendencies
Web programming modern tendencies
DarkestMaster
Client Side Autotesting Flash
Client Side Autotesting FlashClient Side Autotesting Flash
Client Side Autotesting Flash
guestb0af15
Пост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновениеПост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновение
beched
Воюем за ресурсы (ZFConf2011)
Воюем за ресурсы (ZFConf2011)Воюем за ресурсы (ZFConf2011)
Воюем за ресурсы (ZFConf2011)
Alexey Kachayev
Мировые информационные ресурсы. Лекция 5
Мировые информационные ресурсы. Лекция 5Мировые информационные ресурсы. Лекция 5
Мировые информационные ресурсы. Лекция 5
Dmitriy Krukov
2014-04-04 03 Александр Курочкин. PHP. Ускорение, о котором нет смысла спорить.
2014-04-04 03 Александр Курочкин. PHP. Ускорение, о котором нет смысла спорить.2014-04-04 03 Александр Курочкин. PHP. Ускорение, о котором нет смысла спорить.
2014-04-04 03 Александр Курочкин. PHP. Ускорение, о котором нет смысла спорить.
Омские ИТ-субботники
Компиляция скриптов PHP (Алексей Романенко)
Компиляция скриптов PHP (Алексей Романенко)Компиляция скриптов PHP (Алексей Романенко)
Компиляция скриптов PHP (Алексей Романенко)
Ontico
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработки
-Доминанта
Платформа для автоматического тестирования Erlang проектов на примере UserGat...
Платформа для автоматического тестирования Erlang проектов на примере UserGat...Платформа для автоматического тестирования Erlang проектов на примере UserGat...
Платформа для автоматического тестирования Erlang проектов на примере UserGat...
DevDay
Программируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusПрограммируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco Nexus
Cisco Russia
Highload2009 Rybak Badoo Os
Highload2009 Rybak Badoo OsHighload2009 Rybak Badoo Os
Highload2009 Rybak Badoo Os
HighLoad2009
Использование Symfony
Использование SymfonyИспользование Symfony
Использование Symfony
Media Gorod
Automation Flex Applications with Selenium rc
Automation  Flex Applications with Selenium rcAutomation  Flex Applications with Selenium rc
Automation Flex Applications with Selenium rc
automated-testing.info
Node.JS: возможности для РНР-разработчика
Node.JS: возможности для РНР-разработчикаNode.JS: возможности для РНР-разработчика
Node.JS: возможности для РНР-разработчика
Alexei Smolyanov
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5
Provectus
Доставка данных в реальном времени.
Доставка данных в реальном времени. Доставка данных в реальном времени.
Доставка данных в реальном времени.
beshkenadze

Catalyst – MVC framework на Perl (RIT 2008)

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