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
48
0
Share
TechBash Slack Reaction Award
giftee slack reaction award
Hirokazu Maruta
December 25, 2019
More Decks by Hirokazu Maruta
See All by Hirokazu Maruta
encryption
mochisuna
0
120
わかった気になるチューリングマシン
mochisuna
0
51
Elementary algorithm
mochisuna
0
28
ssh-dynamic-forward
mochisuna
0
63
ServerlessFramework-Trello
mochisuna
0
34
techbash-clasp
mochisuna
0
96
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
巨大プラットフォームを進化させる「第3のROI」
recruitengineers
PRO
2
310
AgentCore×VPCでの設計パターンn選と勘所
har1101
3
290
「責任あるAIエージェント」こそ自社で開発しよう!
minorun365
9
2.1k
自立を加速させる神器 - EMOasis #11
stanby_inc
0
150
はじめての MagicPod生成AI機能 機能紹介から活用方法まで
magicpod
0
110
実践ハーネスエンジニアリング:TAKTで実現するAIエージェント制御 / Practical Harness Engineering: AI Agent Control Enabled by TAKT
nrslib
12
4.7k
Shipping AI Agents — Lessons from Production
vvatanabe
0
270
AndroidアプリとCopilot Studioの統合
nakasho
0
120
Do Ruby::Box dream of Modular Monolith?
joker1007
1
350
ハーネスエンジニアリングをやりすぎた話 ~そのハーネスは解体された~
gotalab555
4
1.8k
AIはハッカーを減らすのか、増やすのか?──現役ホワイトハッカーから見るAI時代のリアル【MEGU-Meet】
cscengineer
0
180
20260428_Product Management Summit_Loglass_JoeHirose
loglassjoe
2
2.7k
Featured
See All Featured
Deep Space Network (abreviated)
tonyrice
0
120
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Navigating Weather and Climate Data
rabernat
0
170
Balancing Empowerment & Direction
lara
6
1.1k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
200
Ruling the World: When Life Gets Gamed
codingconduct
0
210
The SEO Collaboration Effect
kristinabergwall1
1
420
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
199
73k
How to Talk to Developers About Accessibility
jct
2
180
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Λ࡞Γ͍ͨؾ࣋ͪ