$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
契約テストとPactについて
Search
bmf_san
August 10, 2024
Programming
0
91
契約テストとPactについて
bmf_san
August 10, 2024
Tweet
Share
More Decks by bmf_san
See All by bmf_san
完璧を求めない意思決定-アクセス制御基盤における制約との向き合い方
bmf_san
4
15k
AAPについて調べてみた
bmf_san
0
69
レーダーをつくる
bmf_san
0
47
5分でわかるSLO
bmf_san
2
120
権限について考える
bmf_san
2
130
自作HTTPルーターから新しいServeMuxへ
bmf_san
3
1.8k
古くなってしまったPHPフレームワークとPHPのバージョンアップ戦略
bmf_san
1
450
アジャイルワークショップ
bmf_san
0
170
Makuakeの認証基盤とRe-Architectureチーム
bmf_san
0
2.9k
Other Decks in Programming
See All in Programming
SwiftUIで本格音ゲー実装してみた
hypebeans
0
420
エディターってAIで操作できるんだぜ
kis9a
0
740
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
180
ローカルLLMを⽤いてコード補完を⾏う VSCode拡張機能を作ってみた
nearme_tech
PRO
0
110
Rubyで鍛える仕組み化プロヂュース力
muryoimpl
0
140
生成AIを利用するだけでなく、投資できる組織へ
pospome
2
350
Tinkerbellから学ぶ、Podで DHCPをリッスンする手法
tomokon
0
140
ゲームの物理 剛体編
fadis
0
350
認証・認可の基本を学ぼう前編
kouyuume
0
260
Cell-Based Architecture
larchanjo
0
130
MAP, Jigsaw, Code Golf 振り返り会 by 関東Kaggler会|Jigsaw 15th Solution
hasibirok0
0
250
Flutter On-device AI로 완성하는 오프라인 앱, 박제창 @DevFest INCHEON 2025
itsmedreamwalker
1
120
Featured
See All Featured
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
60
37k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.1k
How to build a perfect <img>
jonoalderson
0
4.6k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Skip the Path - Find Your Career Trail
mkilby
0
22
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
32
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
21
Marketing to machines
jonoalderson
1
4.3k
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Α͏ͳํΛα ϙʔτ͍ͯ͠Δ΄͏͕ྑ͍Μ͡Όͳ͍ͩΖ ͏͔..
• ܖςετūŬŹƂŜŽūŘ
͓ΘΓ