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
540
Go言語入門
akane
August 26, 2017
Tweet
Share
More Decks by akane
See All by akane
未経験エンジニアがエンジニアリングマネージャーになるまで
akane256
1
930
JavaScriptでチャットCLIツール作成
akane256
1
680
Cloud Vision API × Go言語で画像認識やってみました
akane256
0
280
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
BBQ
matthewcrist
89
10k
Navigating Weather and Climate Data
rabernat
0
140
30 Presentation Tips
portentint
PRO
1
250
Balancing Empowerment & Direction
lara
5
950
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
90
Paper Plane
katiecoart
PRO
0
48k
Unsuck your backbone
ammeep
672
58k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
64
53k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.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言語の構文について とても丁寧にわかりやすく 解説している いろいろなところで おすすめされている本
ありがとうございました