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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Jeffrey Matthias
September 25, 2014
Programming
79
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
76
RubyConf 2013 Futureproofing your 3rd party integrations
idlehands
1
97
Other Decks in Programming
See All in Programming
条件判定に名前、つけてますか? #phperkaigi #c
77web
2
990
AI時代のPhpStorm最新事情 #phpcon_odawara
yusuke
0
140
Offline should be the norm: building local-first apps with CRDTs & Kotlin Multiplatform
renaudmathieu
0
170
AWS re:Invent 2025の少し振り返り + DevOps AgentとBacklogを連携させてみた
satoshi256kbyte
2
150
iOS機能開発のAI環境と起きた変化
ryunakayama
0
170
Java 21/25 Virtual Threads 소개
debop
0
340
安いハードウェアでVulkan
fadis
1
930
おれのAgentic Coding 2026/03
tsukasagr
1
140
Laravel Nightwatchの裏側 - Laravel公式Observabilityツールを支える設計と実装
avosalmon
1
320
セグメントとターゲットを意識するプロポーザルの書き方 〜採択の鍵は、誰に刺すかを見極めるマーケティング戦略にある〜
m3m0r7
PRO
0
210
Radical Imagining - LIFT 2025-2027 Policy Agenda
lift1998
0
250
3分でわかるatama plusのQA/about atama plus QA
atamaplus
0
130
Featured
See All Featured
Game over? The fight for quality and originality in the time of robots
wayneb77
1
160
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
170
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.6k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
450
30 Presentation Tips
portentint
PRO
1
270
Technical Leadership for Architectural Decision Making
baasie
3
320
Fireside Chat
paigeccino
42
3.9k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
150
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.8k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.8k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
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