);
# kaboom
-Person->new( weight => 'fat' );</code></pre>
+Person->new( weight => 'heavy' );</code></pre>
</div>
<div class="slide">
);</code></pre>
</div>
+<div class="slide">
+ <h1>More Why Moose?</h1>
+
+ <ul>
+ <li>Less code == fewer bugs</li>
+ <li>Moose is well-tested, test your own code, not Moose</li>
+ <li>Focus on <strong>what</strong>, not <strong>how</strong></li>
+ </ul>
+</div>
+
<div class="slide fake-slide0">
<h1>Part 1: Moose Classes</h1>
</div>
</div>
<div class="slide">
+ <h1>Curried Delegation</h1>
+
+ <pre><code>$person->receive_100;
+# really is
+$person->account->deposit(100);</code></pre>
+</div>
+
+<div class="slide">
<h1>Traits and Metaclasses</h1>
<ul>
</div>
<div class="slide">
- <h1>Notable Moose Extensions on CPAN</h1>
+ <h1>Notable MX Modules on CPAN</h1>
<ul>
<li><strong>Not comprehensive</strong></li>
<h1>MooseX::Role::Parameterized</h1>
<pre><code>package HasCollection;
-use MooseX::Role::Parameterized;
-
-parameter type => ( isa => 'Str',
- default => 'Item' );
-role {
+<span class="current incremental">use MooseX::Role::Parameterized;</span>
+<span class="incremental">parameter type => ( isa => 'Str',
+ default => 'Item' );</span>
+<span class="incremental">role {
my $p = shift;
- my $type = 'ArrayRef[' . $p->type() . ']';
+ my $type =
+ 'ArrayRef[' . $p->type() . ']';
has collection =>
( is => 'ro',
isa => $type );
-};</code></pre>
+};</span></code></pre>
</div>
<div class="slide">