Skip to content

Instantly share code, notes, and snippets.

@d1
Last active August 29, 2015 13:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save d1/9403890 to your computer and use it in GitHub Desktop.
Save d1/9403890 to your computer and use it in GitHub Desktop.
Refactoring the Egghead

##Abstract It's our first day on the job at Egghead, a mind simulation app. Progress has been slow lately, so our first task is to do some refactorings. Upon looking at the code, it's obvious this app grew organically without much design--just like the human mind. There is a lot of hidden knowledge in there that we'll have to tease out, but there is hope! We'll use concepts for understanding the human mind to clean up the simulation. In the end we'll understand our minds and our software better.

##Details This talk is an attempt to slip a bunch of soft talk ideas into a technical talk about refactoring. The code examples are from a "metaphorically accurate" mind simulation software that currently resembles roughly how one might think about the human mind and it suffers many of the same problems. It's hard to understand, seems to be beyond our control, and there is no documentation. We're only going to learn how it works by investigation.

This talk will oscillate between code and concepts for understanding our mental processes. Each refactoring will begin by examining previously hidden concepts and then look at current understandings of the mind for inspiration in fixing the code.

This talk brings together concepts from Design Patterns, Refactoring, Object-Oriented Design, Buddhism, Nonviolent Communication, Learned Optimism, and Pragmatic Thinking and Learning, as well as modern neuroscience understanding of how the mind actually works.

The goal is for attendees to learn a bit about good object oriented design and refactoring towards it, as well as to be able to apply some of the investigative techniques to understanding their own mental processes.

##Pitch Everyone loves a good refactoring story. Our understanding of complex things often benefits by breaking them down into smaller, simpler pieces. The same thing is true of our mental processes. Once we start to examine them, we'll see they're much more complex and far less under our control, than we previously thought.

I've been using the concepts in this talk, both refactoring techniques and concepts for understanding the human mind, for many years now with great success. I'm very excited to bring this information to the RailsConf audience.

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