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
82
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
81
RubyConf 2013 Futureproofing your 3rd party integrations
idlehands
1
100
Other Decks in Programming
See All in Programming
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
220
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
160
ビジネスモデルから紐解く、AI+型駆動開発
hirokiomote
2
5.2k
SPMマルチモジュールで テストカバレッジを取得する技法
yosshi4486
0
140
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
8
3.1k
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
430
関係性から理解する"同一性"の型用語たち
pvcresin
2
630
フロントエンドとバックエンドで「1文字」を揃えよう
youkidearitai
PRO
0
170
運用エージェントは "作る" から "育てる" へ - 記憶と自己進化の3層設計パターン / self-evolving-agents-three-layer-agent-design
gawa
12
3.4k
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
170
正しくソフトウェアを作る、前提を疑うための認知の視点 / doubt-premise
minodriven
17
5.5k
Lemonade + Foundry Toolkit でお手軽アプリ開発
seosoft
1
270
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
AI: The stuff that nobody shows you
jnunemaker
PRO
8
680
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1.1k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
180
Exploring anti-patterns in Rails
aemeredith
3
390
Game over? The fight for quality and originality in the time of robots
wayneb77
1
190
Prompt Engineering for Job Search
mfonobong
0
330
The Mindset for Success: Future Career Progression
greggifford
PRO
0
350
Discover your Explorer Soul
emna__ayadi
2
1.1k
Statistics for Hackers
jakevdp
799
230k
It's Worth the Effort
3n
188
29k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
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