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, GAEを使ってみた話 とその振り返り
Search
takuya tsuruda
May 23, 2018
Technology
0
1.9k
新規サービスでGo, GAEを使ってみた話 とその振り返り
takuya tsuruda
May 23, 2018
Tweet
Share
Other Decks in Technology
See All in Technology
インフラエンジニア必見!Kubernetesを用いたクラウドネイティブ設計ポイント大全
daitak
1
390
生成AIと余白 〜開発スピードが向上した今、何に向き合う?〜
kakehashi
PRO
0
170
Amazon Bedrock Knowledge Basesチャンキング解説!
aoinoguchi
0
170
モダンUIでフルサーバーレスなAIエージェントをAmplifyとCDKでサクッとデプロイしよう
minorun365
4
230
CDK対応したAWS DevOps Agentを試そう_20260201
masakiokuda
1
430
ランサムウェア対策としてのpnpm導入のススメ
ishikawa_satoru
0
230
We Built for Predictability; The Workloads Didn’t Care
stahnma
0
150
こんなところでも(地味に)活躍するImage Modeさんを知ってるかい?- Image Mode for OpenShift -
tsukaman
1
170
AWS Network Firewall Proxyを触ってみた
nagisa53
1
250
M&A 後の統合をどう進めるか ─ ナレッジワーク × Poetics が実践した組織とシステムの融合
kworkdev
PRO
1
520
【Oracle Cloud ウェビナー】[Oracle AI Database + AWS] Oracle Database@AWSで広がるクラウドの新たな選択肢とAI時代のデータ戦略
oracle4engineer
PRO
2
190
30万人の同時アクセスに耐えたい!新サービスの盤石なリリースを支える負荷試験 / SRE Kaigi 2026
genda
4
1.4k
Featured
See All Featured
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
150
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
95
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
260
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
70
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.1k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
Navigating Weather and Climate Data
rabernat
0
110
Mind Mapping
helmedeiros
PRO
0
90
Are puppies a ranking factor?
jonoalderson
1
2.7k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
120
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
150
Transcript
Copyright © DeNA Co., Ltd. All Rights Reserved. 新規サービスでGo, GAEを使ってみた話
とその振り返り 1
Copyright © DeNA Co., Ltd. All Rights Reserved. 自己紹介 2
・基本情報 - DeSCヘルスケア - 新卒2年目 - 鶴田拓也(つるだたくや) ・普段してること - カミナル 開発・運用 - サーバサイドエンジニア
Copyright © DeNA Co., Ltd. All Rights Reserved. 今日話すこと 3
・DeSCヘルスケアのサービス ・新規で作ったプロダクト ・こんな感じで作りました - Google App Engine(GAE) - Deploy - QA環境の構築 - Analytics - DataStore - BigQuery - DataStudio ・失敗したこと・苦戦したこと
Copyright © DeNA Co., Ltd. All Rights Reserved. DeSCヘルスケアのサービス
Copyright © DeNA Co., Ltd. All Rights Reserved. DeSCヘルスケアのサービス KenCoM
さんぽジスタ
Copyright © DeNA Co., Ltd. All Rights Reserved. DeSCヘルスケアのサービス -
利用者の健診結果 - 身体データの記録(歩数・体重・血圧 ・血糖値) - 興味関心に沿った健康情報のレコメ ンデーション - ウォーキングイベント開催 - 活動に応じてポイント取得 KenCoM
Copyright © DeNA Co., Ltd. All Rights Reserved. DeSCヘルスケアのサービス -
歩数管理 - 1対1のデイリー歩数バトル - 健保内での月間歩数ランキング - KenCoMポイントの獲得 さんぽジスタ
Copyright © DeNA Co., Ltd. All Rights Reserved. 今回作ったサービス
Copyright © DeNA Co., Ltd. All Rights Reserved. カミナルとは 9
・歩いたら - 1日8000歩以上 - 週に4日以上 ・ご褒美 - コーヒー - アイス ・2017/10 ~ - 開発開始 ・2018/03 ~ - トライアルスタート
Copyright © DeNA Co., Ltd. All Rights Reserved. こんな感じで作りました
Copyright © DeNA Co., Ltd. All Rights Reserved. こんな感じで作りました
Copyright © DeNA Co., Ltd. All Rights Reserved. こんな感じで作りました ・GAE
+ Go + Datastore ・net/http + GAE libraly ・gorilla/mux, urfave/negroni, pkg/error ….
Copyright © DeNA Co., Ltd. All Rights Reserved. こんな感じで作りました 13
・GAE - サクッと作ってサクッと潰す - 社内の知見を増やす - 使ってみたかった ・Go - Standard EnvironmentでRails使えない - Go使ってみたかった
Copyright © DeNA Co., Ltd. All Rights Reserved. こんな感じで作りました Deployment
Copyright © DeNA Co., Ltd. All Rights Reserved. ~Deploy~ 15
test deploy webhook push
Copyright © DeNA Co., Ltd. All Rights Reserved. ~Deploy~ 16
f/branch_a f/branch_b f/branc_c QA push push push
Copyright © DeNA Co., Ltd. All Rights Reserved. ~Deploy~ 17
f/branch_a f/branch_b f/branch_c version: version: version: QA https://f-branch-a-dot.com - branch毎に環境が作 成される https://f-branch-b-dot.com https://f-branch-c-dot.com
Copyright © DeNA Co., Ltd. All Rights Reserved. ~Deploy~ 18
f/branch_a f/branch_b f/branch_c version: version: version: QA https://f-branch-a-dot.com - debugモードで向き先を 変更できるように
Copyright © DeNA Co., Ltd. All Rights Reserved. こんな感じで作りました Analytics
Copyright © DeNA Co., Ltd. All Rights Reserved. ~Analytics~ 20
Datastore Big Query Data Studio
Copyright © DeNA Co., Ltd. All Rights Reserved. ~Analytics~ 21
Data Studio Big Query
Copyright © DeNA Co., Ltd. All Rights Reserved. 失敗したこと・苦戦したこと
Copyright © DeNA Co., Ltd. All Rights Reserved. 歩数は最新のものが届くとは限らない
Copyright © DeNA Co., Ltd. All Rights Reserved. 歩数送信の流れ 5/21
5/22 12:00 12:00 7000 8000 7000 ①送る! ②8000歩 確定!! 5/21の歩数 ③送る! 8000 23:59
Copyright © DeNA Co., Ltd. All Rights Reserved. 歩数送信の流れ 5/21
5/22 12:00 12:00 7000 8000 7000 7000 ①送る! ②8000歩 確定!! 5/21の歩数 ③送る! 23:59
Copyright © DeNA Co., Ltd. All Rights Reserved. 歩数取得失敗の原因 5/21の実際の歩数
5/21 12:00 5/21 23:59 5/22 12:00 7000 8000 8000 歩数の書き込み ヘルスケアから 取得 7000歩を送る 歩数の書き込み ヘルスケアから 取得 8000歩を送る 7000歩 8000歩
Copyright © DeNA Co., Ltd. All Rights Reserved. 歩数取得失敗の原因 7000
8000 8000 歩数の書き込み ヘルスケアから 取得 7000歩を送る 歩数の書き込み ヘルスケアから 取得 7000歩を送る 歩数の書き込み 5/21 12:00 5/21 23:59 5/22 12:00 7000歩 7000歩 5/21の実際の歩数
Copyright © DeNA Co., Ltd. All Rights Reserved. ヘルスケアの歩数情報 ヘルスケア⇨今日⇨歩数⇨全てのデー
タを表示
Copyright © DeNA Co., Ltd. All Rights Reserved. ヘルスケアの歩数情報 ヘルスケへの追加日⇨
終了時間⇨ ヘルスケア⇨今日⇨歩数⇨全てのデー タを表示 差分
Copyright © DeNA Co., Ltd. All Rights Reserved. 歩数取得失敗の原因 7000
8000 8000 歩数の書き込み ヘルスケアから 取得 7000歩を送る 歩数の書き込み ヘルスケアから 取得 7000歩を送る 歩数の書き込み 5/21 12:00 5/21 23:59 5/22 12:00 7000歩 7000歩 5/21の実際の歩数 差分
Copyright © DeNA Co., Ltd. All Rights Reserved. 歩数取得できない原因 差分
歩数が更新されてからヘルスケアに書き込まれ るまでラグがある カミナルが最新の歩数を取得できない 前日の歩数をポストするが、最新の歩数とは限ら ない 目標を達成しているのに、不達成になってしまう
Copyright © DeNA Co., Ltd. All Rights Reserved. 歩数問題への対応 ・対応
- 判定結果が失敗の場合は最大1週間待つ - 端末側でヘルスケアへの導線を追加 - ヘルスケアを開くと歩数が書き込まれるた め
Copyright © DeNA Co., Ltd. All Rights Reserved. struct に
context を詰めていた
Copyright © DeNA Co., Ltd. All Rights Reserved. 失敗例
Copyright © DeNA Co., Ltd. All Rights Reserved. 失敗例 Do
not store Contexts inside a struct type; instead, pass a Context explicitly to each function that needs it. The Context should be the first parameter, typically named ctx: Go Doc - Package context
Copyright © DeNA Co., Ltd. All Rights Reserved. 対応
Copyright © DeNA Co., Ltd. All Rights Reserved. 理由 struct
をリクエストスコープと紐づけて状態として管理してしまっている ので 別のリクエストスコープから struct を利用できてしまい キャンセル情報が伝搬されない(メモリリークの可能性)
Copyright © DeNA Co., Ltd. All Rights Reserved. まとめ ・Go,
GAEでサクッと構築 ・Datastore, BQ, DataStudio で BI 構築 ・端末からの歩数は最新のものとは限らない ・アンチパターン踏んじゃった
Copyright © DeNA Co., Ltd. All Rights Reserved. ご静聴ありがとうございました。