Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rack Middleware as a General Purpose Abstraction #83

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 0 additions & 16 deletions example/README.md

This file was deleted.

Binary file removed example/profile_picture.jpg
Binary file not shown.
19 changes: 19 additions & 0 deletions rack_middleware_as_a_general_purpose_abstraction/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Rack Middleware as a General Purpose Abstraction

We've all seen monolithic Rails models, pages and pages of methods all dumped into one class. Inevitably, someone starts moving things around just to feel about the line count, but doesn't make any real difference to the overall structure of the code. How can we reify actions on an object and simplify our classes?

In this talk I'll speak about using the concept of "middleware" (in the way Rack uses "middleware") as a general purpose abstraction for improving the organization, testability, and maintainability of complex pieces of code. I'll talk about my first hand experience of using middleware to power Vagrant (http://vagrantup.com), and we'll use these ideas to simplify an existing application.

## Mitchell Hashimoto

Mitchell Hashimoto is an operations engineer passionate about all things open source. For four years he was a web developer for a Ruby on Rails studio, and for the past year has been an operations engineer for a start-up company in San Francisco, CA. Mitchell is one of the creators and current maintainer of Vagrant, the tool for creating and distributing virtualized development environments. Vagrant is used by thousands of developers worldwide and many large companies including Tumblr, GitHub, LivingSocial, and more.

Mitchell has spoken at many conferences in the past year, including FOSDEM, RubyConf 2011, DevOpsDays in Sweden, and more.

![Profile picture](http://www.gravatar.com/avatar/54079122b67de9677c1f93933ce8b63a)

- [My website](https://github.com/mitchellh)
- [My twitter](https://twitter.com/#!/mitchellh)
- [Past talk slides](http://speakerdeck.com/u/mitchellh/p/the-wide-range-of-devops)
- [Past talk video](http://vimeo.com/31367609)

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.