Abstract
Developer practices for traditional and agile Java development are well understood and documented. But dynamic languages—Groovy, Ruby, and others—change the ground rules. Many of the common practices, refactoring techniques, and design patterns we have been taught either no longer apply or should be applied differently and some new techniques also come into play. In this talk, techniques for agile development with dynamic languages are discussed. How should we apply design patterns? How should we better apply refactoring techniques? What new aspects do we need to think about?
The Pitch
Developer practices for traditional and agile Java development are well understood and documented. But dynamic languages—Groovy, Ruby, and others—change the ground rules. Many of the common practices, refactoring techniques, and design patterns we have been taught either no longer apply or should be applied differently. In addition, some new techniques can come into play to improve your development.
In this talk, new and modified techniques for agile development with dynamic languages are discussed. How should we apply design patterns, how should we better apply refactoring techniques and what new aspects do we need to think about are all discussed.
Topics include:
The examples are mainly illustrated using Groovy with some Ruby and a spattering of other languages. Handouts will include Groovy and Ruby examples for each topic. Based on feedback from last year, topics have been further elaborated and concrete examples are given for any controversial practices.
This talk is heavily example driven. For each topic the general agile context for the topic is presented with one or two slides. Then examples in Groovy and Ruby (and a spattering of other languages) are given (given time limitations it may not be possible to present both Groovy and Ruby examples for each topic - the presenter has mostly been using Groovy for the last couple of years so there is a slight bias towards that language - however handouts will cover both Groovy and Ruby and depending on audience interest, either can be examined). Attendees with a laptop will be able to run some of the examples if they choose but the intent is not to allow formal breaks for doing exercises. Attendees should treat the exercises as bonus material they can take home for exploration after the conference.