• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Perl in the Real World
 

Perl in the Real World

on

  • 550 views

Presented at the YAPC::Europe 2010 conference in Pisa, Italy

Presented at the YAPC::Europe 2010 conference in Pisa, Italy

Statistics

Views

Total Views
550
Views on SlideShare
550
Embed Views
0

Actions

Likes
0
Downloads
1
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Perl in the Real World Perl in the Real World Presentation Transcript

    • Perl in the Real WorldJon Allen (JJ) – jj@opusvl.com YAPC::Europe 2010 Perl in the Real World Open Source Business Systems www.opusvl.com
    • About OpusVL•  Open Source development company•  Based in Rugby, UK•  Founded in 2000 –  Celebrated our 10th anniversary in January 2010•  Provide Open Source business systems –  National retailers, financial institutions, SMEs –  Solutions, not code Perl in the Real World Open Source Business Systems www.opusvl.com
    • What do we do?•  Bespoke software development –  Back-office / financial systems –  eCommerce –  Intranet applications•  Proud to use Perl –  And Moose, Catalyst, DBIx::Class, cpanminus, Test::More, etc http://xkcd.com/208/ Perl in the Real World Open Source Business Systems www.opusvl.com
    • Intranet project•  National chain of car dealerships (UK)•  Very large feature set•  Multiple domains –  Sales, HR, Customer Service, Finance•  Future plans –  Integrate all back-office systems Perl in the Real World Open Source Business Systems www.opusvl.com
    • Architecture•  Two key design considerations:•  Entensible –  Long life-cycle, always adding new features•  Maintainable –  Modular design, develop and update individual components independently of the whole system Perl in the Real World Open Source Business Systems www.opusvl.com
    • Pluggable Catalyst apps•  Create a "base" application –  Common functions, views, models etc –  Authentication and access control –  Standard user interface components•  Write application plugins as CatalystX:: components•  Combine these together into a new Catalyst app Perl in the Real World Open Source Business Systems www.opusvl.com
    • CatalystX::AppBuilder•  Programmable configuration for Catalyst applications –  Define your application in code –  Extend in the next app, then extend again and so on•  Handles inheritance path for components –  e.g. a chain of template directories for Catalyst::View::TT –  $self->inherited_path_to(root,templates) Perl in the Real World Open Source Business Systems www.opusvl.com
    • CatalystX::InjectComponent•  Injects Controller, Model, and View components into a Catalyst application after setup_components => sub { my $class = shift; CatalystX::InjectComponent->inject( into => $class, component => My::Other::Controller::JJ, as => Controller::NewName, ); }•  Create components with CatalystX::Starter Perl in the Real World Open Source Business Systems www.opusvl.com
    • Deployment•  Base OS – typically Debian•  Three environments –  Development –  Staging –  Production•  Always compile Perl from source –  System Perl belongs to the OS, custom Perl 5.10.1 for applications Perl in the Real World Open Source Business Systems www.opusvl.com
    • First rule of Installation Club•  Everything installed to Staging and Production must be packaged as CPAN-style modules –  Standard module layout –  Makefile.PL, t/*, Pod documentation –  All modules are versioned •  Very simple to regress to a previous release•  Perl is the OS –  Unlike native OS packages, CPAN works on Debian, RHEL, Mac OS X, Solaris, etc Perl in the Real World Open Source Business Systems www.opusvl.com
    • Use the toolchain, Luke•  Install using cpanminus –  Resolves dependencies –  Very fast –  Standard install procedure for each project –  cpanm --sudo --installdeps .•  Components of a large system can be managed and upgraded independently Perl in the Real World Open Source Business Systems www.opusvl.com
    • Future•  Internal CPAN mirror –  Include all custom code –  Task:: modules to set up client environments•  Internal Perldoc –  Develop on top of Perldoc::Server•  Dont fight it, feel it –  CPAN toolchain gives many benefits –  Well worth using! Perl in the Real World Open Source Business Systems www.opusvl.com
    • Conclusion•  Clients care about results, not code –  The technology is our job•  Perl gives us the tools to deliver•  The Perl Community makes it possible•  Thank you! Perl in the Real World Open Source Business Systems www.opusvl.com