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
12
16k
Go言語による2年半の新規プロダクト開発とその総括
cowsys
July 03, 2018
Tweet
Share
More Decks by cowsys
See All by cowsys
20180302_酔いどれGCPUG_SearchAPIと、おれたち
cowsys
1
770
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
26
5.2k
How to Ace a Technical Interview
jacobian
276
23k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Thoughts on Productivity
jonyablonski
67
4.3k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
42
2.2k
RailsConf 2023
tenderlove
29
890
Code Review Best Practice
trishagee
64
17k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.2k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
329
21k
Unsuck your backbone
ammeep
668
57k
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ݴޠɺͱͯΑ͔ͬͨͧ
࠙ձͰ ͓͠͠·͠ΐ͏ʂ ͋Γ͕ͱ͏ ͍͟͝·ͨ͠