Skip to content
This repository has been archived by the owner on May 8, 2021. It is now read-only.

Commit

Permalink
added plugins slides
Browse files Browse the repository at this point in the history
  • Loading branch information
nicholascloud committed May 2, 2013
1 parent e4d0475 commit d09c87f
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 6 deletions.
2 changes: 1 addition & 1 deletion kcdc13/going-postal/README.md
Expand Up @@ -2,4 +2,4 @@

### Presented at KCDC 2013

In this presentation I will cover postal.js, an in-memory service bus for server- and client-side JavaScript development. I will discuss the differences between a service bus and the traditional node eventing model while demonstrating feature differences between postal.js and EventEmitter. I will then move to the browser and show how postal.js can augment client development, specifically how it works charmingly with jQuery.
In this presentation I will cover postal.js, an in-memory service bus for server- and client-side JavaScript development. I will discuss the differences between a service bus and traditional DOM events. I will then move to the browser and show how postal.js can augment client development, specifically how it works charmingly with jQuery.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
52 changes: 47 additions & 5 deletions kcdc13/going-postal/presentation/index.html
Expand Up @@ -16,7 +16,7 @@
<style type="text/css">
.reveal pre {width:100% !important;}
.reveal pre code {max-height:100%;}
.reveal dl {margin-top:1em;}
.reveal dl {margin-top:1em; text-align:left;}
.reveal dt {font-weight:bold; color:#d0ff00;}
.reveal dd {margin-bottom:1em;}
.reveal .slimed {color:#d0ff00; font-weight:bold;}
Expand Down Expand Up @@ -51,6 +51,10 @@ <h1>Events &amp; Messages</h1>
</div>
</section>

<section>
<img src="img/yuno-dom-events.jpg" class="centerme" />
</section>

<section>
<h2>DOM events are interaction-oriented</h2>
<pre><code>
Expand Down Expand Up @@ -79,16 +83,17 @@ <h2>jQuery supports user-defined events</h2>
</section>

<section>
<h2>DOM event limitations</h2>
<h2>Inefficient DOM messaging</h2>
<ul>
<li>DOM events are only handled between the target element and the top of the DOM tree (capturing or bubbling)</li>
<li class="fragment">Any element nested within an eventing element would not receive the triggered event</li>
<li class="fragment">Since events can be triggered anywhere in the DOM tree, the best place to put listeners would be at the top of the tree (e.g. the `body` tag)</li>
<li class="fragment">dynamic DOM updates can disrupt event handlers</li>
<li class="fragment">modules without access to the DOM cannot handle DOM events</li>
<li class="fragment">using UI messaging for business logic violates SOC</li>
</ul>
</section>

<section>
<h2>DOM event limitations</h2>
<h2>Inefficient DOM messaging</h2>
<img src="img/yui-dom-events.jpg" class="centerme" />
<p><small>YUI blog</small></p>
</section>
Expand Down Expand Up @@ -270,6 +275,14 @@ <h1>The Big Guns</h1>
<img src="img/simonpegg4.jpg" class="centerme" />
</section>

<section>
<h2>Patterns</h2>
<dt class="slimed">observer</dt>
<dd>All objects/modules reference and message each other directly.</dd>
<dt class="slimed">mediator</dt>
<dd>All objects/modules reference and message a single mediator that brokers and routes messages.</dd>
</section>

<section>
<h2>Using postal</h2>
<ul>
Expand Down Expand Up @@ -685,6 +698,35 @@ <h2>defer()</h2>
</code></pre>
</section>

<section>
<h1>Plugins</h1>
<div>
<img src="img/simonpegg7.jpg" class="centerme" />
</div>
</section>

<section>
<h2>Plugins</h2>
<dl>
<dt>postal.federation</dt>
<dd>conditionally connect multiple bus instances and black/whitelist messages between them (<a target="_blank" href="https://github.com/postaljs/postal.federation">link</a>)</dd>
<dt>postal.xframe</dt>
<dd>federate message busses across iframes in same/different domains (<a target="_blank" href="https://github.com/postaljs/postal.xframe">link</a>)</dd>
<dt>monologue.js/monopost.js</dt>
<dd>bridge EventEmitter objects with postal bus instances <br />(<a target="_blank" href="https://github.com/postaljs/monologue.js">link1</a>) (<a target="_blank" href="https://github.com/postaljs/monopost.js">link2</a>)</dd>
</dl>
</section>

<section>
<h2>Plugins</h2>
<dl>
<dt>postal.when</dt>
<dd>add deferred/promise async behavior to postal subscriptions (<a target="_blank" href="https://github.com/postaljs/postal.when">link</a>)</dd>
<dt>postal.dom</dt>
<dd>trigger postal messages with DOM events and data attributes (<a target="_blank" href="https://github.com/nicholascloud/postal.dom">link</a>)</dd>
</dl>
</section>

<section>
<h1>Demo</h1>
<div>
Expand Down

0 comments on commit d09c87f

Please sign in to comment.