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
bmf_san
August 10, 2024
Programming
110
0
Share
契約テストとPactについて
bmf_san
August 10, 2024
More Decks by bmf_san
See All by bmf_san
桃太郎で始めるRego入門‐今日から使えるRegoの基本編
bmf_san
0
49
完璧を求めない意思決定-アクセス制御基盤における制約との向き合い方
bmf_san
5
18k
AAPについて調べてみた
bmf_san
0
100
レーダーをつくる
bmf_san
0
69
5分でわかるSLO
bmf_san
2
160
権限について考える
bmf_san
2
150
自作HTTPルーターから新しいServeMuxへ
bmf_san
3
1.8k
古くなってしまったPHPフレームワークとPHPのバージョンアップ戦略
bmf_san
1
490
アジャイルワークショップ
bmf_san
0
200
Other Decks in Programming
See All in Programming
Feature Toggle は捨てやすく使おう
gennei
0
580
煩雑なSkills管理をSoC(関心の分離)により解決する――関心を分離し、プロンプトを部品として育てるためのOSSを作った話 / Solving Complex Skills Management Through SoC (Separation of Concerns)
nrslib
4
880
10年分の技術的負債、完済へ ― Claude Code主導のAI駆動開発でスポーツブルを丸ごとリプレイスした話
takuya_houshima
0
2.5k
ローカルで稼働するAI エージェントを超えて / beyond-local-ai-agents
gawa
3
270
Oxlintとeslint-plugin-react-hooks 明日から始められそう?
t6adev
0
210
RSAが破られる前に知っておきたい 耐量子計算機暗号(PQC)入門 / Intro to PQC: Preparing for the Post-RSA Era
mackey0225
3
130
의존성 주입과 모듈화
fornewid
0
130
実践CRDT
tamadeveloper
0
520
一度始めたらやめられない開発効率向上術 / Findy あなたのdotfilesを教えて!
k0kubun
4
2.9k
SkillがSkillを生む:QA観点出しを自動化した
sontixyou
6
3.3k
AI-DLC Deep Dive
yuukiyo
7
2.6k
How Swift's Type System Guides AI Agents
koher
0
240
Featured
See All Featured
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
100
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
160
The Pragmatic Product Professional
lauravandoore
37
7.2k
Facilitating Awesome Meetings
lara
57
6.8k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.3k
Practical Orchestrator
shlominoach
191
11k
My Coaching Mixtape
mlcsv
0
98
Visualization
eitanlees
150
17k
Embracing the Ebb and Flow
colly
88
5k
Are puppies a ranking factor?
jonoalderson
1
3.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Α͏ͳํΛα ϙʔτ͍ͯ͠Δ΄͏͕ྑ͍Μ͡Όͳ͍ͩΖ ͏͔..
• ܖςετūŬŹƂŜŽūŘ
͓ΘΓ