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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Ryuichi KAWAMATA
December 04, 2019
Programming
860
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
初めてGoで開発して思ったこと
Ryuichi KAWAMATA
December 04, 2019
More Decks by Ryuichi KAWAMATA
See All by Ryuichi KAWAMATA
RubyMineでリファクタリング
rkmathi
0
1.9k
卒業研究のためのGit
rkmathi
0
170
Other Decks in Programming
See All in Programming
Security issues being discussed on Web Platforms
petamoriken
0
610
AIは賢い。でも実行環境は? CLIおじさんがAI時代に伝えたいこと ~ CLIおじさんがAI時代に伝えたいこと ~
curekoshimizu
1
230
20260828_品質と開発生産性を両立させる、AI時代のE2Eテストの考え方
magicpod
0
190
DynamoDBの基礎を振り返りながらベクトル検索機能を理解する
musan
3
280
週末にAI-DLCを本気で回したら$1,600溶けた
hbashimizu
0
130
Hono + Inertia + React で LP を構築した話
oukayuka
2
220
DroidKaigi 2026 「個人開発という実験場: Android エンジニアが手にする4つの自由」
slashnephy
0
230
巨大モノリシックアプリ モダン化大作戦
ktcryomm
0
550
AI Agent時代のリアーキテクチャ戦略と実践
hokaccha
7
3.7k
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
2
170
初心者DevRelとして参加者だった私が、DevRel Talks!#2に登壇するまでにしてきたこと
sokohirai
0
360
型解析で実現する Go の言語内 DSL / Conference に Go! タイムテーブルの歩き方 for Gophers
mazrean
0
140
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
400
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
280
The Cost Of JavaScript in 2023
addyosmani
55
10k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
For a Future-Friendly Web
brad_frost
183
10k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Prompt Engineering for Job Search
mfonobong
0
450
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
WCS-LA-2024
lcolladotor
0
820
Transcript
初めてGoで開発して 思ったこと golang.tokyo #28 Ryuichi KAWAMATA @rkmathi
アジェンダ • 自己紹介 • 業務でGoを使うためにやったこと • 初めてGoで開発して思ったこと
自己紹介 • Ryuichi KAWAMATA ◦ @rkmathi • 今までやってきたこと ◦ 2015年6月〜:
モバイルゲームのサーバサイド開発 ▪ ほとんど Ruby (Sinatra, Rails) ◦ 2016年12月〜: モバイルゲームのリアルタイム通信サーバ・クライアント SDK開発 ▪ ほとんど C++ ◦ 2019年4月〜: サーバサイド開発 ▪ 全部 Ruby (Rails)
自己紹介 • Ryuichi KAWAMATA ◦ @rkmathi • 今までやってきたこと ◦ 2015年6月〜:
モバイルゲームのサーバサイド開発 ▪ ほとんど Ruby (Sinatra, Rails) ◦ 2016年12月〜: モバイルゲームのリアルタイム通信サーバ・クライアント SDK開発 ▪ ほとんど C++ ◦ 2019年4月〜: サーバサイド開発 ▪ 全部 Ruby (Rails) ◦ 2019年9月〜: サーバサイド開発 ▪ Go
初めてのGo!
何から始めよう?
業務でGoを使うためにやったこと - まずは公式が提供している資料を読んでみるか - A Tour of Go : https://go-tour-jp.appspot.com/
- How to Write Go Code : https://golang.org/doc/code.html - Effective Go : https://golang.org/doc/effective_go.html - The Go Programming Language Specification https://golang.org/ref/spec - などなど...
言語仕様や書き方は 分かったつもりになったが、 実際のアプリケーションは どう書くのだろうか...
Gopher道場
Gopher道場 - 4週間、約2-3時間ずつ座学での講義 - 基本構文から、パッケージ、抽象化、テスタビリティ、ゴルーチン・チャネル、などなど … - tenntennさんの資料・講義内容が分かりやすい! - 直接質問させていただけるのもありがたかったです。
- + 宿題でガッツリGoのコードを書く練習ができる - 他の人の課題のコードレビューの様子が見えるので、それも勉強になる
Gopher道場 - 最終日は受講生によるLT大会 - oaas (Omikuji As A Service) というネタマイクローサビス
(?)を作ってみました
Gopher道場 - Goが初めてだった自分からすると、とても勉強になりました!! - (雑ですが、)「あのソースコードのこの部分はそういう理由でこう書いていたのか」のような感覚が ちょっとずつ身についてきた気がします。 - この会に参加される方はすでに Goをバリバリ使っているかもですが、、、 まだ参加していないなら、ぜひ参加されることをオススメします!!
初めてGoで開発して思ったこと - 今まではC++とRubyがメインでした - 言語そのものを貶める意図は全く無いです
初めてGoで開発して思ったこと - C++と比べて - 部分的な動作を確かめたくて、一部分をコメントアウトすると、 unused variable, unused importエラーが出ちゃう -
同じような処理を、異なる型に対して実行したいようなときに、 関数の引数・戻り値の型だけを直してコピペするのが面倒だった - 途中からは、一部を自動生成するようにしました - Go2のcontractsで楽になるのかも!? - (開発物の規模が違いますがそれでも)コンパイルが速いように感じる - C++ではCMakeを使ってて、Goはビルド設定をMakefileで書くの!? と最初は思ってしまったが、実際書いてみると記述量はかなり少なく 済むし、パッケージ管理がとても楽だった - 並行処理を書くときに、std::threadよりもgoroutineが簡単だった
初めてGoで開発して思ったこと - Rubyと比べて - JSONを扱うときに、structにマッピングする作業が大変 - JSONデータそのものがあれば、 JSON-to-Goのようなツールで楽できそうだが、 仕様(not JSON
schema)だけがあると難しそうだった、、、 - 記述量がどうしても多くなっちゃう - (今のところ)rubocopのようなlinterツールの設定をいじる必要がなく、 標準のgofmt, goimportsで十分 - 実行することなく、コンパイルの時点でtypoや明らかなエラーに 気づけるのが嬉しい