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言語による2年半の新規プロダクト開発とその総括
Search
cowsys
July 03, 2018
17k
12
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Go言語による2年半の新規プロダクト開発とその総括
cowsys
July 03, 2018
More Decks by cowsys
See All by cowsys
20180302_酔いどれGCPUG_SearchAPIと、おれたち
cowsys
1
850
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Why Our Code Smells
bkeepers
PRO
340
58k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
The Curious Case for Waylosing
cassininazir
1
490
Raft: Consensus for Rubyists
vanstee
141
7.7k
Transcript
(PݴޠʹΑΔ ͷ৽نϓϩμΫτ։ൃͱ ͦͷ૯ׅ NFSDBSJHP DPXTZT
ࣗݾհ
ࣗݾհ *%DPXTZT ʙגࣜձࣾικ ϝϧΧϦΞοςαʔόαΠυΤϯδχΞ ʙגࣜձࣾϝϧϖΠ
ݸਓతͳςʔϚ w ৴༻Λͯ͠ɺͳΊ Β͔ͳࣾձΛΔˏϝ ϧϖΠ w ਓʑͷੜ׆Λม͑ΔΑ ͏ͳ৽نϓϩμΫτΛ ͭ͘Δ w
͍͍࣌ؒͷա͝͠ํΛ ͍ͨ͠ w ͍͍ࣄΛ͍ͨ͠ w (PͷύϫʔΛ༨͢ͱ͜Ζ ͳ͘ར༻Ͱ͖ΔΑ͏ʹͳ Δ w ($1ͷύϫʔΛ༨͢ͱ͜ Ζͳ͘ར༻Ͱ͖ΔΑ͏ʹ ͳΔ
ࠓ͓͢Δͱ͜Ζ
ࣗݾհ *%DPXTZT ʙגࣜձࣾικ ϝϧΧϦΞοςαʔόαΠυΤϯδχΞ ʙגࣜձࣾϝϧϖΠ ίίͷݟʂ
ϝϧΧϦΞος
ϝϧΧϦΞοςͱʁ w ϝϧΧϦάϧʔϓॳͱͳΔɺϝϧΧϦҎ֎ͷαʔϏε w $$ܥαʔϏε w ݄ࠒ͔Βߏελʔτ w ݄ɹϩʔϯν w
݄Ϋϩʔζ ެࣜϚείοτ χϟος ݘ
ϝϧΧϦΞοςͱʁ w ΤϯδχΞ ϦϙδτϦͷDPOUSJCVUPSϕʔε w αʔόαΠυΤϯδχΞ w J04ΤϯδχΞ w
"OESPJEΤϯδχΞ w ϑϩϯτΤϯυΤϯδχΞ
ϝϧΧϦΞοςͱʁ w ίʔυنɹͰɹɹ͔ɹɹ͍ w ૯13 w "1*$45PPM8FC w J04 w
"OEPSJE w ػೳͯΜ͜Γ w OBUJWFBQQͷελϯμʔυͳػೳҰࣜ w $$ ίϛϡχςΟ 2"
ϝϧΧϦΞοςͱʁ w ϩʔϯνલͷϲ݄લʹKPJO։ൃελʔτ w TU13͔Βϲ݄ޙ w શ͘ͷ(Pݴޠॳ৺ऀ w ׳Ε͠ΜͰ͖ͨݴޠ1)1 w
αʔόαΠυΤϯδχΞͱͯ͠ࢀՃ
͜ͷൃදͰ͓͍͑ͨ͜͠ͱ w શ͘ͷ(Pݴޠॳ৺ऀ͕ w ৽ن։ൃͰϓϩμΫτϦϦʔεલʙϓϩμΫτΫϩʔ ζ·Ͱͷͯ͠Έͯ w ࠷ऴతʹ(PݴޠΛͲ͏ଊ͍͑ͯΔͷ͔ʁ
͜ͷൃදͰ͓͍͑ͨ͜͠ͱ w શ͘ͷ(Pݴޠॳ৺ऀ͕ w ৽ن։ൃͰϓϩμΫτϦϦʔεલʙϓϩμΫτΫϩʔ ζ·Ͱͷͯ͠Έͯ w ࠷ऴతʹ(PݴޠΛͲ͏ଊ͍͑ͯΔͷ͔ʁ (Pݴޠͷ ϝονϟ೩͑Δ
ϙΠϯτબ
೩͑ΔϙΠϯτ TJNQMFͳݴޠ༷ࢥͰɺෳࡶͳΛղܾ͢Δ ίϯϐϡʔλϦιʔεɾ(PݴޠͷπʔϧΩοτΛ ࠷େݶ׆༻ͨ͠ɺ࣮ೳྗͷFNQPXFSNFOU )JHI1FSGPSNBODFͳϓϩάϥϛϯά νʔϜ։ൃʹ͓͚Δ(Pݴޠ
TJNQMFͳ ݴޠ༷ࢥͰ ෳࡶͳΛղܾ͢Δ
ݴޠ༷ͷTJNQMF͞ w ݴޠ༷͕ͱͯബ͍ w ୯७ʹ֮͑Δ͜ͱ͕গͳ͔ͬͨҹ w QVSFͳϩδοΫͦͷͷʹ৮Ε͍ͯΔײ֮ w ॻ͖ຯ͕͍͍ λϥϥο
ಡΈ͍͢ w ಄ͷ$16ͷେ෦ΛϩδοΫهड़ʹ͗ࠐΊͯΔײ֮ w ֊తͳϩδοΫͷදݱ w JOUFSGBDFຒΊࠐΈΛར༻ͨ͠ബ͍ػߏΛͬͯදݱ w ಄ʹೖΕ͓͖ͯ͘ใ͕ίϯύΫτ
ফ
ΩϟονΞοϓ w ϓϩάϥϛϯάݴޠͷ ཧղ w ར༻͍ͯ͠Δ4FSWJDFͷ ཧղ ($1 %# FUD
w ΞʔΩςΫνϟཧղ w αʔϏεݻ༗ͷυϝΠ ϯࣝͷཧղ w Ϟμϯͳ࣮ํࣜཧղ
ΩϟονΞοϓ w ϓϩάϥϛϯάݴޠ w ར༻͍ͯ͠Δ4FSWJDFͷ ཧղ ($1 %# FUD w
ΞʔΩςΫνϟཧղ w αʔϏεݻ༗ͷυϝΠ ϯࣝͷཧղ w Ϟμϯ w w
ফ
ੵΈॏͶ w ඇৗʹʮੵΈॏͶʯ͕ޮ͘ϓϩάϥϛϯάݴޠ w ٸܹʹ࣮ํ͕ࣜมԽ͢ΔΠϝʔδ͕খ͍͞ w ৴པײͷ͋Δɺ༷ʑͳϢʔεέʔεʹରԠͨ͠ඪ४ϥ ΠϒϥϦ w ʮ۪ʹॻ͘ʯͱ͍͏Α͏ͳݴޠࢥ
w 㱺࣮ํ͕ࣜԽ͠ͳ͍Α͏ʹέΞ͞Ε͍ͯΔҹ
ੵΈॏͶ w ͕࣌ؒ͋Δͱ͖ɺ෮श͕ͯΒখ͍͞ίʔυΛॻ͍ͯ ΈΔ͜ͱ͕ଟ͘ͳͬͨ w ✅͑ΔπʔϧΩοτʹͳΔΑ͏ʹɺੵΈ ॏͶ͍͖͍ͯͨؾ͕࣋ͪڧ͍ w ✅ண࣮ʹੵΈॏͶ͍ͯͬͯɺΑΓෳࡶͳΛղ ܾͰ͖ΔΑ͏ʹͳΓ͍ͨ
ফ
ෳࡶͳΛղܾ͢Δ w (Pݴޠͷγϯϓϧͳݴޠ༷Λۦͯ͠ w ͲΕ͚ͩ෯͍ιϦϡʔγϣϯΛ࣮ݱͰ͖Δ͔ w ͲΕ͚ͩෳࡶͳΛղܾͰ͖Δ͔
ෳࡶͳΛղܾ͢Δ ྖҬͷ͞ SBOHF ྖҬͷਂ͞ EFQUI (Pݴޠ͕ΧόʔͰ͖Δ ྖҬ
ෳࡶͳΛղܾ͢Δ <ΤϯδχΞϦϯά͕ΧόʔͰ͖ΔྖҬ> J04 "OESPJE XFC αʔό αΠυ <σβΠϯ͕ΧόʔͰ͖Δ ྖҬ> <ϓϩμΫτϚωδϝϯτ
͕ΧόʔͰ͖ΔྖҬ> ϓϩμΫτͱͯ͠ ղܾ͍ͨ͠ྖҬ
ίϯϐϡʔλ ϦιʔεΛ ࠷େݶ׆༻ͨ͠ ࣮ೳྗͷ FNQPXFSNFOU
ϝϯλϧϞσϧͷมԽ w ʰίϯϐϡʔλϦιʔεɾ(PݴޠͷπʔϧΩοτ ͱࣗࣗͷΞλϚͷ྆ํΛۦͯ͠Ξτϓοτ Λ࠷େԽ͍ͨ͠ʱ w ίϯϐϡʔλɺώτ͕ಘҙͳྖҬΛೝࣝͯ͠׆༻͢ Δ
ίϯϐϡʔλϦιʔεͷ׆༻ w ίϯύΠϧʹΑΔίʔσΟϯά߹ੑͷཪ͚ w ώτ͕߹ੑ͕୲อͰ͖͍ͯͳ͍෦Λ୳͞ͳ͍ɻίϯ ϐϡʔλʹ୳ͯ͠Β͏ w צҧ͍ɺؒҧ͍͕ࠞೖ͘͢͠ϋϚΔͱͱ͜ͱΜ࣌ؒΛϩ ετ w
(Pݴޠಛ༗ͷπʔϧΩοτͷ׆༻ w HPGNU HPJNQPSUT HPWFUͳͲͷίʔυϑΥʔϚολɺίʔ υνΣοΧFUDʜ
*%&Λ׆༻ͨ͠FNQPXFSNFOU w (P-BOE (P-BOE (P-BOE w ίϯύΠϧͷલஈͷνΣοΫػߏͱͯ͠ɺ*%&ͷߏจνΣοΫػೳΛར༻ w ίʔσΟϯάͷαΠΫϧΛΑΓ͘ɻίʔσΟϯάͷϦζϜ͕େ͖͘վળ w
*%&ͷ੩తղੳɺܕʹΑΔڧ͍߹ੑͷ׆༻ w ਖ਼͍͠είʔϓͷγϯϘϧݕࡧɻείʔϓΛݟޡΔ͜ͱ͕ͳ͍ w ϦϑΝΫλϦϯάɻਖ਼͍͠είʔϓͷɺਖ਼͍͠मਖ਼͕Մೳ w ৴པੑͷߴ͍ิ w ଟগͷ࣮εϐʔυϦζϜΛ٘ਜ਼ʹͯ͠Ͱɺ*%&ͷิʹҕͶΔ w ࢥ͍ग़͢λεΫʹ಄ͷ$16Λফඅͤ͞ͳ͍ w ؒҧ͍ͷࠞೖΛۃྗݮΒ͠ɺ࣮ϦζϜΛ҆ఆͤ͞ΔTQFFEVQ
ফ
ϋΠύϑΥʔϚϯεͳ ϓϩάϥϛϯάͷ ඞཁੑ
ϋΠύϑΥʔϚϯεϓϩάϥϛϯά w ϋΠύϑΥʔϚϯεϓϩάϥϛϯάͷඞཁੑʹ֮ ΊΔ w ͖͔͚ͬ w ݄ʹࣾ։࠵͞Εͨ %BWF$IFOFZ͞ ΜʹΑΔ(P5SBJOJOH
w )JHI1FSGPSNBODF(P
Ҿ༻ݩIUUQTHPUBMLTBQQTQPUDPNHJUIVCDPNEBWFDIFOFZIJHI QFSGPSNBODFHPXPSLTIPQIJHIQFSGPSNBODFHP XPSLTIPQTMJEF ϋΠύϑΥʔϚϯεϓϩάϥϛϯά
ϋΠύϑΥʔϚϯεϓϩάϥϛϯά w QPJOUT w ϋʔυΣΞͷੑೳ্ͷӄΓ͕ݱΕ࢝Ί͍ͯΔ w ࠓݱࡏͷϋʔυΣΞʹϚονͨ͠ϓϩάϥϛϯάํࣜʹγϑ τ͢Δඞཁੑ͕͋Δ w ϋʔυΣΞΛ׆༻͠ɺϋΠύϑΥʔϚϯεͳॲཧΛ࣮ݱ
w ϋΠύϑΥʔϚϯεΛग़ͨ͢Ίͷɺ͞·͟·ͳཁ݅Λຬͨ͢ϓ ϩάϥϛϯάݴޠΛར༻͢Δඞཁੑ w 㱺(Pݴޠ
ϋΠύϑΥʔϚϯεϓϩάϥϛϯά w ✅ೲಘײ͕ߴ͘ɺҙຯ߹͍͕େ͖͍ࣔࠦ w ✅αʔϏε͕ղܾ͢ΔྖҬʹΑͬͯɺඇৗʹ େ͖ͳՁΛͭ w গͣͭ͠ͰΑ͍͔Βɺʹ͚͍ͭͨ
νʔϜ։ൃʹ͓͚Δ (Pݴޠ
ΩϟονΞοϓ w ϓϩάϥϛϯάݴޠͷ ཧղ w ར༻͍ͯ͠Δ4FSWJDFͷ ཧղ ($1 %# FUD
w ΞʔΩςΫνϟཧղ w αʔϏεݻ༗ͷυϝΠ ϯࣝͷཧղ w Ϟμϯͳ࣮ํࣜཧղ
ΩϟονΞοϓ w ϓϩάϥϛϯάݴޠ w ར༻͍ͯ͠Δ4FSWJDFͷ ཧղ ($1 %# FUD w
ΞʔΩςΫνϟཧղ w αʔϏεݻ༗ͷυϝΠ ϯࣝͷཧղ w Ϟμϯ w w
ফ
ϒϨͷͳ͍ೝࣝ౷Ұ w ܕγεςϜʹཪ͚͞Εͨڧݻͳ*' w ίϯύΠϧ͕௨͍ͬͯΔݶΓɺίʔσΟϯά্ͷέΞϨεϛε ࠞೖ͠ͳ͍ w JOPVUQBSBN͕໌֬ w ֤छQBSBNΛௐΔඞཁͳ͍
w ࢀরཁૉ͕ଟ͚Εଟ͍΄ͲɺνʔϜͰڧݻͳೝࣝ౷Ұ͕Ͱ͖Δ ͷͰ͔͍ w ਓͷೝࣝΛҰͭʹ͋ΘͤΔͷຊʹқ͕ߴ͍ͷͰɺͰ͔͍
ফ
ͦͷଞ w ϓϩμΫτUFBNͱͯ͠ߋͳΔΞτϓοτΛग़͢ w ফͤͣʹ͑Δ͜ͱ͕Ͱ͖ͨूதྗΛͬͯ w અͰ͖ͨ࣌ؒΛͬͯ w ·ͩ·ͩνʔϜ։ൃʹ͓͚ΔϝϦοτ׆༻ํ๏͋Γͦ͏ w
✅୯ʹݟ͍ͩͤͯͳ͍͚ͩ w ✅ਂ۷Γͯ͠ݟ͚͍ͭͨ
·ͱΊ
͜ͷൃදͰ͓͍͑ͨ͜͠ͱ w શ͘ͷ(Pݴޠॳ৺ऀ͕ w ৽ن։ൃͰϓϩμΫτϦϦʔεલʙϓϩμΫτΫϩʔ ζ·Ͱͷͯ͠Έͯ w ࠷ऴతʹ(PݴޠΛͲ͏ଊ͍͑ͯΔͷ͔ʁ (Pݴޠͷ ϝονϟ೩͑Δ
ϙΠϯτબ
೩͑ΔϙΠϯτ TJNQMFͳݴޠ༷ࢥͰɺෳࡶͳΛղܾ͢Δ ίϯϐϡʔλϦιʔεɾ(PݴޠͷπʔϧΩοτΛ ࠷େݶ׆༻࣮ͨ͠ೳྗͷFNQPXFSNFOU )JHI1FSGPSNBODFͳϓϩάϥϛϯά νʔϜ։ൃʹ͓͚Δ(Pݴޠ
ΤϯδχΞͳΒ೩͑ΔςʔϚͷͣ TJNQMFͳݴޠ༷ࢥͰɺෳࡶͳΛղܾ͢Δ ίϯϐϡʔλϦιʔεɾ(PݴޠͷπʔϧΩοτΛ ࠷େݶ׆༻࣮ͨ͠ೳྗͷFNQPXFSNFOU )JHI1FSGPSNBODFͳϓϩάϥϛϯά νʔϜ։ൃʹ͓͚Δ(Pݴޠ
ࠎͷ͋Δଟ͘ͷςʔϚ ϓϩάϥϛϯάϝϯλϧϞσϧͷ ϙδςΟϒͳӨڹ ফগͳ͘ΞτϓοτΛग़͢
ॳ৺ऀ͔ΒͷελʔτͰ͕ͨ͠ (PݴޠɺͱͯΑ͔ͬͨͧ
࠙ձͰ ͓͠͠·͠ΐ͏ʂ ͋Γ͕ͱ͏ ͍͟͝·ͨ͠