あなたってどんな方(型)?/ kamakura.go#4

あなたってどんな方(型)?/ kamakura.go#4

kamakura.go#4の発表資料

935fa3c3cfe0ae00d891c958864e3de1?s=128

Konboi

May 25, 2018
Tweet

Transcript

  1. ͋ͳͨͬͯͲΜͳํ(ܕ)ʁ 2018/05/25 kamakura.go#4

  2. ࣗݾ঺հ • ໼ਧྒྷհ a.k.a ˏKonboi • ໘ന๏ਓΧϠοΫ • SGࣄۀ෦ •

    αʔόʔαΠυΤϯδχΞ/
 ΤϯδχΞϦϯάϚωʔδϟʔ • Go/Perl/AWS
  3. ࠓ೔ͷ͓࿩

  4. ͋ͳͨͬͯͲΜͳํ(ܕ)ʁ

  5. GoͷϓϩδΣΫτͰδϣϒΩϡʔΛ
 Amazon SQSΛ࢖࣮ͬͯݱͨ͠࿩

  6. GoͷϓϩδΣΫτͰδϣϒΩϡʔΛ
 Amazon SQSΛ࢖࣮ͬͯݱͨ͠࿩

  7. δϣϒΩϡʔ • a.k.a ϝοηʔδΩϡʔ/λεΫΩϡʔ • Perl • Gearman • Q4M

    • Rails • ActiveJob • Sidekiq • Shoryuken
  8. δϣϒΩϡʔ • ඇಉظʹॲཧΛߦ͍͍ͨ • ϩδοΫͷॲཧΛ෼͚͍ͨ • ex) • Ϣʔβʔొ࿥ޙϝʔϧΛૹΔ •

    ΫΤετΫϦΞ࣌ͷΫΤετΫϦΞνϟϨϯδͷୡ੒ • ϑϨϯυΛΫΤετʹ࿈Εͯߦͬͨ࣌ʹ
 ϑϨϯυ΁ϙΠϯτ෇༩
  9. GoͷϓϩδΣΫτͰδϣϒΩϡʔΛ
 Amazon SQSΛ࢖࣮ͬͯݱͨ͠࿩

  10. None
  11. Amazon SQS • Simple Queue Service ͷུ • ϚωʔδυͷΩϡʔΠϯάαʔϏε •

    ඪ४ΩϡʔͱFIFO(First In First Out)Ωϡʔͷ2ͭ • ͨͩ͠ɺFIFO͸౦ژϦʔδϣϯະରԠ
  12. Amazon SQS • String,Number,BinaryͷσʔλΛ
 ϝοηʔδຊจʹ֨ೲՄೳ • Attributeͱݺ͹ΕΔϑΟʔϧυʹ
 ຊจͱ͸ผʹ৘ใ͕֨ೲՄೳ • Ұఆ࣌ؒܦͭͱ


    ࠶౓ϝοηʔδ͕औಘͰ͖Δ • ϝοηʔδ͸ࣗ਎Ͱ࡟আ͢Δඞཁ͕༗Δ
  13. ͦ΋ͦ΋ͳΜͰ
 Amazon SQSΛ࢖͏ͷ͔ʁ

  14. Amazon SQSΛ࢖͏ཧ༝ • ϑϧϚωʔδυ • ؅ཧίετμ΢ϯ • ଞͷϓϩδΣΫτͰ࠾༻ࡁΈ • ͨͩ͠

    • SQSಠࣗͷΫηΛߟྀ͢Δඞཁ͕͋Δ • ࠓճ͸͜ͷ෦෼͸࿩͞ͳ͍ͷͰڵຯ͋Δਓ͸
 ࠙਌ձͰ
  15. GoͷϓϩδΣΫτͰδϣϒΩϡʔΛ
 Amazon SQSΛ࢖࣮ͬͯݱͨ͠࿩

  16. GoͷϓϩδΣΫτ • ొ৔ਓ෺ • Job • ඇಉظʹ࣮ߦ͍ͨ͠ॲཧ • Queue •

    JobΛग़͠ೖΕ͢Δ౔؅ͷΠϝʔδ • JobQueue • JobΛQueue͔ΒऔΓग़࣮ͯ͠ߦ͢Δ
  17. GoͷϓϩδΣΫτ • ίʔυͩͱ͜Μͳײ͡

  18. GoͷϓϩδΣΫτ +PC2VFVF 2VFVF +PC

  19. GoͷϓϩδΣΫτ +PC2VFVF 2VFVF +PC

  20. GoͷϓϩδΣΫτ +PC2VFVF 2VFVF +PC

  21. GoͷϓϩδΣΫτ +PC2VFVF 2VFVF +PC 3VO

  22. ͨͱ͑͹Queue͕
 channelͷ৔߹

  23. Queue͕channelͷ৔߹ • channelΛ༻͍ͨQueueͷίʔυ

  24. Queue͕channelͷ৔߹ • ਤ +PC2VFVF 2VFVF +PC DIBOOFM

  25. Queue͕channelͷ৔߹ • ਤ +PC2VFVF 2VFVF +PC DIBOOFM

  26. Queue͕channelͷ৔߹ • ਤ +PC2VFVF 2VFVF +PC DIBOOFM

  27. Queue͕channelͷ৔߹ • ਤ +PC2VFVF 2VFVF DIBOOFM +PC 3VO

  28. ͨͱ͑͹Queue͕
 Amazon SQSͷ৔߹

  29. ͨͱ͑͹Queue͕Amazon SQSͷ৔߹ • amazon sqsΛ༻͍ͨQueueͷίʔυ

  30. • ਤ ͨͱ͑͹Queue͕Amazon SQSͷ৔߹ 2VFVF +PC

  31. • ਤ ͨͱ͑͹Queue͕Amazon SQSͷ৔߹ +PC 2VFVF

  32. • ਤ ͨͱ͑͹Queue͕Amazon SQSͷ৔߹ 424.FTTBHFͷ#PEZʹ
 +PCͷ৘ใΛ+40/ʹͯ͠ૹΔ 2VFVF

  33. • ਤ ͨͱ͑͹Queue͕Amazon SQSͷ৔߹ 424.FTTBHFͷ#PEZͷ
 +40/Λ+PCʹ6ONBSTIBM 2VFVF

  34. • ਤ ͨͱ͑͹Queue͕Amazon SQSͷ৔߹ +PC 2VFVF

  35. • ਤ ͨͱ͑͹Queue͕Amazon SQSͷ৔߹ +PC 3VO 2VFVF

  36. ͋Ε...

  37. ͪΐͬͱ଴ͯΑ…✋

  38. ຊ୊
 (΍ͬͱ)
 
 ~͋ͳͨͬͯͲΜͳํ(ܕ)ʁ~ ࢒Γ෼͙Β͍ཉ͍͠

  39. લஔ͖͕௕͍ͯ͘͢·ͤΜ

  40. ຊ୊
 (΍ͬͱ)
 
 ~͋ͳͨͬͯͲΜͳํ(ܕ)ʁ~ ࢒Γ෼͙Β͍ཉ͍͠ Amazon SQSͷϝοηʔδ͔ΒJobʹม׵͢Δ

  41. Amazon SQSͷϝοηʔδ͔ΒJobʹม׵͢Δ • Job͕1छྨͩͬͨΒ໰୊ͳ͍ • ͔࣮͠͠ࡍ͸ • ΫΤετΫϦΞϛογϣϯͷδϣϒ • QuestClearJob

    • ϑϨϯυʹϙΠϯτΛ෇༩͢Δδϣϒ • SendFriendPointJob • Unmarshalઌͷܕ͕ҟͳΔ
  42. SQS͔ΒऔΓग़ͨ͠ϝοηʔδΛ
 ద੾ʹUnmarshal͢Δඞཁ͕͋Δ

  43. None
  44. औΓग़ͨ͠λΠϛϯάͰ
 ͋ͳͨ͸ͲΜͳํ(ܕ)͔஌͍ͬͯͯ
 structΛ࡞Δඞཁ͕͋Δ

  45. Ͳ͏΍ͬͯղܾ͔ͨ͠

  46. reflect

  47. reflect • reflect.New(reflect.Type) • reflect.Value͕ฦͬͯ͘Δ • reflect.Value.Interface() • Interface{}͕ฦͬͯ͘Δ •

    ͜ΕͰstructΛੜ੒(?)͢Δࣄ͕Ͱ͖Δ
  48. reflect

  49. reflect

  50. ͜ΕΛઌఔͷSQS Queueʹ
 ൓ө͢Δͱ

  51. SQS Queueʹ൓ө͢Δ

  52. SQS Queueʹ൓ө͢Δ

  53. SQS Queueʹ൓ө͢Δ

  54. ิ଍ • ͳΜͰJobຖʹQueueΛ༻ҙ͠ͳ͔ͬͨͷʁ • طʹJobͷ਺͕10਺ݸ͋Γ
 ࠓޙ΋૿͑Δ༧ఆ • ৽نͰJobΛ࡞Δ౓ʹ։ൃ؀ڥ/ຊ൪ͱ QueueΛ࡞Δͷ͸ΦϖϨʔγϣϯ͕൥ࡶ

  55. ิ଍

  56. ิ଍ • Queueଆ͕ԿͷJob͕ग़ೖΓ͢Δ
 ͔͸஌Δඞཁ͕ͳ͘ɺ
 ґଘ͠ͳ͍ํ͕Α͍ͱ͍͏݁࿦ʹ

  57. ·ͱΊ • GoͷϓϩδΣΫτͰδϣϒΩϡʔΛ
 Amazon SQSΛ࢖࣮ͬͯݱͨ͠࿩ • reflect.New/reflect.Value/r.V.Interface() 
 ͔ΒಈతʹܕΛੜ੒ͯ͠ղܾ

  58. Ҏ্
 ͋ͳͨͬͯͲΜͳํ?(ܕ)

  59. Q&A

  60. ࢀߟURL • https://aws.amazon.com/jp/sqs/ • http://awsdocs.s3.amazonaws.com/SQS/ latest/sqs-gsg.pdf • https://golang.org/pkg/reflect/ • ΈΜͳͷGoݴޠ