andreaprovaglio.com

Core Design Patterns

Printed from http://andreaprovaglio.com. All rights reserved.

Track: Software Design
Platform: Java Ruby Platform-agnostic
Days: 5
Code: 701
Author: Andrea Provaglio

A course on applying Design Patterns and guidelines to create Object-Oriented code which is easier to extend, maintain and share within a group.

Description

In the last decade Design Patterns have seen considerable acceptance within the software community and they are today a fundamental conceptual tool for software architects and developers alike. A Design Pattern describes a recurring problem and then presents the core of its solution in such a way that the same solution can be applied over and over in different situations, therefore improving the quality, the clarity and the ease of reuse of your code.

Design Pattern are also a vocabulary of high-level concepts that make communication within a team more effective and less ambiguous in the design, coding and re-engineering phases of development.

This course covers the most popular Design Patterns (those described in the fundamental book "Design Patterns" by Gamma et al., plus a few from other authors) and presents the student with a way to approach software development in which the problems are seen and solved at a higher conceptual level, identifying the core of the problem before an ad hoc solution (which may not be reusable) is developed.

About 30% of the time is on guided exercises.

Contents

  • Design Patterns: origin, definition and goals
  • Design concepts for the maintainability and reuse of Object-Oriented code
  • Best practices for the maintainability and reuse of Object-Oriented code
  • Theory and practice of 25+ fundamentals Design Patterns (creational, structural, behavioral)

Skills you'll learn

  • How to "make your intentions clear"
  • Apply Design Patterns to improve an existing code base
  • Learn to identify categories of recurring problems and apply the appropriate Design Patterns as a solution

Pre-requisites

To get the most out of this course, you should have attended the following courses or have equivalent practical experience:

Notes

This course is not targeted to any specific programming language but the exercises require, although that's not mandatory, some confidence with Java or Ruby.

For additional information, please contact us.

Get Connected!
Latest Updates
Speaking at Scandev on Tour 2011
I'll be giving my "Overcoming Self-organization Blocks" presentation at Scandev on Tour 2011, October 18 2011 in Stockholm, Sweden.
Speaking at Agile Prague 2011
I'll be giving my "Overcoming Self-organization Blocks" presentation at Agile Prague 2011, September 29-30 2011 in Prague, Czech Republic.
Speaking at Agile Eastern Europe 2011
I'll be giving my "Overcoming Self-organization Blocks" presentation at AgileEE 2011, September 23-24 2011 in Kiev, Ukraine.
Speaking at ALE2011
I'll be giving my "Overcoming Self-organization Blocks" presentation at ALE 2011, September 7-9 2011 in Berlin, Germany.
Speaking at Agile2011
I'm pleased and honored to give my talk "Overcoming Self-organization Blocks" at Agile2011, August 8-12 2011 in Salt Lake City, Utah.