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でコロナ感染者数をSlackに通知するスクリプトを作ってみた/gopherdojo_lt
Search
Hidetaka Okita
July 31, 2020
Programming
1
310
Goでコロナ感染者数をSlackに通知するスクリプトを作ってみた/gopherdojo_lt
@Gopher道場#8 LT大会&卒業式
Hidetaka Okita
July 31, 2020
Tweet
Share
Other Decks in Programming
See All in Programming
物語を動かす行動"量" #エンジニアニメ
konifar
14
4.9k
それ CLI フレームワークがなくてもできるよ / Building CLI Tools Without Frameworks
orgachem
PRO
17
3.8k
リッチエディターを安全に開発・運用するために
unachang113
1
380
CEDEC2025 長期運営ゲームをあと10年続けるための0から始める自動テスト ~4000項目を50%自動化し、月1→毎日実行にした3年間~
akatsukigames_tech
0
130
新しいモバイルアプリ勉強会(仮)について
uetyo
1
260
プロダクトという一杯を作る - プロダクトチームが味の責任を持つまでの煮込み奮闘記
hiliteeternal
0
450
管你要 trace 什麼、bpftrace 用下去就對了 — COSCUP 2025
shunghsiyu
0
410
LLMOpsのパフォーマンスを支える技術と現場で実践した改善
po3rin
8
910
Amazon Q CLI開発で学んだAIコーディングツールの使い方
licux
3
180
技術的負債で信頼性が限界だったWordPress運用をShifterで完全復活させた話
rvirus0817
1
1.7k
[DevinMeetupTokyo2025] コード書かせないDevinの使い方
takumiyoshikawa
2
280
Infer入門
riru
4
1.5k
Featured
See All Featured
Gamification - CAS2011
davidbonilla
81
5.4k
Git: the NoSQL Database
bkeepers
PRO
431
65k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
Adopting Sorbet at Scale
ufuk
77
9.5k
A Modern Web Designer's Workflow
chriscoyier
695
190k
How to train your dragon (web standard)
notwaldorf
96
6.2k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.4k
How to Think Like a Performance Engineer
csswizardry
25
1.8k
The Invisible Side of Design
smashingmag
301
51k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.4k
Music & Morning Musume
bryan
46
6.7k
Become a Pro
speakerdeck
PRO
29
5.5k
Transcript
Goでコロナ感染者数をslackに通知する スクリプトを作ってみた 2020/07/31 Gopher道場#8 LT⼤会&卒業式 沖⽥ 英⾶ @hokita222
自己紹介 • 沖田英飛(hokita) • Twitter @hokita222 • 株式会社エニグモ / Backend
Engineer • Ruby on Rails 4年目 • 時々 Java / PHP / React • デグーを2匹飼っている Gopherじゃないよ、デグーだよ!
今日話すこと • Goの経験 • なぜGopher道場? • コロナ感染者数をSlackに通知するコマンド
Go経験 • 業務経験はゼロ • スクレイピングしたものをSlackに通知するスクリプト作成 • Goの技術書読んだ
なぜGopher道場? • OSS貢献のチャンスを逃した • slack-go/slack • https://github.com/slack-go/slack • Slack API用のライブラリ
• Slackの新機能を追加したかった。 • 実装は1行、だがテストが書けなかった。。 • https://github.com/slack-go/slack/pull/707/files • 独学つらい • Goらしい書き方わからない • 効率が悪い
念願のGopher道場で学ぶことができた!
corona_slack • コロナ感染者数を通知するスクリプト • https://github.com/hokita/corona_slack
仕様 • 世界のコロナ感染者数を取得できるAPIから情報をとってくる • https://disease.sh/ • 取ってくる情報は↓ • 日本の感染者数 •
世界感染者数上位国の感染者数 • 取ってきた情報をSlackに通知する • Incoming Webhook機能を利用する。 • https://api.slack.com/messaging/webhooks
動作 ←1000人超えちゃった! 通知できた! ←時々APIがtoday cases, today deathsが0を返す ときがある。
工夫したこと1 • 感染者数取得(API)とSlackへの通知を別パッケージに分けた。
工夫したこと2 • APIを叩くテスト用にモックサーバを用意した。 • Cf. http://www.inanzzz.com/index.php/post/fb0m/mocking-and-testing-http- clients-in-golang
工夫したこと3 • 環境変数からwebhook urlをセットできるようにした。
展望 • Slackへの通知を自作したい • 現在 slack-go/slack を使っている • slack-go/slack は多機能過ぎる
• モックが苦手なのを克服したい • main.goのテストとか特に苦手 • もっと大きいもの作りたい • DDD、クリーンアーキテクチャを意識したWebアプリ • gRPC 、マイクロサービス
ご清聴ありがとうございました!