Coder Dojo – RESTful API Design



Coder Dojo – RESTful API Design

1 0


coder-dojo


On Github danpersa / coder-dojo

Coder Dojo

RESTful API Design

slides by Dan Persa / @danpersa

Hello Coder Dojo fans! Thanks for joining us today, for our 8th Edition of the Coder Dojo.

The subject for this one is RESTful API Design.

The APIs are the essence of what our systems do, so they are really important to us

As we always strive to improve our dojos, your feedback is really important.

We'll have a feedback session, as usual.

So again, welcome!

What is a Dojo?

A DOJO is a formal training place for the Japanese do arts

Inside of the dojo there are strict rules:

  • Don’t wear a hat or shoes
  • Don’t eat
  • Treat each other with respect

And we'll have some rules of our own

What are Katas?

Kata (型 or 形 literally: "form") is a Japanese word describing detailed choreographed patterns of movements practised either solo or in pairs.

In martial arts, a kata is a precise set of choreographed movements that simulates one side of a combat. The goal, which is asymptotically approached, is perfection. The artist strives to teach his body to make each movement perfectly and to assemble those movements into a fluid act. Well-executed kata are beautiful to watch. But, although they are beautiful, the purpose of learning a kata is not to perform it on stage. The purpose is to train your mind and body how to react in a particular combat situation. The goal is to make the perfected movements automatic and instinctive so that they are there when you need them.

What’s the link between this and coding?

What’s the link between programming and martial arts? Why am I talking about Dojo and Katas and not about computers here?

Programming Is An Art

  • We create something out of nothing
  • There are many ways to do one thing
  • Sometimes the solution comes from the gut
  • You have to be able to react quickly
  • Art creates reactions
And if you don't belive that programming is an art, here is an example: On top we have Jackson Pollocks's Number 14 painting, compared with the dependency graph of a monolith application.

Artists and Practice

Artists use more than 95% of their time to practice

The rest of the time is used for performing

What About Us?

  • Programmers are asked to perform most of their time
  • We have to write production code, which is performing
  • We have stress of deadlines
  • We have pressure from different sides
  • We don’t have time to practice

What do we need in order to improve?

  • We need a safe place to practice
  • Pressure off
  • We have to learn how to play with code/design
  • It has to be fun

Coder Dojo Rulez

  • Timeboxed
  • After each session, delete your code
  • Short retrospective after each session
  • Feedback session after
  • It has to be fun

Timeboxed - we'll help us try more things, and we'll have more sessions.

After each session, delete your code—this will release the pressure, the goal is not to deliver something, but concentrate on the process. So again, today, you don't have to deliver anything, even more, you're not supposed to try finishing the problem. Concentrate on the process.

Short retrospective after each session We have to learn, so we need to reflect on what we just did.

Feedback session after We as coder dojo organizer need to learn and improve, so we value your feedback.

It has to be fun! If it's not fun, we're doing it wrong!

Goals

  • Learn new design techniques
  • Work with strangers on topics you're not an expert in (yet)
  • Collaborate
  • Getting away from the pressure of getting things done
  • Get out of your comfort zone

Why are we doing this?

Welcome to our Coder Dojo!

Today's Schedule

  • 13:00 - Intro Presentation
  • 13:05 - Intro REST
  • 13:15 - Split into two groups
  • 13:20 - First Kata Session (40m)
  • 14:00 - Retrospective & Break
  • 14:15 - Change Groups & Second Kata Session (45m)
  • 15:00 - Retrospective & Photo & Break
  • 15:15 - Change Groups & Third Kata Session (30m)
  • 15:45 - Retrospective
  • 15:50 - Feedback Session
  • 16:00 - Discussions

Questions?

More Info

Coder Dojo RESTful API Design slides by Dan Persa / @danpersa