Go言語入門

60634ad393fd621271e4690c50d9dd50?s=47 akane
August 26, 2017
310

 Go言語入門

60634ad393fd621271e4690c50d9dd50?s=128

akane

August 26, 2017
Tweet

Transcript

  1. Go言語入門 2017 08 26

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

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

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

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

  6. \ Go言語なりたち /

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

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

  9. None
  10. 徹底的な簡潔性

  11. Go言語誕生

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

  13. \ Go言語の特徴 /

  14. • シンプル • 並行処理がかんたん • 標準パッケージが豊富 • 実行速度がはやい • 標準の規約がある

    • とりあえずたのしい
  15. シンプル 他の言語が持つ多くの機能を削り、意図的に言語仕様をシンプルにしている • classがない、継承がない • 例外がない • コンストラクタ、デストラクタがない • メソッド内に「this」がない

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

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

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

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

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

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

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

    Gopherくんが可愛くて、さらにたのしい
  23. \ 導入事例 /

  24. Dockerでも採用されてる!

  25. \ まとめ /

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

    実行速度がはやい • 楽しい言語
  27. \ 最後に /

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

  29. ありがとうございました