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
akane
August 26, 2017
0
500
Go言語入門
akane
August 26, 2017
Tweet
Share
More Decks by akane
See All by akane
未経験エンジニアがエンジニアリングマネージャーになるまで
akane256
1
890
JavaScriptでチャットCLIツール作成
akane256
1
610
Cloud Vision API × Go言語で画像認識やってみました
akane256
0
250
Featured
See All Featured
BBQ
matthewcrist
85
9.3k
Embracing the Ebb and Flow
colly
84
4.5k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Intergalactic Javascript Robots from Outer Space
tanoku
269
27k
Building an army of robots
kneath
302
43k
A designer walks into a library…
pauljervisheath
204
24k
Writing Fast Ruby
sferik
627
61k
GitHub's CSS Performance
jonrohan
1030
460k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.2k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
Mobile First: as difficult as doing things right
swwweet
222
8.9k
Documentation Writing (for coders)
carmenintech
65
4.4k
Transcript
Go言語入門 2017 08 26
@akane_256 Women Who Go Tokyo 共同オーガナイザー 自己紹介
Women Who Go Tokyo 都内で、月に1回集まってGoを勉強しています
Today’s Goal Go言語の特徴をしる Go言語楽しそうな雰囲気を感じる
アジェンダ • Go言語のなりたち • 特徴 • 導入事例 • まとめ
\ Go言語なりたち /
Goプロジェクトは Googleのあるソフトウェアシステムに 対する不満から生まれた
システムの一部をより複雑にすることによって 問題点を直すと ゆっくり、確実に プログラムの複雑性は増していく
None
徹底的な簡潔性
Go言語誕生
・表現力がある ・コンパイルと実行の両方で効率的 ・信頼性が高い ・頑強なプログラムを書くのに効果的 Go言語と付属ツールの目標
\ Go言語の特徴 /
• シンプル • 並行処理がかんたん • 標準パッケージが豊富 • 実行速度がはやい • 標準の規約がある
• とりあえずたのしい
シンプル 他の言語が持つ多くの機能を削り、意図的に言語仕様をシンプルにしている • classがない、継承がない • 例外がない • コンストラクタ、デストラクタがない • メソッド内に「this」がない
• ポインタ演算がない • 行末のセミコロンがない
平行処理がかんたん goroutine(ゴルーチン)と呼ばれる機能で並行プログラミングをサポート。 書き方も簡単で、関数の前に go をつけるだけ。かんたん。 ``` go func() ```
平行処理がかんたん たとえば 2秒かかる処理を、3回実行した時の処理速度 通常:2秒 x 3回 = 6秒 groutine:2秒 x
3回(並行) = 2秒!
標準パッケージが豊富 たとえば • osパッケージ osに関わる関数がまとまっている。mkdirやchmodなどunix風の設計。 • testingパッケージ Goパッケージの自動テストをサポートしてくれる。 パッケージ毎に機能が明確にまとまっていて、わかりやすい。
標準パッケージが豊富 パッケージの内容は、公式ドキュメントに載っている https://golang.org/pkg/
実行速度がはやい Goはコンパイラ言語で、スクリプト言語に比べて実行速度がはやい ※LIGさんのブログより引用
標準の規約がある たとえば 「インデントはタブ」などのコーディング規約がある。 また、コード整形をする go fmt コマンドがあり、自動で整形を行う。 プロジェクトごとにコーディング規約を徹底する必要がない!嬉しい!
とりあえず楽しい • 初学者がハマりやすいclassや継承、ポインタ演算がなく覚えやすい • 並行処理がかんたんで嬉しい • 標準パッケージが豊富なのでモジュール入れたりしなくても使える • 標準規約があり、自動で整形もしてくれるため書きやすく読みやすい •
Gopherくんが可愛くて、さらにたのしい
\ 導入事例 /
Dockerでも採用されてる!
\ まとめ /
まとめ • Go言語は、徹底的な簡潔性をもつ言語として誕生した • 言語仕様はシンプル • 標準パッケージが豊富 • 並行処理の記述がかんたん •
実行速度がはやい • 楽しい言語
\ 最後に /
参考文献 Go言語の構文について とても丁寧にわかりやすく 解説している いろいろなところで おすすめされている本
ありがとうございました