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
460
Go言語入門
akane
August 26, 2017
Tweet
Share
More Decks by akane
See All by akane
未経験エンジニアがエンジニアリングマネージャーになるまで
akane256
1
860
JavaScriptでチャットCLIツール作成
akane256
1
560
Cloud Vision API × Go言語で画像認識やってみました
akane256
0
210
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
1
3.3k
Bash Introduction
62gerente
604
210k
In The Pink: A Labor of Love
frogandcode
137
21k
The MySQL Ecosystem @ GitHub 2015
samlambert
242
12k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
185
15k
10 Git Anti Patterns You Should be Aware of
lemiorhan
644
57k
The Mythical Team-Month
searls
214
42k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
1
1.2k
Debugging Ruby Performance
tmm1
68
11k
Building Your Own Lightsaber
phodgson
97
5.6k
Pencils Down: Stop Designing & Start Developing
hursman
115
11k
What the flash - Photography Introduction
edds
64
11k
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言語の構文について とても丁寧にわかりやすく 解説している いろいろなところで おすすめされている本
ありがとうございました