reorg due to new purpose
Arthur Axel 'fREW' Schmidt [Wed, 9 Jun 2010 05:13:32 +0000 (00:13 -0500)]
slideshow.html

index 4213975..34c2e4f 100644 (file)
@@ -82,9 +82,7 @@
    </div>
 
    <div class="slide">
-      <h1>assumptions</h1>
-      <p>You know a little about Perl and using objects</p>
-      <p>You know a little bit about databases and using foreign keys</p>
+      <h1>What's up guys?</h1>
       <div class="notes">
          <ul>
             <li>How many people have designed a database with Foreign Keys?</li>
    </div>
 
    <div class="slide">
-      <h1>point of note</h1>
-      <p><em>"Debugging is twice as hard as writing the code in the first
-      place. Therefore, if you write the code as cleverly as possible,
-      you are, by definition, not smart enough to debug it." - Brian
-      W. Kernighan</em></p>
-
-      <p>This talk is about making it easy so we are less likely to get
-      confused</p>
+      <h1>Purpose</h1>
+      <p>The purpose of this talk is to show you as many features of
+      DBIx::Class in 40 minutes
+               so that when you need to do something with it later you will
+               know what's possible</p>
    </div>
 
    <div class="slide">
-      <h1>Examples Table Setup</h1>
-      <ul>
-         <li>Authors</li>
-         <li>Books</li>
-      </ul>
-      <em>MySQL not recommended</em>
-   </div>
-
-   <div class="slide">
-      <h1>authors table</h1>
-<pre>CREATE TABLE authors(
-   id   int(8) primary key auto_increment,
-   name varchar(255)
-) engine = InnoDB DEFAULT CHARSET=utf8;</pre>
-   </div>
-
-   <div class="slide">
-      <h1>tips</h1>
-      <p>Name tables as simple plurals (<strong>add an S</strong>) - makes relationships easier to understand</p>
-      <p>Use a character set (<strong>UTF8</strong>) from the start (for international characters)</p>
-   </div>
-
-   <div class="slide">
-      <h1>authors table</h1>
-<pre>CREATE TABLE author<strong>s</strong>(
-   id   int(8) primary key auto_increment,
-   name varchar(255)
-) engine = <strong>InnoDB</strong> DEFAULT CHARSET=<strong>utf8</strong>;</pre>
-   </div>
-
-   <div class="slide">
-      <h1>books table</h1>
-<pre>CREATE TABLE books(
-   id        int(8) primary key auto_increment,
-   title     varchar(255),
-   author_id int(8),foreign key (author)
-      references authors(id)
-) engine = InnoDB DEFAULT CHARSET=utf8;</pre>
-   </div>
-
-
-   <div class="slide">
-      <h1>tips</h1>
-      <p>Name link fields as singular</p>
-      <p>Ensure foreign key is the same type and size in both tables</p>
-   </div>
-
-   <div class="slide">
-      <h1>CRUD compared</h1>
+      <h1>Basic CRUD</h1>
       <ul>
          <li><strong>C</strong> - Create</li>
          <li><strong>R</strong> - Read</li>
    </div>
 
    <div class="slide">
-      <h1>Manual (SQL)</h1>
-   </div>
-
-   <div class="slide">
       <h1>SQL: Create</h1>
 <pre>my $sth = $dbh-&gt;prepare('
    INSERT INTO books
@@ -201,60 +144,12 @@ $sth-&gt;execute(
    </div>
 
    <div class="slide">
-      <h1>SQL: Read</h1>
-<pre>my $sth = $dbh-&gt;prepare('
-   SELECT title,
-   authors.name as author_name
-   FROM books, authors
-   WHERE books.author = authors.id
-');</pre>
-   </div>
-
-   <div class="slide">
-      <h1>SQL: Read</h1>
-<pre>while( my $book = $sth-&gt;fetchrow_hashref() ) {
-  print 'Author of '
-     . $book-&gt;{title}
-     . ' is '
-     . $book-&gt;{author_name}
-     . "\n";
-}</pre>
-   </div>
-
-   <div class="slide">
-      <h1>SQL: Update</h1>
-<pre>my $update = $dbh-&gt;prepare('
-   UPDATE books
-   SET title = ?
-   WHERE id = ?
-');
-
-$update-&gt;execute(
-  'New title',<strong>$book_id</strong>
-);</pre>
-   </div>
-
-   <div class="slide">
-      <h1>SQL: Delete</h1>
-<pre>my $delete = $dbh-&gt;prepare('
-   DELETE FROM books
-   WHERE id = ?
-');
-
-$delete-&gt;execute(<strong>$book_id</strong>);</pre>
-   </div>
-
-   <div class="slide">
-      <h1>DBIx::Class</h1>
-   </div>
-
-   <div class="slide">
       <h1>DBIC: Create</h1>
 <pre>my $book = $book_rs-&gt;create({
    title     =&gt; 'A book title',
    author_id =&gt; $author_id,
 });</pre>
-      <p>Look ma, no SQL!</p>
+      <p>Don't need to work to pair placeholders and values</p>
    </div>
 
    <div class="slide">
@@ -274,11 +169,28 @@ $delete-&gt;execute(<strong>$book_id</strong>);</pre>
 <pre>my $book = $pratchett-&gt;add_to_<strong>books</strong>({
    title =&gt; 'Another Discworld book',
 });</pre>
+               <p>Automaticaly fills in foreign key for you</p>
    </div>
 
    <div class="slide">
-      <h1>DBIC: Read</h1>
-      <p>DBIx::Class - TIMTOWTDI</p>
+      <h1>SQL: Read</h1>
+<pre>my $sth = $dbh-&gt;prepare('
+   SELECT title,
+   authors.name as author_name
+   FROM books, authors
+   WHERE books.author = authors.id
+');</pre>
+   </div>
+
+   <div class="slide">
+      <h1>SQL: Read</h1>
+<pre>while( my $book = $sth-&gt;fetchrow_hashref() ) {
+  print 'Author of '
+     . $book-&gt;{title}
+     . ' is '
+     . $book-&gt;{author_name}
+     . "\n";
+}</pre>
    </div>
 
    <div class="slide">
@@ -292,6 +204,7 @@ my $book = $book_rs-&gt;search({
 my @books = $book_rs-&gt;search({
    author =&gt; $author_id,
 })-&gt;all;</pre>
+               <p>TMTOWTDI</p>
    </div>
 
    <div class="slide">
@@ -315,6 +228,19 @@ my @books = $book_rs-&gt;search({
    </div>
 
    <div class="slide">
+      <h1>SQL: Update</h1>
+<pre>my $update = $dbh-&gt;prepare('
+   UPDATE books
+   SET title = ?
+   WHERE id = ?
+');
+
+$update-&gt;execute(
+  'New title',<strong>$book_id</strong>
+);</pre>
+   </div>
+
+   <div class="slide">
       <h1>DBIC: Update</h1>
 <pre>$book-&gt;update({
   title =&gt; 'New title',
@@ -322,6 +248,16 @@ my @books = $book_rs-&gt;search({
    </div>
 
    <div class="slide">
+      <h1>SQL: Delete</h1>
+<pre>my $delete = $dbh-&gt;prepare('
+   DELETE FROM books
+   WHERE id = ?
+');
+
+$delete-&gt;execute(<strong>$book_id</strong>);</pre>
+   </div>
+
+   <div class="slide">
       <h1>DBIC: Delete</h1>
 <pre>$book-&gt;delete;</pre>
    </div>