SlideShare uma empresa Scribd logo
1 de 67
Dancer's ecosystem French Perl Workshop 2011 http://github.com/sukria http://twitter.com/sukria CPAN: sukria Alexis Sukrieh
The ecosystem
Dancer's ecosystem A selection of plugins FPW 2011 Alexis Sukrieh
Dancer's ecosystem A selection of plugins FPW 2011 Alexis Sukrieh
Dancer's ecosystem A story of a web developer... FPW 2011 Alexis Sukrieh
Dancer's ecosystem Once upon a time,  there was a company
Dancer's ecosystem And there was a guy, a Perl web developer
Dancer's ecosystem Wait. A  Perl  web developer we said.
Dancer's ecosystem So there was this guy, a Perl web developer we said. Joe.
Dancer's ecosystem There is this project...
Dancer's ecosystem It's top-priority
Dancer's ecosystem We don't know yet what it should do...
Dancer's ecosystem But it's very important that it does it well...
Dancer's ecosystem And of course,  it's already late
Dancer's ecosystem Joe will use Dancer
Dancer's ecosystem Because he want's to get things done
Dancer's ecosystem First of all, there are all these HTML templates sent by the designers
Dancer's ecosystem He wants to use Template Toolkit
Dancer's ecosystem Dancer::Template::TemplateToolkit Well, it's in the core
Dancer's ecosystem But the boss said we're gonna use Xslate Because it's faster
Dancer's ecosystem Well, there's a plugin for that Dancer::Template::Xslate
Dancer's ecosystem And we have to log lots of stuff to Syslog
Dancer's ecosystem There's a plugin for that Dancer::Logger::Syslog
Dancer's ecosystem But wait, we'll have to authenticate users
Dancer's ecosystem We'll need a session engine!
Dancer's ecosystem Joe wants YAML files!  It's so convienent during development
Dancer's ecosystem There's a plugin for that Dancer::Session::YAML
Dancer's ecosystem But, well in production,  we want Memcached
Dancer's ecosystem There's a plugin for that Dancer::Session::Memcached
Dancer's ecosystem Wait, something is very slow Joe wants to time the requests
Dancer's ecosystem There's a plugin for that Dancer::Plugin::TimeRequests
Dancer's ecosystem But during development, Joe wants the log  messages to be sent to Firebug
Dancer's ecosystem There's a plugin for that Dancer::Logger::PSGI + Plack::Middleware::ConsoleLogger
Dancer's ecosystem OK, but you know, we have a database We want to access...
Dancer's ecosystem There's a plugin for that Dancer::Plugin::Database
Dancer's ecosystem But, well we're modern right? We want DBIx::Class
Dancer's ecosystem There's a plugin for that Dancer::Plugin::DBIC
Dancer's ecosystem And we use Moose, because  we're actually post-modern! So we want to use KiokuDB
Dancer's ecosystem Again, there's a plugin for that Dancer::Session::KiokuDB
Dancer's ecosystem Joe's boss saw Ruby on Rails He really liked their ”flash” messages Boss wants that.
Dancer's ecosystem No worries Joe, there's a plugin for that Dancer::Plugin::FlashMessage
Dancer's ecosystem Oh, we'll have to plug our website  with a third-party entity We need an API webservice.
Dancer's ecosystem There's a plugin for that Dancer::Plugin::REST
Dancer's ecosystem But the API webservice is not ready And we want the third-party entity to start developing with it...
Dancer's ecosystem Let's make it a fake API, with static responses. There's a plugin for that. Dancer::Plugin::Fake::Response
Dancer's ecosystem And we have email notifications right?
Dancer's ecosystem There's a plugin for that Dancer::Plugin::Email
Dancer's ecosystem What about a Facebook app? It's so hype!
Dancer's ecosystem Well, guess what, there's a plugin for that Dancer::Plugin::Facebook
Dancer's ecosystem Well, even cooler than Facebook,  there is Twitter! Dancer::Plugin::Auth::Twitter
Dancer's ecosystem Joe's boss heard about  cookie-encrypted sessions It's hype, and he wants it.
Dancer's ecosystem There's a plugin for that Dancer::Session::Cookie
Dancer's ecosystem But wait, there is this other app  we should share our sessions with... ”Single-sign on” it's so hype
Dancer's ecosystem PSGI for the win!
Dancer's ecosystem There is a plugin for that: Dancer::Session::PSGI
Dancer's ecosystem What about mobile phones? We want a light layout for the app on smartphones
Dancer's ecosystem There's a plugin for that Dancer::Plugin::MobileDevice
Dancer's ecosystem Cool. Our freaky monster starts to look good...
Dancer's ecosystem But what if Joe needs a specific plugin?
Dancer's ecosystem What if there IS NOT a plugin for that?
Dancer's ecosystem Well, he can writes his own, piece of cake Dancer::Plugin
Dancer's ecosystem A specific session engine? There's Dancer::Session::Abstract for that
Dancer's ecosystem A specific logger engine? There's Dancer::Logger::Abstract for that
Dancer's ecosystem A new kickass template engine? There's Dancer::Template::Abstract for that
Dancer's ecosystem Dancer is modular
Dancer's ecosystem Everything is made to make  it simple to extend
Dancer's ecosystem Now it's time for Joe to code!

