|
ID
|
Activity
|
Flavor
|
Duration
|
| 32A |
Learning Design Patterns
Object-Oriented Design is a science and an art at the same time. Becoming a master of object-oriented technology requires
experience and time. We can flatten the learning curve by teaching the classic design patterns that have laid the foundation
of object-oriented design in our time. Patterns are introduced with the help of aids, models, examples, and discussions.
|
session-1 This session covers the following patterns in great detail: Creation Method, Factory Method,... Read more |
4 hours |
| 32B |
Learning Design Patterns
Object-Oriented Design is a science and an art at the same time. Becoming a master of object-oriented technology requires
experience and time. We can flatten the learning curve by teaching the classic design patterns that have laid the foundation
of object-oriented design in our time. Patterns are introduced with the help of aids, models, examples, and discussions.
|
session-2 This session covers the following patterns in great detail: Abstract Factory, Builder, Collecting... Read more |
4 hours |
| 32C |
Learning Design Patterns
Object-Oriented Design is a science and an art at the same time. Becoming a master of object-oriented technology requires
experience and time. We can flatten the learning curve by teaching the classic design patterns that have laid the foundation
of object-oriented design in our time. Patterns are introduced with the help of aids, models, examples, and discussions.
|
session-3 This session covers the following patterns in great detail: Mediator, Observer, Chain of... Read more |
4 hours |
| 32D |
Learning Design Patterns
Object-Oriented Design is a science and an art at the same time. Becoming a master of object-oriented technology requires
experience and time. We can flatten the learning curve by teaching the classic design patterns that have laid the foundation
of object-oriented design in our time. Patterns are introduced with the help of aids, models, examples, and discussions.
|
session-4 This session covers the State and Visitor patterns in great detail, and briefly covers Flyweight,... Read more |
4 hours |
| 5A |
Refactoring War
What's the fastest way to learn Martin Fowler's classic catalog of 74 foundational refactorings? It's called "Refactoring
War," an educational game we invented to help groups rapidly learn a large number of refactorings. The game is played in teams
and involves viewing refactoring cards, comparing the usefulness of the cards and deciding on which card is most useful. The
team with the most... Read more |
standard A workshop coach will lead this activity. |
55 mins |
| 1A |
Unit Testing Tool
Learn the basics of a unit testing tool, including how to write and organize tests, which assert methods may be called, exception
handling within tests, test naming conventions and ways to use the unit testing tool in an integrated development environment
(IDE).
|
introduction All technical participants will take part in this activity in pairs. |
30 mins |
| 4A |
Code Smells
Code smells identify common design problems in object-oriented code. This interactive lecture provides a good overview of
code smells defined by Martin Fowler & Kent Beck in their book "Refactoring: Improving the Design of Existing Code." In addition,
you'll learn about some new smells that have been categorized by Joshua Kerievsky and his colleagues.
|
introduction A workshop coach will lead this technical lecture. |
45 mins |
| 6B |
The Refactoring Challenge
The best way to improve your refactoring skills is to practice cleaning up poorly designed code. And we've got just the thing:
code we custom-designed to reek of over 90% of the code smells identified in the refactoring literature. This poorly designed
code functions correctly, which you can verify by running a full suite of tests against it. Your challenge is to identify
the smells in this code,... Read more |
small The short version of our Refactoring Challenge gives participants a general feel for the smells in... Read more |
2 hours |
| 34B |
Refactoring to Patterns
Patterns are undeniably useful design aids and a cornerstone of object-oriented programming. Yet with the emergence of agile
methodologies like Extreme Programming, our motivation for using patterns has changed. Today, we use patterns when they can
help us reduce or remove duplication, simplify the complex, or make our code better at communicating its intent. In other
words, we refactor to... Read more |
large In this flavor, we review around 2 dozen refactorings to patterns and discuss the philosophy of... Read more |
3 hours |
| 36B |
Patterns Cocktail
Patterns Cocktail is a game that groups can play to help review what they know about Patterns and Pattern Combinations. Each
player is given a card from our deck of Design Patterns Playing Cards. Without looking at his/her card, each player places
the card on his/her forehead (see images on your right). Players then mingle for a few minutes, as they would at a cocktail
party. Each player is... Read more |
large This is the full version of this activity. |
45 mins |
| 16C |
Mock Objects
When writing test and production code, it's useful to know when to introduce Mock Objects. This activity will help you understand
what Mock Objects are, how they function at runtime, common implementation variations and usage patterns.
|
challenge To fully understand mock objects, you need to get your hands dirty. In this challenge, you'll be... Read more |
90 mins |
| 35B |
Patterns Poker
This challenging game is a seriously fun way to learn the art of how to combine Design Patterns. If you've never played the
traditional card game of poker, don't worry - you can learn to play Patterns Poker in a few minutes. The basic idea of Patterns
Poker is to come up with great pattern combinations in order to tell a great story about them. Students use our deck of Design
Patterns Playing... Read more |
large This is the full version of this activity. |
1 hour |
| 18A |
Testing & Refactoring Adoption
The workshop coaches engage participants in a dialogue on adopting Testing & Refactoring in their workplace, including the
following questions: What technical practices will be most difficult to accomplish at our company? How will we test or refactor
specific code? Should we test or refactor our legacy code? What is the best way to transition to these new practices? How
will our new practices... Read more |
in-depth An in-depth dialogue is held with the workshop coach. |
90 mins |