Submit Search
Upload
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
•
Download as PPTX, PDF
•
19 likes
•
11,380 views
Tadahiro Ishisaka
Follow
2015-01-31 Hokuriku.NET 勉強会 TLスライド まぁしゃれっすよしゃれ。
Read less
Read more
Software
Report
Share
Report
Share
1 of 19
Download now
Recommended
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
日本語テストメソッドについて
日本語テストメソッドについて
kumake
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
例外設計における大罪
例外設計における大罪
Takuto Wada
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
Takuto Wada
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
Recommended
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
日本語テストメソッドについて
日本語テストメソッドについて
kumake
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
例外設計における大罪
例外設計における大罪
Takuto Wada
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
Takuto Wada
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
増田 亨
Marp Tutorial
Marp Tutorial
Rui Watanabe
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
ソフトウェアにおける 複雑さとは何なのか?
ソフトウェアにおける 複雑さとは何なのか?
Yoshitaka Kawashima
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
イベント・ソーシングを知る
イベント・ソーシングを知る
Shuhei Fujita
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
masayoshi takahashi
テストコードの DRY と DAMP
テストコードの DRY と DAMP
Yusuke Kagata
Rustに触れて私のPythonはどう変わったか
Rustに触れて私のPythonはどう変わったか
ShunsukeNakamura17
Tackling Complexity
Tackling Complexity
Yoshitaka Kawashima
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
増田 亨
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
ドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったこと
増田 亨
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
増田 亨
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
Go入門
Go入門
Takuya Ueda
Go言語によるwebアプリの作り方
Go言語によるwebアプリの作り方
Yasutaka Kawamoto
More Related Content
What's hot
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
増田 亨
Marp Tutorial
Marp Tutorial
Rui Watanabe
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
ソフトウェアにおける 複雑さとは何なのか?
ソフトウェアにおける 複雑さとは何なのか?
Yoshitaka Kawashima
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
イベント・ソーシングを知る
イベント・ソーシングを知る
Shuhei Fujita
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
masayoshi takahashi
テストコードの DRY と DAMP
テストコードの DRY と DAMP
Yusuke Kagata
Rustに触れて私のPythonはどう変わったか
Rustに触れて私のPythonはどう変わったか
ShunsukeNakamura17
Tackling Complexity
Tackling Complexity
Yoshitaka Kawashima
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
増田 亨
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
ドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったこと
増田 亨
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
増田 亨
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
What's hot
(20)
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
Marp Tutorial
Marp Tutorial
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
ソフトウェアにおける 複雑さとは何なのか?
ソフトウェアにおける 複雑さとは何なのか?
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
イベント・ソーシングを知る
イベント・ソーシングを知る
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
テストコードの DRY と DAMP
テストコードの DRY と DAMP
Rustに触れて私のPythonはどう変わったか
Rustに触れて私のPythonはどう変わったか
Tackling Complexity
Tackling Complexity
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
ドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったこと
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Viewers also liked
Go入門
Go入門
Takuya Ueda
Go言語によるwebアプリの作り方
Go言語によるwebアプリの作り方
Yasutaka Kawamoto
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
私なりのGo言語のご紹介
私なりのGo言語のご紹介
Ryuji Iwata
エディタの壁を越えるGoの開発ツールの文化と作成法
エディタの壁を越えるGoの開発ツールの文化と作成法
Takuya Ueda
Go初心者向けハンズオン コマンドラインツールを作ろう
Go初心者向けハンズオン コマンドラインツールを作ろう
Takuya Ueda
TalknoteとGolang
TalknoteとGolang
leverages_event
20161004 DMM/エウレカ/インテリジェンス合同勉強会
20161004 DMM/エウレカ/インテリジェンス合同勉強会
Yusuke Komatsu
Talknoteとgolangと私
Talknoteとgolangと私
Kenyu Miura
[Golang] Go言語でサービス作ってる話
[Golang] Go言語でサービス作ってる話
株式会社YEBIS.XYZ
GoでMinecraftっぽいの作る
GoでMinecraftっぽいの作る
京大 マイコンクラブ
【初心者向け】Go言語勉強会資料
【初心者向け】Go言語勉強会資料
Yuji Otani
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
Takuya Ueda
ごちうさ Advent Calendar
ごちうさ Advent Calendar
yaplus
5分でわかる? 関数型 PHP の潮流
5分でわかる? 関数型 PHP の潮流
Yuya Takeyama
Windowsの画面スケーリングをきちんと理解しよう
Windowsの画面スケーリングをきちんと理解しよう
Yuya Yamaki
Go x Slack API
Go x Slack API
weddingpark
Go で Unit Test をやってみた
Go で Unit Test をやってみた
Masahiro Yanou
Microsoft Azure超超入門_20140412
Microsoft Azure超超入門_20140412
Sayaka Shimada
Teratail Study ~機械学習編#1~
Teratail Study ~機械学習編#1~
Kosuke Fujimoto
Viewers also liked
(20)
Go入門
Go入門
Go言語によるwebアプリの作り方
Go言語によるwebアプリの作り方
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
私なりのGo言語のご紹介
私なりのGo言語のご紹介
エディタの壁を越えるGoの開発ツールの文化と作成法
エディタの壁を越えるGoの開発ツールの文化と作成法
Go初心者向けハンズオン コマンドラインツールを作ろう
Go初心者向けハンズオン コマンドラインツールを作ろう
TalknoteとGolang
TalknoteとGolang
20161004 DMM/エウレカ/インテリジェンス合同勉強会
20161004 DMM/エウレカ/インテリジェンス合同勉強会
Talknoteとgolangと私
Talknoteとgolangと私
[Golang] Go言語でサービス作ってる話
[Golang] Go言語でサービス作ってる話
GoでMinecraftっぽいの作る
GoでMinecraftっぽいの作る
【初心者向け】Go言語勉強会資料
【初心者向け】Go言語勉強会資料
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
ごちうさ Advent Calendar
ごちうさ Advent Calendar
5分でわかる? 関数型 PHP の潮流
5分でわかる? 関数型 PHP の潮流
Windowsの画面スケーリングをきちんと理解しよう
Windowsの画面スケーリングをきちんと理解しよう
Go x Slack API
Go x Slack API
Go で Unit Test をやってみた
Go で Unit Test をやってみた
Microsoft Azure超超入門_20140412
Microsoft Azure超超入門_20140412
Teratail Study ~機械学習編#1~
Teratail Study ~機械学習編#1~
More from Tadahiro Ishisaka
Windowsでhaskell
Windowsでhaskell
Tadahiro Ishisaka
Windows環境でのgitまとめ(2016.8)
Windows環境でのgitまとめ(2016.8)
Tadahiro Ishisaka
Visual studioとそのライバル
Visual studioとそのライバル
Tadahiro Ishisaka
Windows環境でのgitまとめ(2016.1)
Windows環境でのgitまとめ(2016.1)
Tadahiro Ishisaka
Visual studio 2015 update1 ctpとcsi
Visual studio 2015 update1 ctpとcsi
Tadahiro Ishisaka
Git for windows情報アップデート 2014年10月5日
Git for windows情報アップデート 2014年10月5日
Tadahiro Ishisaka
クラウド・コンピューティング サバイバルガイド
クラウド・コンピューティング サバイバルガイド
Tadahiro Ishisaka
Esentのススメ
Esentのススメ
Tadahiro Ishisaka
ビジネス向けアプリケーションにこそ進めるMicro orm
ビジネス向けアプリケーションにこそ進めるMicro orm
Tadahiro Ishisaka
Jazug3周年lt deployブランチを追加してみましょう
Jazug3周年lt deployブランチを追加してみましょう
Tadahiro Ishisaka
Build insider offline session チームでのgit
Build insider offline session チームでのgit
Tadahiro Ishisaka
Hokuriku.net 2013 01-26 node.js
Hokuriku.net 2013 01-26 node.js
Tadahiro Ishisaka
Web matrix2とvisual studio
Web matrix2とvisual studio
Tadahiro Ishisaka
Sysprep
Sysprep
Tadahiro Ishisaka
開発から見たWindowsの国際化機能
開発から見たWindowsの国際化機能
Tadahiro Ishisaka
Shizudev git hub宿題
Shizudev git hub宿題
Tadahiro Ishisaka
Ossで作成するチーム開発環境
Ossで作成するチーム開発環境
Tadahiro Ishisaka
私はこの本でネットワークを学んだ
私はこの本でネットワークを学んだ
Tadahiro Ishisaka
Netduino
Netduino
Tadahiro Ishisaka
静岡Developers勉強会 第11回 第12章 遅延評価
静岡Developers勉強会 第11回 第12章 遅延評価
Tadahiro Ishisaka
More from Tadahiro Ishisaka
(20)
Windowsでhaskell
Windowsでhaskell
Windows環境でのgitまとめ(2016.8)
Windows環境でのgitまとめ(2016.8)
Visual studioとそのライバル
Visual studioとそのライバル
Windows環境でのgitまとめ(2016.1)
Windows環境でのgitまとめ(2016.1)
Visual studio 2015 update1 ctpとcsi
Visual studio 2015 update1 ctpとcsi
Git for windows情報アップデート 2014年10月5日
Git for windows情報アップデート 2014年10月5日
クラウド・コンピューティング サバイバルガイド
クラウド・コンピューティング サバイバルガイド
Esentのススメ
Esentのススメ
ビジネス向けアプリケーションにこそ進めるMicro orm
ビジネス向けアプリケーションにこそ進めるMicro orm
Jazug3周年lt deployブランチを追加してみましょう
Jazug3周年lt deployブランチを追加してみましょう
Build insider offline session チームでのgit
Build insider offline session チームでのgit
Hokuriku.net 2013 01-26 node.js
Hokuriku.net 2013 01-26 node.js
Web matrix2とvisual studio
Web matrix2とvisual studio
Sysprep
Sysprep
開発から見たWindowsの国際化機能
開発から見たWindowsの国際化機能
Shizudev git hub宿題
Shizudev git hub宿題
Ossで作成するチーム開発環境
Ossで作成するチーム開発環境
私はこの本でネットワークを学んだ
私はこの本でネットワークを学んだ
Netduino
Netduino
静岡Developers勉強会 第11回 第12章 遅延評価
静岡Developers勉強会 第11回 第12章 遅延評価
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
1.
関数型・オブジェクト指向 宗教戦争に疲れたあなたに送る Go言語のススメ 石坂忠広 http://opcdiary.net
2.
自己紹介 • プロフィールは適当にWindows GitとかVisual
Studio Gitで検索してく ださい。トップに出てきません。 • 富士山の方から来ました。 • オブジェクト指向スキーなSEです。 • 純粋関数型なんてわかりませんと思っていたら、純粋関数型の人も あんまりわかってなかったみたいな感じで何なんだったんだこの一ヶ 月みたいな感じです。ま、傍観者ですが。 • ま、あと、オブジェクト指向も流派が分かれるので一緒にするな。
3.
疲れました。。。 • 総称性の議論とか • クラス、オブジェクト、そもそもJavaScriptのあれはとか •
副作用?副作用? • 圏論?はぁ?それがお前の言う圏論の議論なの? • 別に関数型とオブジェクト指向とか相反しないし • OCamlとF#に謝れとか • まぁ、原理主義者相手にしてると疲れますよね
4.
そんな疲れたアナタに朗報です
5.
Go言語でリフレッシュしましょう!
6.
Go言語には議論を呼ぶ 以下のものがありません • クラス、オブジェクト、継承、オーバーライド • Generics(総称性)構文 •
関数型原理主義者の嫌う、擬似関数型現機能、ラムダ式 • While/Do While/Foreach • モナド?圏論?とか面倒くさいこと言う厨二
7.
争いの起きる余地なし!!
8.
Go言語の特徴 • 手続き型の高級言語 • ロブ・パイク、ケン・トンプソンが開発に関わっている •
ALGOL, Pascal, Cのような構文 • コンパイル言語 • クロスコンパイルが得意(Linux/Darwin(Mac)/BSD/Solaris/Windows/Plan 9) • 実行動作ランタイムなどない! • メモリ管理はGCに一任 • 連想配列を持つ • 型の継承、ジェネリックプログラミング、アサーション、オーバーロードと いった機能は無いが、インターフェイスによるポリモーフィズムはある(そ れなんてVB) • 並行動作の支援機能
9.
Hello World package main import
"fmt“ func main() { fmt.Printf("Hello, World¥n") }
10.
;(セミコロン)がない!!! • 中括弧言語のくせにセミコロンがない! • 無いのではなく、コンパイラが構文解釈して適宜挿入するの で省略できている。(文末解析出れば人が入れること無い じゃん) •
以下のような場合は必要。 • for i := 0; i < 10; i++ {} (for文のイニシャライザ) • 1行に複数の文を記述したい場合
11.
;以外もC/C#/Java違うところが多いよ • 代入演算子が := •
for, if にカッコを付けない • 変数の型指定が変数の後 • var n int • var err os.Error • Asはいらない • while / do whileが無い。ロブ・パイク大先生もforで十分だと。 • ポインタがある。 • C++プログラマ向けGo講座を見よ
12.
ま、ゆるふわな言語です。
13.
実践Go言語 Go言語を勉強したくなったらこのサイトを見よう
14.
はじめかた • http://golang-jp.org/ から始めましょう •
ここのトップページのDownload Goをクリック • Linux/BSD/OS X/WindowsはこれでOK • リンク先ページ書きの注意書きを読みましょう • Solarisの人はパッケージがあるはず • チュートリアル • A Tour of Goでひと通りの構文を学習できます。 • WEBで完結しているので何かをインストールする必要なし • http://go-tour-jp.appspot.com/#1
15.
開発環境 • CLI主義 • コンソールウインドウを黒い画面とか言うゆとりはPHPでも使ってろ!! •
コード整形 • コンパイラがその機能を内蔵 go fmt <ソースコードファイル> • 複数のコーディングスタイルとか許してやんない→議論の余地なし • エディタ • Vim, Emacs, Atom等でGo用に構文のハイライトや、コード整形、コード補完の 機能を提供するプラグインがあるよ • IDE • LiteIDEが優秀 • InteliJ IDEAもがんばっているっぽい
16.
何に向いているか? • Goole App
Engine(GAE)でのアプリケーション展開 • WEBアプリケーション • UNIXwayなコマンドラインツール、且つクロス環境で動作して欲しい場合 • クロスコンパイル機能が非常に優秀で、実行ファイルがあればライブラリのポート とかも必要ない。Linux上でMac用、Windows用のバイナリも作成可 • 個人的におすすめ • GUIはあんまり得意じゃない
17.
何より • Gopherが可愛い(*´∀`) https://golang.org/doc/gopher/
18.
お前じゃない
19.
ご清聴ありがとございました。
Editor's Notes
ロブ パイクはUNIX/Plan 9の開発者でプログラミング作法の共著者 もう一人はカーニハン。 ケン・トンプソンはUNIX、C言語の揮発者。 あと、お前らの大好きなUTF-8を作ったのがこの二人だ。
Download now