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.2k
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
160
事業をグロースさせるためにエンジニアができること / What engineers can do to grow a business
yyh_gl
2
1.3k
Goaを使ってAPIサーバ開発してみた / Develop API server by Goa
yyh_gl
3
2.4k
Other Decks in Technology
See All in Technology
20240724_cm_odyssey_hibiyatech
hiashisan
0
110
簡単に始めるSnowflakeの機械学習
nayuts
1
190
Datadog Cloud SIEMを使ってAWS環境の脅威を可視化した話/lifeistech-datadog-cloud-siem
gidajun
0
480
20240725 LLMによるDXのビジョンと、今何からやるべきか @Azure OpenAI Service Dev Day
nrryuya
3
1.2k
ここがすごいよ! AWS Systems Manager!
saichan11
0
1.8k
目標設定は好きですか? アジャイルとともに目標と向き合い続ける方法 / Do you like target Management?
kakehashi
10
3k
初中級者用如何使用backlog -VALE TUDOEDITION-
in0u
0
140
Git 研修 Basic【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
310
AIアシスタントの活用で品質の向上と開発ワークフローのスピードアップ
nagix
1
200
Amazon FSx for NetApp ONTAPのパフォーマンスチューニング要素をまとめてみた #cm_odyssey #devio2024
non97
0
220
公共領域から学ぶ クラウド移行についてエンジニアが意識していること
kawakawa2222
0
140
CTOから見た事業開発とプロダクト開発 / My Perspective on Business and Product Development as CTO
keisuke69
4
960
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
33
6.9k
Teambox: Starting and Learning
jrom
130
8.6k
Fashionably flexible responsive web design (full day workshop)
malarkey
399
65k
Making Projects Easy
brettharned
111
5.7k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
23
1.9k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
149
45k
The Straight Up "How To Draw Better" Workshop
denniskardys
229
130k
[RailsConf 2023] Rails as a piece of cake
palkan
35
4.4k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
226
52k
Designing for Performance
lara
604
67k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
24
1.8k
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.9k
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