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
TechBash Slack Reaction Award
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Hirokazu Maruta
December 25, 2019
Technology
0
48
TechBash Slack Reaction Award
giftee slack reaction award
Hirokazu Maruta
December 25, 2019
Tweet
Share
More Decks by Hirokazu Maruta
See All by Hirokazu Maruta
encryption
mochisuna
0
120
わかった気になるチューリングマシン
mochisuna
0
49
Elementary algorithm
mochisuna
0
28
ssh-dynamic-forward
mochisuna
0
62
ServerlessFramework-Trello
mochisuna
0
34
techbash-clasp
mochisuna
0
93
vuejs-night-publish
mochisuna
0
1.2k
surprise-lt-for-intern-vol-2
mochisuna
0
57
docker-multi-stage-build
mochisuna
0
170
Other Decks in Technology
See All in Technology
Embeddings : Symfony AI en pratique
lyrixx
0
420
【社内勉強会】新年度からコーディングエージェントを使いこなす - 構造と制約で引き出すClaude Codeの実践知
nwiizo
29
14k
The essence of decision-making lies in primary data
kaminashi
0
180
20260323_データ分析基盤でGeminiを使う話
1210yuichi0
0
190
AI時代のシステム開発者の仕事_20260328
sengtor
0
310
Oracle Cloud Infrastructure:2026年3月度サービス・アップデート
oracle4engineer
PRO
0
170
夢の無限スパゲッティ製造機 #phperkaigi
o0h
PRO
0
390
GitHub Advanced Security × Defender for Cloudで開発とSecOpsのサイロを超える: コードとクラウドをつなぐ、開発プラットフォームのセキュリティ
yuriemori
1
110
スケールアップ企業でQA組織が機能し続けるための組織設計と仕組み〜ボトムアップとトップダウンを両輪としたアプローチ〜
qa
0
380
AI時代のIssue駆動開発のススメ
moongift
PRO
0
290
15年メンテしてきたdotfilesから開発トレンドを振り返る 2011 - 2026
giginet
PRO
1
200
【Oracle Cloud ウェビナー】データ主権はクラウドで守れるのか?NTTデータ様のOracle Alloyで実現するソブリン対応クラウドの最適解
oracle4engineer
PRO
3
120
Featured
See All Featured
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
180
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Test your architecture with Archunit
thirion
1
2.2k
Building an army of robots
kneath
306
46k
Fireside Chat
paigeccino
42
3.9k
Agile that works and the tools we love
rasmusluckow
331
21k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Optimizing for Happiness
mojombo
378
71k
Design in an AI World
tapps
0
180
How Software Deployment tools have changed in the past 20 years
geshan
0
33k
Site-Speed That Sticks
csswizardry
13
1.1k
Transcript
gifteeϦΞΫγϣϯԦܾఆઓ ૯ׅ SaaS div. Engineer·Δͨ
gifteeϦΞΫγϣϯԦܾఆઓ ૯ׅ SaaS div. Engineer·Δͨ දͱ͔దͰ͍͍ͩΖ
ͪΐͬͱલͷ͜ͱ
ϥϯνͰण࢘ʹ ߦͬͨ࣌ͷ
None
ϥϯνͰण࢘
ѱ͘ͳ͍
Ͱ
ΠΫϥͩͳʔ
͢Έ·ͤΜ
ΠΫϥ
ผͷʹ͍ͯͩ͘͠͞
ผͷʹ͍ͯͩ͘͠͞ ʔ͍
ʢػதʣ
͍͓ͪ
None
നࢠɾɾɾ
ͬͱϋʔυϧ͕ ্͕ͬͨΜ͚ͩͲ
Կ͕ݴ͍͍͔ͨ
͜ͷձࣾͰ ҙ֎ͱ໘ന͍͜ͱ͕ ى͍ͬͯ͜Δ
Λ୳ͤ ͬͱ໘ന͍͜ͱ͕ ݟ͔ͭΔ͔
Slackͷશνϟϯωϧ͔Β ϦΞΫγϣϯԦΛूܭͨ͠ SaaS div. Engineer·Δͨ
ࣗݾհ • ؙాʢ·ΔͨͻΖ͔ͣʣ • Twitter: @mochi_suna • giftee.co SaaSνʔϜΤϯδχΞ •
झຯɿϐΞϊɺϘυήɺΞΠίϯ࡞ʢΧούʣ • ࣗಈԽେ͖ɻख࡞ۀ͖Β͍ɻ • githubɿ @mochisuna https://github.com/mochisuna
ࣗݾհ • ؙాʢ·ΔͨͻΖ͔ͣʣ • Twitter: @mochi_suna • giftee.co SaaSνʔϜΤϯδχΞ •
झຯɿϐΞϊɺϘυήɺΞΠίϯ࡞ʢΧούʣ • ࣗಈԽେ͖ɻख࡞ۀ͖Β͍ɻ • githubɿ @mochisuna https://github.com/mochisuna
ࣗݾհ • ؙాʢ·ΔͨͻΖ͔ͣʣ • Twitter: @mochi_suna • giftee.co SaaSνʔϜΤϯδχΞ •
झຯɿϐΞϊɺϘυήɺΞΠίϯ࡞ʢΧούʣ • ࣗಈԽେ͖ɻख࡞ۀ͖Β͍ɻ • githubɿ @mochisuna https://github.com/mochisuna
ٕज़໘
͢͜ͱ • ͳʹΛͬͨͷ • Ͳ͏ͬͨͷ • ࠔΓ͝ͱͱ͔ॴײͱ͔ • Γ͍ͨ͜ͱ •
·ͱΊ
ͳʹΛͬͨͷʁ
શSlackνϟϯωϧΛूܭͨ͠ • PublicνϟϯωϧͷΈʢ伴͍ͭͯͳ͍ͭʣ • ΦʔϓϯɾΫϩʔζؔͳ͠ • 2019/01/01 00:00:00.00(JST)͕ج४ • 2019ͷΫϦεϚεʹ݁ՌΛߘࡁʢ#historyʣ
ࣄͷൃ
None
໘നͦ͏
ɹɹͱ͍ͬͯ͠ Έ͍ͨͩ͠Զ͕Ζ͏
੍ݶ͖ͷ ूܭͰ͍͍͚Ͳ
શνϟϯωϧ ूܭͯ͠ΈΔ͔
Ͳ͏ͤͳΒ ָ͘͠ूܭ͠Α͏
slackϦΞΫγϣϯେ gifteeΧοϓΛ։࠵
3ͭͷ෦Ͱूܭ 1. Ұ൪ϦΞΫγϣϯͷݸΛूΊͨߘ 2. Ұ൪ϦΞΫγϣϯͷछྨΛूΊͨߘ 3. Ұ൪ΦϞϩͷϦΞΫγϣϯΛूΊͨߘ ӫޫ୭ͷखʹʂʁ
1. ϦΞΫγϣϯͷݸ ͱʹ͔͘ࢁϦΞΫγϣϯ͕͍ͭͨΒউͪ • ͕2ݸ͍ͭͨΒ2Pt • ͱ ͕ҰͭͣͭͰ2Pt • ࣮࣭άϥϯϓϦ
2. ϦΞΫγϣϯͷछྨ ݸؔͳ͍ • ͚͕ͩࢁ͍ͭͯ1Pt • ٯʹ1ݸͮͭҟͳΔϦΞΫγϣϯ͕͍ͭͯΔํ͕ ߴ͍ಘʹͳΔ • ࠓճҰ൪Βͳ͖ΌΑ͔ͬͨ
3. ΦϞϩ ΦϞϩͷΈશ෦ूܭ ←ΦϞϩ • #reacji_omoroͷର • શ෦1Pt • ͋Ε͋Δఔྑ͍
Ͳ͏ͬͯͬͯΔͷʁ
Slack API • SlackެࣜAPI • https://api.slack.com/ • ެࣜAPIΛϥοϓͨ͠ϥΠϒϥϦ • https://github.com/nlopes/slack
جຊߏ ΅͘ͷͺͦ͜Μ
جຊߏ ΅͘ͷͺͦ͜Μ ᶃࢀর
جຊߏ ΅͘ͷͺͦ͜Μ ᶃࢀর ᶄूܭ
جຊߏ ΅͘ͷͺͦ͜Μ ᶃࢀর ᶄूܭ ᶅߘ
ͱͬͯγϯϓϧ
ݫີʹ͏ͪΐ͍ෳࡶ ϦΫΤετ͋ͨΓͷ੍ • ̍νϟϯωϧͷΈ • ࠷େ1000݅·Ͱ͔͠औಘͰ͖ͳ͍ ɹ→ظؒΛܾΊͯϖʔδϯά • ࿈ଓ͗͢Δͱ੍ݶ͕͔͔ΔʢṖ੍ʣ
ݫີʹ • ϦΫΤετ͋ͨΓͷ੍ • ̍νϟϯωϧͷΈ • ࠷େ1000݅·Ͱ͔͠औಘͰ͖ͳ͍ ɹ→ظؒΛܾΊͯϖʔδϯά ͜ΕΛෳճΔ ᶃࢀর
ͱͬͯγϯϓϧ
Ͱ͜͜ͰͰ͢
887 ͜ͷࣈԿͰ͠ΐ͏ʁ
͑
ूܭରͷνϟϯωϧ
ͪͳΈʹϖʔδϯάճ ࠷େ12ճͱ͔͋Δɻ
ͪͳΈʹϖʔδϯάճ ࠷େ12ճͱ͔͋Δɻ ͔͠ෳ͋Δɻ
ͪͳΈʹ
ूܭͨ͠શߘ
1,069,277ݸ
୯७ʹճͨ͠Βॲཧ͕ऴΘΒΜ
ͨͤͨͳ ʼɹ ϑϦ͕͐Α
͕݅ଟ͗͢Δ • ྻܭࢉݫ͍͠ ɹ→ ฒߦʹҰؾʹย͚͍ͨ • ͱ͍͏ࣄͰGoΛબఆʢૣ͍ˍฒߦॲཧʣ • ͘͠ཁ݅Ͱٕज़બఆͨ͠ؾ͕͢Δ
࡞ͬͨͷ https://github.com/mochisuna/slack-reaction-award
ϩδοΫ 1. slackνϟϯωϧҰཡऔಘ 2. ฒྻʹ֤νϟϯωϧͷϝοηʔδΛऔಘ 3. औಘ݁ՌΛॱ࣍ύʔε 4. ϝοηʔδ͕શ෦औಘͰ͖Δ·Ͱػ 5.
ूܭˠߘ
ਤͰॻ͘ ᶃget channel
ਤͰॻ͘ ᶃget channel ᶄpush channel ᶅeach channel
ਤͰॻ͘ ᶃget channel ᶄpush channel ᶅeach channel ᶆget messages (parallel)
ਤͰॻ͘ ᶃget channel ᶄpush channel ᶅeach channel ᶆget messages (parallel)
ᶇpush messages ᶈparse / aggregate
ॴײ
ࠔͬͨͱ͜Ζʢgoroutineܥʣ 1. όέπϦϨʔ͠·ͬͯ͘Δͱ಄͕͓͔͘͠ͳΔ • ͲͷchannelʹಥͬࠐΊྑ͍Μ͚ͩͬʁ • ࠓͲ͕͜waitͯ͠Μͷ͞ • MutexͲ͜ʹೖΕΔʁ 2.
ϘτϧωοΫ͕Θ͔Γʹ͘͘ͳΔ • ົʹॲཧ͕͍ϓϩηε͕͋Δͧʁ
ࠔͬͨͱ͜Ζʢslackܥʣ 1. SlackAPIͷ༷͕ඍົʹΘ͔Γʹ͍͘ • Ͳͷ͙Β͍ͷϦΫΤετͰ੍ݶ͔͔Δʁ • ࠷ऴతʹ੍ݶͱ͔ແࢹͯ͛͠·ͬͯ͘Δ
ࠔͬͨͱ͜Ζʢslackܥʣ 1. SlackAPIͷ༷͕ඍົʹΘ͔Γʹ͍͘ • Ͳͷ͙Β͍ͷϦΫΤετͰ੍ݶ͔͔Δʁ • ࠷ऴతʹ੍ݶͱ͔ແࢹͯ͛͠·ͬͯ͘Δ 2. `nlopes/slack` ϥΠϒϥϦ͕ରԠ͠Εͯͳ͍
• ࣗͰमਖ਼ͯ͠PRग़͠·ͨ͠
ࠔͬͨͱ͜Ζʢgifteeܥʣ 1. ूܭ݁ՌΛͲ͜ʹ͛Α͏͔ʁ • ڧ͍ؾ࣋ͪͰ#generalʁ / #randomʁ • ߘͨ͠#history͕աૄνϟϯωϧͩͬͨ
ࠔͬͨͱ͜Ζʢgifteeܥʣ 1. ूܭ݁ՌΛͲ͜ʹ͛Α͏͔ʁ • ڧ͍ؾ࣋ͪͰ#generalʁ / #randomʁ • ߘͨ͠#history͕աૄνϟϯωϧͩͬͨ 2.
ikedayama։ൃਞͷ࣏͕҆ѱ͗͢Δ
ࠔͬͨͱ͜Ζʢgifteeܥʣ 1. ूܭ݁ՌΛͲ͜ʹ͛Α͏͔ʁ • ڧ͍ؾ࣋ͪͰ#generalʁ / #randomʁ • ߘͨ͠#history͕աૄνϟϯωϧͩͬͨ 2.
ikedayama։ൃਞͷ࣏͕҆ѱ͗͢Δ
ࠔͬͨͱ͜Ζʢgifteeܥʣ 1. ूܭ݁ՌΛͲ͜ʹ͛Α͏͔ʁ • ڧ͍ؾ࣋ͪͰ#generalʁ / #randomʁ • ߘͨ͠#history͕աૄνϟϯωϧͩͬͨ 2.
ikedayama։ൃਞͷ࣏͕҆ѱ͗͢Δ
ࠔͬͨͱ͜Ζʢgifteeܥʣ 1. ूܭ݁ՌΛͲ͜ʹ͛Α͏͔ʁ • ڧ͍ؾ࣋ͪͰ#generalʁ / #randomʁ • ߘͨ͠#history͕աૄνϟϯωϧͩͬͨ 2.
ikedayama։ൃਞͷ࣏͕҆ѱ͗͢Δ
ࠔͬͨͱ͜Ζʢgifteeܥʣ 1. ूܭ݁ՌΛͲ͜ʹ͛Α͏͔ʁ • ڧ͍ؾ࣋ͪͰ#generalʁ / #randomʁ • ߘͨ͠#history͕աૄνϟϯωϧͩͬͨ 2.
ikedayama։ൃਞͷ࣏͕҆ѱ͗͢Δ
ࠔͬͨͱ͜Ζʢgifteeܥʣ 1. ूܭ݁ՌΛͲ͜ʹ͛Α͏͔ʁ • ڧ͍ؾ࣋ͪͰ#generalʁ / #randomʁ • ߘͨ͠#history͕աૄνϟϯωϧͩͬͨ 2.
ikedayama։ൃਞͷ࣏͕҆ѱ͗͢Δ • ྑ͍νʔϜͰ͢Ͷ
ࠔͬͨͱ͜Ζʢgifteeܥʣ 1. ूܭ݁ՌΛͲ͜ʹ͛Α͏͔ʁ • ڧ͍ؾ࣋ͪͰ#generalʁ / #randomʁ • ߘͨ͠#history͕աૄνϟϯωϧͩͬͨ 2.
ikedayama։ൃਞͷ࣏͕҆ѱ͗͢Δ • ྑ͍νʔϜͰ͢Ͷ • छྨ෦ೋͱΒΜ
Γ͍ͨ͜ͱ ৭ʑͰ͖ΔΑ͏ʹͳͬͨͷͰΞΠσΞ͚͕ͩແݶ ʹ͕ͬͯΔ 1. ͣͬͱΘΕͣΦʔϓϯͳ··ͷνϟϯωϧ ʹʮ͏ดΊΑ͏ͥʯతͳߘΛ͢Δ 2. ͣͬͱΘΕ͍ͯͳ͍ϦΞΫγϣϯͷूܭ
·ͱΊ • ໘ന͔ͬͨʢখฒʣ • େมͩͬͨʢখฒʣ • PR͕௨ͬͯ͘ΕΔͱ͍͍ͳʔ • ͜ΕΛ͏Α͏ͳbotΛ࡞Γ͍ͨؾ࣋ͪ