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, GAEを使ってみた話 とその振り返り
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
takuya tsuruda
May 23, 2018
Technology
2.1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
新規サービスでGo, GAEを使ってみた話 とその振り返り
takuya tsuruda
May 23, 2018
Other Decks in Technology
See All in Technology
hackers_champloo_2026_tidb
makocchi
0
160
WasmをRustにする
sansantech
PRO
0
250
re:Invent初参加で変わったこと、2回目にやってみたいこと(JAWS-UG彩の国埼玉 #12)
mhrtech
2
220
Browser Spec: Testing Hotwire with Ruby
takahashim
1
120
大型犬好きによるPugの紹介
yamanoku
1
160
「事実」を「計測」して、「解釈」する 〜AWS Lambdaのメモリ最適解の見つけ方〜
maimyyym
0
170
DGX Spark でどこまでハッキングができるのか?
kash1064
3
1.3k
宣言型部分更新は何を解決しどこへ向かうのか
shuta13
1
450
AI駆動開発の時代になったのでトヨタ生産方式から見直す
terurou
7
6k
Conditional PED-ANOVA: Hyperparameter Importance in Hierarchical & Dynamic Search Spaces
pfn
PRO
0
130
20261017福岡devIO 「AIは"良いダッシュボード"を作れるか?
jtakeda
0
140
初海外で注意すべきこと12選!!!安全快適なre:invent生活にするために
yuuuuuuu168
1
160
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
464
34k
Amusing Abliteration
ianozsvald
1
350
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
630
RailsConf 2023
tenderlove
30
1.6k
Done Done
chrislema
187
17k
The Curious Case for Waylosing
cassininazir
1
570
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
450
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
First, design no harm
axbom
PRO
2
1.3k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Navigating Weather and Climate Data
rabernat
0
560
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.2k
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. ご静聴ありがとうございました。