
Episode 34
34: Matt Machuga - Dealing with Dependencies in Active Record Models
In this episode, Matt Machuga of Think Through Math returns to talk with Adam about design options when you find yourself wanting access to a collaborator in an Active Record or Eloquent model. They discuss the pros and cons of four specific designs, and
January 27, 201638m 43s
Audio is streamed directly from the publisher (media.transistor.fm) as published in their RSS feed. Play Podcasts does not host this file. Rights-holders can request removal through the copyright & takedown page.
Show Notes
Topics include:
- Are facades and service location automatically bad?
- Are NounVerber classes anti-OO?
- Adding a layer of composition to create domain models with dependencies
- Using method injection for a temporary dependency
- Using optional parameters to improve testability
Code snippets:
- Option 1: Facades/Service Location/Global Access
- Option 2: Moving the responsibility to a new class
- Option 3: Composing a new domain model
- Option 4a: Inject the dependency into the method
- Option 4b: Optional method injection w/global fallback
Links:
- Matt's blog
- "Agent nouns are code smells" by Peter Gillard-Moss
- Nitpick CI, Adam's PSR-2 style checking service
- "Dependency injection is not a virtue" by DHH
- Erie Day of Code, Matt's conference
- Sponsored by Laracasts
Topics
technologysoftwarewebdevelopmentproductstartup