Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
77
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
72
RubyConf 2013 Futureproofing your 3rd party integrations
idlehands
1
92
Other Decks in Programming
See All in Programming
Tinkerbellから学ぶ、Podで DHCPをリッスンする手法
tomokon
0
140
AIコーディングエージェント(Manus)
kondai24
0
210
Rubyで鍛える仕組み化プロヂュース力
muryoimpl
0
150
Claude Codeの「Compacting Conversation」を体感50%減! CLAUDE.md + 8 Skills で挑むコンテキスト管理術
kmurahama
1
620
FluorTracer / RayTracingCamp11
kugimasa
0
250
AIコーディングエージェント(NotebookLM)
kondai24
0
220
宅宅自以為的浪漫:跟 AI 一起為自己辦的研討會寫一個售票系統
eddie
0
520
大規模Cloud Native環境におけるFalcoの運用
owlinux1000
0
180
Developing static sites with Ruby
okuramasafumi
0
320
ゆくKotlin くるRust
exoego
1
140
クラウドに依存しないS3を使った開発術
simesaba80
0
150
AIエージェントを活かすPM術 AI駆動開発の現場から
gyuta
0
460
Featured
See All Featured
Abbi's Birthday
coloredviolet
0
3.6k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
310
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
81
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
0
2.2k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
68
How to make the Groovebox
asonas
2
1.8k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.4k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
160
Docker and Python
trallard
47
3.7k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
0
3.4k
Code Reviewing Like a Champion
maltzj
527
40k
Evolving SEO for Evolving Search Engines
ryanjones
0
73
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