Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
弊社での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
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
弊社でのGoの取り組み〜どう広げたか、その後の人員戦略〜
これだけは伝えたい!Goのすごさとその将来性
https://increments.connpass.com/event/250648/
bikunbikun
February 16, 2023
More Decks by bikunbikun
See All by bikunbikun
技術書典6に参加してきた話
bikunbikun
0
1.4k
小さく始めるRedmine 第15回redmine.tokyo勉強会LT資料
bikunbikun
2
2.7k
Other Decks in Technology
See All in Technology
え、こんなに早く改修できるの?──新人エンジニアとスクラムマスターの2人が語る、AI×アジャイル開発の現場
ysasago
2
670
AIエージェントの権限管理 3: Agentic RAG の Fine grained access control 編
ren8k
0
200
サーバーレスをどこまで使う? WebRTC対戦ゲームで選んだVPSとの共存設計
kaidouji85
0
340
エージェントはローカル、検証はMicroVM — Lambda MicroVMsでつくるServerless CI
fujioka6789
3
700
顧客に向き合う開発組織へ。リアーキテクチャとフィーチャーチーム化で挑む組織改革
safie
0
2.4k
今話題のAI「Jev」って何? 宇宙最速で学ぶ会
minorun365
PRO
30
19k
AIに任せた品質は、誰が見立てるのか - AI時代のテストマネジメント
nakanao
3
2.8k
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
12k
時うどん〜Socket.getifaddrsで学ぶネットワーク編 / Tokiudon: The Socket.getifaddrs Edition
coe401_
4
220
AI de Idea
kawaguti
PRO
2
130
SREへの勘違いに気づいた後の話
tomodakengo
0
150
ScotSecure West 2026 - Glasgow
raybugg
0
150
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
Being A Developer After 40
akosma
91
590k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
250
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
280
Designing Powerful Visuals for Engaging Learning
tmiket
1
570
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
480
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
440
Thoughts on Productivity
jonyablonski
76
5.4k
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/