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
初めてGoで開発して思ったこと
Search
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
160
Other Decks in Programming
See All in Programming
リアルな遅延を測る仕様
kota_yata
1
120
30年振りにコンパイラの定数整数除算を改善した
herumi
9
3.9k
Discordを用いたラボオートメーション関連情報収集の自動化
noguhiro2002
0
340
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
360
KotlinConf Extended South Korea 2026 Keynote
l2hyunwoo
0
120
freeeにおけるEvalsの実践例の紹介
freee
PRO
0
140
Building a Meta Ray-Ban display app
akkeylab
0
170
進化を続けるGo toolsの現在地 / The Current State of Ever-Evolving Go Tools
hond0413
0
250
全PRの83%がAIレビューだけでマージできるようになった開発組織はその後どうなったか
athug
1
2k
<title><a id="</title>君はこのHTMLをパースできるか"></a></title> #雑LT_study
pizzacat83
0
170
生成AI導入の「期待外れ」を乗り越える ー 開発フロー改革が目指す、真の組織変革
starfish719
0
5.1k
メールのエイリアス機能を履き違えない
isshinfunada
0
250
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
100
6.2k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.4k
Into the Great Unknown - MozCon
thekraken
41
2.7k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
210
Amusing Abliteration
ianozsvald
1
260
Bash Introduction
62gerente
615
220k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
360
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
970
Discover your Explorer Soul
emna__ayadi
2
1.3k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
550
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や明らかなエラーに 気づけるのが嬉しい