Upload
kacper-gunia
View
1.857
Download
0
Embed Size (px)
DESCRIPTION
PHP3City Meetup #2 17/06/2013 - Gdańsk
Citation preview
CODEDOJO
@cakper
17/06/13 Gdańskcode dojo
@CAKPER
Software Engineer @SensioLabsUKSilesia PHP User Group // Spug.pl#symfony-pl // Symfonylab.pl
flickr.com/foliosus/2792686705/
道場Dojo
17/06/13 Gdańskcode dojo
“PLACE OF THE WAY”
17/06/13 Gdańskcode dojo
DELIBERATE PRACTICE
“Done on purpose; inten.onal.
Formed with delibera.on; well-‐advised; carefully considered; not sudden or rash.
Not hasty or sudden; slow.”
17/06/13 Gdańskcode dojo
DELIBERATE PRACTICE
10 000Hours
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
17/06/13 Gdańskcode dojo
DREYFUS MODEL OF SKILL ACQUISITION
Novice
Advanced beginner
Proficient
Competent
Expert
flickr.com/kaibara/1449448184/
型
KAta
17/06/13 Gdańskcode dojo
“FORM”
CODE KATA
17/06/13 Gdańskcode dojo
Dave ThomAs
17/06/13 Gdańskcode dojo
CODE KATA
Time to improve skillsFocus on process, not resultsPracticeRepetitionTDD
17/06/13 Gdańskcode dojo
CODE KATA
uninterruptedchallengingNo PressureMistakes are goodSmall steps
17/06/13 Gdańskcode dojo
KATA IDEAS
String CalculatorCode breakerArgument ParserBowling GameNumber NamesFizz Buzz
17/06/13 Gdańskcode dojo
KATA IDEAS
http://codekata.pragprog.com/codekata/
http://www.wiredtothemoon.com/2012/12/12-tdds-of-christmas/
TEST DRIVEN DEVELOPMENT
17/06/13 Gdańskcode dojo
17/06/13 Gdańskcode dojo
TDD CYCLE
RED
GREENREFACTOR
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
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.
PAIR PROGRAMMING
17/06/13 Gdańskcode dojo
17/06/13 Gdańskcode dojo
PAIR PROGRAMMING
Navigator&
Observer
17/06/13 Gdańskcode dojo
PAIR PROGRAMMING
Knowledge FlowReduction of defectsBetter designimproved disciplineBetter Time managementConfidence
17/06/13 Gdańskcode dojo
TDD PING PONG
First Person writes a testSecond writes an implementationboth refactorSecond Person writes next testIterate
BE ORGANISED
17/06/13 Gdańskcode 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
17/06/13 Gdańskcode dojo
CODE RETREAT
Day-Long session // 4*1 hourDiscuss what happenedProblem is more complex Example: Game-of-life
17/06/13 Gdańskcode dojo
CODE DOJO
Choose your kata ONE ProjectorONE IDEONe PairSensei Guides the sessionLearn from the groupSwap every N-Minutes
TOOLS MATTER
17/06/13 Gdańskcode dojo
17/06/13 Gdańskcode dojo
TOOLS MATTER
LanguageIDETesting FrameworkMocking FrameworkRefactoring tools
17/06/13 Gdańskcode dojo
TOOLS MATTER
BUT CHALLENGE YOURSELFAND TRY SOMETHING NEW
17/06/13 Gdańskcode dojo
KATA CONSTRAINTS
Method length limitNo MouseNo loopsNo If/else/switch statementsRefactor at least 3 times No state
“It's not practice that makes it perfect. It's
perfect practice”
17/06/13 Gdańskcode dojo
17/06/13 Gdańskcode dojo
Questions?
17/06/13 Gdańskcode dojo
WE ARE HIRING!
Software EngineerFront-end EngineerSoftware Engineer in testPRoject managerBusiness analyst
www.sensiolabs.co.ukwww.inviqa.com
THANK YOU!
@cakper