A coding exercise simple enough to do quickly, but complex enough to present realistic design problems.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Messaging Exercise

In this coding exercise, you gradually evolve an application for sending two different types of messages, emails and IM chats, through a network connection. The mechanics of input and output are drastically oversimplified (command-line input, and output to one single writer that represents different network connections), but are just realistic to simulate some of the issues that a real app would face. There are a series of end-to-end tests representing eight different user stories. All but the first are annotated with @Ignore. Once the first story is complete, remove the @Ignore from the second and start work on it, and so on.

This originated as a place to try out the rules from Jeff Bay's Object Calisthenics exercise, and if you do it, I'd recommend trying that out for at least one attempt.