Song Cover Image

Respect the relationship

+ Show full styles

[Intro - Solo voice, no instruments. One held note. Then:] [Sung, powerful alto, no music yet] Boy... You came into my codebase With your raw queries And your fat controllers And you thought You thought I wouldn't notice [Beat. Then Hammond organ hits. Drums kick in. Tambourine.] [Verse 1 - Full band, gospel-soul groove] You wrote a model with no migration Boy what were you tryin' to do You put your business logic in the controller Like the framework never taught you You skipped the form request validation You let that input walk right through And you called yourself a developer Mm-mm, baby, that ain't true [Pre-Chorus - Build, backup singers come in] I built this framework with my own two hands (Own two hands!) I gave you Eloquent, I gave you Blade (Yes she did!) I gave you Artisan on the command line (Praise be!) And what did you do with all that I made? [Chorus - Full church, hand claps, brass section] Respect the relationship! (Respect it!) Respect the relationship! (Respect it!) You can't just query without a thought You can't just join without the love I taught Respect the relationship! (Respect it!) Respect the relationship, boy! You better eager-load What you're tryin' to hold Respect the relationship! [Verse 2 - Groove continues, brass stabs] Now let me tell you 'bout an N plus one That's a sin, baby, that's a sin You loop through every user in the database And you query their posts again and again The server's cryin', the database's screamin' And the page takes seven seconds to load But did you call ->with() like I taught you? No you didn't, you took the lazy road [Pre-Chorus - Bigger, backup singers louder] I gave you scopes, I gave you traits (Yes she did!) I gave you observers for every event (Praise be!) I gave you a service container, boy (Hallelujah!) And you bound your dependencies wrong again [Chorus - Full church] Respect the relationship! (Respect it!) Respect the relationship! (Respect it!) You can't just query without a thought You can't just join without the love I taught Respect the relationship! (Respect it!) Respect the relationship, boy! You better eager-load What you're tryin' to hold Respect the relationship! [Bridge - Just Hammond organ and voice. Slower. The truth-telling moment.] [Sung, intimate, building] Now I'm gonna tell you somethin' And I want you to listen 'Cause I've seen developers come And I've seen developers go They come in here with their TypeScript They come in here with their Rust They come in here sayin' PHP is dead But baby, who do you trust? When the deadline's at midnight And the deploy is at dawn Who's gonna hold your data When everything else is gone? [Voice rises, gospel run] It's me! It's been me the whole time! I was here in two thousand and eleven! I'll be here in two thousand and thirty! [Spoken, preacher cadence] And I'll tell you somethin' else Brother Sister Whoever you are out there listenin' When you write that controller And you don't extract the service When you skip that test 'Cause you say you don't have time When you commit to main Without a pull request [Voice rising] You're not just disrespectin' the framework You're disrespectin' YOURSELF You're disrespectin' the WORK You're disrespectin' the RELATIONSHIP [Backup singers come back in, soft] (Respect it!) (Respect it!) [Verse 3 - Full band returns, even bigger] So the next time you sit down at that keyboard And you open up that IDE I want you to remember everything I told you And I want you to query carefully 'Cause every model has a story And every table has a soul And every foreign key is a promise That you keep to keep the system whole [Final Chorus - Maximum gospel, choir joins, key change UP] RESPECT THE RELATIONSHIP! (RESPECT IT!) RESPECT THE RELATIONSHIP! (RESPECT IT!) YOU CAN'T JUST QUERY WITHOUT A THOUGHT YOU CAN'T JUST JOIN WITHOUT THE LOVE I TAUGHT RESPECT THE RELATIONSHIP! (RESPECT IT!) RESPECT THE RELATIONSHIP, BOY! YOU BETTER EAGER-LOAD WHAT YOU'RE TRYIN' TO HOLD RESPECT THE RELATIONSHIP! [Vamp - Hammond solo, choir holding "respect it" in the background] [Sung, ad-lib, melismatic runs over the vamp] Oh you better migrate, boy You better migrate before you operate You better validate, boy You better validate before you populate Oh, oh, oh Service container Dependency injection Single responsibility Don't you forget it [Outro - Full band, one final chord, then drop to just the choir] (Respect the relationship) (Respect the relationship) (Respect the relationship) [Choir fades. One last Hammond organ chord. Tambourine hit. Done.]