Profile

Cover photo
Greg Vaughn
Works at LivingSocial
Attended Texas Tech University
Lives in Frisco, TX
137 followers|1,407 views
AboutPostsPhotosVideos

Stream

Greg Vaughn

Shared publicly  - 
 
I find it interesting that at my re-entry into the Rails ecosystem, there's a growing call for OO and architectural purity. Rails is growing up. I experienced Java before, during, and after J2EE and in some ways history is repeating itself. Most recently I'm seeing this call to "grow up" here: http://blog.steveklabnik.com/posts/2011-12-30-active-record-considered-harmful and http://blog.8thlight.com/uncle-bob/2011/11/22/Clean-Architecture.html

I've seen over engineered J2EE systems where each interaction from UI to database has to go through 12 layers for "just in case" purposes. It slows down development immensely. And I've seen the Rails pragmatic approach encouraging tighter coupling that delivers quick results at the long term expense of maintainability. Both are important. But how can we find the middle of the pendulum swing? I don't want to see Rails swing to the J2EE extreme.

What I'm looking for are transitionary features in Rails. What I mean by that is to embrace some of the TWTOOTDI (there's more than one way to do it) approach of Perl but in a more grown up way. The multiple ways to achieve a goal are not just because of personal preference, but each are recommendations given different situations. In this vein, I'm excited about a new feature coming in Rails 4 -- ActiveRecord as a mixin (see https://github.com/rails/rails/compare/58f69ba...00318e9#diff-0). This means, sure go ahead and quickly explore your problem space with models as subclasses of ActiveRecord::Base. Then later on, when you need to decouple things, go ahead and convert that to include ActiveRecord::Module instead. Then if/when that becomes painful separate those into a domain class and a persistable class.

I'd like to see more explorations of decoupling between the controller and view layer too. I'd like to see Rails expand support deeper into REST. As it is now, it's really just the routing layer that is somewhat RESTful. We should work on the 'R' part of REST -- representations and a means to decouple those. We should recognize the difference between a UI controller and a resource controller. They serve different needs. Perhaps there is an easy way to start with a pragmatic UI controller and refactor into a more decoupled resource controller later as requirements expand.

I guess I've rambled on enough. I let the domain of my old blog expire and this seemed like the most immediate way of me to write down and share some thoughts. The core idea is that new ideas brought to Rails need to offer transitionary ways to refactor into them and not try to replace default approaches. We need tools to let a good architecture emerge, not a prescribed architecture.
1
Add a comment...

Greg Vaughn

Shared publicly  - 
 
Just discovered feature of G+: some wiki-style markup in comments is supported. Not sure which bits, but * around a word bolds it.
1
Greg Vaughn's profile photoTom McGraw's profile photo
2 comments
 
Read the manual? How boring.
Add a comment...
Have him in circles
137 people
Michael McCullough's profile photo
Christopher Krailo's profile photo
Shayne Studdard's profile photo
Brett Bim's profile photo
Dan Mayer's profile photo
Pete Carapetyan's profile photo
Terra Gilbert's profile photo
Jacob Morse's profile photo
Kristie Caruso's profile photo

Greg Vaughn

Shared publicly  - 
 
Lion uses a hidden 650MB on your hard drive permanently for an emergency boot partition. Brilliant AND sneaky.
1
Add a comment...
People
Have him in circles
137 people
Michael McCullough's profile photo
Christopher Krailo's profile photo
Shayne Studdard's profile photo
Brett Bim's profile photo
Dan Mayer's profile photo
Pete Carapetyan's profile photo
Terra Gilbert's profile photo
Jacob Morse's profile photo
Kristie Caruso's profile photo
Work
Occupation
Software Developer
Employment
  • LivingSocial
    Sr. Software Developer, 2011 - present
  • Improving Enterprises
    Principal Consultant, 2011
Places
Map of the places this user has livedMap of the places this user has livedMap of the places this user has lived
Currently
Frisco, TX
Previously
Carrollton, TX - Cedar Park, TX - Austin, TX - Lubbock, TX - Ralls, TX - San Antonio, TX - Sinton, TX - Corpus Christi, TX - Houston, TX
Links
Story
Tagline
polyglot software craftsman
Education
  • Texas Tech University
    Physics
Basic Information
Gender
Male