Slide 1

Slide 1 text

Go言語入門 2017 08 26

Slide 2

Slide 2 text

@akane_256 Women Who Go Tokyo 共同オーガナイザー 自己紹介

Slide 3

Slide 3 text

Women Who Go Tokyo 都内で、月に1回集まってGoを勉強しています

Slide 4

Slide 4 text

Today’s Goal Go言語の特徴をしる Go言語楽しそうな雰囲気を感じる

Slide 5

Slide 5 text

アジェンダ ● Go言語のなりたち ● 特徴 ● 導入事例 ● まとめ

Slide 6

Slide 6 text

\ Go言語なりたち /

Slide 7

Slide 7 text

Goプロジェクトは Googleのあるソフトウェアシステムに 対する不満から生まれた

Slide 8

Slide 8 text

システムの一部をより複雑にすることによって 問題点を直すと ゆっくり、確実に プログラムの複雑性は増していく

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

徹底的な簡潔性

Slide 11

Slide 11 text

Go言語誕生

Slide 12

Slide 12 text

・表現力がある ・コンパイルと実行の両方で効率的 ・信頼性が高い ・頑強なプログラムを書くのに効果的 Go言語と付属ツールの目標

Slide 13

Slide 13 text

\ Go言語の特徴 /

Slide 14

Slide 14 text

● シンプル ● 並行処理がかんたん ● 標準パッケージが豊富 ● 実行速度がはやい ● 標準の規約がある ● とりあえずたのしい

Slide 15

Slide 15 text

シンプル 他の言語が持つ多くの機能を削り、意図的に言語仕様をシンプルにしている ● classがない、継承がない ● 例外がない ● コンストラクタ、デストラクタがない ● メソッド内に「this」がない ● ポインタ演算がない ● 行末のセミコロンがない

Slide 16

Slide 16 text

平行処理がかんたん goroutine(ゴルーチン)と呼ばれる機能で並行プログラミングをサポート。 書き方も簡単で、関数の前に go をつけるだけ。かんたん。 ``` go func() ```

Slide 17

Slide 17 text

平行処理がかんたん たとえば 2秒かかる処理を、3回実行した時の処理速度 通常:2秒 x 3回 = 6秒 groutine:2秒 x 3回(並行) = 2秒!

Slide 18

Slide 18 text

標準パッケージが豊富 たとえば ● osパッケージ  osに関わる関数がまとまっている。mkdirやchmodなどunix風の設計。 ● testingパッケージ Goパッケージの自動テストをサポートしてくれる。 パッケージ毎に機能が明確にまとまっていて、わかりやすい。

Slide 19

Slide 19 text

標準パッケージが豊富 パッケージの内容は、公式ドキュメントに載っている https://golang.org/pkg/

Slide 20

Slide 20 text

実行速度がはやい Goはコンパイラ言語で、スクリプト言語に比べて実行速度がはやい ※LIGさんのブログより引用

Slide 21

Slide 21 text

標準の規約がある たとえば 「インデントはタブ」などのコーディング規約がある。 また、コード整形をする go fmt コマンドがあり、自動で整形を行う。 プロジェクトごとにコーディング規約を徹底する必要がない!嬉しい!

Slide 22

Slide 22 text

とりあえず楽しい ● 初学者がハマりやすいclassや継承、ポインタ演算がなく覚えやすい ● 並行処理がかんたんで嬉しい ● 標準パッケージが豊富なのでモジュール入れたりしなくても使える ● 標準規約があり、自動で整形もしてくれるため書きやすく読みやすい ● Gopherくんが可愛くて、さらにたのしい

Slide 23

Slide 23 text

\ 導入事例 /

Slide 24

Slide 24 text

Dockerでも採用されてる!

Slide 25

Slide 25 text

\ まとめ /

Slide 26

Slide 26 text

まとめ ● Go言語は、徹底的な簡潔性をもつ言語として誕生した ● 言語仕様はシンプル ● 標準パッケージが豊富 ● 並行処理の記述がかんたん ● 実行速度がはやい ● 楽しい言語

Slide 27

Slide 27 text

\ 最後に /

Slide 28

Slide 28 text

参考文献 Go言語の構文について とても丁寧にわかりやすく 解説している いろいろなところで おすすめされている本

Slide 29

Slide 29 text

ありがとうございました