There is a very small limit of characters on the Slideshare description. For a full transcript, see the presentation at SpeakerDeck.
OpenTable is hiring! http://opentable.com/careers/
Rachael L Moore
[Rachael L Moore] At OpenTable we have two sides to our products, restaurant and diner. Since most of us here probably don't own restaurants, behind me is a small tour of what that looks like.
Our restaurant team is currently converting a large, feature-rich legacy system for restaurants into a web application called Guest Center. Guest Center is a growing application with a large backlog of features.
Since the functionality of those features is pretty self-contained, because they're highly task-specific, we realized we could get great results if we approached our product as a series of micro sites, or an app of apps, created and maintained by small teams.
But for that to really work, at the scale we need, we have to have really seamless and hopefully painless integration between those applications. For our own sake, because why make our work hours miserable; but more importantly because we have to have a consistent user experience.
There can’t be any hiccups in the end user's experience navigating through the product, even though different teams work in on different parts of the application in different repositories.
One way we can achieve this is by creating re-usable user interface components.
About UI Components
What does that mean, exactly? Well, let's take a step back for a moment.
Graphical web user interfaces are a chimeric combination of script, style, markup, assets, and text. Currently, what we have in most UI libraries are a bunch of separate files that we’re hoping people will combine as we intend and/or to their own satisfaction. Each one of those separate files may use language-specific components, but we currently lack any way to ensure that all this code which is required to work together in concert actually does so.
Benefits of UI Components
Ideally, what we would want is something that can combine all those pieces associated with the user interface. AngularJS directives do this for script and HTML in ways that fit very well within our already-Angular applications, so it's a good place to start to use these in production while learning concepts that will be useful to us in the future.
Because, when we create UI components, we gain a number of benefits....