Tuesday, July 23, 2013

A Double Dispatch example in C++ using Igloo

To practice I've coded an example of the Double Dispatch implementation pattern I read about first in Rebecca Wirfs-Brock's Object Design: Roles, Responsibilities, and Collaborations and later in Kent Beck's Implementation Patterns.

I used the pattern to implement the rules of the Rock-paper-scissors hand game.

I drove the code using TDD.
Having a "dense day", I painted myself into a corner, but I finally managed to refactor my way to a solution.

I used the Igloo C++ BDD framework, which the more I use, the more I like.

I put the resulting code in this repository. I committed after each new test was made to pass and after each refactoring, so you can follow all the process (including my silly initial mistakes).

Saturday, July 20, 2013

Articles and Posts read

Inspiring
"Somos naturaleza. Poner al dinero como bien supremo nos conduce a la catástrofe"
Operating the Bombe: Jean Valentine's story

Interesting
Everything old is new again
Why Innovators Get Better With Age

Learning and software craftsmanship
Case Studies on Benefits of TDD
El camino a un mejor programador
Bad Advice: “Stop Working So Hard”
Kent Beck on Implementation Patterns
SOLID principles and TDD
Effective Learning for Developers
Review: Structure and Interpretation of Computer Programs - 2nd Edition by Abelson and Sussman
Orden y Concierto
The Quiet Revolution in Programming
14 lessons after five years of professional programming
GRASP
Evaluating new frameworks, libraries and technologies
Classic Software Testing Mistakes
About Kent Beck’s Stepping Stone strategy
Protected variation: the importance of being closed
On the Criteria To Be Used in Decomposing Systems into Modules

C++
Why Are There So Many C++ Testing Frameworks?
C/C++ Scientific Programming Libraries and Tools
C plus plus Behaviour Driven Development tools
Learning Modern C++: An Interview with Barbara Moo
Ten C++11 Features Every C++ Developer Should Use

Java
Which Java web framework to choose? The client- vs server-centric story

Entrepreneurship and Management
16 ways to torture developers
Avoiding Innovation Debt

Spain and Europe
El bipartidismo no toca fondo
Monarquía o república
El sistema electoral y el bipartidismo cimentan la corrupción en España
La pobreza infantil no es inevitable
Viñeta de El Roto del 3 de abril de 2013
El fondo de las pensiones ya tiene el 97% del dinero invertido en deuda española

Sunday, July 7, 2013

Interesting Talk: "Practice"

I've recently watched this video where Corey Haines shares his thoughts on the value of deliberate practice for programmers:

Interesting Talk: "Connascence Examined"

I've recently watched this interesting talk by Jim Weirich on a topic he mentioned in the recent Understanding Coupling and Cohesion discussion:

Interesting Conversation: "Corey Haines and J. B. Rainsberger on Move Specificity Towards the Tests"

I've recently watched this interesting talk between Corey Haines and J. B. Rainsberger about a technique used in TDD:

Interesting Panel: "Understanding Coupling and Cohesion"

I've recently watched this awesome discussion about Coupling and Cohesion:

The participants are Corey Haines, Curtis Cooley, Dale Emery, J. B. Rainsberger, Jim Weirich, Kent Beck, Nat Pryce and Ron Jeffries.

Interesting Talk: "Mi dominio es mío y no lo comparto..."

I've recently warched this gret talk by Javier Acero about DDD and architecture patterns:

Interesting Conversation: "Corey Haines and J. B. Rainsberger on Primitive Obsession and Value Objects"

I've recently watched this interesting conversation between Corey Haines and J. B. Rainsberger about Primitive Obsession and Value Objects:

Interesting Conversation: "Corey Haines and J. B. Rainsberger on Test-Driven and Test-First"

I've recently watched this interesting conversation between J. B. Rainsberger and Corey Haines about Test-Driven Development and Test-First Programming: