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
Jeffrey Matthias
September 25, 2014
Programming
2
76
future-proofing your 3rd party integrations - Rocky Mountain Ruby 2014
The adapter pattern using gems, dtos, and communication.
Jeffrey Matthias
September 25, 2014
Tweet
Share
More Decks by Jeffrey Matthias
See All by Jeffrey Matthias
Elixirdaze - Become a Test Whisperer - what are your tests telling you?
idlehands
0
70
RubyConf 2013 Futureproofing your 3rd party integrations
idlehands
1
90
Other Decks in Programming
See All in Programming
あまり知られていない MCP 仕様たち / MCP specifications that aren’t widely known
ktr_0731
0
250
Understanding Ruby Grammar Through Conflicts
yui_knk
1
100
DataformでPythonする / dataform-de-python
snhryt
0
160
Jakarta EE Meets AI
ivargrimstad
0
670
可変性を制する設計: 構造と振る舞いから考える概念モデリングとその実装
a_suenami
10
1.7k
0から始めるモジュラーモノリス-クリーンなモノリスを目指して
sushi0120
0
280
React 使いじゃなくても知っておきたい教養としての React
oukayuka
18
5.6k
LLMOpsのパフォーマンスを支える技術と現場で実践した改善
po3rin
8
840
Scale out your Claude Code ~自社専用Agentで10xする開発プロセス~
yukukotani
9
2k
202507_ADKで始めるエージェント開発の基本 〜デモを通じて紹介〜(奥田りさ)The Basics of Agent Development with ADK — A Demo-Focused Introduction
risatube
PRO
6
1.4k
Nuances on Kubernetes - RubyConf Taiwan 2025
envek
0
150
11年かかって やっとVibe Codingに 時代が追いつきましたね
yimajo
1
260
Featured
See All Featured
How GitHub (no longer) Works
holman
314
140k
KATA
mclloyd
32
14k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Bash Introduction
62gerente
614
210k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Gamification - CAS2011
davidbonilla
81
5.4k
Into the Great Unknown - MozCon
thekraken
40
2k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
760
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
283
13k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
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