Skip to content

Instantly share code, notes, and snippets.

@ahawkins
Forked from matiaskorhonen/speaker.md
Last active August 29, 2015 13:56
Show Gist options
  • Save ahawkins/8835079 to your computer and use it in GitHub Desktop.
Save ahawkins/8835079 to your computer and use it in GitHub Desktop.

Adam Hawkins

Contact details

Speaker bio

I've been doing Ruby since 2007. I'm the head developer behind RadiumCRM and the author of “Advanced Caching in Rails guides, as well as the "Joy of Design" blog posts.

Application Architecture: Boundaries, Object Roles, & Patterns

  • Desired talk duration: 45 minutes

Abstract

This talk is about something important in the community. The ruby community is missing something fundamentally important. We don't know how to architect applications. We've grown accustomed to using frameworks for everything and we've lost our way. We no longer talk about making applications, we speak about applications built in frameworks. Example: oh hey man, did you hear NewApp123 is built in rails? I take offense to that. The application is not built in rails, it's built in ruby than rails is used to put it online. This mentality is prevalent in the community. It's damaging and encourages technical debt.

My talk is about providing a new architecture based on solid OOP principles such as the boundary between objects, SRP, proper logic less views, application patterns, and good testing principles. All of this in name of changing the way we write and maintain applications.

The talk follows this format:

  • Introduction
  • System Design: Object roles, boundaries, protocols, patterns, and delivery mechanisms
  • TDD implementation of use cases, forms, models, and other object roles
  • TDD implementation of HTTP delivery mechanism using Sinatra
  • Problems withs Rails & Rails style MVC approach to web applications
  • The ideal stack: calling out gems that exemplify qualities mentioned earlier
  • Wrap up & conclusion
  • How to migrate and redesign current systems

Notes

I'm giving this same talk at wroclove.rb in March. I've also submitted the same talk to RailsConf, and Euruko and will probably submit it to others. The content is already in these blog posts. If you want talks that are about Ruby first, this is definitely one of them :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment