Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Test Invaders

Test Invaders

An interactive crash course focusing on fast feedback, test-driven development, incremental delivery, and automated deployment.

In this hands-on activity, Continuous Delivery will be demonstrated via a classic favourite, “Space Invaders”.

There is something for everybody!

Scott Robinson

May 30, 2012
Tweet

More Decks by Scott Robinson

Other Decks in Programming

Transcript

  1. A Brief Introduction to
    Space Invaders

    View Slide

  2. Humanity’s Last and Best Hopes
    @quadhome
    @gardym
    Mike, say something funny about yourself.
    Scott, admit your greatest fear is talking in front of a group of strangers.

    View Slide

  3. When the fate of the world is on the line...
    (Really) Fast Feedback
    Test Driven DevelopmentDESIGN
    Continuously Continuous Delivery
    1-Click® Deployment
    Why are we here? To have fun and learn...
    FF: the speed of a team of a development team is dependent on how fast we can react
    TDD: Because evolving code with tests guides our design.
    CD: When changes are made, we can immediately put them out with confidence.
    Deployment: Don’t want to schedule a release to save the world... but, actually...

    View Slide

  4. The Real Reason
    §
    KEEP
    CALM
    AND
    RETRO
    GAME

    View Slide

  5. εϖʔεΠϯϕʔμ
    Designed engineer and built by Tomohiro Nishikado in 1978
    Who, according to Wikipedia, had a dream about Japanese school children attacked by invading aliens whilst waiting for Santa
    Claus. HISTORY: STRANGER THAN FICTION

    View Slide

  6. An Invader
    What’s funny about the Invader? Nothing. There’s here to destroy planet Earth.

    View Slide

  7. The Swarm
    It’s common knowledge that all alien invasions come in swarm form. The worst form.

    View Slide

  8. The Tank
    Our last, best, most advanced but lowest resolution defence against skyborn menaces.

    View Slide

  9. The Tank’s Bullet
    They go up.

    View Slide

  10. An Invader’s Bullet
    They go down.

    View Slide

  11. An approximation of game programming
    while(true) {
    update_everything(time, input);
    collide_everything();
    draw_everything();
    }
    Event loop. Move everything, see what got hit, and then draw the results... like a Space Invader...

    View Slide

  12. The Theatre of War
    (0,0)
    (width, height)
    (x, y)
    (width, height)
    An invader and
    its bounding box
    Collisions occur when
    bounding boxes overlap
    Invader {
    active: [true, false]
    box: { x, y, width, height }
    update(time, input)
    collide(what hit)
    team: [Team.Earth,
    Team.Invader]
    }

    View Slide

  13. So let’s play!
    testinvaders.heroku.com

    View Slide