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
Goでテストをしやすくするためにやったこと
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
KazukiHayase
June 07, 2024
Technology
930
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Goでテストをしやすくするためにやったこと
KazukiHayase
June 07, 2024
More Decks by KazukiHayase
See All by KazukiHayase
entのPrivacy機能とgo/astを使って、意図しないDBアクセスを防ぐ
kazukihayase
1
410
go testのキャッシュの仕組みにDeep Diveする
kazukihayase
0
170
要件定義・デザインフェーズでもAIを活用して、コミュニケーションの密度を高める
kazukihayase
0
580
CIでのgolangci-lintの実行を約90%削減した話
kazukihayase
0
560
もし今からGraphQLを採用するなら
kazukihayase
13
6k
GraphQLクライアントの技術選定 2023冬
kazukihayase
9
7.9k
Introduction and Insights of the Hasura-based Architecture
kazukihayase
0
1.2k
自分だけが頑張るのをやめて、フルスタックなチームを作る
kazukihayase
2
3.7k
Goでテンプレートからファイルを自動生成するCLIを作る
kazukihayase
0
1.6k
Other Decks in Technology
See All in Technology
小さく始める AI 活用推進 ― 日経電子版 Web チームの事例/nikkei-tech-talk47
nikkei_engineer_recruiting
0
310
Flow 不死:AI 時代 DevOps 的不變本質
cheng_wei_chen
2
360
2026TECHFRESH畢業分享會 - 原生還是跨平台? App 開發踩坑實錄
line_developers_tw
PRO
0
1.3k
攻撃者視点で考えるDetection Engineering
cryptopeg
3
2k
AIチャット検索改善の3週間
kworkdev
PRO
2
150
徹底討論!ECS vs EKS!
daitak
3
1k
IaC コードを資産へ:AWS CDK 社内ライブラリと横断展開 / aws-summit-japan-2026
gotok365
9
1.3k
AIはどのように 組織のアジリティを変えるのか?
junki
4
1.1k
データサイエンスを価値につなげるプロジェクト設計 〜 DS一年目が現場で得た気づき 〜
ysd113
1
290
ACE-Step-1.5で見る 音楽生成AIのしくみと“破綻だけ直す”Retake機能の開発【zennfes spring 2026 登壇資料】
personabb
1
550
AI-DLCを “そのまま導入しなかった”話 ~組織に合わせてアジャストした 私たちの実践共有~
hiroramos4
PRO
1
240
GitHub Copilot 最新アップデート – 「一歩先」の実践活用術
moulongzhang
5
1.5k
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
234
18k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
780
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
610
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.7k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
460
Navigating Weather and Climate Data
rabernat
0
220
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1.1k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
300
Transcript
GoͰςετΛ͘͢͢͠ΔͨΊʹͬͨ͜ͱ (Unofficial)Go Conference 2024 Pre Party 2024.06.07
ૣًʢ@KazukiHayaseʣ • 2021BuySell Technologies৽ଔೖࣾ • ग़ཧSaaSνʔϜ PjM / ςοΫϦʔυ •
Go / TypeScript / React / GraphQL / ϙέΧ
ࣄۀհ ങऔɾൢചͷ॥Λ࣮ݱ͢Δ૯߹ϦϢʔεϏδωεΛల։͍ͯ͠·͢ɻ ͓٬༷ͷχʔζʹ߹Θ֤ͤͨछങऔɾൢചνϟωϧͰɺࣗʹΔ͞·͟·ͳෆཁͳͷΛɺ୭͔ͷඞཁͳͷͱม͍͑ͯ·͢ɻ
ϓϩμΫτ܈ʮόΠηϧϦϢʔεϓϥοτϑΥʔϜ Cosmosʯͷ։ൃ͕ਐߦத ϦϢʔεʹඞཁͳͯ͢ͷػೳΛఏڙ͢ΔʮϦϢʔεϓϥοτϑΥʔϜ Cosmosʯͷ։ൃ͕ਐߦதͰ͢ɻ CosmosΛ׆༻ͯ͠ɺόΠηϧάϧʔϓશମͰͷۀޮվળσʔλυϦϒϯܦӦͷਂԽΛࢦ͍ͯ͠·͢ɻ ϦϢʔεϓϥοτϑΥʔϜCosmos ࣗࣾ։ൃͷϦϢʔεಛԽۀجװγεςϜͰ͋ΓαʔϏε܈ͷू߹ମ ങऔਃࠐ ങऔɾࠪఆ ࡏݿཧ
ൢച ଟ༷ͳνϟωϧͰऩӹ࠷େԽ CRM -ސ٬ରԠ- ങऔछผʹԠͨ͡࠷దͳγεςϜߏங Visit -๚ങऔ- Store -ళฮങऔ- Promas -ࡐϚελ- Appraisal -ઐࠪఆ- Stock -ࡏݿཧ- EXS -ൢചཧ- Core -ձһཧ- Portal -σʔλར༻- Pocket -σʔλج൫- ങऔ ઐνʔϜʹΑΔਅآɾࠪఆͱ࿈ܞ ࠪఆ ਃࠐ ޮతͳސ٬ରԠ ࡏݿ ࡏݿཧͷ࠷దɾޮԽ ൢച σʔλ ֤ࣄۀϓϩηεʹ͋Δ σʔλΛҰݩཧ ɿجװγεςϜ
ΞδΣϯμ ٕज़ελοΫ 01 3ͭͷऔΓΈ 02 ·ͱΊ 03
01 ٕज़ελοΫ
ٕज़ελοΫ
ٕज़ελοΫ ͜͜ͷ
• go-gorm/gorm ◦ GoͷORM • stretchr/testify ◦ ςεςΟϯάϑϨʔϜϫʔΫ ◦ ΞαʔγϣϯϞοΫ͕ޮతʹߦ͑Δ
ٕज़ελοΫ
02 3ͭͷऔΓΈ
testifyͷϥΠϑαΠΫϧͱGORMͷSavePointΛΈ߹Θͤͯɺ αϒςετ͝ͱʹDBΛϩʔϧόοΫ 1. αϒςετ͝ͱʹDBΛϩʔϧόοΫ
1. αϒςετ͝ͱʹDBΛϩʔϧόοΫ
Before αϒςετͷDBૢ࡞͕ผͷαϒςετʹӨڹ After αϒςετͷDBૢ࡞͕શʹಠཱ 1. αϒςετ͝ͱʹDBΛϩʔϧόοΫ
testifyͷmockύοέʔδΛ֦ுͯ͠ɺ ϞοΫʹσϑΥϧτΛઃఆͰ͖ΔΈΛಋೖ 2. ϞοΫͷσϑΥϧτͷઃఆ
2. ϞοΫͷσϑΥϧτͷઃఆ
2. ϞοΫͷσϑΥϧτͷઃఆ Before ςετ͝ͱʹશͯͷϞοΫΛઃఆ After ςετ͝ͱʹඞཁͳϞοΫͷΈΛઃఆ
δΣωϦΫεΛ׆༻ͯ͠ɺ ڞ௨ͷςʔϒϧۦಈςετ༻ͷߏମΛఆٛ 3. ςʔϒϧۦಈςετ༻ͷߏମఆٛ
3. ςʔϒϧۦಈςετ༻ͷߏମఆٛ
3. ςʔϒϧۦಈςετ༻ͷߏମఆٛ Before ࣮ऀʹΑͬͯςετͷॻ͖ํ͕όϥόϥ After ࣮ऀʹΑΒͣॻ͖ํ͕౷Ұ
औΓΈʹΑΔՌ ৼΓฦΓͰϙδςΟϒͳҙݟ͕ଟ্͕ͬͨ͘
03 ·ͱΊ
• GoͰςετΛ͘͢͢͠ΔͨΊʹߦͬͨ3ͭͷऔΓΈ ◦ αϒςετ͝ͱʹDBΛϩʔϧόοΫ ◦ ϞοΫͷσϑΥϧτͷઃఆ ◦ ςʔϒϧۦಈςετ༻ͷߏମఆٛ • গ͠Ͱಉ͡՝Λ๊͍͑ͯΔํͷࢀߟʹͳΕ͍Ͱ͢ʂ
·ͱΊ
THANK YOU