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.4k
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
170
事業をグロースさせるためにエンジニアができること / What engineers can do to grow a business
yyh_gl
2
1.3k
Goaを使ってAPIサーバ開発してみた / Develop API server by Goa
yyh_gl
3
2.5k
Other Decks in Technology
See All in Technology
MLOps の現場から
asei
7
650
20241214_WACATE2024冬_テスト設計技法をチョット俯瞰してみよう
kzsuzuki
3
580
Oracle Cloud Infrastructure:2024年12月度サービス・アップデート
oracle4engineer
PRO
0
210
成果を出しながら成長する、アウトプット駆動のキャッチアップ術 / Output-driven catch-up techniques to grow while producing results
aiandrox
0
360
.NET 9 のパフォーマンス改善
nenonaninu
0
1k
複雑性の高いオブジェクト編集に向き合う: プラガブルなReactフォーム設計
righttouch
PRO
0
120
第3回Snowflake女子会_LT登壇資料(合成データ)_Taro_CCCMK
tarotaro0129
0
200
Fanstaの1年を大解剖! 一人SREはどこまでできるのか!?
syossan27
2
170
社外コミュニティで学び社内に活かす共に学ぶプロジェクトの実践/backlogworld2024
nishiuma
0
270
watsonx.ai Dojo #5 ファインチューニングとInstructLAB
oniak3ibm
PRO
0
170
日本版とグローバル版のモバイルアプリ統合の開発の裏側と今後の展望
miichan
1
130
Microsoft Azure全冠になってみた ~アレを使い倒した者が試験を制す!?~/Obtained all Microsoft Azure certifications Those who use "that" to the full will win the exam! ?
yuj1osm
2
110
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
The Cost Of JavaScript in 2023
addyosmani
45
7k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
Statistics for Hackers
jakevdp
796
220k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5k
How to Ace a Technical Interview
jacobian
276
23k
Designing Experiences People Love
moore
138
23k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Why Our Code Smells
bkeepers
PRO
335
57k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
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