Mais conteúdo relacionado

Mais procurados

Writing Friendly libraries for CodeIgniter
Writing Friendly libraries for CodeIgniterWriting Friendly libraries for CodeIgniter
Writing Friendly libraries for CodeIgniter
CodeIgniter Conference
 
Keeping it small: Getting to know the Slim micro framework
Keeping it small: Getting to know the Slim micro frameworkKeeping it small: Getting to know the Slim micro framework
Keeping it small: Getting to know the Slim micro framework
Jeremy Kendall
 
Keeping it Small: Getting to know the Slim Micro Framework
Keeping it Small: Getting to know the Slim Micro FrameworkKeeping it Small: Getting to know the Slim Micro Framework
Keeping it Small: Getting to know the Slim Micro Framework
Jeremy Kendall
 
Perl web frameworks
Perl web frameworksPerl web frameworks
Perl web frameworks
diego_k
 

Mais procurados (19)

How to develop modern web application framework
How to develop modern web application frameworkHow to develop modern web application framework
How to develop modern web application framework
 
Writing Friendly libraries for CodeIgniter
Writing Friendly libraries for CodeIgniterWriting Friendly libraries for CodeIgniter
Writing Friendly libraries for CodeIgniter
 
With a Mighty Hammer
With a Mighty HammerWith a Mighty Hammer
With a Mighty Hammer
 
Building Cloud Castles
Building Cloud CastlesBuilding Cloud Castles
Building Cloud Castles
 
Elegant APIs
Elegant APIsElegant APIs
Elegant APIs
 
Keeping it small: Getting to know the Slim micro framework
Keeping it small: Getting to know the Slim micro frameworkKeeping it small: Getting to know the Slim micro framework
Keeping it small: Getting to know the Slim micro framework
 
Intro to Rails
Intro to Rails Intro to Rails
Intro to Rails
 
Building Cloud Castles - LRUG
Building Cloud Castles - LRUGBuilding Cloud Castles - LRUG
Building Cloud Castles - LRUG
 
Great Developers Steal
Great Developers StealGreat Developers Steal
Great Developers Steal
 
Keeping it Small: Getting to know the Slim Micro Framework
Keeping it Small: Getting to know the Slim Micro FrameworkKeeping it Small: Getting to know the Slim Micro Framework
Keeping it Small: Getting to know the Slim Micro Framework
 
A Quick Introduction to Sinatra
A Quick Introduction to SinatraA Quick Introduction to Sinatra
A Quick Introduction to Sinatra
 
Slim RedBeanPHP and Knockout
Slim RedBeanPHP and KnockoutSlim RedBeanPHP and Knockout
Slim RedBeanPHP and Knockout
 
Keeping it small - Getting to know the Slim PHP micro framework
Keeping it small - Getting to know the Slim PHP micro frameworkKeeping it small - Getting to know the Slim PHP micro framework
Keeping it small - Getting to know the Slim PHP micro framework
 
Developing apps using Perl
Developing apps using PerlDeveloping apps using Perl
Developing apps using Perl
 
10 tips for making Bash a sane programming language
10 tips for making Bash a sane programming language10 tips for making Bash a sane programming language
10 tips for making Bash a sane programming language
 
Functional Pearls 4 (YAPC::EU::2009 remix)
Functional Pearls 4 (YAPC::EU::2009 remix)Functional Pearls 4 (YAPC::EU::2009 remix)
Functional Pearls 4 (YAPC::EU::2009 remix)
 
Inside Bokete: Web Application with Mojolicious and others
Inside Bokete:  Web Application with Mojolicious and othersInside Bokete:  Web Application with Mojolicious and others
Inside Bokete: Web Application with Mojolicious and others
 
Nest v. Flat with EmberData
Nest v. Flat with EmberDataNest v. Flat with EmberData
Nest v. Flat with EmberData
 
Perl web frameworks
Perl web frameworksPerl web frameworks
Perl web frameworks
 

Destaque (7)

PSGI/Plack OSDC.TW
PSGI/Plack OSDC.TWPSGI/Plack OSDC.TW
PSGI/Plack OSDC.TW
 
Perl <b>5 Tutorial</b>, First Edition
Perl <b>5 Tutorial</b>, First EditionPerl <b>5 Tutorial</b>, First Edition
Perl <b>5 Tutorial</b>, First Edition
 
Your first website in under a minute with Dancer
Your first website in under a minute with DancerYour first website in under a minute with Dancer
Your first website in under a minute with Dancer
 
