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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
システムは「動く」だけでは足りない 実装編 - 非機能要件・分散システム・トレードオフをコードで見る
nwiizo
4
550
システムは「動く」だけでは 足りない - 非機能要件・分散システム・トレードオフの基礎
nwiizo
31
11k
アーキテクチャモダナイゼーションとは何か
nwiizo
19
6.6k
【社内勉強会】新年度からコーディングエージェントを使いこなす - 構造と制約で引き出すClaude Codeの実践知
nwiizo
38
22k
技術的負債の泥沼から組織を救う3つの転換点
nwiizo
9
7.5k
30分でわかるアーキテクチャモダナイゼーション
nwiizo
12
8.6k
意志を実装するアーキテクチャモダナイゼーション
nwiizo
3
4.8k
おい、テックブログを書け
nwiizo
48
20k
バイブコーディングと継続的デプロイメント
nwiizo
2
1.5k
Featured
See All Featured
The Mindset for Success: Future Career Progression
greggifford
PRO
0
350
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
190
The SEO identity crisis: Don't let AI make you average
varn
0
480
The Curious Case for Waylosing
cassininazir
1
370
Tell your own story through comics
letsgokoyo
1
940
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
720
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.5k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
350
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Designing for humans not robots
tammielis
254
26k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
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Ͱ͋ͬͨ ·ͱΊ ͜͏͍͏ܦݧ͕ΞϓϦέʔγϣϯଆͷൃݟʹܨ͕Δ