Industrial Logic -> Catalogs -> Workshop Catalog -> The Design Patterns Workshop - DPW502

The Design Patterns Workshop

Duration: 5.0 days
ID: DPW502

This workshop begins with a focus on design patterns and concludes with testing and refactoring. During the course of this workshop, participants will learn all 24 patterns in "Design Patterns: Elements of Reusable Object-Oriented Software". They will get a thorough idea of the testing and refactoring process and spend a whole day doing hands-on refactoring.

Show Condensed View

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
6 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
6 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
6 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
6 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
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
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
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
2B Test-Driven Development
Test-Driven Development (TDD) is a practice for efficiently evolving useful code. While its name implies that it's mostly about testing, test-driven development is primarily about design: it keeps programmers focused on exactly what they need to build and helps them avoid over-engineering. Using this technique, programmers write a failing test, write code to pass the test, refactor the code and... Read more
interactive
Participants will get their hands dirty by using TDD to extend the demonstration code in our... Read more
40 mins
2C Test-Driven Development
Test-Driven Development (TDD) is a practice for efficiently evolving useful code. While its name implies that it's mostly about testing, test-driven development is primarily about design: it keeps programmers focused on exactly what they need to build and helps them avoid over-engineering. Using this technique, programmers write a failing test, write code to pass the test, refactor the code and... Read more
challenge
In this challenge, participants will be given the task of writing a program to solve a specific... Read more
90 mins
7A Evolutionary Design
How does nature evolve organisms and what does that have to do with software development? If you study nature's approach to engineering, you often find that highly sophisticated organisms evolve from simple beginnings. For example, during the earliest growth stages, internal organs are basic but functional and will mature over time.
challenge
After reviewing a description of a sophisticated software system, participants must decide what... Read more
30 mins
7B Evolutionary Design
How does nature evolve organisms and what does that have to do with software development? If you study nature's approach to engineering, you often find that highly sophisticated organisms evolve from simple beginnings. For example, during the earliest growth stages, internal organs are basic but functional and will mature over time.
coding
In a fishbowl, the workshop coaches and participants will begin the implementation of the embryonic ... Read more
30 mins
17A Storytest-Driven Development
Storytest-Driven Development involves determining if features of a system work according to a customer's expectations. There are many ways to implement Storytest-Driven Development, including using XML, Excel or simple languages. A typical challenge is to empower customers with tools that let them define Storytests (a.k.a. Acceptance Tests) without working with programmers. Another challenge is ... Read more
dialogue
The workshop coaches will lead a discussion about Storytest-Driven Development, sharing their... Read more
1 hour
17B Storytest-Driven Development
Storytest-Driven Development involves determining if features of a system work according to a customer's expectations. There are many ways to implement Storytest-Driven Development, including using XML, Excel or simple languages. A typical challenge is to empower customers with tools that let them define Storytests (a.k.a. Acceptance Tests) without working with programmers. Another challenge is ... Read more
demonstration
We'll demonstrate FIT (http://fit.c2.com), Ward Cunningham's excellent open-source testing tool... Read more
20 mins
16B 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.
demonstration
In this demonstration, your workshop coach will walk you through system code and test code that was ... Read more
35 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
6D 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
large
The large version of our Refactoring Challenge gives participants ample time to discover many of... Read more
340 mins
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.
45 mins

* With this workshop, participants get a free deck of Design Patterns Playing Cards
and a significant discount on a single license of Refactoring to Patterns Interactive
 
Industrial Logic, Inc.

Catalogs
· Workshop Catalog
· Experience Catalog
· Activity Catalog

Workshops
· The Extreme Programming
Workshop
· The Testing & Refactoring
Workshop
· The Design Patterns
Workshop
                
    

FacebookFacebook  TwitterTwitter  linked inLinkedIn