Sessions at Software Architect 2011 about Design Patterns

Your current filters are…

Tuesday 18th October 2011

  • One day of mobile application development [workshop]

    Mobile today refers to a number of radically different platforms requiring radically different skills. There are differences in development approach, languages, API and it even requires different computers. A mobile application is also simpler than a desktop application for the logic, but more complex for resource management and life cycle. Based on four modules, this workshop offers a summary of the issues you face in a mobile project. The first module attempts to identify the most common patterns of mobile development. The remaining three cover each one of the most popular platforms – iPhone, Android and Windows Phone 7 – and the same application will be discussed for the three platforms.

    At 9:30am to 5:30pm, Tuesday 18th October

  • Patterns and principles that matter in .NET [workshop]

    by Dave Wheeler

    Patterns come in all shapes and sizes. From the GoF Design Patterns for structuring object-oriented code through to some of Martins Fowler’s Patterns of Enterprise Application Architecture, patterns are everywhere. And, to be frank, some are more important than others.
    In this fun (and heavily code-oriented day), we’ll work through numerous patterns and see how they impact your code and architecture. There’ll be a trip into the world of Inversion of Control (IoC) and Dependency Injection (DI), and how this helps support testing and maintainability.
    There’ll be Models, Views, Controllers and even ViewModels hanging out in the presentation tier.
    We’ll step into the world of the Repository Pattern, with a side order of Unit of Work, and how that helps isolate our domain model from our underlying database.
    And we’ll look at different approaches to constructing the business logic layer, analysing their pros and cons.
    This is a highly practical, code and best-practice focused day for developers and architects who want to ensure that they’re building solid, maintainable and testable code.

    At 9:30am to 5:30pm, Tuesday 18th October

Wednesday 19th October 2011

  • Design patterns in the real world

    by Allen Holub

    Design patterns do not exist splendid isolation. In the real world patterns overlap one another and interact in complex ways. This class takes a unique approach to teaching patterns by analysing a real computer program in terms of the patterns used to implement it.
    We’ll look at how the design patterns are actually used in practice, and see how the strengths and weaknesses of the patterns play off one another. You’ll also get a chance to see how real-world realisations of the patterns can differ from the Gang-of-Four examples and how a given pattern can be implemented in various ways.
    The examples are in Java, but C++ and C# programmers should have no problem following along. Some familiarity with the Gang-of-Four patterns is assumed, however (you should, at minimum, be able to identify them by name).

    At 11:30am to 1:00pm, Wednesday 19th October

  • Emergent design

    by Neal Ford

    This session describes the current thinking about emergent design, discovering design in code. The hazard of Big Design Up Front in software is that you don’t yet know what you don’t know, and design decisions made too early are just speculations without facts. Emergent design techniques allow you to wait until the last responsible moment to make design decisions. This talk covers four areas: emergent design enablers, battling things that make emergent design hard, finding idiomatic patterns, and how to leverage the patterns you find. It includes both proactive (test-driven development) and reactive (refactoring, metrics, visualisations, tests) approaches to discovering design, and discusses the use of custom attributes, DSLs, and other techniques for utilising them. The goal of this talk is to provide nomenclature, strategies, and techniques for allowing design to emerge from projects as they proceed, keeping your code in sync with the problem domain.

    At 2:00pm to 3:30pm, Wednesday 19th October

  • Patterns for securing web services and web APIs

    by Christian Weyer and Dominick Baier

    The service pattern is pervasive – either operation centric (aka SOAP) or resource centric (aka REST). The security challenges are the same in both worlds – authentication, authorisation and secure communication. Common scenarios are direct authentication (like passwords or client certificates) as well as brokered authentication where the identity provider is external (at least to the application). This talk walks through those common scenarios and shows the architectural and technical approaches to design and implement those services in a secure fashion.

    At 2:00pm to 3:30pm, Wednesday 19th October

  • Because you suck at design patterns

    by Gary Short

    In this session we’ll look at a number of common mispractices and misconceptions that the speaker has seen in his 20 years of experience using design patterns. Together, we’ll examine them and look at fixes for them, so that, by the end of the session, you will no longer suck at design patterns. :-)

    At 4:00pm to 5:30pm, Wednesday 19th October

Thursday 20th October 2011

  • Parallel patterns

    by Andrew Clymer

    Herb Sutter famously coined the phrase “the free lunch is over” back in 2005, when it became clear that processor clock speeds were no longer obeying Moore’s law. If developers wanted applications to go faster they could no longer rely on greater clock speeds, they would need to think differently and restructure their code to take advantage of multiple cores in order to get better and better performance. It turns out parallelising all but the most trivial piece of code is challenging. .NET 4 attempts to assist the developer by providing support in the framework to assist parallelising algorithms through the use of parallel constructs like Parallel.For, and Parallel LINQ and a variety of concurrent data structures. The framework vendors would like you to believe that the free lunch is now back, but whilst they can deliver a moderate free lunch, if you truly want a gut-busting free lunch you will have to deploy a range of tricks for your algorithm to take full advantage of those multiple cores.

    At 9:30am to 11:00am, Thursday 20th October

  • Entity Framework and the repository pattern

    by Andrew Clymer

    .NET 4 comes with a version of Entity Framework that is fit for purpose. Entity Framework is Microsoft’s ORM, their version of NHibernate. Entity Framework version 1 forced developers to be tightly coupled to Entity Framework, this goes against traditional ORM technology and creates problems for unit testing. Entity Framework 4 fixes this problem via POCO support. However it is still up to developers to work out how to utilise the technology to truly loosely couple application logic from business logic. This talk will take you through these new features and show how the repository pattern can be deployed with Entity Framework to provide a testable and loosely coupled solution.

    At 4:00pm to 5:30pm, Thursday 20th October

Friday 21st October 2011

  • Design patterns in depth [workshop]

    by Allen Holub

    Without good OO structure, Agile development, which mandates constant refactoring, fails. Design Patterns help by providing classes of solutions to common programming problems. Patterns, however, are usually presented in a catalogue format that gives you no feeling for how the patterns are actually applied in the real world, where the patterns interact in complex ways.
    This class discusses both good object oriented structure and the most commonly used design patterns, using an in-depth analysis of real code that demonstrates how the patterns work in context. We’ll also cover interface-based design and the make up of a well-structured object and class hierarchy.
    The extensive code examples are in Java, but they should present no problem to C++ or C# programmers.

    At 9:30am to 5:30pm, Friday 21st October