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
KazukiHayase
June 07, 2024
Technology
920
1
Share
Goでテストをしやすくするためにやったこと
KazukiHayase
June 07, 2024
More Decks by KazukiHayase
See All by KazukiHayase
entのPrivacy機能とgo/astを使って、意図しないDBアクセスを防ぐ
kazukihayase
1
380
go testのキャッシュの仕組みにDeep Diveする
kazukihayase
0
140
要件定義・デザインフェーズでもAIを活用して、コミュニケーションの密度を高める
kazukihayase
0
530
CIでのgolangci-lintの実行を約90%削減した話
kazukihayase
0
550
もし今からGraphQLを採用するなら
kazukihayase
13
5.9k
GraphQLクライアントの技術選定 2023冬
kazukihayase
9
7.8k
Introduction and Insights of the Hasura-based Architecture
kazukihayase
0
1.1k
自分だけが頑張るのをやめて、フルスタックなチームを作る
kazukihayase
2
3.6k
Goでテンプレートからファイルを自動生成するCLIを作る
kazukihayase
0
1.6k
Other Decks in Technology
See All in Technology
出版記念イベントin大阪「書籍紹介&私がよく使うMCPサーバー3選と社内で安全に活用する方法」
kintotechdev
0
120
JAWS DAYS 2026でAIの「もやっと」感が解消された話
smt7174
1
110
やさしいとこから始めるGitHubリポジトリのセキュリティ
tsubakimoto_s
3
2.1k
GitHub Copilot CLI で Azure Portal to Bicep
tsubakimoto_s
0
300
How to install a gem
indirect
0
2k
スケーリングを封じられたEC2を救いたい
senseofunity129
0
130
Physical AI on AWS リファレンスアーキテクチャ / Physical AI on AWS Reference Architecture
aws_shota
1
200
Embeddings : Symfony AI en pratique
lyrixx
0
430
【Oracle Cloud ウェビナー】データ主権はクラウドで守れるのか?NTTデータ様のOracle Alloyで実現するソブリン対応クラウドの最適解
oracle4engineer
PRO
3
130
40代からのアウトプット ― 経験は価値ある学びに変わる / 20260404 Naoki Takahashi
shift_evolve
PRO
2
350
CREがSLOを握ると 何が変わるのか
nekomaho
0
320
Tour of Agent Protocols: MCP, A2A, AG-UI, A2UI with ADK
meteatamel
0
160
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
85
9.4k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
93
How STYLIGHT went responsive
nonsquared
100
6k
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
Discover your Explorer Soul
emna__ayadi
2
1.1k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
250
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.8k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
79
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
490
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
160
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
160
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
320
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