|
<<< Previous speaker
|
next speaker >>>
|
Guilherme Silveira, Creator of Restfulie and Editorial chief of InfoQ Brazil
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.
|
Presentation: "How to stop writing next year's unsustainable piece of code"
Time:
Wednesday 12:05 - 13:05
Location:
Stanford
Abstract:
Once a project has chosen an appropriate architecture, it's all about
the code. We have all joined projects which have good response time
and supports the required number of users, but is impossible to
maintain. Why?
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.
It can't be something nasty and big. We don't do big nasty things. So
where are all those small nasty things that we do, that accumulate
over time, culminating in that horrible piece of software that no one
wants to maintain?
While developing, design and code decisions influenced its quality in
a way that its impossible to say what happens, when it happens and
where it happens. It is time to take code in our hands and care about
it: not only on the short term, but also on the long run.
This talk will go through some of the small and controversial
decisions, that affect code both on the short and the long run. Issues
with AOP for business logic, concise code, bad tests, long code and so
on; always mentioning how average and above average developers affect
those projects.
Another important point is that smaller projects are easier to be
rewritten: should we favor them to always keep code in shape?
Note that as this is not a language specific issue, we will go
through examples of perfect running code, that is impossible to
maintain, in Java, Scala and Ruby.
If you are tired of seeing the same code design mistakes, while just
jumping from one language to another, this session is for you. Come
and also share your examples on poor code design.
The keywords for the workshop are: TDD, Design, Quality, java, ruby,
.net, scala, OO, Solid, Patterns
The target audience: Developers and architects who care about good
quality. Those who want to improve their design based on TDD and
those who want to improve their TDD practices based on design.
Training: "Neither just TDD nor just experience is enough. Mixing both to design good code"
Time:
Tuesday 09:00 - 16:00
Location:
Stanford
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 and
are 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 (Scala and
Ruby) will 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. Those who want to improve their design based on TDD and those who want to improve their TDD practices based on design.
|
|
|