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
300
Goでコロナ感染者数をSlackに通知するスクリプトを作ってみた/gopherdojo_lt
@Gopher道場#8 LT大会&卒業式
Hidetaka Okita
July 31, 2020
Tweet
Share
Other Decks in Programming
See All in Programming
Julia という言語について (FP in Julia « SIDE: F ») for 関数型まつり2025
antimon2
3
980
Gleamという選択肢
comamoca
6
760
Deep Dive into ~/.claude/projects
hiragram
7
1.3k
Composerが「依存解決」のためにどんな工夫をしているか #phpcon
o0h
PRO
1
210
Blazing Fast UI Development with Compose Hot Reload (droidcon New York 2025)
zsmb
1
190
Is Xcode slowly dying out in 2025?
uetyo
1
190
生成AIで日々のエラー調査を進めたい
yuyaabo
0
640
ReadMoreTextView
fornewid
1
470
Java on Azure で LangGraph!
kohei3110
0
170
今ならAmazon ECSのサービス間通信をどう選ぶか / Selection of ECS Interservice Communication 2025
tkikuc
18
3.3k
FormFlow - Build Stunning Multistep Forms
yceruto
1
190
PHPで始める振る舞い駆動開発(Behaviour-Driven Development)
ohmori_yusuke
2
180
Featured
See All Featured
Become a Pro
speakerdeck
PRO
28
5.4k
How to train your dragon (web standard)
notwaldorf
92
6.1k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
490
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
RailsConf 2023
tenderlove
30
1.1k
Building an army of robots
kneath
306
45k
Producing Creativity
orderedlist
PRO
346
40k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
The Straight Up "How To Draw Better" Workshop
denniskardys
233
140k
A Modern Web Designer's Workflow
chriscoyier
693
190k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.5k
The Pragmatic Product Professional
lauravandoore
35
6.7k
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 、マイクロサービス
ご清聴ありがとうございました!