Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
future-proofing your 3rd party integrations - R...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Jeffrey Matthias
September 25, 2014
Programming
81
2
Share
future-proofing your 3rd party integrations - Rocky Mountain Ruby 2014
The adapter pattern using gems, dtos, and communication.
Jeffrey Matthias
September 25, 2014
More Decks by Jeffrey Matthias
See All by Jeffrey Matthias
Elixirdaze - Become a Test Whisperer - what are your tests telling you?
idlehands
0
78
RubyConf 2013 Futureproofing your 3rd party integrations
idlehands
1
100
Other Decks in Programming
See All in Programming
AIを導入する前にやるべきこと
negima
2
360
実践ハーネスエンジニアリング:ステアリングループを実例から読み解く / Practical Harness Engineering: Understanding Steering Loops Through Real-World Examples
nrslib
5
5.4k
t *testing.T は どこからやってくるの?
otakakot
1
940
ローカルLLMでどこまでコードが書けるか / How much code can be written on a local LLM
kishida
2
360
〜バイブコーディングを超えて〜 チームで実験し続けたAI駆動開発
tigertora7571
0
210
継続的な負荷検証を目指して
pyama86
3
1.2k
Road to RubyKaigi: Play Hard(ware)
makicamel
1
570
How We Practice Exploratory Testing in Iterative Development( #scrumniigata ) / 反復開発の中で、探索的テストをどう実施しているか
teyamagu
PRO
3
820
ふにゃっとしない名前の付け方 〜哲学で茹で上げる、コシのあるソフトウェア設計〜
shimomura
0
120
AgentCore Optimizationを始めよう!
licux
3
240
属人化しないコード品質の作り方_2026.04.07.pdf
muraaano
0
350
🦞OpenClaw works with AWS
licux
1
360
Featured
See All Featured
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
170
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.2k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
390
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
The SEO identity crisis: Don't let AI make you average
varn
0
460
We Have a Design System, Now What?
morganepeng
55
8.1k
The agentic SEO stack - context over prompts
schlessera
0
780
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
690
The Mindset for Success: Future Career Progression
greggifford
PRO
0
330
Producing Creativity
orderedlist
PRO
348
40k
Scaling GitHub
holman
464
140k
Claude Code のすすめ
schroneko
67
220k
Transcript
future-proofing your 3rd party integrations a collection of practices Jeffrey
Matthias @idlehands
goals • keep 3rd party logic out of our code
• make 3rd party behavior predictable • make 3rd party replaceable
Insert 50 ft view here.
it’s just a gem
None
None
None
Clearly define internal vocabulary.
• package vs ‘product rate plan’ • add_on vs ‘product
rate plan’ • coupon vs ‘product rate plan charge’
• PackageService handles ‘product rate plan’ • AddOnService handles ‘product
rate plan’ • CouponService handles ‘product rate plan charge’
forced separation • Data Transfer Objects (DTOs) • Abstract Services
None
None
None
None
uptyped
testing is good • never assume data exists in your
3rd party • use a sandbox if one is available
• Integration tests can use this, too!
stubbing the 3rd party • create a fake service •
use VCR
None
always never forget • cassettes must be delete-able • make
sure you set up everything you need • CI: kill your cassettes. A lot.
recap • define your vocabulary • create an adapter interface
gem(DTOs and abstract services) • create an adapter gem (and add uptyped) • create a test environment • use VCR • delete your cassettes!!! A lot!!!!!
future-proofing your 3rd party integrations a collection of practices Jeffrey
Matthias @idlehands