Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Goでテストをしやすくするためにやったこと
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
KazukiHayase
June 07, 2024
Technology
970
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
なぜ Temporal の大小比較には compare しかないのか / Why Does Temporal Only Have compare() for Comparisons
kazukihayase
1
250
entのPrivacy機能とgo/astを使って、意図しないDBアクセスを防ぐ
kazukihayase
1
470
go testのキャッシュの仕組みにDeep Diveする
kazukihayase
0
240
要件定義・デザインフェーズでもAIを活用して、コミュニケーションの密度を高める
kazukihayase
0
650
CIでのgolangci-lintの実行を約90%削減した話
kazukihayase
0
590
もし今からGraphQLを採用するなら
kazukihayase
13
6.1k
GraphQLクライアントの技術選定 2023冬
kazukihayase
9
8k
Introduction and Insights of the Hasura-based Architecture
kazukihayase
0
1.2k
自分だけが頑張るのをやめて、フルスタックなチームを作る
kazukihayase
2
3.8k
Other Decks in Technology
See All in Technology
スクラム祭り2026福井トラック_閉じたループから価値のスパイラルへ
kc_nakanishi
0
110
「Learning Outcome」を書きたくない私が、Learning Outcomeと折り合いをつけるまで
mhlyc
0
170
LLM Content Moderationを支える評価・改善ループの実践
suikabar
2
330
局所最適は悪ではない。壊れているのは指標です。量と質を同時に見る先行指標の設計
recruitengineers
PRO
2
980
AWS DevOps Agentはどこまで任せられるか 〜機能の現在地と、機能拡張の実践〜
nyankotaro
0
190
AI時代のGraphQL
joere
3
380
企画を Software Factory-ready にする——開発が高速になったとき、PdMの仕事はどう変わったか
yachibit
1
230
Codex を使った障害対応机上演習の実際
orgachem
PRO
0
330
20年間 SNS サービス「GREE」 を支えた技術の刷新と、長期運用サービスの Kubernetes へのリアーキテクト
gree_tech
PRO
0
120
React改造してみた
tsukina_7mochi
0
160
オントロジーって 結局なにもの? AI エージェントに「意味」を渡す知識設計の話
greenmidori
0
270
VLA-JEPA: Enhancing Vision-Language-Action Models with Latent World Models
takmin
0
260
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
53
4k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
My Coaching Mixtape
mlcsv
0
360
Abbi's Birthday
coloredviolet
4
10k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
740
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
270
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
610
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
480
A Tale of Four Properties
chriscoyier
163
24k
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