I've recorded myself doing the Parrot Refactoring kata in order to be able to later watch me and detect problems to correct.
This is the recording of what I did:
If you decide to watch it, please do it at 2x speed (I still write slowly).
These are the commits after every refactoring step.
You can see the code in this GitHub repository.
Record of experiments, readings, links, videos and other things that I find on the long road.
Registro de experimentos, lecturas, links, vídeos y otras cosas que voy encontrando en el largo camino.
Showing posts with label KataCast. Show all posts
Showing posts with label KataCast. Show all posts
Thursday, July 14, 2016
Monday, June 6, 2016
Kata: Tire Pressure Monitoring System in Java (recorded)
I've recorded myself doing the Tire Pressure Monitoring System refactoring kata in order to be able to later watch me and detect problems to correct.
This is the recording of what I did: If you decide to watch it, please do it at 2x speed (I still write slowly).
These are the commits after every refactoring step.
You can see the code in this GitHub repository.
This is the recording of what I did: If you decide to watch it, please do it at 2x speed (I still write slowly).
These are the commits after every refactoring step.
You can see the code in this GitHub repository.
Sunday, May 29, 2016
Kata: Bank Account in Java (recorded)
I've recorded myself using outside-in TDD to code the Printing Account Statement subset of the Bank Account kata in Java using jMock, in order to be able to later watch me and detect problems to correct.
This is the recording of what I did: If you decide to watch it, please do it at 2x speed (I still write slowly).
These are the commits after each green and every refactoring step.
You can see the code in this GitHub repository.
I recently did another version of this kata.
This is the recording of what I did: If you decide to watch it, please do it at 2x speed (I still write slowly).
These are the commits after each green and every refactoring step.
You can see the code in this GitHub repository.
I recently did another version of this kata.
Friday, May 20, 2016
Kata: Brownish Greenfield Gilded Rose in Java (recorded)
I've recorded myself using TDD to code the Brownish Greenfield Gilded Rose kata in order to be able to later watch me and detect problems to correct.
This is the recording of what I did: If you decide to watch it, please do it at 2x speed (I still write slowly).
These are the commits after each green and every refactoring step.
You can see the code in this GitHub repository.
I also did this kata in JavaScript last week.
This is the recording of what I did: If you decide to watch it, please do it at 2x speed (I still write slowly).
These are the commits after each green and every refactoring step.
You can see the code in this GitHub repository.
I also did this kata in JavaScript last week.
Saturday, April 30, 2016
Kata: Mars Rover in Java (recorded)
I've recorded myself using TDD to code the Mars Rover kata in order to be able to later watch me and detect problems to correct.
This is the recording of what I've done so far (all the possible movements of the rover): If you decide to watch it, please do it at 2x speed (I still write slowly).
These are the commits after each green and every refactoring step.
You can see the code in the using_java_enum branch of this GitHub repository.
This is the recording of what I've done so far (all the possible movements of the rover): If you decide to watch it, please do it at 2x speed (I still write slowly).
These are the commits after each green and every refactoring step.
You can see the code in the using_java_enum branch of this GitHub repository.
Thursday, April 17, 2014
Interesting KataCast: "Clojure TDD demo (Robozzle)"
I've just watched this great explained katacast by Brian Marick
The top-down style Marick uses to grow his code through TDD reminds me a lot of how Gregor Kiczales worked through the example programs in Racket of his Introduction to Systematic Program Design - Part 1 Coursera course that I took a while ago.
The difference between the two processes is basically in the tooling, because Midje allows Marick to "stub" the results of helper functions so he can get feedback about his top functions from the very beginning whereas in Kiczales' examples he had to wait until all the helpers were working to see the top functions tests pass.
Apart from that they use the same top-down approach.
Saturday, March 22, 2014
Interesting KataCast: "StringCalculator TDD Kata 2 - Interactions"
I've just watched a great KataCast where Rickard Nilsson test-drives the second part of the String Calculator Kata introducing interaction based testing with mocks:
Rickard Nilsson comments his solution to the kata in this blog post.
Sunday, May 26, 2013
Kata: "Birthday Greetings"
@CoGaNic and I have done the Birthday Greetings kata.
This kata is a simple refactoring exercise by Matteo Vaccari that is meant to teach something about dependency inversion and dependency injection. You can download the kata initial code from here.
We refactored it to decouple the domain objects from the file system and email sending code using the ports and adapters architecture as the exercise suggested. You can see the refactoring result on GitHub.
We think there's still room for improvement in the adapters code, but we are satisfied with how we manage to eliminate the initial coupling between domain objects and the infrastructure classes used to read files and send emails. Now the domain objects don't know anything about them.
All in all, it's been a great exercise. We've thought about dependency inversion and dependency injection (this great article by Brett L. Suchert helped us a lot: DIP in the wild) and clarified many doubts we had about the ports and adapters architecture, also known as, hexagonal architecture.
PS: Some time ago I posted some useful links about the ports and adapters architecture.
----------------------------
Update:
I revisited the kata some time after this post, recorded a screencast to document the refactoring process and wrote a new post about it.
Check it here.
This kata is a simple refactoring exercise by Matteo Vaccari that is meant to teach something about dependency inversion and dependency injection. You can download the kata initial code from here.
We refactored it to decouple the domain objects from the file system and email sending code using the ports and adapters architecture as the exercise suggested. You can see the refactoring result on GitHub.
We think there's still room for improvement in the adapters code, but we are satisfied with how we manage to eliminate the initial coupling between domain objects and the infrastructure classes used to read files and send emails. Now the domain objects don't know anything about them.
All in all, it's been a great exercise. We've thought about dependency inversion and dependency injection (this great article by Brett L. Suchert helped us a lot: DIP in the wild) and clarified many doubts we had about the ports and adapters architecture, also known as, hexagonal architecture.
PS: Some time ago I posted some useful links about the ports and adapters architecture.
----------------------------
Update:
I revisited the kata some time after this post, recorded a screencast to document the refactoring process and wrote a new post about it.
Check it here.
Subscribe to:
Posts (Atom)