Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
あなたってどんな方(型)?/ kamakura.go#4
Search
Konboi
May 25, 2018
Technology
700
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
あなたってどんな方(型)?/ kamakura.go#4
kamakura.go#4の発表資料
Konboi
May 25, 2018
More Decks by Konboi
See All by Konboi
Java's OOM and k8s' OOM 遭遇した2つのOOMと対策 ~ Launchableでの事例 ~ / JJUG 2025 Spring
konboi
1
470
非同期開発体制を支えるドキュメント文化 / YAPC::Hiroshima 2024
konboi
28
13k
様々な環境へコマンドラインツールを提供する上での苦労とその対策 / YAPC::Kyoto 2023
konboi
0
3.1k
煩雑な運用を Goを使って楽にする / Go Conference 2019 Spring
konboi
4
4.8k
中規模チームを支える自動化とノウハウ共有の仕組み/CEDEC2017
konboi
8
9.9k
golang tokyo #6 / ゲーム開発には欠かせない?! あれをシュッと見る
konboi
1
7.8k
git-schemlexとddl-makerを使ったDB migrationの紹介 / git-schemalex and ddl-maker migration #golangtokyo
konboi
1
11k
Redisの調査についてとrmlp
konboi
5
5k
カヤックの新卒研修 #師弟登壇2015
konboi
0
4k
Other Decks in Technology
See All in Technology
WAF 運用改善の承認サイクル/SRE_BizReach_MIXI_1
visional_engineering_and_design
2
460
Tab5をRubyで動くパソコンにする
kishima
2
340
作品が生態系になった ─ Mini Tokyo 3D から世界へ
nagix
0
150
AI時代のAPI品質を支えるガードレール / API Guardrails for API quality in the AI era
yokawasa
1
220
「図書館」という名前のままでいいのか -Code4Lib JAPANカンファレンス2026 アンカンファレンス報告- / Code4Lib JAPAN Conference 2026: Unconference Report
ykiyota
0
160
AIとペアプロを始める。人とのペアプロをやめる。ペアプロの良さを改めて知る。もっと好きになった。 / Rediscovering Pair Programming
honyanya
1
340
アプリログインとWeb認証基盤をつなぐ ASWebAuthenticationSession 作法
shimastripe
1
200
目の前の楽しいが人生を変える - コミュニティの螺旋の歩き方と楽しむコツ / change your life
soudai
PRO
4
460
SQL文一行も書けない人事がCortexもろもろを使って人事業務を楽にしてみる
ponponmikankan
1
220
ペアプロの価値はコードを書くことだけじゃない
codmoninc
PRO
0
190
omasushiというライブラリを作った
polidog
PRO
0
200
synctest時代のhttptest Go 1.27で変わるHTTPサーバテストの裏側 / go conference2026 synctest and httptest
budougumi0617
1
2.6k
Featured
See All Featured
My Coaching Mixtape
mlcsv
0
310
Building Adaptive Systems
keathley
44
3.2k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
330
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
660
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
Fireside Chat
paigeccino
43
4k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.2k
Speed Design
sergeychernyshev
33
2.1k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Transcript
͋ͳͨͬͯͲΜͳํ(ܕ)ʁ 2018/05/25 kamakura.go#4
ࣗݾհ • ਧྒྷհ a.k.a ˏKonboi • ໘ന๏ਓΧϠοΫ • SGࣄۀ෦ •
αʔόʔαΠυΤϯδχΞ/ ΤϯδχΞϦϯάϚωʔδϟʔ • Go/Perl/AWS
ࠓͷ͓
͋ͳͨͬͯͲΜͳํ(ܕ)ʁ
GoͷϓϩδΣΫτͰδϣϒΩϡʔΛ Amazon SQSΛ࣮ͬͯݱͨ͠
GoͷϓϩδΣΫτͰδϣϒΩϡʔΛ Amazon SQSΛ࣮ͬͯݱͨ͠
δϣϒΩϡʔ • a.k.a ϝοηʔδΩϡʔ/λεΫΩϡʔ • Perl • Gearman • Q4M
• Rails • ActiveJob • Sidekiq • Shoryuken
δϣϒΩϡʔ • ඇಉظʹॲཧΛߦ͍͍ͨ • ϩδοΫͷॲཧΛ͚͍ͨ • ex) • ϢʔβʔొޙϝʔϧΛૹΔ •
ΫΤετΫϦΞ࣌ͷΫΤετΫϦΞνϟϨϯδͷୡ • ϑϨϯυΛΫΤετʹ࿈Εͯߦͬͨ࣌ʹ ϑϨϯυϙΠϯτ༩
GoͷϓϩδΣΫτͰδϣϒΩϡʔΛ Amazon SQSΛ࣮ͬͯݱͨ͠
None
Amazon SQS • Simple Queue Service ͷུ • ϚωʔδυͷΩϡʔΠϯάαʔϏε •
ඪ४ΩϡʔͱFIFO(First In First Out)Ωϡʔͷ2ͭ • ͨͩ͠ɺFIFO౦ژϦʔδϣϯະରԠ
Amazon SQS • String,Number,BinaryͷσʔλΛ ϝοηʔδຊจʹ֨ೲՄೳ • AttributeͱݺΕΔϑΟʔϧυʹ ຊจͱผʹใ͕֨ೲՄೳ • Ұఆ࣌ؒܦͭͱ
࠶ϝοηʔδ͕औಘͰ͖Δ • ϝοηʔδࣗͰআ͢Δඞཁ͕༗Δ
ͦͦͳΜͰ Amazon SQSΛ͏ͷ͔ʁ
Amazon SQSΛ͏ཧ༝ • ϑϧϚωʔδυ • ཧίετμϯ • ଞͷϓϩδΣΫτͰ࠾༻ࡁΈ • ͨͩ͠
• SQSಠࣗͷΫηΛߟྀ͢Δඞཁ͕͋Δ • ࠓճ͜ͷ෦͞ͳ͍ͷͰڵຯ͋Δਓ ࠙ձͰ
GoͷϓϩδΣΫτͰδϣϒΩϡʔΛ Amazon SQSΛ࣮ͬͯݱͨ͠
GoͷϓϩδΣΫτ • ొਓ • Job • ඇಉظʹ࣮ߦ͍ͨ͠ॲཧ • Queue •
JobΛग़͠ೖΕ͢ΔͷΠϝʔδ • JobQueue • JobΛQueue͔ΒऔΓग़࣮ͯ͠ߦ͢Δ
GoͷϓϩδΣΫτ • ίʔυͩͱ͜Μͳײ͡
GoͷϓϩδΣΫτ +PC2VFVF 2VFVF +PC
GoͷϓϩδΣΫτ +PC2VFVF 2VFVF +PC
GoͷϓϩδΣΫτ +PC2VFVF 2VFVF +PC
GoͷϓϩδΣΫτ +PC2VFVF 2VFVF +PC 3VO
ͨͱ͑Queue͕ channelͷ߹
Queue͕channelͷ߹ • channelΛ༻͍ͨQueueͷίʔυ
Queue͕channelͷ߹ • ਤ +PC2VFVF 2VFVF +PC DIBOOFM
Queue͕channelͷ߹ • ਤ +PC2VFVF 2VFVF +PC DIBOOFM
Queue͕channelͷ߹ • ਤ +PC2VFVF 2VFVF +PC DIBOOFM
Queue͕channelͷ߹ • ਤ +PC2VFVF 2VFVF DIBOOFM +PC 3VO
ͨͱ͑Queue͕ Amazon SQSͷ߹
ͨͱ͑Queue͕Amazon SQSͷ߹ • amazon sqsΛ༻͍ͨQueueͷίʔυ
• ਤ ͨͱ͑Queue͕Amazon SQSͷ߹ 2VFVF +PC
• ਤ ͨͱ͑Queue͕Amazon SQSͷ߹ +PC 2VFVF
• ਤ ͨͱ͑Queue͕Amazon SQSͷ߹ 424.FTTBHFͷ#PEZʹ +PCͷใΛ+40/ʹͯ͠ૹΔ 2VFVF
• ਤ ͨͱ͑Queue͕Amazon SQSͷ߹ 424.FTTBHFͷ#PEZͷ +40/Λ+PCʹ6ONBSTIBM 2VFVF
• ਤ ͨͱ͑Queue͕Amazon SQSͷ߹ +PC 2VFVF
• ਤ ͨͱ͑Queue͕Amazon SQSͷ߹ +PC 3VO 2VFVF
͋Ε...
ͪΐͬͱͯΑ…✋
ຊ (ͬͱ) ~͋ͳͨͬͯͲΜͳํ(ܕ)ʁ~ Γ͙Β͍ཉ͍͠
લஔ͖͕͍ͯ͘͢·ͤΜ
ຊ (ͬͱ) ~͋ͳͨͬͯͲΜͳํ(ܕ)ʁ~ Γ͙Β͍ཉ͍͠ Amazon SQSͷϝοηʔδ͔ΒJobʹม͢Δ
Amazon SQSͷϝοηʔδ͔ΒJobʹม͢Δ • Job͕1छྨͩͬͨΒͳ͍ • ͔࣮͠͠ࡍ • ΫΤετΫϦΞϛογϣϯͷδϣϒ • QuestClearJob
• ϑϨϯυʹϙΠϯτΛ༩͢Δδϣϒ • SendFriendPointJob • Unmarshalઌͷܕ͕ҟͳΔ
SQS͔ΒऔΓग़ͨ͠ϝοηʔδΛ దʹUnmarshal͢Δඞཁ͕͋Δ
None
औΓग़ͨ͠λΠϛϯάͰ ͋ͳͨͲΜͳํ(ܕ)͔͍ͬͯͯ structΛ࡞Δඞཁ͕͋Δ
Ͳ͏ͬͯղܾ͔ͨ͠
reflect
reflect • reflect.New(reflect.Type) • reflect.Value͕ฦͬͯ͘Δ • reflect.Value.Interface() • Interface{}͕ฦͬͯ͘Δ •
͜ΕͰstructΛੜ(?)͢Δࣄ͕Ͱ͖Δ
reflect
reflect
͜ΕΛઌఔͷSQS Queueʹ ө͢Δͱ
SQS Queueʹө͢Δ
SQS Queueʹө͢Δ
SQS Queueʹө͢Δ
ิ • ͳΜͰJobຖʹQueueΛ༻ҙ͠ͳ͔ͬͨͷʁ • طʹJobͷ͕10ݸ͋Γ ࠓޙ૿͑Δ༧ఆ • ৽نͰJobΛ࡞Δʹ։ൃڥ/ຊ൪ͱ QueueΛ࡞ΔͷΦϖϨʔγϣϯ͕ࡶ
ิ
ิ • Queueଆ͕ԿͷJob͕ग़ೖΓ͢Δ ͔Δඞཁ͕ͳ͘ɺ ґଘ͠ͳ͍ํ͕Α͍ͱ͍͏݁ʹ
·ͱΊ • GoͷϓϩδΣΫτͰδϣϒΩϡʔΛ Amazon SQSΛ࣮ͬͯݱͨ͠ • reflect.New/reflect.Value/r.V.Interface() ͔ΒಈతʹܕΛੜͯ͠ղܾ
Ҏ্ ͋ͳͨͬͯͲΜͳํ?(ܕ)
Q&A
ࢀߟURL • https://aws.amazon.com/jp/sqs/ • http://awsdocs.s3.amazonaws.com/SQS/ latest/sqs-gsg.pdf • https://golang.org/pkg/reflect/ • ΈΜͳͷGoݴޠ