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
VCR in Go:モック自動生成で楽しちゃう話
Search
yyh_gl
January 23, 2020
Technology
4
3.7k
VCR in Go:モック自動生成で楽しちゃう話
DMM.go #1 登壇スライド
ブログ↓
https://yyh-gl.github.io/tech-blog/blog/golang-vcr/
yyh_gl
January 23, 2020
Tweet
Share
More Decks by yyh_gl
See All by yyh_gl
入門Go言語仕様輪読会 Assignability / Go Language Specification Assignability
yyh_gl
0
230
事業をグロースさせるためにエンジニアができること / What engineers can do to grow a business
yyh_gl
2
1.4k
Goaを使ってAPIサーバ開発してみた / Develop API server by Goa
yyh_gl
3
2.6k
Other Decks in Technology
See All in Technology
Webアプリケーションにオブザーバビリティを実装するRust入門ガイド
nwiizo
7
890
テストを軸にした生き残り術
kworkdev
PRO
0
220
Firestore → Spanner 移行 を成功させた段階的移行プロセス
athug
1
500
Create Ruby native extension gem with Go
sue445
0
130
AIエージェント開発用SDKとローカルLLMをLINE Botと組み合わせてみた / LINEを使ったLT大会 #14
you
PRO
0
130
未経験者・初心者に贈る!40分でわかるAndroidアプリ開発の今と大事なポイント
operando
6
750
20250905_MeetUp_Ito-san_s_presentation.pdf
magicpod
1
100
OCI Oracle Database Services新機能アップデート(2025/06-2025/08)
oracle4engineer
PRO
0
180
職種の壁を溶かして開発サイクルを高速に回す~情報透明性と職種越境から考えるAIフレンドリーな職種間連携~
daitasu
0
190
企業の生成AIガバナンスにおけるエージェントとセキュリティ
lycorptech_jp
PRO
3
200
「Linux」という言葉が指すもの
sat
PRO
4
140
AI時代を生き抜くエンジニアキャリアの築き方 (AI-Native 時代、エンジニアという道は 「最大の挑戦の場」となる) / Building an Engineering Career to Thrive in the Age of AI (In the AI-Native Era, the Path of Engineering Becomes the Ultimate Arena of Challenge)
jeongjaesoon
0
260
Featured
See All Featured
Being A Developer After 40
akosma
90
590k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.9k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.1k
Facilitating Awesome Meetings
lara
55
6.5k
Practical Orchestrator
shlominoach
190
11k
It's Worth the Effort
3n
187
28k
The Straight Up "How To Draw Better" Workshop
denniskardys
236
140k
Designing for Performance
lara
610
69k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
The Pragmatic Product Professional
lauravandoore
36
6.9k
Become a Pro
speakerdeck
PRO
29
5.5k
Statistics for Hackers
jakevdp
799
220k
Transcript
7$3JO(PɿϞοΫࣗಈੜͰָͪ͠Ό͏
ࣗݾհ 5XJUUFSɿ!ZZI@HMʢIPO%ʣ (JU)VCɿZZIHM ϓϥοτϑΥʔϜ෦ όοΫΤϯυΤϯδχΞ (P%%%ΞʔΩςΫνϟ ΄Μͩ
3 ςετॻ͍͍ͯ·͔͢ʁ
>> ֎෦γεςϜΛ༻͢Δςετ w֎෦γεςϜ͕ఏڙ͢Δ"1*Λ༻͢Δػձ͕૿Ճ w ଞࣾαʔϏε w ࣾγεςϜ w ϚΠΫϩαʔϏε w֎෦γεςϜΛϞοΫԽ
4
5 ϞοΫͷཧ͋Δ͋Δ
6 ϞοΫͷཧ͋Δ͋Δ ʮϞοΫ͔ͩΒಈ͚͍͔ͬʯ
7 ϞοΫͷཧ͋Δ͋Δ ʮϞοΫ͔ͩΒಈ͚͍͔ͬʯ ͕ଓ͖
8 ϞοΫͷཧ͋Δ͋Δ ʮϞοΫ͔ͩΒಈ͚͍͔ͬʯ ͱͯਓ͕ಡΊͨίʔυ͡Όͳ͘ͳΔ ͕ଓ͖
9 ϞοΫͷཧ͋Δ͋Δ ʮϞοΫ͔ͩΒಈ͚͍͔ͬʯ ͱͯਓ͕ಡΊͨίʔυ͡Όͳ͘ͳΔ ͕ଓ͖ ͍͔ͭ͠ຊདྷͷ༷ͱࠩҟ͕ੜ·Ε͡ΊΔ
10 ϞοΫͷཧ͋Δ͋Δ ʮϞοΫ͔ͩΒಈ͚͍͔ͬʯ ͱͯਓ͕ಡΊͨίʔυ͡Όͳ͘ͳΔ ͕ଓ͖ ͍͔ͭ͠ຊདྷͷ༷ͱࠩҟ͕ੜ·Ε͡ΊΔ aϞοΫͷཧͭΒ͍
11 ͭΒ͍ ͩΔ͍ ͩ ΄͛ʔ
12 ϞοΫͷཧ͋Δ͋Δ ʮϞοΫ͔ͩΒಈ͚͍͔ͬʯ ͱͯਓ͕ಡΊͨίʔυ͡Όͳ͘ͳΔ ͕ଓ͖ ͍͔ͭ͠ຊདྷͷ༷ͱࠩҟ͕ੜ·Ε͡ΊΔ
>> ϞοΫಠΓา͖ w࠷ॳ༷௨ΓͩͬͨϞοΫ͕ ͍͔༷͔ͭ͠Β֎ΕɺಠΓา͖࢝͠ΊΔݱ wʮϩʔΧϧͰಈ͍͍ͯͨͷʹʜʯͱݴ͍ग़͢ ਓ͕૿͑Δ 13
>> ͳ༷͕ͥͣΕͯ͘Δʁ wଟ͘ͷ߹ɺϨεϙϯε͚ͩΛݟͯϞοΫΛ࡞Δ w ࣾ֎γεςϜͷ߹ɺ෦࣮͕Ͳ͏ͳͬͯΔ͔ جຊతʹΔज़͕ͳ͍ w ʢࣾͷʣυΩϡϝϯτʹ༷ͳΜͯ͋Γ͑ͳ͍ʢܾΊ͚ͭʣ wਓΈΜͳϛεΛ͢Δ wϞοΫͷίʔυ͓Ζ͔ͦʹ͞Ε͕ͪ
w zಈ͚0,zͷਫ਼ਆ wΊΜͲ͍ 14
>> ͳ༷͕ͥͣΕͯ͘Δʁ wଟ͘ͷ߹ɺϨεϙϯε͚ͩΛݟͯϞοΫΛ࡞Δ w ࣾ֎γεςϜͷ߹ɺ෦࣮͕Ͳ͏ͳͬͯΔ͔ جຊతʹΔज़͕ͳ͍ w ʢࣾͷʣυΩϡϝϯτʹ༷ͳΜͯ͋Γ͑ͳ͍ʢܾΊ͚ͭʣ wਓΈΜͳϛεΛ͢Δ wϞοΫͷίʔυ͓Ζ͔ͦʹ͞Ε͕ͪ
w zಈ͚0,zͷਫ਼ਆ wΊΜͲ͍ 15 ৽ͨͳγεςϜ͕ੜ
>> ϞοΫಠΓา͖ͷରԠࡦ wΊͪΌͪ͘ΌؾΛ͚ͭͯϞοΫΛखಈ࡞ w ίʔυϨϏϡʔؤுΔ w ͱʹ͔͘ؤுΔ w ͱʹ͔͘ؾΛ͚ͭΔ wϞοΫίʔυΛࣗಈੜ
w 0QFO"1*ʢ4XBHHFSʣ w 7JEFP$BTTFUUF3FDPSEFS 16
>> ϞοΫಠΓา͖ͷରԠࡦ wΊͪΌͪ͘ΌؾΛ͚ͭͯϞοΫΛखಈ࡞ w ίʔυϨϏϡʔؤுΔ w ͱʹ͔͘ؤுΔ w ͱʹ͔͘ؾΛ͚ͭΔ wϞοΫίʔυΛࣗಈੜ
w 0QFO"1*ʢ4XBHHFSʣ w7JEFP$BTTFUUF3FDPSEFS 17
>> 7$3ʢ7JEFP$BTTFUUF3FDPSEFSʣ w௨৴༰Λอଘ͠ɺ࠶ੜ͢ΔϥΠϒϥϦ܈ͷ૯শ w ςετʹ͓͍ͯɺ"1*ϦΫΤετͷ௨৴ͷ༰Λ อଘ͠ɺ࣍ճҎ߱ͦͷอଘ༰ʢϨεϙϯεʣΛ ͍ճ͢͜ͱ͕Մೳ w 3VCZͷWDSWDS͕༗໊ 18
࣮֬ʹ ࣮ࡍͷϨεϙϯεΛϞοΫԽՄೳ a͔͠ɺࣗಈੜ
>> (Pʹ͓͚Δ7$3ϥΠϒϥϦ wEOBFPOHPWDSʢ⭐ʣ w$PNCP4USJLF)2WDSHPʢ⭐ʣ wTFCPSBNBHPWDSʢ⭐ʣ wSQDSFQMBZʢ⭐ʣ w H31$༻ w HPPHMFBQJTHPPHMFDMPVEHPʹแؚ͞ΕΔ
ύοέʔδͳͷͰHPPHMFDMPVEHPͱͯ͠ͷελʔ 19
>> (Pʹ͓͚Δ7$3ϥΠϒϥϦ wEOBFPOHPWDSʢ⭐ʣ w$PNCP4USJLF)2WDSHPʢ⭐ʣ wTFCPSBNBHPWDSʢ⭐ʣ wSQDSFQMBZʢ⭐ʣ w H31$༻ w HPPHMFBQJTHPPHMFDMPVEHPʹแؚ͞ΕΔ
ύοέʔδͳͷͰHPPHMFDMPVEHPͱͯ͠ͷελʔ 20
>> EOBFPOHPWDS wWDSWDSʹΠϯεύΠΞ͞Εͯ࡞ΒΕͨϥΠϒϥϦ wSQDSFQMBZΛআ͚࠷ελʔ͕ଟ͍ wIUUQ$MJFOUͷ5SBOTQPSUʹHPWDSͰ༻ҙ͞Εͨ 5SBOTQPSUʢIUUQ3PVOE5SJQQFSʣΛ ༻͢Δ͜ͱͰϨεϙϯεͷอଘΛ࣮ݱ 21
>> ࣮ྫ wɺɺɺͷલʹ༻ޠઆ໌ w 3FDPSEFS w ϨεϙϯεΛه͢Δͭ w ࣮ଶIUUQ3PVOE5SJQQFSΠϯλʔϑΣʔεΛຬͨͨ͠ ߏମ
w $BTTFUF w อଘͨ͠Ϩεϙϯεͷ༰͕ೖͬͯΔϑΝΠϧ w ZBNMϑΝΠϧ 22
>> ࣮ྫ wIUUQ$MJFOUΛ֎෦͔ΒೖͰ͖ΔΑ͏ʹ͢Δ w HBUFXBZ֎෦"1*ͱͷΓͱΓΛநԽͨ͠ͷ ʢσʔλιʔε͕"1*ͷSFQPTJUPSZͱ͍͏Πϝʔδʣ 23
>> ࣮ྫ wIUUQ$MJFOUΛ֎෦͔ΒೖͰ͖ΔΑ͏ʹ͢Δ w HBUFXBZ֎෦"1*ͱͷΓͱΓΛநԽͨ͠ͷ ʢσʔλιʔε͕"1*ͷSFQPTJUPSZͱ͍͏Πϝʔδʣ 24
>> ࣮ྫ w3FDPSEFSͷੜ͓ΑͼIUUQ$MJFOUͷࠩ͠ࠐΈ 25 ˢ͜͜Ͱ༻ҙͨ͠IUUQ$MJFOUΛ௨ΔϨεϙϯεશͯอଘ͞ΕΔ
>> ࣮ྫ w3FDPSEFSͷੜ͓ΑͼIUUQ$MJFOUͷࠩ͠ࠐΈ 26 ˢ͜͜Ͱ༻ҙͨ͠IUUQ$MJFOUΛ௨ΔϨεϙϯεશͯอଘ͞ΕΔ
>> ࣮ྫ w3FDPSEFSͷੜ͓ΑͼIUUQ$MJFOUͷࠩ͠ࠐΈ 27 ˢ͜͜Ͱ༻ҙͨ͠IUUQ$MJFOUΛ௨ΔϨεϙϯεશͯอଘ͞ΕΔ
>> ࣮ࡍʹςετΛճͯ͠ΈΔͱʜ w$BTTFUFʹϨεϙϯε༰͕อଘ͞Ε͍ͯΔ 28
>> ࣮ࡍʹςετΛճͯ͠ΈΔͱʜ w$BTTFUFʹϨεϙϯε༰͕อଘ͞Ε͍ͯΔ 29
>> ϦΫΤετͷಉҰੑʹ͍ͭͯ wσϑΥϧτͰԼهύϥϝʔλ͕ಉ͡Ͱ͋Ε ಉҰͷϦΫΤετͱͯ͠ఆ w )551ϝιου w ϦΫΤετઌͷ63- wϧʔϧΧελϜՄೳ w
4FU.BUDIFS ʹΑΓಉҰੑνΣοΫͷํࣜΛ มߋՄೳ 30 ʮಉ͡ʯϦΫΤετอଘ༰Λ͍ճ͕͢ʮಉ͡ʯͷ݅ʁʁ
>> อଘ༰Λमਖ਼͢Δ߹ wϨεϙϯεͷमਖ਼͕ඞཁʹͳͬͨ߹ΧηοτΛ ফͤ0, w HPWDSͰɺΧηοτ͕ଘࡏ͠ͳ͍߹ʹ Ϩεϙϯε༰ͷอଘॲཧΛ࣮ߦ w ZBNMΛमਖ਼ w
ಡΈ͍͢ZBNMϑΝΠϧͳͷͰखͰ͢ͷ Ͱ͖ͳ͘ͳ͍Ͱ͕͢ɺ͋·Γ͓͢͢Ί͠·ͤΜ 31
>> ฐνʔϜͰͷӡ༻ํ๏ w45(ڥͷϨεϙϯεΛอଘ wςετؔʢ5FTU9YY ʣ͝ͱʹΧηοτΛ༻ҙ w$BTTFUFϧʔτσΟϨΫτϦԼͷ DBTTFUUFTσΟϨΫτϦʹ อଘ 32
>> ϝϦοτ wϞοΫίʔυΛࣗಈੜͰ͖Δ wϞοΫͱ࣮γεςϜؒͷ༷ͷͣΕ͕ͳ͘ͳͬͨ wϞοΫͷϦϙδτϦͱίϯςφΠϝʔδΛফͤͨ w EPDLFSDPNQPTFͷىಈΛߴԽ wςετʹཁ͢Δ࣌ؒΛॖ w )551௨৴ˠϑΝΠϧಡΈࠐΈ
33
>> ςετ࣌ؒͷॖ 34 ॳճ ճҎ߱
>> σϝϦοτ wϞοΫΛमਖ਼͢Δ͍͞ʹɺ ༗ޮͳΞΫηετʔΫϯΛऔಘ͠ͳ͓͢ඞཁ͕͋Δ ˠجຊతʹϞοΫमਖ਼ʹ֎෦γεςϜ͕༷มߋ͢Δͱ͖ͳͷͰ ɹଟൃ͢ΔࣄͰͳ͍ wΧηοτ୯ҐͰϨεϙϯε͕อଘ͞ΕΔ ˠΧηοτͷͻͱͭͷϦΫΤετʹ͓͍ͯ ɹϨεϙϯεͷอଘʹࣦഊͨ͠߹ɺ ɹશϦΫΤετΛอଘ͠ͳ͓͢ඞཁ͕͋Δ
ʢճආࡦ͕ͳ͍Θ͚Ͱͳ͍͕ʜʣ 35
>> Χηοτ୯ҐͰͷϨεϙϯεอଘ wΧηοτʹ ෳͷϦΫΤετ͕ อଘ͞Ε͍ͯΔ w ਖ਼ৗܥ w ҟৗܥ 36
ҟৗܥͷϦΫΤετ ਖ਼ৗܥͷϦΫΤετ
>> Χηοτ୯ҐͰͷϨεϙϯεอଘ wҟৗܥͷϦΫΤετͷΈ मਖ਼ͨ͘͠ͳͬͨ߹ wΧηοτ୯ҐͰআ w ਖ਼ৗܥͷอଘ༰ফ͑Δ w ݸผͰमਖ਼͢ΔͳΒ ZBNMΛ৮Δ͔͠ͳ͍
37 ҟৗܥͷϦΫΤετ ਖ਼ৗܥͷϦΫΤετ ༷มߋʹؾͮ͘ ػձʹͳΔͷͰϝϦοτʹͳΓ͑Δ
>> ·ͱΊ wϞοΫΛ͍͔ͪΒखͰ࡞Δඞཁ͕ͳ͘ͳΔ w࣮ࡍͷϨεϙϯεΛอଘ͢ΔͷͰ ϞοΫͱ࣮γεςϜؒͰ༷ͷࠩҟ͕ͳ͘ͳΔ wʮϩʔΧϧͰಈ͍ͨͷʹʜʯ͕ݮΔʂʢͣʣ 38 7$3͕࣮ݱ͢Δ࠷ߴͷ%9