Author BDD Dan North, ThoughtWorks

Author BDD Dan North, ThoughtWorks![]() |
Presentation: "Pimp my architecture"Time: Tuesday 16:15 - 17:00 Location: To be announced
Abstract:
I didn't ask for this mess - it was here when I moved in. You can see where the previous tenants have botched one job after another. Amateurs every one of them! The place isn't even structurally sound, and you can see the layers of old wallpaper where they have "decorated". Three of the rooms have almost the same stuff in them and there's one door that doesn't even lead anywhere. The services are coupled to the clients, the database schema has leaked out and left a nasty stain all over the UI, and the noise and smell from the deployment process is just unbearable. The trouble is, my landlord is (understandably) reluctant to let me burn it all down and start over. It's too risky, too expensive, and besides there are lots of other people living here and we can't move them all out during the renovations. So, join me as I try to pimp my architecture within all these constraints - whilst trying to keep the noise down and not disturb the neighbours. It can't break any downstream dependencies, and we don't want any down time or regression defects when you go into production. Workshop: "Test Driven Development for Java"Time: Thursday 09:00 - 17:00 Location: To be announced
Abstract:
This tutorial demonstrates the development of a small system using test-driven development and supporting technologies. The system will comprise a handful of Java classes that exemplify typical components found in enterprise applications, including domain objects, a service layer, and gateways. The tutorial presents two complementary approaches to TDD: state-based testing and interaction-based testing. Both approaches will be discussed in depth during the development of the system, and benefits of each approach will be highlighted and contrasted. The tutorial also covers common trade-offs and edge case, e.g. how to deal with testing private methods and when not to use dynamic mocks but hand-crafted stub objects. The implementation will use modern technologies such as JUnit 4, Hamcrest, and Mockito. Attendees will gain an understanding of how proper use of test-driven development fosters good design; through decoupling and interface discovery for example. Attendees will also gather a nice catalogue of the most commonly used patterns used in conjunction with test-driven development. |
![]() |
||