KEMBAR78
Coding Dojo: Asynchronous Clock-In (2016) | PDF
Coding Dojo Vienna:
(Async) Clock-In-Kata
Session 20160920
Peter Kofler, ‘Code Cop’
@codecopkofler
www.code-cop.org
Copyright Peter Kofler, licensed under CC-BY.
Peter Kofler
• Ph.D. (Appl. Math.)
• Professional Software
Developer for 15+ years
• “fanatic about code quality”
• Freelance Code Mentor
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
I help development teams with
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
●
Professionalism
●
Quality and
Productivity
●
Continuous
Improvement
Mentoring
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
●
Pair Programming
●
Programming
Workshops
●
Deliberate
Practice, e.g.
Coding Dojos
Developing Quality
Software Developers
Coding Dojo Mindset
●
Safe place outside
work
●
We are here to learn
●
Need to slow down
●
Focus on doing it right
●
Collaborative Game
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
Assignment
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
Clock-In-Kata
●
Build a client interface for time tracking.
●
The time punch (data) is sent to back end.
●
It accepts optional GPS positions.
●
Call to server back end is asynchronous.
●
Collecting GPS data is asynchronous, too.
●
Asking user for GPS permission is even
more asynchronous. (optional)
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
https://github.com/wolframkriesing/clock-in-kata
A) B)
C)
https://github.com/wolframkriesing/clock-in-kata
Focus on “Asynchronous”
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
Async Language Features
●
Futures / Promises
●
Chaining promises returns new promise.
●
Future#then (Dart)
●
Promise#then (EcmaScript 6)
●
CompletableFuture#then* (Java 8)
●
async await reserved words (Dart, C#)
●
Short cuts to Future API
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
How to Start
●
Find a pair.
●
Create new project.
●
Add a testing framework.
●
Start with Case A)
●
Mock the asynchronous backend call.
●
Keep the async code clear and readable.
●
What is executed sequential/parallel?
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
Don't Focus on
Getting it Done.
F0cus on Doing
It Perfectly.
→Practice
Closing Circle
●
What did you learn today?
●
What surprised you today?
●
What will you do
differently in the
future?
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
Peter Kofler
@codecopkofler
www.code-cop.org
Kata by
Wolfram Kriesing
@wolframkriesing
https://github.com/wolframkriesing/clock-in-kata
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
CC Images
●
Bruce http://www.flickr.com/photos/sherpas428/4350620602/
●
pairing http://www.flickr.com/photos/dav/94735395/
●
dojo http://www.flickr.com/photos/49715404@N00/3267627038/
●
time punches
https://www.flickr.com/photos/qchristopher/3057895390/
●
async https://www.flickr.com/photos/ilo_oli/187670793/
●
wants you http://www.flickr.com/photos/shutter/105497713/
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY

Coding Dojo: Asynchronous Clock-In (2016)

  • 1.
    Coding Dojo Vienna: (Async)Clock-In-Kata Session 20160920 Peter Kofler, ‘Code Cop’ @codecopkofler www.code-cop.org Copyright Peter Kofler, licensed under CC-BY.
  • 2.
    Peter Kofler • Ph.D.(Appl. Math.) • Professional Software Developer for 15+ years • “fanatic about code quality” • Freelance Code Mentor PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  • 3.
    I help developmentteams with PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY ● Professionalism ● Quality and Productivity ● Continuous Improvement
  • 4.
    Mentoring PETER KOFLER, CODE-COP.ORGFANATIC ABOUT CODE QUALITY ● Pair Programming ● Programming Workshops ● Deliberate Practice, e.g. Coding Dojos
  • 5.
  • 6.
    Coding Dojo Mindset ● Safeplace outside work ● We are here to learn ● Need to slow down ● Focus on doing it right ● Collaborative Game PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  • 7.
    Assignment PETER KOFLER, CODE-COP.ORGFANATIC ABOUT CODE QUALITY
  • 8.
    Clock-In-Kata ● Build a clientinterface for time tracking. ● The time punch (data) is sent to back end. ● It accepts optional GPS positions. ● Call to server back end is asynchronous. ● Collecting GPS data is asynchronous, too. ● Asking user for GPS permission is even more asynchronous. (optional) PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY https://github.com/wolframkriesing/clock-in-kata
  • 9.
  • 10.
    Focus on “Asynchronous” PETERKOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  • 11.
    Async Language Features ● Futures/ Promises ● Chaining promises returns new promise. ● Future#then (Dart) ● Promise#then (EcmaScript 6) ● CompletableFuture#then* (Java 8) ● async await reserved words (Dart, C#) ● Short cuts to Future API PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  • 12.
    How to Start ● Finda pair. ● Create new project. ● Add a testing framework. ● Start with Case A) ● Mock the asynchronous backend call. ● Keep the async code clear and readable. ● What is executed sequential/parallel? PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  • 13.
    Don't Focus on Gettingit Done. F0cus on Doing It Perfectly.
  • 14.
  • 15.
    Closing Circle ● What didyou learn today? ● What surprised you today? ● What will you do differently in the future? PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  • 16.
    Peter Kofler @codecopkofler www.code-cop.org Kata by WolframKriesing @wolframkriesing https://github.com/wolframkriesing/clock-in-kata PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  • 17.
    CC Images ● Bruce http://www.flickr.com/photos/sherpas428/4350620602/ ● pairinghttp://www.flickr.com/photos/dav/94735395/ ● dojo http://www.flickr.com/photos/49715404@N00/3267627038/ ● time punches https://www.flickr.com/photos/qchristopher/3057895390/ ● async https://www.flickr.com/photos/ilo_oli/187670793/ ● wants you http://www.flickr.com/photos/shutter/105497713/ PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY