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
インフラエンジニアが学んだ Go言語での並行処理失敗パターン
Search
nwiizo
November 16, 2021
1.8k
3
Share
インフラエンジニアが学んだ Go言語での並行処理失敗パターン
2021/11/16 Infra Study 2nd #7「SREと組織」にて発表
https://forkwell.connpass.com/event/228038/
nwiizo
November 16, 2021
More Decks by nwiizo
See All by nwiizo
【社内勉強会】新年度からコーディングエージェントを使いこなす - 構造と制約で引き出すClaude Codeの実践知
nwiizo
35
17k
技術的負債の泥沼から組織を救う3つの転換点
nwiizo
9
5.8k
30分でわかるアーキテクチャモダナイゼーション
nwiizo
9
6.9k
意志を実装するアーキテクチャモダナイゼーション
nwiizo
3
4.1k
おい、テックブログを書け
nwiizo
46
19k
バイブコーディングと継続的デプロイメント
nwiizo
2
1.3k
Webアプリケーションにオブザーバビリティを実装するRust入門ガイド
nwiizo
10
1.4k
2025年夏 コーディングエージェントを統べる者
nwiizo
0
480
転職したらAWS MCPサーバーだった件
nwiizo
3
2.4k
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
370
The World Runs on Bad Software
bkeepers
PRO
72
12k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
330
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
780
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.9k
Statistics for Hackers
jakevdp
799
230k
Skip the Path - Find Your Career Trail
mkilby
1
93
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
320
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
Leo the Paperboy
mayatellez
6
1.6k
Transcript
݄*OGSB4UVEZOEʮ43&ͱ৫ʯ!OXJJ[P ΠϯϑϥΤϯδχΞֶ͕Μͩ (PݴޠͰͷฒߦॲཧࣦഊύλʔϯ ̑ͱ͍͏ͷΕͯ֓ཁ͚ͩ࡞ͯ͠ࢿྉ࡞࣌ʹ٧ΜͩͷͰ ͋ͱͰɺϒϩάॻ͖·͢ɻ
TIBLFձࣾʹస৬ͯ͠ ܦաͨ͠ !OXJJ[PͰ͢
ΠϯϑϥΤϯδχΞͷඇಉظॲཧ w ʹΑΔόοΫάϥϯυॲཧ w YBSHTʹΑΔฒྻ࣮ߦ time seq 10 | xargs
-t -P1 -n1 'sleep' sleep 1 sleep 2 … ________________________________________________________ Executed in 55.11 secs fish external usr time 13.14 millis 0.19 millis 12.94 millis sys time 47.95 millis 2.26 millis 45.69 millis time seq 10 | xargs -t -P3 -n1 'sleep' sleep 1 sleep 2 … ________________________________________________________ Executed in 22.04 secs fish external usr time 10.70 millis 0.18 millis 10.52 millis sys time 33.78 millis 2.25 millis 31.53 millis w Ҿͷ͚ͩ4MFFQ͢ΔϫϯϥΠφʔΛ ฒྻͰ࣮ߦ͢Δ߹ ඵͰྃ ͱฒྻͰ࣮ߦͨ͠߹ ඵͰྃ $ ίϚϯυ & [1] 4403 w ίϚϯυͷ࠷ޙʹΛՃ͢Δ͜ͱʹΑΓɺ ͦͷίϚϯυΛόοΫάϥϯυͰಈ͔͢͜ͱ͕Ͱ͖Δɻ ແअؾʹΔͱμϝ͕ͩίϯτϩʔϧՄೳ ແअؾʹGPSΛճ͢ͱΫϥΠΞϯτɺαʔόʔ ͞·͟·ͳͷ͕ࢮ͵ େ͖ͳγΣϧεΫϦϓτ
(PݴޠʹΑΔฒྻॲཧͷ
(PݴޠʹΑΔฒྻॲཧͷ ຊޠͰྑ͍ͷ͕ͨ͘͞Μ͋Δ IUUQTMFBSOJOHPSFJMMZDPNMJCSBSZWJFXHPZBOZVOJZPSVCJOHYJOHDIVMJ IUUQT[FOOEFWITBLJCPPLTHPMBOHDPODVSSFODZ ͳͷͰɺجຊతجૅͷ͠·ͤΜɻ ͪͳΈʹɺͦͦ͜͜େ͖ͳγεςϜΛ࡞Δ͜ͱʹͳΔͱઈରʹಡΉ͜ͱʹͳΔ
ͷͰɺࠓճͷ-5Ͱ ΠϯϑϥΤϯδχΞ͕ؕΓͦ͏ͳ (PݴޠͰͷฒߦॲཧࣦഊύλʔϯ
্͔Β࣮ߦ͞ΕΔͱ͍͏ࡨ֮ͰӬԕʹσόοά͕ऴΘΒͳ͍ w Ұମɺ͍͔ͭΒ্͔Β࣮ߦ͞ΕΔͱɻɻɻ w ιʔείʔυ্͔ΒԼʹ͔ͬͯॻ͍͍ͯ͘͜ͱ͕ଟ͍ͱ ࢥ͍·͢ɻ͜ͷ͜ͱ͔Βʮίʔυ্͔ΒԼʹॱ൪ʹ࣮ߦ͞ ΕΔͩΖ͏ʯͱ͍͏ࡨ֮ʹؕΓ͕ͪͰ͕͢ɺฒߦॲཧΛ͢ Δ߹ʹ͜ΕΒ͕࣮ߦ͞ΕΔ·Ͱ͔Βͳ͍ɻ
ͦͷͨΊɺຊʹ͔ΒͣʹͱΜͰͳ͍λΠϛϯάͰ ࢥͬͯͳ͍ॲཧ͕࣮ߦ͞ΕΔ߹͕͋ΔͷͰ ͜ͷࡨ֮ૣʑʹࣺͯڈ͙ͬͯ͢ʹͷલͷ ϩάͱਅ伨ʹ͖߹͍·͠ΐ͏ʂ w ฒߦॲཧʹ͓͚Δ࣮ߦॱ൪ͷอূΛ͍ͬͯ͘ w εϦʔϓʹΑΔॱ൪อূ w ΞτϛοΫੑ w TZOD.VUFY
ͦΕɺෳͷϩδοΫΛڠௐͤ͞Α͏ͱͯ͠·͔͢ʁϚδʁ w ϩδοΫΛݟͨ͠ํ͕͍͍߹ଟ͋͘Δ w ͋ͳ͕ͨຊʹඞཁͳͷฒߦੑͷ͋ΔॲཧͰ͔͢ʁ w 3BDF$POEJUJPO ڝ߹ঢ়ଶ Λආ͚Δඞཁ͕͋Δ w
ڞ༗ϝϞϦʹਖ਼͘͠ΞΫηε͠ͳ͍ͱ͍͚ͳ͍ w ষେن։ൃͰͷฒྻॲཧͳͲΛख़ಡ͢Δ͜ͱ͕ඞཁ ɹෆ݈શͳΰϧʔνϯΛ͢ͳͲΊͪΌͪ͘Ό͍͠ w ඞཁͳͷடংΛ࣋ͬͨඇಉظॲཧ͡ΌͶʁ w σόοάͷ࣌ʹSVOUJNF(0."9130$4 ΛߴΊͨΓͯ͠ ڝ߹Λ֬ೝ͢Δ࡞ۀͱ͔ਖ਼ɺͨ͘͠ͳ͍ɻɻɻ w HPSPVUJOFͷಉظɺඇಉظʹ͍ͭͯ ڥม࣮Ͱ͓࣋ͬͯ͘ͱ߹͕ଟ͍͜ͱ͕͋Δ O`reillyɹGoݴޠʹΑΔฒߦॲཧɹΑΓҾ༻
࣮ߦ࣌ͷෛՙͦͷڥͰͦͷλΠϛϯάͰ࣮ߦ͢Δ·Ͱ͔Βͳ͍ w ࣮ߦ͢Δ·Ͱ͔Βͳ͍ w ෛՙͷ͔͔ΔॲཧΛ੍ݶͳ͠ʹฒྻԽͯ͠ຊʹҙຯͳ ͘Ή͠ΖѱͰ͢ɻॲཧͷฒྻΛ༧ଌՄೳͳ߹ɺͦ ΕΛ࣮ߦ͢ΕΑ͍Ͱ͕͢ෆ໌֬ͳ߹ʹɺ$16ͷί Ξ͕ͨΓʹͳΔ͜ͱ͕͋Γ·͢ɻ (PҎ߱ɺσϑΥϧτίΞͷʹͳΓ·͢ɻ
ͦͷͨΊɺຊ൪ڥͱखݩͰ࣮ߦ͕࣌ؒมΘΔ͜ͱ͕͋Δ w ͪ͜ΒSVOUJNF(0."9130$4 SVOUJNF/VN$16 Λຊ൪Ͱ͢ͳ w ·ͨɺຊ൪ӡ༻தͷόονॲཧΛᢞΊ͔͔ͯΔͱ λΠϛϯάʹΑͬͯطʹ"1*%#ʹෛՙֻ͕͔ͬͯ Δɻଞͷόον͕ͬͯΔͳͲɻʰனؒʹखݩͷڥ͔Β ͏·͘ߦͬͨͷͰຊ൪Ͱ0,ͳͷͩʱͱؾܰʹߟ͑ͯ ͍Δͱͦͷͷʹढ͍ͷΦϯίʔϧ͕ݦݱ͢ΔΑ
w ্͔Β࣮ߦ͞ΕΔͱ͍͏ࡨ֮ͰӬԕʹσόοά͕ऴΘΒͳ͍ w ͦΕɺෳͷϩδοΫΛڠௐͤ͞Α͏ͱͯ͠·͔͢ʁϚδʁ w ࣮ߦ࣌ͷෛՙͦͷڥͰͦͷλΠϛϯάͰ࣮ߦ͢Δ·Ͱ͔Βͳ͍ 'JO ࠓʮ43&ͱ৫ʯͳͷͰ͕͢ ৫ʹؔͯ͠ϋʔτϏʔτͱڞʹԿ͔ݴٴ͔ͨͬͨ͠ͷͰ͕͢ ͍͍ײ͡ͷΛࢥ͍͔ͭͳ͔ͬͨͷͰऴྃͰ͢ɻ
ʮ43&(BQTཧͱ࣮ફ͔Β43&Λ࠶ߟ͢ΔʯΈ͍ͨͳΠϕϯτ ͬͯͷͰ43&ͷ୳ٻͷͲͷষ͕໘ന͔ͬͨͱ͍͏Λ͢ΕΑ͔ͬͨ ͱޙչ͢ΔOXJJ[PͰ͋ͬͨ ·ͱΊ ͜͏͍͏ܦݧ͕ΞϓϦέʔγϣϯଆͷൃݟʹܨ͕Δ