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
120
わかった気になるチューリングマシン
mochisuna
0
48
Elementary algorithm
mochisuna
0
27
ssh-dynamic-forward
mochisuna
0
61
ServerlessFramework-Trello
mochisuna
0
30
techbash-clasp
mochisuna
0
90
vuejs-night-publish
mochisuna
0
1.1k
surprise-lt-for-intern-vol-2
mochisuna
0
55
docker-multi-stage-build
mochisuna
0
170
Other Decks in Technology
See All in Technology
ClickHouseはどのように大規模データを活用したAIエージェントを全社展開しているのか
mikimatsumoto
0
230
Azure Durable Functions で作った NL2SQL Agent の精度向上に取り組んだ話/jat08
thara0402
0
180
【Oracle Cloud ウェビナー】[Oracle AI Database + AWS] Oracle Database@AWSで広がるクラウドの新たな選択肢とAI時代のデータ戦略
oracle4engineer
PRO
2
150
学生・新卒・ジュニアから目指すSRE
hiroyaonoe
2
610
15 years with Rails and DDD (AI Edition)
andrzejkrzywda
0
190
レガシー共有バッチ基盤への挑戦 - SREドリブンなリアーキテクチャリングの取り組み
tatsukoni
0
220
AzureでのIaC - Bicep? Terraform? それ早く言ってよ会議
torumakabe
1
560
AI駆動PjMの理想像 と現在地 -実践例を添えて-
masahiro_okamura
1
110
ファインディの横断SREがTakumi byGMOと取り組む、セキュリティと開発スピードの両立
rvirus0817
1
1.4k
CDKで始めるTypeScript開発のススメ
tsukuboshi
1
420
広告の効果検証を題材にした因果推論の精度検証について
zozotech
PRO
0
180
Kiro IDEのドキュメントを全部読んだので地味だけどちょっと嬉しい機能を紹介する
khmoryz
0
200
Featured
See All Featured
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
110
First, design no harm
axbom
PRO
2
1.1k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
440
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.7k
Context Engineering - Making Every Token Count
addyosmani
9
660
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
170
KATA
mclloyd
PRO
34
15k
The Pragmatic Product Professional
lauravandoore
37
7.1k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
170
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
300
Being A Developer After 40
akosma
91
590k
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Λ࡞Γ͍ͨؾ࣋ͪ