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
Hirokazu Maruta
December 25, 2019
Technology
0
45
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
100
わかった気になるチューリングマシン
mochisuna
0
45
Elementary algorithm
mochisuna
0
24
ssh-dynamic-forward
mochisuna
0
55
ServerlessFramework-Trello
mochisuna
0
29
techbash-clasp
mochisuna
0
82
vuejs-night-publish
mochisuna
0
1k
surprise-lt-for-intern-vol-2
mochisuna
0
51
docker-multi-stage-build
mochisuna
0
160
Other Decks in Technology
See All in Technology
低レイヤソフトウェア技術者が YouTuberとして食っていこうとした話
sat
PRO
7
5.8k
なぜAI時代に 「イベント」を中心に考えるのか? / Why focus on "events" in the age of AI?
ytake
2
410
分散トレーシングによる コネクティッドカーのデータ処理見える化の試み
thatsdone
0
190
Snowflake のアーキテクチャは本当に筋がよかったのか / Data Engineering Study #30
indigo13love
0
250
M365アカウント侵害時の初動対応
lhazy
6
4.4k
Webの技術とガジェットで那須の子ども達にワクワクを! / IoTLT_20250720
you
PRO
0
120
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
3
18k
増え続ける脆弱性に立ち向かう: 事前対策と優先度づけによる 持続可能な脆弱性管理 / Confronting the Rise of Vulnerabilities: Sustainable Management Through Proactive Measures and Prioritization
nttcom
0
110
組織内、組織間の資産保護に必要なアイデンティティ基盤と関連技術の最新動向
fujie
0
500
Amazon CloudWatchのメトリクスインターバルについて / Metrics interval matters
ymotongpoo
3
210
RapidPen: AIエージェントによる高度なペネトレーションテスト自動化の研究開発
laysakura
1
380
機械学習を「社会実装」するということ 2025年夏版 / Social Implementation of Machine Learning July 2025 Version
moepy_stats
1
500
Featured
See All Featured
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
Code Review Best Practice
trishagee
69
19k
Navigating Team Friction
lara
187
15k
How to Think Like a Performance Engineer
csswizardry
25
1.8k
Designing for humans not robots
tammielis
253
25k
Testing 201, or: Great Expectations
jmmastey
43
7.6k
Site-Speed That Sticks
csswizardry
10
720
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Art, The Web, and Tiny UX
lynnandtonic
301
21k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
Facilitating Awesome Meetings
lara
54
6.5k
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Λ࡞Γ͍ͨؾ࣋ͪ