YAPC::Asia 2009

API Design

By Shawn Moore (‎sartak‎) from Tsukuba.pm
Date: Thursday, 10 September 2009 13:45
Duration: 40 minutes
Language: English
Tags: distzilla fey httpengine imengine kiokudb moose roles taeb

You can find more information on the speaker's site:

Too few projects demand good API design as a critical goal. A clean and extensible API will pay for itself many times over in fostering a community of plugins. We certainly cannot anticipate the ways in which our users will bend our modules, but designing an extensible system alleviates the pain. There are many lessons to be learned from Moose, HTTP::Engine and IM::Engine, Dist::Zilla, KiokuDB, Fey, and TAEB.

The most important lesson is to decouple the core functionality from the "fluff" such as sugar and middleware. This forces you to have a solid API that ordinary users can extend. This also lets users write their own sugar and middleware. In a tightly-coupled system, there is little hope for extensibility.

In this talk, you will learn how to make very productive use of Moose's roles to form the foundation of a pluggable system. Roles provide excellent means of code reuse and safe composition. I will also demonstrate how to use Sub::Exporter to construct a more useful and flexible sugar layer.

Finally, I will reveal the secret to designing excellent APIs.

Attended by:


Brought To You By

YAPC Sponsors

  • O'Reilly Japan
  • Contents One
  • Six Apart
  • Booking.com
  • Fractalist
  • 募集中

Media Sponsors (50音順)

  • @IT
  • O'Reilly Japan
  • gihyo.jp
  • Shoeisha
  • 募集中

JPA Platinum Sponsors

  • S2 Factory
  • endeworks
  • GaiaX
  • DeNA
  • mixi
  • livedoor

JPA Gold Sponsors

JPA Silver Sponsors

  • Adjust
  • Intfloat
  • KDDI Web Communications
  • Seesaa Co. Inc.
  • Six Apart
  • Paperboy & co
  • Plugin and Core
  • Mobile Factory

JPA Bronze Sponsors

  • Soffritto
  • wadit