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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
takuya tsuruda
May 23, 2018
Technology
0
2k
新規サービスでGo, GAEを使ってみた話 とその振り返り
takuya tsuruda
May 23, 2018
Tweet
Share
Other Decks in Technology
See All in Technology
_Architecture_Modernization_から学ぶ現状理解から設計への道のり.pdf
satohjohn
2
310
夢の無限スパゲッティ製造機 #phperkaigi
o0h
PRO
0
290
AWSの資格って役に立つの?
tk3fftk
2
370
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
2
13k
Claude Code 2026年 最新アップデート
oikon48
14
11k
今のWordPress の制作手法ってなにがあんねん?(改) / What’s the Deal with WordPress Development These Days?
tbshiki
0
520
Mitigating geopolitical risks with local-first software and atproto
ept
0
130
実践 Datadog MCP Server
nulabinc
PRO
2
250
[2] Power BI Deep Dive [2026-03]
ohata_bi
0
100
LINEヤフーにおけるAIOpsの現在地
lycorptech_jp
PRO
4
950
AlloyDB 奮闘記
hatappi
0
180
Visional 28新卒プロダクト職(エンジニア/デザイナー)向け 会社説明資料 / Visional Company Briefing for Newgrads 28
visional_engineering_and_design
1
110
Featured
See All Featured
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
990
Paper Plane (Part 1)
katiecoart
PRO
0
5.7k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Believing is Seeing
oripsolob
1
88
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.4k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Building Applications with DynamoDB
mza
96
7k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
Are puppies a ranking factor?
jonoalderson
1
3.1k
Become a Pro
speakerdeck
PRO
31
5.9k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
250
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
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. ご静聴ありがとうございました。