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
ずっとRubyをやっていたエンジニアがGoに入門して挫折して再挑戦した話
Search
Kenta Suzuki
June 05, 2017
Programming
2
5.2k
ずっとRubyをやっていたエンジニアがGoに入門して挫折して再挑戦した話
Kenta Suzuki
June 05, 2017
Tweet
Share
More Decks by Kenta Suzuki
See All by Kenta Suzuki
レガシーアプリケーションのリニューアルにNuxt.jsで戦う #vuefes_reject
suusan2go
9
21k
rescue されない例外?! / A Exception not rescue #megurorb
suusan2go
0
2.9k
Rails サービスクラス再考 / have a rethink on Rails service class
suusan2go
8
11k
フロントエンドエンジニアも知っておきたいgRPC
suusan2go
18
11k
Flutterでアプリ作ってる話
suusan2go
2
2.9k
Nuxt.js + TypeScript = Great!
suusan2go
8
42k
ポストRailsとしてのKotlin + Spring Boot #m3kt
suusan2go
4
2.1k
gRPC on Spring Boot
suusan2go
0
2.9k
非SPAなRailsアプリでレールに乗りつつReactを使う話
suusan2go
6
7.7k
Other Decks in Programming
See All in Programming
少数精鋭エンジニアがフルスタック力を磨く理由 -そしてAI時代へ-
rebase_engineering
0
130
【TSkaigi 2025】これは型破り?型安全? 真実はいつもひとつ!(じゃないかもしれない)TypeScript クイズ〜〜〜〜!!!!!
kimitashoichi
1
300
iOSアプリ開発もLLMで自動運転する
hiragram
6
2.1k
Perlで痩せる
yuukis
1
660
人には人それぞれのサービス層がある
shimabox
3
460
TypeScript Language Service Plugin で CSS Modules の開発体験を改善する
mizdra
PRO
3
2.4k
Cloudflare Realtime と Workers でつくるサーバーレス WebRTC
nekoya3
0
230
TypeScript製IaCツールのAWS CDKが様々な言語で実装できる理由 ~他言語変換の仕組み~ / cdk-language-transformation
gotok365
7
380
複雑なフォームを継続的に開発していくための技術選定・設計・実装 #tskaigi / #tskaigi2025
izumin5210
12
6.3k
Interface vs Types ~型推論が過多推論~
hirokiomote
1
230
技術懸念に立ち向かい 法改正を穏便に乗り切った話
pop_cashew
0
750
Parallel::Pipesの紹介
skaji
2
870
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.2k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
BBQ
matthewcrist
88
9.7k
4 Signs Your Business is Dying
shpigford
183
22k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Agile that works and the tools we love
rasmusluckow
329
21k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
5
620
Become a Pro
speakerdeck
PRO
28
5.4k
The Straight Up "How To Draw Better" Workshop
denniskardys
233
140k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
460
Transcript
ͣͬͱRubyΛ͍ͬͯͨ ΤϯδχΞ͕Goʹೖ͠ ͯ࠳ંͯ͠࠶ઓͨ͠ 2017/6/5 GoݴޠLTେձʂ ʮ࠷ۙɺGoݴޠ࢝Ί·ͨ͠ʯͷձ @suzan2go
ࣗݾհ • גࣜձࣾΫϥυϫʔΫε • ླ݈ଠ (Twitter / GitHub @suzan2go) •
ࣄͰRuby / JavaScriptΛॻ͍͍ͯΔΞϓϦ έʔγϣϯΤϯδχΞ • 4݄͔ΒझຯͰGoݴޠΛͪΌΜͱ৮Γ࢝Ί·ͨ͠
None
ॻ͍ͯ·ͤΜ ผਓͰ͢
ࠓͷ RubyΛ͍ͬͯͨ ΤϯδχΞ͕GoΛ࢝Ίͯ Կʹ࠳ંͯ͠ Ͳ͏࠶ઓͯ͠͏·͍ͬͨ͘ ͔
Goݴޠͱͷग़ձ͍
Goݴޠͱͷग़ձ͍(20164݄)
Goݴޠͱͷग़ձ͍ • ಉ྅͕ͪΐͬͱ৮͍ͬͯͨͷͰ໊લ͘Β͍ͬ ͍ͯͨ • GAE / GoͷΈ߹Θͤੌ͍ʂʂ • ͪΐ͏Ͳ৽نࣄۀͷ্ཱͪ͛ʹؔΘ͍ͬͯͯͲΜ
ͳߏͰ࡞Δͷ͔ߟ͍͑ͯͨ • ͜Ε͔ΒGo͕དྷͦ͏ͩʂʂͳΜ͔࡞ͬͯΈΑʂ
࠳ંɾɾɾ
ഊҼ • GoݴޠͰRubyͷΑ͏ͳΦϒδΣΫτࢦΛ Ζ͏ͱͯ͠͠·ͬͨ • GoݴޠͰRubyͷΑ͏ʹָʹॻ͘ํ๏͕ͳ͍ ͔୳͠ٻΊͯ͠·ͬͨ
GoݴޠͰRubyͷΑ͏ͳΦϒδΣ ΫτࢦΛΖ͏ͱͯ͠͠·ͬͨ Ҿ༻ : GoͷΞϯνύλʔϯ http://golang.rdy.jp/2016/07/26/antiptn/
GoݴޠͰRubyͷΑ͏ʹָʹॻ͘ ํ๏͕ͳ͍͔୳͠ٻΊͯ͠·ͬͨ • Goےྗ͕…ͱ͍͏ͭʁ • λΠϓΛݮΒ͢Α͏ͳ͜ͱΛؤுΖ͏ͱ͢Δͱେମ ·ͬͨ • ࣌ɺʮ͜Εઈରͬͱָͳॻ͖ํ͋ΔͩΖʔ͆ʯͱԿ ͔ॻ͘ʹ୳͠ճͬͯ͠·ͬͨ…
• ݁ՌɺGoͩͱ͜͏ॻ͔͘͠ͳ͍ɺΈ͍ͨͳͱ͜Ζʹམͪ ண͍ͯɺ·ͬͨ͘ΞϓϦέʔγϣϯͷ։ൃਐ·ͳ͔ͬͨ
ͦͯ͠Ұ͘Βཱ͍ͬͨ ࠓͷ4݄ ཧ༝Ε͚ͨͲ Goݴޠ࠶ઓ
GitHubͰGoݴޠͷΞϓϦέʔ γϣϯΛ৭ʑݟͯΈΔ https://github.com/shohhei1126/bbs-go
Goݴޠͷઃܭʹ͍ͭͯͷهࣄΛ ৭ʑಡΜͰΈΔ http://www.alexedwards.net/blog/organising-database-access
Goݴޠͷઃܭʹ͍ͭͯͷهࣄΛ ৭ʑಡΜͰΈΔ http://deeeet.com/writing/2016/10/25/go-interface-testing/
GoʹैͬͯݟΔͱ ָ͘͠ͳͬͯ͘Δ
͜Μͳͱ͜Ζָ͕͍͠Ͱ͢Go • golintͰॻ͖ํΛڧ੍͞ΕΔͷͰ໎Θͳͯ͘ྑ͍(vs Ruby) • ܕ͕͋Δͷʹ(ΤσΟλͷαϙʔτ͕͋Δͷ͕͜Μͳʹ࠷ߴͱ)ɺ͔ͭίϯύΠϧ͕ ૣ͍ • σϑΝΫτͳWAFͱ͔͕·ͩͳ͍ɺ৭ʑࣗͰߟ͑ͳ͍͚ͯ͘ͳ͍ͷָ͕͍͠ (DBΞΫηεͲ͏͢ΔɺͲ͏͍͏ߏମ࡞Δ
etc) • GoDocੌ͍ɻখ͍͞ϓϩδΣΫτͰGoDocʹใ͕͋Δࣄ͕ଟ͍(golintͰίϝ ϯτͳ͍ͱౖΒΕΔ͔Βʁ) • ۪ʹॻ͘͜ͱ͕ٻΊΒΕΔ(ؾ͕͢Δ)ͷͰɺΓ͍ͨ͜ͱʹϑΥʔΧεͨ͠ίʔυ ʹͳΔ(ݸਓͷײͰ͢)
͜ΜͳΜ࡞ͬͯ·͢(झຯ)ᶃ • ՈఉهΞϓϦͷόοΫΤϯυAPI(·ͩࣗͷՈఉݶఆ ެ։) ͍ͬͯΔύοέʔδlabstack/echoɺjinzhu/gormͳͲ
͜ΜͳΜ࡞ͬͯ·͢(ࣄ)ᶄ • GitHubͷ͓আ͢Δͭ(ࠓͷͱ͜ΖReleasesΛফ͚ͩ͢…) ༻ύοέʔδ spf13/cobraɺgoogle/go-github ͳͲͳͲ
·ͱΊ • GoʹೖΕGoʹै͑ • ʮΦϒδΣΫτࢦݴޠʯͱ৭ʑҧ͏ͱ͜Ζଟ͍͜ͱΛೝΊΑ͏ • ָΛ͢Δ(͘ॻ͚Δ)Α͏ͳॻ͖ํΛؤு͕ͬͯ͢͞ΑΓɺ۪ʹॻ ͍͍ͯ͘΄͏͕݁ՌతʹΑ͍ίʔυʹͳΔؾ͕͢Δ(ݸਓͷײͰ ͢) •
ઌਓͷॻ͍ͨίʔυɾݟΛࢁࢀߟʹ͠Α͏ • GoʹैͬͯΈΔͱGoॻ͘ͷָ͘͠ͳͬͯ͘Δʂ
ࠓޙͷల •ͬͱࣄͰ Goݴޠͬͯ ͍͖͍ͨ