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
78
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
73
RubyConf 2013 Futureproofing your 3rd party integrations
idlehands
1
94
Other Decks in Programming
See All in Programming
コマンドとリード間の連携に対する脅威分析フレームワーク
pandayumi
1
460
IFSによる形状設計/デモシーンの魅力 @ 慶應大学SFC
gam0022
1
310
Data-Centric Kaggle
isax1015
2
780
Claude Codeと2つの巻き戻し戦略 / Two Rewind Strategies with Claude Code
fruitriin
0
130
QAフローを最適化し、品質水準を満たしながらリリースまでの期間を最短化する #RSGT2026
shibayu36
2
4.4k
CSC307 Lecture 05
javiergs
PRO
0
500
AI Schema Enrichment for your Oracle AI Database
thatjeffsmith
0
310
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
5
470
AIフル活用時代だからこそ学んでおきたい働き方の心得
shinoyu
0
140
Rust 製のコードエディタ “Zed” を使ってみた
nearme_tech
PRO
0
190
Smart Handoff/Pickup ガイド - Claude Code セッション管理
yukiigarashi
0
140
カスタマーサクセス業務を変革したヘルススコアの実現と学び
_hummer0724
0
720
Featured
See All Featured
How to Talk to Developers About Accessibility
jct
2
130
Darren the Foodie - Storyboard
khoart
PRO
2
2.4k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
210
Optimizing for Happiness
mojombo
379
71k
Producing Creativity
orderedlist
PRO
348
40k
GitHub's CSS Performance
jonrohan
1032
470k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
130
The Spectacular Lies of Maps
axbom
PRO
1
520
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
200
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
How Software Deployment tools have changed in the past 20 years
geshan
0
32k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
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