Perl in the Internet of Things
Perl in the Internet of ThingsPerl in the Internet of Things
Perl in the Internet of Things
 
Message passing
Message passingMessage passing
Message passing
 
Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011
 
Plack basics for Perl websites - YAPC::EU 2011
Plack basics for Perl websites - YAPC::EU 2011Plack basics for Perl websites - YAPC::EU 2011
Plack basics for Perl websites - YAPC::EU 2011
 

Semelhante a Dancer's Ecosystem

Akka in Practice: Designing Actor-based Applications
Akka in Practice: Designing Actor-based ApplicationsAkka in Practice: Designing Actor-based Applications
Akka in Practice: Designing Actor-based Applications
NLJUG
 
Moving Pictures - Web 2.0 Expo NYC
Moving Pictures - Web 2.0 Expo NYCMoving Pictures - Web 2.0 Expo NYC
Moving Pictures - Web 2.0 Expo NYC
Cal Henderson
 

Semelhante a Dancer's Ecosystem (20)

Nicolas Pastorino - The Open-source roar in the eZ Community
Nicolas Pastorino - The Open-source roar in the eZ CommunityNicolas Pastorino - The Open-source roar in the eZ Community
Nicolas Pastorino - The Open-source roar in the eZ Community
 
Anatomy of an APS 2 appication
Anatomy of an APS 2 appicationAnatomy of an APS 2 appication
Anatomy of an APS 2 appication
 
Akka in Practice: Designing Actor-based Applications
Akka in Practice: Designing Actor-based ApplicationsAkka in Practice: Designing Actor-based Applications
Akka in Practice: Designing Actor-based Applications
 
Life without CPAN
Life without CPANLife without CPAN
Life without CPAN
 
Thomas Sarlandie Kickoff Talk | Pebble Developer Retreat 2014
Thomas Sarlandie Kickoff Talk | Pebble Developer Retreat 2014Thomas Sarlandie Kickoff Talk | Pebble Developer Retreat 2014
Thomas Sarlandie Kickoff Talk | Pebble Developer Retreat 2014
 
Shelby Tech Talk - The Early Days
Shelby Tech Talk - The Early DaysShelby Tech Talk - The Early Days
Shelby Tech Talk - The Early Days
 
redhat_intern
redhat_internredhat_intern
redhat_intern
 
RecordPlug & plugXchange
RecordPlug & plugXchangeRecordPlug & plugXchange
RecordPlug & plugXchange
 
Puppet 3: Present and Future Tense
Puppet 3: Present and Future TensePuppet 3: Present and Future Tense
Puppet 3: Present and Future Tense
 
Puppet 3: Present and Future Tense
Puppet 3: Present and Future TensePuppet 3: Present and Future Tense
Puppet 3: Present and Future Tense
 
Graphing the Second Screen - Glen Ford @ GraphConnect London 2013
Graphing the Second Screen - Glen Ford @ GraphConnect London 2013Graphing the Second Screen - Glen Ford @ GraphConnect London 2013
Graphing the Second Screen - Glen Ford @ GraphConnect London 2013
 
Boxen: How to Manage an Army of Laptops and Live to Talk About It
Boxen: How to Manage an Army of Laptops and Live to Talk About ItBoxen: How to Manage an Army of Laptops and Live to Talk About It
Boxen: How to Manage an Army of Laptops and Live to Talk About It
 
CPANTS: Kwalitative website and its tools
CPANTS: Kwalitative website and its toolsCPANTS: Kwalitative website and its tools
CPANTS: Kwalitative website and its tools
 
Operations: The Last Mile
Operations: The Last Mile Operations: The Last Mile
Operations: The Last Mile
 
SFSCON23 - Denver Gingerich - How do you really do GPL enforcement
SFSCON23 - Denver Gingerich - How do you really do GPL enforcementSFSCON23 - Denver Gingerich - How do you really do GPL enforcement
SFSCON23 - Denver Gingerich - How do you really do GPL enforcement
 
Tastypie: Easy APIs to Make Your Work Easier
Tastypie: Easy APIs to Make Your Work EasierTastypie: Easy APIs to Make Your Work Easier
Tastypie: Easy APIs to Make Your Work Easier
 
Offline of web applications
Offline of web applicationsOffline of web applications
Offline of web applications
 
Offline for web - Frontend Dev Conf Minsk 2014
Offline for web - Frontend Dev Conf Minsk 2014Offline for web - Frontend Dev Conf Minsk 2014
Offline for web - Frontend Dev Conf Minsk 2014
 
Moving Pictures - Web 2.0 Expo NYC
Moving Pictures - Web 2.0 Expo NYCMoving Pictures - Web 2.0 Expo NYC
Moving Pictures - Web 2.0 Expo NYC
 
Powerpoint
PowerpointPowerpoint
Powerpoint
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Último (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 

Dancer's Ecosystem