34: Matt Machuga - Dealing with Dependencies in Active Record Models

Full Stack Radio

Episode | Podcast

Date: Wed, 27 Jan 2016 13:12:00 +0000

<p>Topics include:</p><ul> <li>Are facades and service location automatically bad?</li> <li>Are NounVerber classes anti-OO?</li> <li>Adding a layer of composition to create domain models with dependencies</li> <li>Using method injection for a temporary dependency</li> <li>Using optional parameters to improve testability</li> </ul><p>Code snippets:</p><ul> <li>Option 1: <a href="https://gist.github.com/adamwathan/c28a1106263ab97ca4e0">Facades/Service Location/Global Access</a> </li> <li>Option 2: <a href="https://gist.github.com/adamwathan/feaa708369450376b404">Moving the responsibility to a new class</a> </li> <li>Option 3: <a href="https://gist.github.com/adamwathan/2ccbc0f6fe3f3b31ed3d">Composing a new domain model</a> </li> <li>Option 4a: <a href="https://gist.github.com/adamwathan/09e41497dbd263caaf6c">Inject the dependency into the method</a> </li> <li>Option 4b: <a href="https://gist.github.com/adamwathan/5103581df3a5507b8ac2">Optional method injection w/global fallback</a> </li> </ul><p>Links:</p><ul> <li><a href="http://matthewmachuga.com/">Matt's blog</a></li> <li> <a href="http://jupitermoonbeam.blogspot.ca/2008/09/agent-nouns-are-code-smells.html">"Agent nouns are code smells"</a> by Peter Gillard-Moss</li> <li> <a href="https://nitpick-ci.com">Nitpick CI</a>, Adam's PSR-2 style checking service</li> <li> <a href="http://david.heinemeierhansson.com/2012/dependency-injection-is-not-a-virtue.html">"Dependency injection is not a virtue"</a> by DHH</li> <li> <a href="http://eriedayofcode.com/">Erie Day of Code</a>, Matt's conference</li> <li>Sponsored by <a href="https://laracasts.com">Laracasts</a> </li> </ul>