Rethink Application Architecture Screencast


Download a Sample

More than 2 hours of test driven application design from the ground up.

Rediscover the Joy of Design

This screencast is for the programmer who has suffered building traditional web applications. It describes quickly build applications by focusing on design patterns and boundaries. The resulting applications are easier to extend, maintain, and test. This is happens by addressing common design problems with a fresh approach. The screencast focus on these points:

You have probably heard about all of these things before but have been unsure how to make the jump. I've covered all of these things in the Joy of Design series. This screencast will show how to put those ideas into action and take back control of your codebases. I'll talk you through writing an application from scratch with explanations and visibility into the thought process along the way. By end of the screencast you will know the how and understand the why.

Functionality With Use Cases

Many applications bundle functionality inside framework classes, or even distribute it across many different classes. There is a better way. Use case objects implement a specific system function. They are reusable and testable in isolation. Ever found out asking yourself how you could call one controller from another? This is the way. Implement the functionality in a class and use it everywhere. The screencast will cover implementing smaller use cases, composing them, and testing them. Still want more information? Read my post on use cases.

Separating Enitities from Persistence

Ever wanted to run tests without a database? How about migrate between storage paradigms? How about fighting back against an ORM? The answer to all these things is complete separation between the objects we work with and how they're accessed. This enables fast tests and true data portability. The screencast will put the domain objects front and center leaving persistence until the very end. Don't want to wait for the screencast? Learn how in my post on persistence with the repository and query patterns.

Use Form Object as Border Guards

We live in a world where data comes in as junk. Numbers come across as strings. Dates are encoded in many ways. This makes it harder to work with the objects we want. Why work with a customer ID when a Customer object is required. Form objects are the perfect way to sanitize, parse it, and turn it into the high level objects in the application. The screencast focuses on leveraging form objects to protect the system while making it easier to develop and maintain.

Fight Complexity with Logicless Views

How come writing templates is such a problem? They tend to become the smartest part of the whole application. The only real solution here is to remove the logic all together. Creating logic-less views is more straight forward than you think. By the end of the screencast you'll be equipped to refactor any view that's got you down.

Delivery Mechanisms

Many applications are built on top of frameworks. Actually, they're usually built in frameworks. The business logic is coupled to the framework and you end up worse off than you were before. Many Rails applications end up here. The answer here is to write use cases and separate the delivery mechanisms from the code itself. This screencast will teach you how to think problem domain first, then HTTP and all the concerns that come with it.

Sound interesting? Join the mailing list before the product launch to get a coupon when the screencast launches.

Join the Mailing List

Did you fill in the name and email?