Training: "Neither just TDD nor just experience is enough. Mixing both to design good code"

Track: Tutorial

Time: Monday 09:00 - 16:00

Location: Seacliff A

Abstract:
"TDD is not new and developers already know that, although it has ""testing"" in its name, TDD is a design technique. However, many developers still do not know how to interpret better the test feedback in design. This workshop shows how developers should use the feedback and improve their design, using good OO principles, like SOLID.

Programmers should bring a laptop and already download a Java project.
They will implement some behaviors the way they want in well-prepared exercises. After that, solutions will be discussed and speakers will present good advices on how to interpret test feedback and possible OO solutions to the problems.

For every problem, there is time for discussing implementation quality, and also points of view until in the design point of view. In the end, some examples of bad practices in other OO languages can be discussed, and how they can be refactored into other good OO or functional style code.

We have all developed for one year in the same project and saw it becoming dirtier and dirties, until it reached the point of no return, the dark whole of code quality. How can TDD help us with good OO principles?

Learning outcomes
Real world TDD in practice
Design feedback
Good OO design
SOLID principles (Single Responsibility Principle, Open/Closed Principle, Liskov Substitution Principle, Interface Segregation Principle, and Dependency Inversion Principle) Pair programming

Method:

A set of prepared exercises is provided, one at a time, from easy to advanced. The participants are asked to implement a small feature using TDD and pair programming. They are free to solve the problem in any way they want.

After each exercise, speakers will inspect the attendee's solutions, debate them and show how to get design feedback from the test and use it to drive the code to the best possible design.

Requirements: Participants should bring their laptops with a Java compiler and Eclipse installed.

Keywords for the workshop are: TDD, Design, Quality, java, ruby,.net, OO, Solid, Patterns Target audience: Developers and architects who care about good quality and think the ""tdd implies in better code"" does not always hold and have seen poor code written both without and with TDD. Those who want to improve their design based on TDD and those who want to improve their TDD practices based on design.
 
Attendees for this tutorial are required to bring:
  • a laptop with
  • java and eclipse installed
  • git (optional)

Only those who bring a laptop with java and eclipse installed will be able to benefit from the workshop

 

Guilherme Silveira, Creator of Restfulie and Editorial chief of InfoQ Brazil

 Guilherme  Silveira
Guilherme Silveira is head instructor at Caelum, a training and consulting company.  He is the creator of Restfulie, editorial chief of InfoQ Brazil, technical editor for a brazilian magazine, co-founder of the largest online portuguese speaking java user group.

After several years fighting against tight coupling, Guilherme came across REST and finally understood how hypermedia could help us avoiding the client-must-be-updated mess.

Currently writing and recording a Rest from Scratch series showing how to create REST systems using hypermedia in its core in every language Restfulie supports so far: ruby, java and .net.
 
 Twitter: @guilhermecaelum