$30 off During Our Annual Pro Sale. View Details »
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
12k
フロントエンドエンジニアも知っておきたい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
3.1k
非SPAなRailsアプリでレールに乗りつつReactを使う話
suusan2go
6
7.8k
Other Decks in Programming
See All in Programming
認証・認可の基本を学ぼう前編
kouyuume
0
260
認証・認可の基本を学ぼう後編
kouyuume
0
250
AI Agent Dojo #4: watsonx Orchestrate ADK体験
oniak3ibm
PRO
0
110
AI Agent Tool のためのバックエンドアーキテクチャを考える #encraft
izumin5210
2
590
Cap'n Webについて
yusukebe
0
150
FluorTracer / RayTracingCamp11
kugimasa
0
250
AIエージェントの設計で注意するべきポイント6選
har1101
5
2k
Cell-Based Architecture
larchanjo
0
140
公共交通オープンデータ × モバイルUX 複雑な運行情報を 『直感』に変換する技術
tinykitten
PRO
0
160
愛される翻訳の秘訣
kishikawakatsumi
3
340
堅牢なフロントエンドテスト基盤を構築するために行った取り組み
shogo4131
8
2.5k
Navigating Dependency Injection with Metro
l2hyunwoo
1
170
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
130
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
400
How STYLIGHT went responsive
nonsquared
100
6k
Why Our Code Smells
bkeepers
PRO
340
57k
Mind Mapping
helmedeiros
PRO
0
38
How to train your dragon (web standard)
notwaldorf
97
6.4k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
66
How GitHub (no longer) Works
holman
316
140k
Navigating Team Friction
lara
191
16k
Designing Powerful Visuals for Engaging Learning
tmiket
0
180
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ݴޠͬͯ ͍͖͍ͨ