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
abemotion
February 07, 2020
Technology
1
1.1k
『Go言語による並行処理』 を読んで
golang.tokyo # 29 の資料です。
https://golangtokyo.connpass.com/event/164955/
abemotion
February 07, 2020
Tweet
Share
More Decks by abemotion
See All by abemotion
Go Modules
abemotion
2
660
gRPC Server with golang
abemotion
3
1.3k
Other Decks in Technology
See All in Technology
Oracle Database で機械学習を始めよう! Oracle Machine Learning
oracle4engineer
PRO
1
140
技術イベントはなんとかひねり出す 日経の技術広報の取り組み/techpr3
nishiuma
0
230
社内共通ルールを値オブジェクトにして社内ライブラリとして運用してみた話
leveragestech
2
1.2k
データ品質をコード化! LINEヤフーのMLOpsを最適化する "ACP Data Quality" の紹介
lycorptech_jp
PRO
2
280
技術広報経験0のEMがエンジニアブランディングをはじめてみた
coconala_engineer
1
140
SREsのためのSRE定着ガイド
netmarkjp
10
1.7k
AFTを運用していたらAWS Configの課金が急増していた件
msato
0
110
オーティファイ会社紹介資料 / Autify Company Deck
autifyhq
7
100k
技術広報として2023年度に頑張ったこと / What we did well in FY2023 as a DevRel
pauli
5
490
長文から長文を生成するLLMツールをオープンソースで作ってみた。
tomohisa
2
150
サービス成長と共に肥大化するモノレポ、長くなるCI時間 / As services grow, monorepos get bigger and CI time gets longer
kohbis
5
2.1k
継続的テストモデルを実現するためにスリーアミーゴスを用いた10Xでのシフトレフトの事例
nihonbuson
3
260
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
130
6.2k
How to name files
jennybc
62
92k
Fireside Chat
paigeccino
19
2.6k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
28
5.9k
Being A Developer After 40
akosma
56
580k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
1
1.2k
Navigating Team Friction
lara
177
13k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
113
18k
Done Done
chrislema
178
15k
Thoughts on Productivity
jonyablonski
57
3.8k
10 Git Anti Patterns You Should be Aware of
lemiorhan
644
57k
Product Roadmaps are Hard
iamctodd
43
9.6k
Transcript
HPMBOHUPLZP ʰ(PݴޠʹΑΔฒߦॲཧʱ ΛಡΜͰ HPMBOHUPLZP !BCFNPUJPO
HPMBOHUPLZP ࣗݾհ !BCFNPUJPO DPDPOBMB 4FSWFS4JEF&OHJOFFS 43&νʔϜ (P3BJMT$BLF1)1 5XJUUFSBCFNPUJPO ςχεొࢁ
HPMBOHUPLZP εΩϧͷϑϦʔϚʔέοτ ݸਓͷࣝɾεΩϧɾܦݧΛؾܰʹചങ ొձһສਓ ίίφϥ๏૬ஊ ίίφϥϛʔπ
HPMBOHUPLZP ৽ϓϩϑΟʔϧϖʔδ ˠɹϚΠΫϩαʔϏεߏͰ։ൃ ɹɹ(PΞοϓσʔτ ɹɹɹɹɹʢEFQˠ(P.PEVMFTʣ ɹɹ(PΞοϓσʔτ
HPMBOHUPLZP γεςϜߏ "1*(BUFXBZ (P ɾ1SPpMF4FSWJDF 3BJMT ͷ ઃܭʙ։ൃ·Ͱ୲ /VYU&YQSFTT (P
3BJMT H31$ H31$ "1*(BUFXBZ 1SPpMF4FSWJDF 1SPpMF8FC
HPMBOHUPLZP γεςϜߏ /VYU&YQSFTT (P H31$ H31$ "1*(BUFXBZ 3BJMT "1*4FSWJDF 1SPpMF8FC
3BJMT 1SPpMF4FSWJDF 3&45 ˠฒߦॲཧΛ͍͍ͨཁ͕݅ग़͖ͯͨ
HPMBOHUPLZP ηογϣϯ༰ ฒߦॲཧಋೖʹ͋ͨͬͯɺʰ(PݴޠʹΑΔฒߦॲཧʱΛ ಡΜͰɺ༰ʹ͍ͭͯҰ෦·ͱΊͯΈ·ͨ͠ʂ ʰ(PݴޠʹΑΔฒߦॲཧʱ *4#/
HPMBOHUPLZP ΞδΣϯμ ͳͥฒߦॲཧ͕͍͠ͷ͔ (PͰͷฒߦॲཧύλʔϯ
HPMBOHUPLZP ͳͥฒߦॲཧ͕͍͠ͷ͔
HPMBOHUPLZP ͳͥฒߦॲཧ͕͍͠ͷ͔ ڝ߹ঢ়ଶ ΞτϛοΫੑ ϝϞϦΞΫηεಉظ σουϩοΫ Ϧιʔεރׇ ฒߦॲཧͷ҆શੑΛݟۃΊΔ
HPMBOHUPLZP ڝ߹ঢ়ଶ ͭҎ্ͷૢ࡞͕ਖ਼͍͠ॱ൪Ͱ࣮ߦ͞Εͳ͚Ε͍͚ͳ͍ͱ͜ΖͰɺ ϓϩάϥϜ͕ॱংΛอূ͢ΔΑ͏ʹॻ͔Ε͍ͯͳ͔ͬͨͱ͖ʹൃੜɻ ڝ߹ঢ়ଶ͍ΘΏΔσʔλڝ߹ɻ ͋Δฒߦॲཧͷૢ࡞͕มΛಡΈࠐ͏ͱ͍ͯ͠Δͱ͖ʹɺ ΄͔ͷฒߦॲཧͷૢ࡞͕ෆ֬ఆͷλΠϛϯάͰಉ͡มʹॻ͖ࠐΈ Λߦ͓͏ͱ͢Δͱى͖Δɻ
HPMBOHUPLZP ڝ߹ঢ়ଶ ൃੜ͢ΔݪҼ ଟ͘ͷ߹ɺσʔλڝ߹ϓϩάϥϜΛྻʹߟ͑ͨͱ͖ʹࠞೖɻ ͋Δίʔυ͕ଞͷίʔυΑΓલʹॻ͍ͯ͋Δ͔ΒɺͦΕ͕ઌʹ ࣮ߦ͞ΕΔͱࢥͬͯ͠·͏ɻ ฒߦॲཧͷίʔυΛॻ͘ͱ͖ɺߟ͑ΒΕΔγφϦΦΛ৻ॏʹ ᢸ͠ͳ͍ͱ͍͚ͳ͍ɻ ֤ૢ࡞͕͔͔࣌ؒͬͯߦΘΕΔͷΛ૾͢Δͱ͔Γ͍͢ɻ
HPMBOHUPLZP ͳͥฒߦॲཧ͕͍͠ͷ͔ ڝ߹ঢ়ଶ ΞτϛοΫੑ ϝϞϦΞΫηεಉظ σουϩοΫ Ϧιʔεރׇ ฒߦॲཧͷ҆શੑΛݟۃΊΔ
HPMBOHUPLZP ΞτϛοΫੑ Կ͔͕ΞτϛοΫੑ͕͋Δͱߟ͑ΒΕΔ߹ɺ ͦΕ͕ૢ࡞͞Ε͍ͯΔಛఆͷίϯςΩετͷதͰׂෆೳɺ ͋Δ͍தஅෆՄͰ͋Δ͜ͱΛҙຯ͢Δɻ ͋Δͷ͕ΞτϛοΫͰ͋ΕɺͦΕΛෳͷฒߦͳίϯςΩετ Ͱ҆શʹѻ͑Δ͜ͱ͕҉ʹอূ͞Ε͍ͯΔɻ ͜ͷੑ࣭ʹΑͬͯཧతʹਖ਼͍͠ϓϩάϥϜΛߏͰ͖ΔΑ͏ʹͳ Δɻ
HPMBOHUPLZP ͳͥฒߦॲཧ͕͍͠ͷ͔ ڝ߹ঢ়ଶ ΞτϛοΫੑ ϝϞϦΞΫηεಉظ σουϩοΫ Ϧιʔεރׇ ฒߦॲཧͷ҆શੑΛݟۃΊΔ
HPMBOHUPLZP ϝϞϦΞΫηεಉظ ϓϩάϥϜͰڞ༗Ϧιʔεʹର͢ΔഉଞతͳΞΫηεॴ ˠΫϦςΟΧϧηΫγϣϯͱݺΕ͍ͯΔ ΫϦςΟΧϧηΫγϣϯΛकΔํ๏ͷ͕ͭϝϞϦΞΫηεಉظ
HPMBOHUPLZP ϝϞϦΞΫηεಉظ
HPMBOHUPLZP ͳͥฒߦॲཧ͕͍͠ͷ͔ ڝ߹ঢ়ଶ ΞτϛοΫੑ ϝϞϦΞΫηεಉظ σουϩοΫ Ϧιʔεރׇ ฒߦॲཧͷ҆શੑΛݟۃΊΔ
HPMBOHUPLZP σουϩοΫ ͯ͢ͷฒߦͳϓϩηε͕͓ޓ͍ͷॲཧΛͪ߹͍ͬͯΔঢ়گɻ ˠϓϩάϥϜ֎෦͔Βͷհೖ͕ͳ͍ݶΓɺܾͯ͠ಈ࡞͢Δঢ়ଶʹͳΒͳ͍ ྫ HPQSJOU4VN B C HPQSJOU4VN
C B ࠷ॳͷؔݺͼग़͠ͰɺBΛϩοΫͯ͠ɺͦͷޙCΛϩοΫ͢Δͱ͢Δɻ ͔͠͠ҰํͰɺճͷؔݺͼग़͠ͰɺCΛϩοΫͯ͠ɺͦͷޙʹBΛϩο Ϋ͠Α͏ͱ͢Δ ˠ྆ํͷΰϧʔνϯ͓ޓ͍ʹແݶʹͪ߹͏
HPMBOHUPLZP DPGGNBO݅ σουϩοΫ͕ൃੜ͢ΔͨΊʹଘࡏ͠ͳ͚Ε͍͚ͳ͍݅ ૬ޓഉଞ ͋Δฒߦϓϩηε͕Ϧιʔεʹରͯ͠ഉଞతͳݖརΛͲͷ࣌ʹ͓͍ͯอ͍࣋ͯ͠Δ ݅ͪ ͋ΔฒߦϓϩηεϦιʔεͷอ࣋ͱՃͷϦιʔεͪΛಉ࣌ʹߦΘͳ͚ΕͳΒͳ͍ ԣऔΓෆՄ ͋ΔฒߦϓϩηεʹΑͬͯอ࣋͞Ε͍ͯΔϦιʔεɺͦͷϓϩηεʹΑͬͯͷΈղ์͞ΕΔ ॥ͪ
͋Δฒߦϓϩηε 1@ ɺଞͷ࿈ͳ͍ͬͯΔ͋Δฒߦϓϩηε 1@ Λͨͳ͚ΕͳΒͳ͍ɻ ͦͯ͠ 1@ 1@ Λ͍ͬͯΔɻ ˠ͜ΕΒͷ๏ଇσουϩοΫͷ༧ʹཱͭɻͲΕ͔ͭͰਅʹͳΒͳ͚Εྑ͍
HPMBOHUPLZP ͳͥฒߦॲཧ͕͍͠ͷ͔ ڝ߹ঢ়ଶ ΞτϛοΫੑ ϝϞϦΞΫηεಉظ σουϩοΫ Ϧιʔεރׇ ฒߦॲཧͷ҆શੑΛݟۃΊΔ
HPMBOHUPLZP Ϧιʔεރׇ ฒߦϓϩηε͕ࣄΛ͢ΔͷʹඞཁͳϦιʔεΛऔಘͰ͖ͳ͍ঢ়گɻ Ϧιʔεރׇ௨ৗɺͭҎ্ͷᩦཉͳฒߦϓϩηε͕ෆެฏʹଞͷϓ ϩηε͕ՄೳͳݶΓࣄΛޮతʹߦ͓͏ͱ͍ͯ͠ΔͷΛ͍͛ͯΔɺ ͘͠·͍ͬͨͤͯ͘͞ͳ͍ͱ͍ͬͨঢ়گΛ҉ʹҙຯ͍ͯ͠Δɻ ϦιʔεރׇΛݟ͚ͭΔٕज़ɺܭଌɻ ݕͯ͠ղܾ͢Δྑ͍ํ๏ͷͭ݁ՌΛϩάग़ྗͯ͠ɺ͕ظ௨ Γʹͳ͍ͬͯΔ͔Λଌఆ͢Δ͜ͱɻ ϦιʔεރׇϓϩάϥϜ͕ඇޮతෆదʹৼͬͯ͠·͏ݪҼͱ
ͳΔɻ
HPMBOHUPLZP ͳͥฒߦॲཧ͕͍͠ͷ͔ ڝ߹ঢ়ଶ ΞτϛοΫੑ ϝϞϦΞΫηεಉظ σουϩοΫ Ϧιʔεރׇ ฒߦॲཧͷ҆શੑΛݟۃΊΔ
HPMBOHUPLZP ฒߦॲཧͷ҆શੑΛݟۃΊΔ ฒߦॲཧؾΛ͚ͭͳ͍ͱ͍͚ͳ͍؍ଟ͍͘͠ɻ ίʔυͷಡΈखʹෳࡶ͞ΛͨΒͯ͠͠·͏ͷͰɺίϝϯτΛ ॻ͘ϙΠϯτ ɾ୭͕ฒߦॲཧΛߦͳ͍ͬͯΔ͔ ɾΛղܾ͢Δʹ͋ͨΓߟ͠ͳ͚Ε͍͚ͳ͍ൣғ͕ͲͷΑ ͏ʹฒߦॲཧʹରԠ͍ͯ͠Δ͔ ɾ୭͕ಉظॲཧΛ୲͍ͬͯΔ͔ ˠಉ྅কདྷͷࣗΛॿ͚ͯ͋͛·͠ΐ͏ɻ
HPMBOHUPLZP ΞδΣϯμ ͳͥฒߦॲཧ͕͍͠ͷ͔ (PͰͷฒߦॲཧύλʔϯ
HPMBOHUPLZP (PͰͷฒߦॲཧύλʔϯ
HPMBOHUPLZP (PͰͷฒߦॲཧύλʔϯ ߆ଋ GPSTFMFDUϧʔϓ ΰϧʔνϯϦʔΫΛආ͚Δ ύΠϓϥΠϯ ϑΝϯΞτɺϑΝϯΠϯ
HPMBOHUPLZP ߆ଋ ΞυϗοΫ߆ଋ ߆ଋΛننଇ ίϛϡχςΟɺ৬ɺίʔυϕʔεʹΑͬͯࢦఆ ˠकΓଓ͚Δͷ͍͠ ଟ͘ͷਓ͕खΛೖΕΔೲظͷഭͬͨ։ൃɺؒҧͬͨίʔυ͕ࠞೖ͠ɺ ͕ى͖Δɻ ϨΩγΧϧ߆ଋ
ίϯύΠϥΛۦͯ͠߆ଋΛڲਖ਼ɻ ϨΩγΧϧείʔϓΛͬͯదͳσʔλͱฒߦॲཧͷϓϦϛςΟϒ͚ͩ Λෳͷϓϩηε͕͑ΔΑ͏ʹެ։͢Δ͜ͱΛࢦ͢ɻ ˠ͜ΕʹΑͬͯޡͬͨॲཧΛॻ͍ͯ͠·͏͜ͱΛෆՄೳʹɻ
HPMBOHUPLZP ϨΩγΧϧ߆ଋ
HPMBOHUPLZP (PͰͷฒߦॲཧύλʔϯ ߆ଋ GPSTFMFDUϧʔϓ ΰϧʔνϯϦʔΫΛආ͚Δ ύΠϓϥΠϯ ϑΝϯΞτɺϑΝϯΠϯ
HPMBOHUPLZP GPSTFMFDUϧʔϓ νϟωϧ͔Β܁Γฦ͠ͷมΛૹग़͢Δ ܁Γฦ͕͠ՄೳͳͷΛνϟωϧ্ͷม ʹมɻ ఀࢭγάφϧΛͭແݶϧʔϓ ֎෦͔Βఀࢭͷ໋ྩ͕དྷΔ·Ͱແݶʹ܁Γ ฦ͢ΰϧʔνϯΛ࡞Δɻ EPOFνϟωϧ͕ด͡ΒΕ͍ͯͳ͚Εɺ TFMFDUจΛൈ͚ͯGPSϧʔϓຊମͷΓͷॲཧΛ
ଓ͚Δɻ
HPMBOHUPLZP (PͰͷฒߦॲཧύλʔϯ ߆ଋ GPSTFMFDUϧʔϓ ΰϧʔνϯϦʔΫΛආ͚Δ ύΠϓϥΠϯ ϑΝϯΞτɺϑΝϯΠϯ
HPMBOHUPLZP ΰϧʔνϯϦʔΫΛආ͚Δ ΰϧʔνϯͷੜίετ͕খ͍͕͞ɺੜ͖͍ͯΔݶΓ($͞Εͣͬ ͯ͠·͏ɻ ˠ࣮֬ʹॲཧ͍ͯ͘͜͠ͱ͕ඞཁ ΰϧʔνϯ͕ऴྃʹࢸΔ·ͰͷྲྀΕ ΰϧʔνϯ͕ॲཧΛྃ͢Δ߹ ճ෮Ͱ͖ͳ͍ΤϥʔʹΑΓॲཧΛଓ͚ΒΕͳ͍߹ ఀࢭ͢ΔΑ͏ʹ໋ྩ͞Εͨ߹ ࠷ॳͷͭͷྲྀΕجຊతʹ࣮ߦ͞ΕΔɻ
ͭΊͷΩϟϯηϧॲཧʹؔͯ͠ɺͷΰϧʔνϯ͕ਖ਼͘͠ճऩ͢Δɻ
HPMBOHUPLZP ΰϧʔνϯϦʔΫΛආ͚Δ
HPMBOHUPLZP (PͰͷฒߦॲཧύλʔϯ ߆ଋ GPSTFMFDUϧʔϓ ΰϧʔνϯϦʔΫΛආ͚Δ ύΠϓϥΠϯ ϑΝϯΞτɺϑΝϯΠϯ
HPMBOHUPLZP ύΠϓϥΠϯ γεςϜͷநԽʹ͑Δಓ۩ͷͭɻ σʔλΛड͚औͬͯɺԿΒ͔ͷॲཧΛߦͳͬͯɺͲ͔͜ʹ͢Ұ࿈ͷ࡞ ۀ ˠ͜ΕΒͷૢ࡞ΛεςʔδͱݺͿ ύΠϓϥΠϯΛ͏͜ͱͰɺ֤εςʔδͰͷݒ೦ࣄ߲ΛΓ͚ΒΕɺ ͜Εଟ͘ͷརΛͨΒ͢ɻ ֤εςʔδΛಠཱͯ͠मਖ਼͢Δ͜ͱ͕Ͱ͖ɺεςʔδಉ࢜ͷΈ߹Θͤ ํΛεςʔδͷमਖ਼ͱಠཱͯ͠มߋ͕Մೳɻ
֤εςʔδͰͷॲཧΛ্ྲྀԼྲྀͷεςʔδͱฒߦʹߦ͑Δɻ
HPMBOHUPLZP ύΠϓϥΠϯ
HPMBOHUPLZP ύΠϓϥΠϯ ύΠϓϥΠϯεςʔδͷੑ࣭ εςʔδड͚औΔͷͱฦ͢ͷ͕ಉ͡ܕͰ͋Δ εςʔδҾ͖ճͤΔΑ͏ʹ۩ମԽ͞Εͯͳ͚ΕͳΒͳ͍ ˠੑ࣭Λຬ͍ͨͯͨ͠ͷͰɺΈ߹ΘͤΔ͜ͱ͕Ͱ͖ͨɻ
HPMBOHUPLZP ύΠϓϥΠϯ
HPMBOHUPLZP (PͰͷฒߦॲཧύλʔϯ ߆ଋ GPSTFMFDUϧʔϓ ΰϧʔνϯϦʔΫΛආ͚Δ ύΠϓϥΠϯ ϑΝϯΞτϑΝϯΠϯ
HPMBOHUPLZP ϑΝϯΞτ ύΠϓϥΠϯͷ͋ΔεςʔδͰಛʹܭࢉྔ͕େ͖͘ͳͬͨ߹ ্ྲྀͷεςʔδɺͦͷܭࢉྔ͕େ͖͍εςʔδͷॲཧ͕ऴΘΔ ͷΛػͯ͠ϒϩοΫ͞Εͯ͠·͏ɻ ˠෳͷΰϧʔνϯΛ্ͬͯྲྀͷεςʔδ͔ΒͷೖྗΛฒྻʹ ΛҾͬுͬͯ͘ΔͨΊʹɺෳͷΰϧʔνϯΛىಈ͢Δϓϩη ε
HPMBOHUPLZP ϑΝϯΞτ εςʔδ͕࣍ͷ݅ͷ྆ํʹ߹க͢Δ߹ʹϑΝϯΞτͷར ༻Λݕ౼ͯ͠ΈΔ ͦͷεςʔδ͕ΑΓલͷܭࢉ݁Ռʹґଘ͍ͯ͠ͳ͍ ࣮ߦ͕࣌ؒʹٴͿ ಛʹॱෆಉੜॏཁɻ ˠͲͷεςʔδ͕ฒߦॲཧʹͳ͍ͬͯΔ͔ɺεςʔδ͕Ͳͷॱ൪ Ͱ࣮ߦ͞ΕΔ͔ɺͲͷॱ൪Ͱ͕ฦ͞ΕΔ͔ʹอূ͕ͳ͍ͨΊ ϑΝϯΞτͤ͞Δखॱɺ֘εςʔδΛෳىಈ͢Δ͚ͩ
HPMBOHUPLZP ϑΝϯΠϯ ෳͷσʔλͷετϦʔϜΛɺ୯ҰͷετϦʔϜʹ౷߹
HPMBOHUPLZP ϑΝϯΞτϑΝϯΠϯ
HPMBOHUPLZP ·ͱΊ ฒߦॲཧʹ͓͍ͯؾΛ͚ͭͳ͍ͱ͍͚ͳ͍؍͕ཧ͞Εͨ DIBOOFMॲཧ͕ͪ͋ΔͨΊɺଞΰϧʔνϯͷ੍ޚॲཧͷฒ ྻԽʹ͑Δ ݱࡏDPOUFYU͕͋ΔͷͰɺEPOFDIBOͱҧ͏ϝϦοτཧ ղ͓ͯ͘͠ඞཁ͋Γ