Go言語による2年半の新規プロダクト開発とその総括

644a32c3b586a400a745f02c3d311bfb?s=47 cowsys
July 03, 2018
13k

 Go言語による2年半の新規プロダクト開発とその総括

644a32c3b586a400a745f02c3d311bfb?s=128

cowsys

July 03, 2018
Tweet

Transcript

  1. (PݴޠʹΑΔ ೥൒ͷ৽نϓϩμΫτ։ൃͱ ͦͷ૯ׅ NFSDBSJHP DPXTZT

  2. ࣗݾ঺հ

  3. ࣗݾ঺հ *%DPXTZT ʙגࣜձࣾι΢κ΢ ϝϧΧϦΞοςαʔόαΠυΤϯδχΞ ʙגࣜձࣾϝϧϖΠ

  4. ݸਓతͳςʔϚ w ৴༻Λ૑଄ͯ͠ɺͳΊ Β͔ͳࣾձΛ૑Δˏϝ ϧϖΠ w ਓʑͷੜ׆Λม͑ΔΑ ͏ͳ৽نϓϩμΫτΛ ͭ͘Δ w

    ͍͍࣌ؒͷա͝͠ํΛ ͍ͨ͠ w ͍͍࢓ࣄΛ͍ͨ͠ w (PͷύϫʔΛ༨͢ͱ͜Ζ ͳ͘ར༻Ͱ͖ΔΑ͏ʹͳ Δ w ($1ͷύϫʔΛ༨͢ͱ͜ Ζͳ͘ར༻Ͱ͖ΔΑ͏ʹ ͳΔ
  5. ࠓ೔͓࿩͢Δͱ͜Ζ

  6. ࣗݾ঺հ *%DPXTZT ʙגࣜձࣾι΢κ΢ ϝϧΧϦΞοςαʔόαΠυΤϯδχΞ ʙגࣜձࣾϝϧϖΠ ίίͷ஌ݟʂ

  7. ϝϧΧϦΞος

  8. ϝϧΧϦΞοςͱ͸ʁ w ϝϧΧϦάϧʔϓॳͱͳΔɺϝϧΧϦҎ֎ͷαʔϏε w $$ܥαʔϏε w ೥݄ࠒ͔Βߏ૝ελʔτ w ೥݄ɹϩʔϯν w

    ೥݄຤Ϋϩʔζ ެࣜϚείοτ χϟος ݘ
  9. ϝϧΧϦΞοςͱ͸ʁ w ΤϯδχΞ ϦϙδτϦͷDPOUSJCVUPSϕʔε  w αʔόαΠυΤϯδχΞ w J04ΤϯδχΞ w

    "OESPJEΤϯδχΞ w ϑϩϯτΤϯυΤϯδχΞ
  10. ϝϧΧϦΞοςͱ͸ʁ w ίʔυن໛ɹͰɹɹ͔ɹɹ͍ w ૯13਺ w "1*$45PPM8FC w J04 w

    "OEPSJE w ػೳͯΜ͜੝Γ w OBUJWFBQQͷελϯμʔυͳػೳҰࣜ w $$ ίϛϡχςΟ 2"
  11. ϝϧΧϦΞοςͱ͸ʁ w ϩʔϯνલͷ໿ϲ݄લʹKPJO։ൃελʔτ w TU13͔Β໿ϲ݄ޙ w શ͘ͷ(Pݴޠॳ৺ऀ w ׳Ε਌͠ΜͰ͖ͨݴޠ͸1)1 w

    ໿೥൒αʔόαΠυΤϯδχΞͱͯ͠ࢀՃ
  12. ͜ͷൃදͰ͓఻͍͑ͨ͜͠ͱ w શ͘ͷ(Pݴޠॳ৺ऀ͕ w ৽ن։ൃͰϓϩμΫτϦϦʔεલʙϓϩμΫτΫϩʔ ζ·Ͱͷ೥൒ͯ͠Έͯ w ࠷ऴతʹ(PݴޠΛͲ͏ଊ͍͑ͯΔͷ͔ʁ

  13. ͜ͷൃදͰ͓఻͍͑ͨ͜͠ͱ w શ͘ͷ(Pݴޠॳ৺ऀ͕ w ৽ن։ൃͰϓϩμΫτϦϦʔεલʙϓϩμΫτΫϩʔ ζ·Ͱͷ೥൒ͯ͠Έͯ w ࠷ऴతʹ(PݴޠΛͲ͏ଊ͍͑ͯΔͷ͔ʁ (Pݴޠͷ ϝονϟ೩͑Δ

    ϙΠϯτબ
  14. ೩͑ΔϙΠϯτ TJNQMFͳݴޠ࢓༷ࢥ૝Ͱɺෳࡶͳ໰୊Λղܾ͢Δ ίϯϐϡʔλϦιʔεɾ(PݴޠͷπʔϧΩοτΛ ࠷େݶ׆༻ͨ͠ɺ࣮૷ೳྗͷFNQPXFSNFOU )JHI1FSGPSNBODFͳϓϩάϥϛϯά νʔϜ։ൃʹ͓͚Δ(Pݴޠ

  15. TJNQMFͳ ݴޠ࢓༷ࢥ૝Ͱ ෳࡶͳ໰୊Λղܾ͢Δ

  16. ݴޠ࢓༷ͷTJNQMF͞ w ݴޠ࢓༷͕ͱͯ΋ബ͍ w ୯७ʹ֮͑Δ͜ͱ͕গͳ͔ͬͨҹ৅ w QVSFͳϩδοΫͦͷ΋ͷʹ৮Ε͍ͯΔײ֮ w ॻ͖ຯ͕͍͍ λϥϥο

    ಡΈ΍͍͢ w ಄ͷ$16ͷେ෦෼ΛϩδοΫهड़ʹ஫͗ࠐΊͯΔײ֮ w ֊૚తͳϩδοΫͷදݱ w JOUFSGBDFຒΊࠐΈΛར༻ͨ͠ബ͍ػߏΛ΋ͬͯදݱ w ಄ʹೖΕ͓ͯ͘΂͖৘ใ͕ίϯύΫτ
  17. ফ໣

  18. ΩϟονΞοϓ w ϓϩάϥϛϯάݴޠͷ ཧղ w ར༻͍ͯ͠Δ4FSWJDFͷ ཧղ ($1 %# FUD

    w ΞʔΩςΫνϟཧղ w αʔϏεݻ༗ͷυϝΠ ϯ஌ࣝͷཧղ w Ϟμϯͳ࣮૷ํࣜཧղ
  19. ΩϟονΞοϓ w ϓϩάϥϛϯάݴޠ w ར༻͍ͯ͠Δ4FSWJDFͷ ཧղ ($1 %# FUD w

    ΞʔΩςΫνϟཧղ w αʔϏεݻ༗ͷυϝΠ ϯ஌ࣝͷཧղ w Ϟμϯ w w
  20. ফ໣

  21. ੵΈॏͶ w ඇৗʹʮੵΈॏͶʯ͕ޮ͘ϓϩάϥϛϯάݴޠ w ٸܹʹ࣮૷ํ͕ࣜมԽ͢ΔΠϝʔδ͕খ͍͞ w ৴པײͷ͋Δɺ༷ʑͳϢʔεέʔεʹରԠͨ͠ඪ४ϥ ΠϒϥϦ w ʮ۪௚ʹॻ͘ʯͱ͍͏Α͏ͳݴޠࢥ૝

    w 㱺࣮૷ํ͕ࣜ௠෗Խ͠ͳ͍Α͏ʹέΞ͞Ε͍ͯΔҹ৅
  22. ੵΈॏͶ w ͕࣌ؒ͋Δͱ͖ɺ෮श͕ͯΒখ͍͞ίʔυΛॻ͍ͯ ΈΔ͜ͱ͕ଟ͘ͳͬͨ w ✅೥࢖͑ΔπʔϧΩοτʹͳΔΑ͏ʹɺੵΈ ॏͶ͍͖͍ͯͨؾ͕࣋ͪڧ͍ w ✅ண࣮ʹੵΈॏͶ͍ͯͬͯɺΑΓෳࡶͳ໰୊Λղ ܾͰ͖ΔΑ͏ʹͳΓ͍ͨ

  23. ফ໣

  24. ෳࡶͳ໰୊Λղܾ͢Δ w (Pݴޠͷγϯϓϧͳݴޠ࢓༷Λۦ࢖ͯ͠ w ͲΕ͚ͩ෯޿͍ιϦϡʔγϣϯΛ࣮ݱͰ͖Δ͔ w ͲΕ͚ͩෳࡶͳ໰୊ΛղܾͰ͖Δ͔

  25. ෳࡶͳ໰୊Λղܾ͢Δ ໰୊ྖҬͷ޿͞ SBOHF ໰୊ྖҬͷਂ͞ EFQUI (Pݴޠ͕ΧόʔͰ͖Δ ໰୊ྖҬ

  26. ෳࡶͳ໰୊Λղܾ͢Δ <ΤϯδχΞϦϯά͕ΧόʔͰ͖Δ໰୊ྖҬ> J04 "OESPJE XFC αʔό αΠυ <σβΠϯ͕ΧόʔͰ͖Δ ໰୊ྖҬ> <ϓϩμΫτϚωδϝϯτ

    ͕ΧόʔͰ͖Δ໰୊ྖҬ> ϓϩμΫτͱͯ͠ ղܾ͍ͨ͠໰୊ྖҬ
  27. ίϯϐϡʔλ ϦιʔεΛ ࠷େݶ׆༻ͨ͠ ࣮૷ೳྗͷ FNQPXFSNFOU

  28. ϝϯλϧϞσϧͷมԽ w ʰίϯϐϡʔλϦιʔεɾ(PݴޠͷπʔϧΩοτ ͱࣗ෼ࣗ਎ͷΞλϚͷ྆ํΛۦ࢖ͯ͠Ξ΢τϓοτ Λ࠷େԽ͍ͨ͠ʱ w ίϯϐϡʔλɺώτ͕ಘҙͳྖҬΛೝࣝͯ͠׆༻͢ Δ

  29. ίϯϐϡʔλϦιʔεͷ׆༻ w ίϯύΠϧʹΑΔίʔσΟϯά੔߹ੑͷཪ෇͚ w ώτ͕੔߹ੑ͕୲อͰ͖͍ͯͳ͍෦෼Λ୳͞ͳ͍ɻίϯ ϐϡʔλʹ୳ͯ͠΋Β͏ w צҧ͍ɺؒҧ͍͕ࠞೖ͠΍͘͢ϋϚΔͱͱ͜ͱΜ࣌ؒΛϩ ετ w

    (Pݴޠಛ༗ͷπʔϧΩοτͷ׆༻ w HPGNU HPJNQPSUT HPWFUͳͲͷίʔυϑΥʔϚολɺίʔ υνΣοΧFUDʜ
  30. *%&Λ׆༻ͨ͠FNQPXFSNFOU w (P-BOE (P-BOE (P-BOE w ίϯύΠϧͷલஈͷνΣοΫػߏͱͯ͠ɺ*%&ͷߏจνΣοΫػೳΛར༻ w ίʔσΟϯάͷαΠΫϧΛΑΓ୹͘ɻίʔσΟϯάͷϦζϜ͕େ͖͘վળ w

    *%&ͷ੩తղੳɺܕʹΑΔڧ͍੔߹ੑͷ׆༻ w ਖ਼͍͠είʔϓͷγϯϘϧݕࡧɻείʔϓΛݟޡΔ͜ͱ͕ͳ͍ w ϦϑΝΫλϦϯάɻਖ਼͍͠είʔϓͷɺਖ਼͍͠मਖ਼͕Մೳ w ৴པੑͷߴ͍ิ׬ w ଟগͷ࣮૷εϐʔυϦζϜΛ٘ਜ਼ʹͯ͠Ͱ΋ɺ*%&ͷิ׬ʹҕͶΔ w ࢥ͍ग़͢λεΫʹ಄ͷ$16Λফඅͤ͞ͳ͍ w ؒҧ͍ͷࠞೖΛۃྗݮΒ͠ɺ࣮૷ϦζϜΛ҆ఆͤ͞ΔTQFFEVQ
  31. ফ໣

  32. ϋΠύϑΥʔϚϯεͳ ϓϩάϥϛϯάͷ ඞཁੑ

  33. ϋΠύϑΥʔϚϯεϓϩάϥϛϯά w ϋΠύϑΥʔϚϯεϓϩάϥϛϯάͷඞཁੑʹ໨֮ ΊΔ w ͖͔͚ͬ w ݄ʹࣾ಺։࠵͞Εͨ %BWF$IFOFZ͞ ΜʹΑΔ(P5SBJOJOH

    w )JHI1FSGPSNBODF(P
  34. Ҿ༻ݩIUUQTHPUBMLTBQQTQPUDPNHJUIVCDPNEBWFDIFOFZIJHI QFSGPSNBODFHPXPSLTIPQIJHIQFSGPSNBODFHP XPSLTIPQTMJEF ϋΠύϑΥʔϚϯεϓϩάϥϛϯά

  35. ϋΠύϑΥʔϚϯεϓϩάϥϛϯά w QPJOUT w ϋʔυ΢ΣΞͷੑೳ޲্ͷӄΓ͕ݱΕ࢝Ί͍ͯΔ w ࠓݱࡏͷϋʔυ΢ΣΞʹϚονͨ͠ϓϩάϥϛϯάํࣜʹγϑ τ͢Δඞཁੑ͕͋Δ w ϋʔυ΢ΣΞΛ׆༻͠ɺϋΠύϑΥʔϚϯεͳॲཧΛ࣮ݱ

    w ϋΠύϑΥʔϚϯεΛग़ͨ͢Ίͷɺ͞·͟·ͳཁ݅Λຬͨ͢ϓ ϩάϥϛϯάݴޠΛར༻͢Δඞཁੑ w 㱺(Pݴޠ
  36. ϋΠύϑΥʔϚϯεϓϩάϥϛϯά w ✅ೲಘײ͕ߴ͘ɺҙຯ߹͍͕େ͖͍ࣔࠦ w ✅αʔϏε͕ղܾ͢Δ໰୊ྖҬʹΑͬͯ͸ɺඇৗʹ େ͖ͳՁ஋Λ΋ͭ w গͣͭ͠Ͱ΋Α͍͔Βɺ਎ʹ͚͍ͭͨ

  37. νʔϜ։ൃʹ͓͚Δ (Pݴޠ

  38. ΩϟονΞοϓ w ϓϩάϥϛϯάݴޠͷ ཧղ w ར༻͍ͯ͠Δ4FSWJDFͷ ཧղ ($1 %# FUD

    w ΞʔΩςΫνϟཧղ w αʔϏεݻ༗ͷυϝΠ ϯ஌ࣝͷཧղ w Ϟμϯͳ࣮૷ํࣜཧղ
  39. ΩϟονΞοϓ w ϓϩάϥϛϯάݴޠ w ར༻͍ͯ͠Δ4FSWJDFͷ ཧղ ($1 %# FUD w

    ΞʔΩςΫνϟཧղ w αʔϏεݻ༗ͷυϝΠ ϯ஌ࣝͷཧղ w Ϟμϯ w w
  40. ফ໣

  41. ϒϨͷͳ͍ೝࣝ౷Ұ w ܕγεςϜʹཪ෇͚͞Εͨڧݻͳ*' w ίϯύΠϧ͕௨͍ͬͯΔݶΓɺίʔσΟϯά্ͷέΞϨεϛε͸ ࠞೖ͠ͳ͍ w JOPVUQBSBN͕໌֬ w ֤छQBSBNΛௐ΂Δඞཁ΋ͳ͍

    w ࢀরཁૉ͕ଟ͚Ε͹ଟ͍΄ͲɺνʔϜ಺Ͱڧݻͳೝࣝ౷Ұ͕Ͱ͖Δ ͷ͸Ͱ͔͍ w ਓͷೝࣝΛҰͭʹ͋ΘͤΔͷ͸ຊ౰ʹ೉қ౓͕ߴ͍ͷͰɺͰ͔͍
  42. ফ໣

  43. ͦͷଞ w ϓϩμΫτUFBNͱͯ͠ߋͳΔΞ΢τϓοτΛग़͢ w ফ໣ͤͣʹ஝͑Δ͜ͱ͕Ͱ͖ͨूதྗΛ࢖ͬͯ w અ໿Ͱ͖ͨ࣌ؒΛ࢖ͬͯ w ·ͩ·ͩνʔϜ։ൃʹ͓͚ΔϝϦοτ׆༻ํ๏͋Γͦ͏ w

    ✅୯ʹݟ͍ͩͤͯͳ͍͚ͩ w ✅ਂ۷Γͯ͠ݟ͚͍ͭͨ
  44. ·ͱΊ

  45. ͜ͷൃදͰ͓఻͍͑ͨ͜͠ͱ w શ͘ͷ(Pݴޠॳ৺ऀ͕ w ৽ن։ൃͰϓϩμΫτϦϦʔεલʙϓϩμΫτΫϩʔ ζ·Ͱͷ೥൒ͯ͠Έͯ w ࠷ऴతʹ(PݴޠΛͲ͏ଊ͍͑ͯΔͷ͔ʁ (Pݴޠͷ ϝονϟ೩͑Δ

    ϙΠϯτબ
  46. ೩͑ΔϙΠϯτ TJNQMFͳݴޠ࢓༷ࢥ૝Ͱɺෳࡶͳ໰୊Λղܾ͢Δ ίϯϐϡʔλϦιʔεɾ(PݴޠͷπʔϧΩοτΛ ࠷େݶ׆༻࣮ͨ͠૷ೳྗͷFNQPXFSNFOU )JHI1FSGPSNBODFͳϓϩάϥϛϯά νʔϜ։ൃʹ͓͚Δ(Pݴޠ

  47. ΤϯδχΞͳΒ೩͑ΔςʔϚͷ͸ͣ TJNQMFͳݴޠ࢓༷ࢥ૝Ͱɺෳࡶͳ໰୊Λղܾ͢Δ ίϯϐϡʔλϦιʔεɾ(PݴޠͷπʔϧΩοτΛ ࠷େݶ׆༻࣮ͨ͠૷ೳྗͷFNQPXFSNFOU )JHI1FSGPSNBODFͳϓϩάϥϛϯά νʔϜ։ൃʹ͓͚Δ(Pݴޠ

  48. ࠎͷ͋Δଟ͘ͷςʔϚ ϓϩάϥϛϯάϝϯλϧϞσϧ΁ͷ ϙδςΟϒͳӨڹ ফ໣গͳ͘Ξ΢τϓοτΛग़͢

  49. ॳ৺ऀ͔ΒͷελʔτͰ͕ͨ͠ (Pݴޠɺͱͯ΋Α͔ͬͨͧ

  50. ࠙਌ձͰ ͓࿩͠͠·͠ΐ͏ʂ ͋Γ͕ͱ͏ ͍͟͝·ͨ͠