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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
bikunbikun
February 16, 2023
Technology
130
0
Share
弊社でのGoの取り組み〜どう広げたか、その後の人員戦略〜
これだけは伝えたい!Goのすごさとその将来性
https://increments.connpass.com/event/250648/
bikunbikun
February 16, 2023
More Decks by bikunbikun
See All by bikunbikun
技術書典6に参加してきた話
bikunbikun
0
1.3k
小さく始めるRedmine 第15回redmine.tokyo勉強会LT資料
bikunbikun
2
2.7k
Other Decks in Technology
See All in Technology
小説執筆のハーネスエンジニアリング
yoshitetsu
0
780
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
10
79k
AWS Transform CustomでIaCコードを自由自在に変換しよう
duelist2020jp
0
140
基盤を育てる 外部SaaS連携の運用
gamonges_dresscode
1
120
Anthropic「Long-running a gents」をGeminiで再現してみた
tkikuchi
0
290
20260428_Product Management Summit_tadokoroyoshiro
tadokoro_yoshiro
14
14k
ハーネスエンジニアリングをやりすぎた話 ~そのハーネスは解体された~
gotalab555
5
1.8k
コミュニティ・勉強会を作るのは目的じゃない
ohmori_yusuke
0
260
AIが自律的に働く時代へ Amazon Quick で実現するAIエージェント紹介
koheiyoshikawa
0
110
Route 53 Global Resolver で高額課金発生!
otanikohei2023
0
120
運用システムにおけるデータ活用とPlatform
sansantech
PRO
0
120
Expiration of Secure Boot Certificates for vSphere Virtual Machines
mirie_sd
0
110
Featured
See All Featured
Designing for humans not robots
tammielis
254
26k
Producing Creativity
orderedlist
PRO
348
40k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
160
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
23k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
380
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
180
Visualization
eitanlees
150
17k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
110
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
120
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.2k
The Invisible Side of Design
smashingmag
303
52k
How GitHub (no longer) Works
holman
316
150k
Transcript
ฐࣾͰͷGOͷऔΓΈ ~Ͳ͏͔͛ͨɺͦͷޙͷਓһઓུ~
ࣗݾհ ➤ Qiitaɿ@bikun_bikun ➤ Twitterɿ@bikun_bikun ➤ ࢯ໊ɿੴ େ༞ ➤ ॴଐɿσΟοϓגࣜձࣾʢ20185݄JOINʣ
➤ Goྺɿ ɹɹݱ৬ʹೖ͔ͬͯΒ৮Γ࢝ΊΔɻ ɹɹΨοπϦΰϦΰϦ͍ͬͯΔΘ͚Ͱͳ͍͕ɺGoͰ࡞ΒΕͨ ϓϩμΫτͷνʔϜϏϧυϦʔυΛߦ͍ͬͯΔɻ 2
ΞδΣϯμ ➤ ฐࣾͷGoͷ͕Γ ➤ ਓһઓུ ➤ Goͷັྗ
ฐࣾͷGOͷ͕Γ ➤ ࢝·Γ2018ͷgolang.tokyo#14ͷεϥΠυ ➤ ͦͷޙɻɻɻ
ฐࣾͷGOͷ͕Γʢ࣌ͷৼΓฦΓʣ ➤ ՝.1 ΈΜͳॳ৺ऀ ΈΜͳॳ৺ऀͳͷͰҰา͍ͣͭͬͯ͜͏ ➤ ՝.2 “ਖ਼͍͠”ॻ͖ํ͕Θ͔Βͳ͍
ΈΜͳͰίʔυϨϏϡʔͯ͠ϨϕϧײΛ߹͍ͤͯ͘ɺςετΛॻ͍ͯΑΓྑ͍ํ๏͕ݟ͔ͭͬͨΒϦϑΝΫλ ➤ ՝.3 “ϦϦʔεͯ͠ऴΘΓ”͡Όͳ͍ ੍͕͋ΔதɺCI/CDΛΜͰղܾ ➤ ՝.4 ϦϦʔε࣌ʹόΠφϦ࠶ىಈ͕ඞཁ ΦϯϓϨڥͩͬͨͨΊɺ1ͣͭLB outͯ͠ରԠ ࣌࣌ͰͦΕͧΕͷղܾࡦΛݟग़ͯ͠ղܾ͍ͯͨ͠ɻ
ฐࣾͷGOͷ͕Γ εϚʔτϑΥϯΞϓϦͷೝূػೳαʔϏεΛ GoͰ࣮ ৽نϓϩμΫτͷίΞ෦ʹGoΛ࠾༻ ※͍ͭʹίΞγεςϜͰGo͕࠾༻ 🎉 2018Լ० αϒγεςϜपΓͰGoΛར༻͢Δಈ͖͕׆ൃԽ 2019 2021
ฐࣾͷGOͷ͕Γʢ࣌ͷ՝Ͳ͏ͳͬͨʁʣ ➤ ՝.1 ΈΜͳॳ৺ऀ ➤ ΈΜͳॳ৺ऀ͠ΐ͏͕ͳ͍ɺOSSͷίʔυΛಡΜͰΈͨΓษڧձʹࢀՃͨ͠Γ Ͱݟ͕ཷ·͖ͬͯͨɻ ➤ ͝ԑ͕͋ΓɺGoʹ໌Δ͍ํ͕ࢀը͍͚ͯͨͩ͠ɺ͔ͦ͜ΒߋʹνʔϜʹφϨοδ ͕ཷ·ͬͨɻ
➤ ࣗͨͪͰͭ·͖ͮͦ͏ͳ෦Λൈ͖ग़ͨ͠νϡʔτϦΞϧΛ࡞Γ৽نJOINऀʹ ղ͍ͯΒ͏Α͏ͳମ੍ʹ͠ɺιϑτϥϯσΟϯάͨ͘͢͠͠ɻ
ฐࣾͷGOͷ͕Γʢ࣌ͷ՝Ͳ͏ͳͬͨʁʣ ➤ ՝.2 “ਖ਼͍͠”ॻ͖ํ͕Θ͔Βͳ͍ ➤ OSSͷίʔυΛಡΜͩΓͯ͠ϒϥογϡΞοϓ ➤ ߦ͖ண͍ͨઌʮਖ਼ਖ਼ղͳ͍Μ͡Όͳ͍͔ʁʯͱ͍͏͜ͱɻ Ͱ͋Εɺྑ͍ͱ͜ΖΛऔΓೖΕͳ͕ΒࣗͨͪͷελΠϧΛ࡞͍ͬͯ͜͏
➤ ͱ͍͑1͔Βਏ͍ɺσΟϨΫτϦߏͳͲ ʮgolang-standards/project-layoutʯʹدͤΔͳͲͰରԠɻ
ฐࣾͷGOͷ͕Γʢ࣌ͷ՝Ͳ͏ͳͬͨʁʣ ➤ ՝.3 “ϦϦʔεͯ͠ऴΘΓ”͡Όͳ͍ ➤ 2019ࠒ͔Βӡ༻͕Ͱ͖ΔνʔϜΛϏϧυ͍ͯ͘͠ϑΣʔζʹೖ͖ͬͯͨɻ ➤ CI/CDʹ͍ͭͯΦϯϓϨத৺͔ΒPublicCloudʢAWSʣத৺ʹͳ͖ͬͯͨͨΊ Jenkinsdrone.io͔ΒCodeBuild, CodePipeline,
CodeDeployͳͲͰࣗಈԽՃ ➤ ՝.4 ϦϦʔε࣌ʹόΠφϦ࠶ىಈ͕ඞཁ ➤ ίϯςφϕʔεͷΈΛར༻͢Δ͜ͱͰ՝ͱͯ͠ͳ͘ͳ͖ͬͯͨɻ
ฐࣾͷGOͷ͕ΓΛৼΓฦͬͯ ➤ όονAPIαʔόɺൺֱతೖΕ͍͢αϒγεςϜͳͲʹϑΥʔΧεͯ͠ಋೖ͠ ͨ͜ͱ͕͡Θ͡Θͱ͕͍ͬͯͬͨͱײ͡·͢ɻ ➤ PublicCloudʢAWSʣͷҠߦͰΑΓGoͱͷੑ͕૿͖ͯͨ͠ɻ ➤ Goͷܕͷߗ͕͞ฐࣾͷγεςϜͷٲʹͳͬͨ͜ͱɾɾɾ ➤ ϑΝδʔͳσʔλ͕͍͔͕ͭ͋ͬͨ͘ൃݟ͕ΕɺϦϦʔεલʹͯΜΘΜ
➤ Json parserͷࣗ࡞ͳͲͰରԠɻ ➤ ࠓޙGoͷར༻૿͍͑ͯ͘ͱࢥ͍·͢ɻ
ΞδΣϯμ ➤ ฐࣾͷGoͷ͕Γ ➤ ਓһઓུ ➤ Goͷັྗ
ฐࣾͷਓһઓུ ➤ Goͷ࠾༻͕͕Δʹ࿈Εɺطଘͷϝϯόʔ͚ͩͰ৽ن։ൃͱӡ༻Ͱख͕ճΒͳ͘ ͳ͖ͬͯͨɻ ➤ ਓ͕ΒͣͲ͏ͨ͠ͷ͔ɾɾɾͱ͍͏ঢ়گ
ฐࣾͷਓһઓུ Ҋ1. ࣾͷଞͷνʔϜ͔Β࣋ͬͯ͘Δ ➤ ଞͷνʔϜଞͷνʔϜͰΔ͜ͱ͕ͨ͘͞Μ͋Γɺݱ࣮తͰͳ͍
ฐࣾͷਓһઓུ Ҋ1. ࣾͷଞͷνʔϜ͔Β࣋ͬͯ͘Δ ➤ ଞͷνʔϜଞͷνʔϜͰΔ͜ͱ͕ͨ͘͞Μ͋Γɺݱ࣮తͰͳ͍ ٫Լ
ฐࣾͷਓһઓུ Ҋ1. ࣾͷଞͷνʔϜ͔Β࣋ͬͯ͘Δ ➤ ଞͷνʔϜଞͷνʔϜͰΔ͜ͱ͕ͨ͘͞Μ͋Γɺݱ࣮తͰͳ͍ Ҋ2. ৽نͰਓΛ૿͢ ➤ ਖ਼߈๏ ➤
͜ΕͰؤு͍ͬͯ͘ํʹ͍͕ͨ͠͏গ͠ૣ͘Ͳ͏ʹ͔͍ͨ͠ɻ ٫Լ
ฐࣾͷਓһઓུ Ҋ1. ࣾͷଞͷνʔϜ͔Β࣋ͬͯ͘Δ ➤ ଞͷνʔϜଞͷνʔϜͰΔ͜ͱ͕ͨ͘͞Μ͋Γɺݱ࣮తͰͳ͍ Ҋ2. ৽نͰਓΛ૿͢ ➤ ਖ਼߈๏ ➤
͜ΕͰؤு͍ͬͯ͘ํʹ͍͕ͨ͠͏গ͠ૣ͘Ͳ͏ʹ͔͍ͨ͠ɻ ٫Լ ࠾༻ʂʂ
ฐࣾͷਓһઓུ Ҋ1. ࣾͷଞͷνʔϜ͔Β࣋ͬͯ͘Δ ➤ ଞͷνʔϜଞͷνʔϜͰΔ͜ͱ͕ͨ͘͞Μ͋Γɺݱ࣮తͰͳ͍ Ҋ2. ৽نͰਓΛ૿͢ ➤ ਖ਼߈๏ ➤
͜ΕͰؤு͍ͬͯ͘ํʹ͍͕ͨ͠͏গ͠ૣ͘Ͳ͏ʹ͔͍ͨ͠ɻ ٫Լ ࠾༻ʂʂ Ҋ3. ύʔτφʔ͞ΜʹཔΔ ➤ ͱ͍͑Go͕Ͱ͖Δਓࣗମ͕গͳ͍ɻ ➤ ҰॹʹGoΓ͍ͨΑʂֶͼ͍ͨΑʂͱ͍͏ํʹདྷ͍͖ͯͨͩɺҰॹʹߴ·Δɻ
ฐࣾͷਓһઓུ Ҋ1. ࣾͷଞͷνʔϜ͔Β࣋ͬͯ͘Δ ➤ ଞͷνʔϜଞͷνʔϜͰΔ͜ͱ͕ͨ͘͞Μ͋Γɺݱ࣮తͰͳ͍ Ҋ2. ৽نͰਓΛ૿͢ ➤ ਖ਼߈๏ ➤
͜ΕͰؤு͍ͬͯ͘ํʹ͍͕ͨ͠͏গ͠ૣ͘Ͳ͏ʹ͔͍ͨ͠ɻ ٫Լ ࠾༻ʂʂ Ҋ3. ύʔτφʔ͞ΜʹཔΔ ➤ ͱ͍͑Go͕Ͱ͖Δਓࣗମ͕গͳ͍ɻ ➤ ҰॹʹGoΓ͍ͨΑʂֶͼ͍ͨΑʂͱ͍͏ํʹདྷ͍͖ͯͨͩɺҰॹʹߴ·Δɻ ࠾༻ʂʂ
ฐࣾͷਓһઓུ ݁Ռ ➤ ࠾༻ΛڧԽͭͭ͠ύʔτφʔ͞ΜͰ͍͖͍ͬͯͨਓʹJOINͯ͠Βͬͨɻ ➤ ύʔτφʔ͞ΜͱҰॹʹνϡʔτϦΞϧΛ࡞ͬͨΓɺ ৽͍͜͠ͱʹऔΓΈͭͭࣾһͷJOIN૿͖͑ͯͨɻ ➤ νϡʔτϦΞϧ࡞ΓͰʮΈΜͳͰߴ·Δʯҙ͕ࣝ૿͑ɺྑ͍αΠΫϧʹͳͬͨɻ
➤ ΈΜͳॳ৺ऀͳ͕ΒɺݟΛͨΊɺΈΜͳͰߴ·ΔνʔϜ͕ॏཁ
ΞδΣϯμ ➤ ฐࣾͷGoͷ͕Γ ➤ ਓһઓུ ➤ Goͷັྗ
GOͷັྗ ඪ४Ͱ༻ҙ͞Ε͍ͯΔπʔϧ܈ ➤ FormatterɺςετɺύοέʔδཧͳͲ༷ʑͳͷ͕ඪ४Ͱ༻ҙ͞Ε͍ͯΔ ➤ gofmt, goimportsಛʹόϥόϥʹͳΓ͕ͪͳͷΛ౷Ұͯ͘͠ΕΔɻ γϯϓϧͳݴޠͰ͋Δʢnot Easyʣ ➤
৮Γ࢝ΊͰཧղ͘͢͠ॻ͖͍͢ɻ ➤ throw-catch͕ͳ͍ͷͰجຊ্͔ΒಡΜͰ͍͚Δɻ ➤ ྫ֎Ͱδϟϯϓ͢ΔͷͰͳ͘ΤϥʔॲཧΛߦ͏ɻ
GOͷັྗ ฒߦॲཧͷॻ͖͢͞ ➤ ෳࡶͳ͜ͱΛ͠Α͏ͱ͢Δͱ৭ʑߟ͑Δ͜ͱग़ͯ͘Δ͕ɺγϯϓϧͳฒߦॲཧͷॻ͖ ͕͋͢͞Δͱࢥ͍·͢ɻ ➤ ్தͰ͚ͩ͜͜ฒߦॲཧʹͦ͏Έ͍ͨͳ͜ͱ͕͍͢͠ɻ ϫϯόΠφϦ ➤ ϙʔλϒϧੑ͕ൈ܈ɻ
➤ Ϗϧυͷ͓͔͛ͰࣄલʹΘ͔Δόά͕༗Δɻ
GOͷັྗʢݴޠҎ֎ʣ GoϢʔβͷѪਂ͞ ➤ Tour of GoΛ࢝ΊɺνϡʔτϦΞϧͷຊޠࢿྉͷॆ࣮ ➤ Gopherಓͷօ༷ɺࢿྉެ։͋Γ͕ͱ͏͍͟͝·͢ɻ
࠷ޙʹ GoʹؔΘΔօ༷ײँͱɺ͜Ε͔ΒͷGoͷൃలΛظ͠·͢ɻ
࠷ޙʹʢ͓·͚ʣ ฐࣾʢσΟοϓגࣜձࣾʣͰϝϯόʔΛืूதͰ͢ɻ - GoͬͯΈ͍ͨʢߴ·Γ͍ͨʣ - ϓϩμΫτ։ൃ͍ͨ͠ ͓͍ͪͯ͠·͢ɻ https://dippeople.dip-net.jp/engineer-recruit/