• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Milano Legacy Coderetreat 2013
 

Milano Legacy Coderetreat 2013

on

  • 1,071 views

 

Statistics

Views

Total Views
1,071
Views on SlideShare
1,014
Embed Views
57

Actions

Likes
2
Downloads
8
Comments
0

4 Embeds 57

https://twitter.com 46
http://www.linkedin.com 6
http://storify.com 4
https://www.rebelmouse.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Milano Legacy Coderetreat 2013 Milano Legacy Coderetreat 2013 Presentation Transcript

    • Legacy Coderetreat Milano 2013 Text 10 PRINT "Hello World" 20 Go to 10
    • #lcrm13
    • Format of the Day from 10:00 to 13:00 MORNING from 13:00 to 14:00 LUNCH from 14:00 to 17:00 AFTERNOON
    • 45 min coding 10 min retrospec 5 min break Format of the Day 45’ coding 10’ review 5’ break
    • •CHALLENGE •REPEAT •FEEDBACK DEEP PRACTICE
    • NO PRESSURE feel free to experiment
    • NO PRESSURE do not complete the task but master it
    • Practice
    • Refactoring •AUTOMATIC •MANUAL
    • Read Code
    • Test Code Characterize Behaviour
    • Design •BY CODE •BY TESTS •BY SMELLS
    • Rules
    • When you don’t pair ...
    • after each session Pair
    • DELETE YOUR CODE AFTER EACH SESSION
    • Playbook
    • Golden Master(aka characterization tests) session #1
    • # suppose that our legacy code is this program called ‘game’ $ game > GOLDEN_MASTER # after some changes we can check to see if behaviour has changed $ game > OUT-01 $ diff GOLDEN_MASTER OUT-01 # after some other changes we check again and... $ game > OUT-02 $ diff GOLDEN_MASTER OUT-02 # GOLDEN_MASTER and OUT-01 are the same # GOLDEN_MASTER and OUT-02 are different -> behaviour changed Golden Master(aka characterization tests)
    • # what about something with a random output? $ whatthecommit > I think I fixed a bug :-) > for great justice. > syntax > LOL! > ... # somewhere in the code... $ cat whatthecommit | ack -i ‘rand’ > 5: g = Random.new > 42: messages[g.rand(NUMBER_OF_MESSAGES)] Golden Master(aka characterization tests)
    • # sequence generators are initialized with a seed # two random sequence generators initialized with the same # seed are going to produce the same sequence of numbers $ irb 1.9.3 > g = Random.new 1.9.3 > (1..10).map{g.rand(1000)} => [691, 362, 997, 692, 236, 532, 687, 616, 218, 702] 1.9.3 > g = Random.new 1.9.3 > (1..10).map{g.rand(1000)} => [865, 186, 89, 382, 894, 708, 769, 850, 452, 85] 1.9.3 > g = Random.new(1) 1.9.3 > (1..10).map{g.rand(1000)} => [37, 235, 908, 72, 767, 905, 715, 645, 847, 960] 1.9.3 > g = Random.new(1) 1.9.3 > (1..10).map{g.rand(1000)} => [37, 235, 908, 72, 767, 905, 715, 645, 847, 960] Golden Master(aka characterization tests)
    • # we need to change the code to take somehow the seed $ whatthecommit --seed=42 > fix the bug, for realz > to those I leave behind, good luck! > herping the derp > changes > ... # so that with the same seed, the same code is going to # create the same output $ whatthecommit --seed=42 > fix the bug, for realz > to those I leave behind, good luck! > herping the derp > changes > ... Golden Master(aka characterization tests)
    • $ git clone https://github.com/gabrielelana/trivia.git $ cd triva # enjoy
    • session #1 Characterize the behaviour of the code with the golden master technique Test Code
    • # to get the already done golden master $ git merge golden-master
    • session #2 Refactoring & Design Refactor the code so that it will be easy to create a new category of questions
    • session #3 Test Code Put under test the roll method/ function
    • session #4 Read Code Mark all the smells in the code. Remove at least 3 of them
    • session #5 Remove all the duplication
    • session #6 Replacing the penalty rules should be a one line change!