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.3k
ずっと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
22k
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
3k
Nuxt.js + TypeScript = Great!
suusan2go
8
42k
ポストRailsとしてのKotlin + Spring Boot #m3kt
suusan2go
4
2.2k
gRPC on Spring Boot
suusan2go
0
3k
非SPAなRailsアプリでレールに乗りつつReactを使う話
suusan2go
6
7.8k
Other Decks in Programming
See All in Programming
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
520
One Enishi After Another
snoozer05
PRO
0
180
iOSでSVG画像を扱う
kishikawakatsumi
0
180
Claude Agent SDK を使ってみよう
hyshu
0
1.5k
Reactive Thinking with Signals and the Resource API
manfredsteyer
PRO
0
120
Introduce Hono CLI
yusukebe
6
3.3k
Register is more than clipboard
satorunooshie
1
390
Blazing Fast UI Development with Compose Hot Reload (droidcon London 2025)
zsmb
0
450
Vue 3.6 時代のリアクティビティ最前線 〜Vapor/alien-signals の実践とパフォーマンス最適化〜
hiranuma
2
370
マンガアプリViewerの大画面対応を考える
kk__777
0
450
ノーコードからの脱出 -地獄のデスロード- / Escape from Base44
keisuke69
0
360
Amazon ECS Managed Instances が リリースされた!キャッチアップしよう!! / Let's catch up Amazon ECS Managed Instances
cocoeyes02
0
130
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
463
33k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Writing Fast Ruby
sferik
630
62k
Testing 201, or: Great Expectations
jmmastey
46
7.7k
Visualization
eitanlees
150
16k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
10
910
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
658
61k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Scaling GitHub
holman
463
140k
Stop Working from a Prison Cell
hatefulcrawdad
272
21k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Mobile First: as difficult as doing things right
swwweet
225
10k
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ݴޠͬͯ ͍͖͍ͨ