35
CODE DOJO @cakper

Code Dojo

Embed Size (px)

DESCRIPTION

PHP3City Meetup #2 17/06/2013 - Gdańsk

Citation preview

Page 1: Code Dojo

CODEDOJO

@cakper

Page 2: Code Dojo

17/06/13 Gdańskcode dojo

@CAKPER

Software Engineer @SensioLabsUKSilesia PHP User Group // Spug.pl#symfony-pl // Symfonylab.pl

Page 3: Code Dojo

flickr.com/foliosus/2792686705/

道場Dojo

Page 4: Code Dojo

17/06/13 Gdańskcode dojo

“PLACE OF THE WAY”

Page 6: Code Dojo

17/06/13 Gdańskcode dojo

DELIBERATE PRACTICE

10 000Hours

Page 7: Code Dojo

17/06/13 Gdańskcode dojo

DELIBERATE PRACTICE

practice must: be focussed be goal-directed stretch your abilities give continuous feedback be followed by self-reflection

@sleepyfox

Page 8: Code Dojo

17/06/13 Gdańskcode dojo

DREYFUS MODEL OF SKILL ACQUISITION

Novice

Advanced beginner

Proficient

Competent

Expert

Page 9: Code Dojo

flickr.com/kaibara/1449448184/

KAta

Page 10: Code Dojo

17/06/13 Gdańskcode dojo

“FORM”

Page 11: Code Dojo

CODE KATA

17/06/13 Gdańskcode dojo

Dave ThomAs

Page 12: Code Dojo

17/06/13 Gdańskcode dojo

CODE KATA

Time to improve skillsFocus on process, not resultsPracticeRepetitionTDD

Page 13: Code Dojo

17/06/13 Gdańskcode dojo

CODE KATA

uninterruptedchallengingNo PressureMistakes are goodSmall steps

Page 14: Code Dojo

17/06/13 Gdańskcode dojo

KATA IDEAS

String CalculatorCode breakerArgument ParserBowling GameNumber NamesFizz Buzz

Page 16: Code Dojo

TEST DRIVEN DEVELOPMENT

17/06/13 Gdańskcode dojo

Page 17: Code Dojo

17/06/13 Gdańskcode dojo

TDD CYCLE

RED

GREENREFACTOR

Page 18: Code Dojo

17/06/13 Gdańskcode dojo

3 LAWS OF TDD

1.Don’t write any code unless you are making a failing test pass

2.Don’t add to the test more than enough to get a failure

3.Only write enough code to make the one failing test pass

Page 19: Code Dojo

17/06/13 Gdańskcode dojo

4 RULES OF SIMPLE DESING

1.All the tests pass.

2.Express every idea we need to express.

3.Contains no duplication.

4.minimize the number of classes, methods and other moving parts.

Page 20: Code Dojo

PAIR PROGRAMMING

17/06/13 Gdańskcode dojo

Page 21: Code Dojo

17/06/13 Gdańskcode dojo

PAIR PROGRAMMING

Navigator&

Observer

Page 22: Code Dojo

17/06/13 Gdańskcode dojo

PAIR PROGRAMMING

Knowledge FlowReduction of defectsBetter designimproved disciplineBetter Time managementConfidence

Page 23: Code Dojo

17/06/13 Gdańskcode dojo

TDD PING PONG

First Person writes a testSecond writes an implementationboth refactorSecond Person writes next testIterate

Page 24: Code Dojo

BE ORGANISED

17/06/13 Gdańskcode dojo

Page 25: Code Dojo

17/06/13 Gdańskcode dojo

CODE CLUB

Choose your kata Set session time // 3*20 minutesPair programmingDelete code after each sessionSwap with Partner

Page 26: Code Dojo

17/06/13 Gdańskcode dojo

CODE RETREAT

Day-Long session // 4*1 hourDiscuss what happenedProblem is more complex Example: Game-of-life

Page 27: Code Dojo

17/06/13 Gdańskcode dojo

CODE DOJO

Choose your kata ONE ProjectorONE IDEONe PairSensei Guides the sessionLearn from the groupSwap every N-Minutes

Page 28: Code Dojo

TOOLS MATTER

17/06/13 Gdańskcode dojo

Page 29: Code Dojo

17/06/13 Gdańskcode dojo

TOOLS MATTER

LanguageIDETesting FrameworkMocking FrameworkRefactoring tools

Page 30: Code Dojo

17/06/13 Gdańskcode dojo

TOOLS MATTER

BUT CHALLENGE YOURSELFAND TRY SOMETHING NEW

Page 31: Code Dojo

17/06/13 Gdańskcode dojo

KATA CONSTRAINTS

Method length limitNo MouseNo loopsNo If/else/switch statementsRefactor at least 3 times No state

Page 32: Code Dojo

“It's not practice that makes it perfect. It's

perfect practice”

17/06/13 Gdańskcode dojo

Page 33: Code Dojo

17/06/13 Gdańskcode dojo

Questions?

Page 34: Code Dojo

17/06/13 Gdańskcode dojo

WE ARE HIRING!

Software EngineerFront-end EngineerSoftware Engineer in testPRoject managerBusiness analyst

www.sensiolabs.co.ukwww.inviqa.com

Page 35: Code Dojo

THANK YOU!

@cakper