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
契約テストとPactについて
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
bmf_san
August 10, 2024
Programming
0
100
契約テストとPactについて
bmf_san
August 10, 2024
Tweet
Share
More Decks by bmf_san
See All by bmf_san
桃太郎で始めるRego入門‐今日から使えるRegoの基本編
bmf_san
0
40
完璧を求めない意思決定-アクセス制御基盤における制約との向き合い方
bmf_san
5
18k
AAPについて調べてみた
bmf_san
0
82
レーダーをつくる
bmf_san
0
57
5分でわかるSLO
bmf_san
2
150
権限について考える
bmf_san
2
140
自作HTTPルーターから新しいServeMuxへ
bmf_san
3
1.8k
古くなってしまったPHPフレームワークとPHPのバージョンアップ戦略
bmf_san
1
470
アジャイルワークショップ
bmf_san
0
190
Other Decks in Programming
See All in Programming
nilとは何か 〜interfaceの構造とnil!=nilから理解する〜 / Understanding nil in Go Interface Representation and Why nil != nil
kuro_kurorrr
3
1.5k
Head of Engineeringが現場で回した生産性向上施策 2025→2026
gessy0129
0
200
米国のサイバーセキュリティタイムラインと見る Goの暗号パッケージの進化
tomtwinkle
1
340
受け入れテスト駆動開発(ATDD)×AI駆動開発 AI時代のATDDの取り組み方を考える
kztakasaki
2
500
go directiveを最新にしすぎないで欲しい話──あるいは、Go 1.26からgo mod initで作られるgo directiveの値が変わる話 / Go 1.26 リリースパーティ
arthur1
2
400
Ruby x Terminal
a_matsuda
5
510
Railsの気持ちを考えながらコントローラとビューを整頓する/tidying-rails-controllers-and-views-as-rails-think
moro
4
360
社内規程RAGの精度を73.3% → 100%に改善した話
oharu121
9
5.1k
Lambda のコードストレージ容量に気をつけましょう
tattwan718
0
200
日本だけで解禁されているアプリ起動の方法
ryunakayama
0
360
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
2k
「ブロックテーマでは再現できない」は本当か?
inc2734
0
1.1k
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Six Lessons from altMBA
skipperchong
29
4.2k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
YesSQL, Process and Tooling at Scale
rocio
174
15k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
130
Reality Check: Gamification 10 Years Later
codingconduct
0
2k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.1k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
140
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
360
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Making Projects Easy
brettharned
120
6.6k
My Coaching Mixtape
mlcsv
0
63
Transcript
ܖςετͱPactʹ͍ͭͯ @bmf_san
Who am Iʁ • Kenta Takeuchi • @bmf_san • bmf-san
• https://bmf-tech.com/
ƂƃţŗŴƅƃŗŦŘŷ • ʮγεςϜج൫ͷఏڙ͢ΔAPIͱͦΕΛར༻͢ΔγεςϜؒ ʹ͓͍ͯɺAPIͷ߹ੑͬͯͲ͏ͬͯอͱ͏ʁςετ͢Δ ͱͨ͠Βɾɾʁʯ • ͱ͍͏͕༙͍͙ٙͯͬ͢ΓΕͯ͠·͏ʑ͕ଓ͍ ͨ • APIઃܭʹؔ͢ΔຊΛಡΜͰͨΒܖςετʹ͍ͭͯਃ͠༁
ఔʹॻ͔Ε͍ͯͨ • ʮŠƀŦƄʯ
ࠓͷ • ܖςετͱͦͷπʔϧͰ͋ΔPactʹ͍ͭ ͯௐͯΈͨ
ܖςετͱ • ίϯγϡʔϚͱϓϩόΠμʔؒͷಈ࡞Λς ετ͢Δςετख๏ͷ͜ͱ
ίϯγϡʔϚʔ is • αʔϏεΛݺͼग़͢ଆ
ϓϩόΠμʔ is • αʔϏεΛఏڙ͢Δଆ
ܖ… ʁ • ίϯγϡʔϚʔͱϓϩόΠμʔؒͰͷ߹ҙ ༰ͷ͜ͱ • APIϦΫΤετͱظ͢ΔϨεϙϯε͜ ΕͰ͢Αʙ
ίϯγϡʔϚʔۦಈܖςετ • ίϯγϡʔϚʔ͕ܖΛൃߦ͠ɺϓϩόΠ μʔͦͷܖʹج͍ͮͯςετ͢Δ
ϓϩόΠμʔۦಈܖςετ • ϓϩόΠμʔ͕ܖΛൃߦ͠ɺίϯγϡʔ Ϛʔͦͷܖʹج͍ͮͯςετ͢Δ
Ͳ͕͍͍ͬͪͷʁ • ίϯγϡʔϚʔͷ • APIͷ҆ఆੑʢ㲈มߋසʣ • ։ൃϓϩηεͷओಋݖ • ͳͲʹґΔ
ܖςετͷϝϦοτ • αʔϏεؒͷ৴པੑɾ߹ੑΛ୲อͰ͖Δ • ίϯγϡʔϚʔ·ͨϓϩόΠμʔͷมߋΛࣗಈͰݕ Ͱ͖Δ • νʔϜؒͷίϛϡχέʔγϣϯίετ͕ݮͰ͖Δ • E2EΑΓ࣮ߦ͕͍
• αʔϏεؒͷґଘؔΛ໌֬ʹͰ͖Δ
ܖςετͷσϝϦοτ • πʔϧґଘ • πʔϧಋೖίετ • ৫Ͱͷ߹ҙܗ • ϓϩσϡʔαʔͱίϯγϡʔϚʔ͕ผνʔϜͩͱ ίετ૿
• ։ൃϑϩʔͷதͷ1ϓϩηεͱͯ͠ΈࠐΈίετ
Pactͱ • ܖςετͷͨΊͷπʔϧ • ίϯγϡʔϚʔۦಈܖςετͷΈαϙʔτ • HTTPͱϝοηʔδʢex. RabbitMQ, SQS, Kafka
ͳͲʣ • ςεςΟϯάFWϏϧυπʔϧͳͲͱ࿈ܞՄ ೳ
Pactͷϑϩʔ 1. ίϯγϡʔϚʔ͕ܖΛهड़ 2. ίϯγϡʔϚʔଆͷςετ࣮ߦ࣌ʹPact ϑΝΠϧΛੜ 3. ϓϩόΠμʔPactϑΝΠϧΛड͚औͬͯ ςετΛ࣮ߦ
͋Μ·Γྲྀߦ͍ͬͯͳ͍ɾɾʁ
Trial • Technology Radarͩͱ2015ʹTrialͰऴ Θ͍ͬͯΔ • https://www.thoughtworks.com/radar/tools/ pact-pacto
PactΛΊͨ • ΫοΫύουࣾͷࣄྫ • https://scrapbox.io/yoshiori/ Pact_%E3%82%92%E3%82%84%E3%82 %81%E3%81%9F%E7%90%86%E7%94 %B1
Pact is Dead • Pact is dead, long live Pact
• https://pact fl ow.io/blog/bi-directional- contracts/
Pactͷಋೖোน • E2Eςετ͔ΒͷΓ͑ɺ͋Δ͍Έ͚ • πʔϧґଘ • ίϯγϡʔϚʔۦಈͷΈͷӡ༻ϋʔυϧ • ίϛϡχέʔγϣϯίετຊʹݮΔ͔ʁ •
αʔϏε͕ؒܖͰີ݁߹ʹͳΔʁ • αʔϏε͕͋Δఔଟ͘ͳ͍ͱϝϦοτ͕ϖΠ͠ͳ͍͔ • ։ൃϑϩʔͷมߋίετʢܖͷཧɺϨϏϡʔ͕ඞཁʹͳΔʣ
Pact fl ow • ํܖΛαϙʔτ͍ͯ͠Δ • ίϯγϡʔϚʔۦಈͱϓϩόΠμʔۦಈͷ྆ํ • OSSͰͳ͍ •
Technology RadarͰ2022ʹTrialͰऴΘ͍ͬͯΔ • https://www.thoughtworks.com/radar/tools/pact fl ow
ॴײ • ܖςετͱ͍͏ςετख๏Λಋೖ͢Δ͜ ͱ͕༗༻͕ेͳݕূ͕ඞཁͦ͏ • πʔϧͱͯ͠Pact fl owΑ͏ͳํΛα ϙʔτ͍ͯ͠Δ΄͏͕ྑ͍Μ͡Όͳ͍ͩΖ ͏͔..
• ܖςετūŬŹƂŜŽūŘ
͓ΘΓ