Enviar búsqueda
Cargar
Go言語ハンズオン資料flagパッケージを使ってみる
•
Descargar como PPTX, PDF
•
1 recomendación
•
774 vistas
Y
yoshito funayose
Seguir
https://connpass.com/event/62011/
Leer menos
Leer más
Ingeniería
Denunciar
Compartir
Denunciar
Compartir
1 de 25
Descargar ahora
Recomendados
PHPの拡張モジュールをGoで作る
PHPの拡張モジュールをGoで作る
Yoshio Hanawa
PHP7の拡張モジュール事情
PHP7の拡張モジュール事情
Yoshio Hanawa
php-buildがいかに便利かを力説する
php-buildがいかに便利かを力説する
Yoshio Hanawa
PHPNGの動向
PHPNGの動向
Yoshio Hanawa
PHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイント
Yoshio Hanawa
PHP7の内部実装から学ぶ性能改善テクニック
PHP7の内部実装から学ぶ性能改善テクニック
Yoshio Hanawa
PHP7はなぜ速いのか
PHP7はなぜ速いのか
Yoshio Hanawa
PHP カンファレンス福岡 参加報告
PHP カンファレンス福岡 参加報告
y-uti
Recomendados
PHPの拡張モジュールをGoで作る
PHPの拡張モジュールをGoで作る
Yoshio Hanawa
PHP7の拡張モジュール事情
PHP7の拡張モジュール事情
Yoshio Hanawa
php-buildがいかに便利かを力説する
php-buildがいかに便利かを力説する
Yoshio Hanawa
PHPNGの動向
PHPNGの動向
Yoshio Hanawa
PHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイント
Yoshio Hanawa
PHP7の内部実装から学ぶ性能改善テクニック
PHP7の内部実装から学ぶ性能改善テクニック
Yoshio Hanawa
PHP7はなぜ速いのか
PHP7はなぜ速いのか
Yoshio Hanawa
PHP カンファレンス福岡 参加報告
PHP カンファレンス福岡 参加報告
y-uti
PHPerがgolangでもがいてる話@第1回 関西Golang勉強会
PHPerがgolangでもがいてる話@第1回 関西Golang勉強会
Keisuke Utsumi
Goをえらんだ理由
Goをえらんだ理由
Tatsumi Naganuma
zval をダイエットしてみた
zval をダイエットしてみた
Yoshio Hanawa
CakePHPとYii_エンジニア勉強会20130820
CakePHPとYii_エンジニア勉強会20130820
エンジニア勉強会 エスキュービズム
Zend OPcacheの速さの秘密を探る
Zend OPcacheの速さの秘密を探る
Yoshio Hanawa
WordPress 多言語化プラグインqTranslateの紹介
WordPress 多言語化プラグインqTranslateの紹介
Takashi Uemura
PHP カンファレンス福岡 2017 参加報告
PHP カンファレンス福岡 2017 参加報告
y-uti
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
terurou
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
Yoshitaka Kawashima
安全なテーマ作成のためのPHPの知識
安全なテーマ作成のためのPHPの知識
Fumito Mizuno
anyenv + phpenv + php-build が便利すぎる件
anyenv + phpenv + php-build が便利すぎる件
y-uti
なれる! Debian開発者 〜 45分でわかる? メンテナ入門
なれる! Debian開発者 〜 45分でわかる? メンテナ入門
Hideki Yamane
PHPの今とこれから2015
PHPの今とこれから2015
Rui Hirokawa
JIT for PHP を試した
JIT for PHP を試した
y-uti
Chrome-eject がこの先生きのこるには
Chrome-eject がこの先生きのこるには
Yosuke HASEGAWA
デザイナーのためのはじめてPHP ~Codex、どう使いこなす?~
デザイナーのためのはじめてPHP ~Codex、どう使いこなす?~
takenao
OSC Kansai@Kyoto
OSC Kansai@Kyoto
Hiroshi Bunya
Windows で PHP をビルドしてみた
Windows で PHP をビルドしてみた
y-uti
Go言語オーバービュー201507
Go言語オーバービュー201507
エンジニア勉強会 エスキュービズム
「あなた」と オープンソース/フリーソフトウェア、 そして「Debian」
「あなた」と オープンソース/フリーソフトウェア、 そして「Debian」
Hideki Yamane
遅いクエリと向き合う仕組み #CybozuMeetup
遅いクエリと向き合う仕組み #CybozuMeetup
S Akai
GAになったGolangでCDKを触ってみよう
GAになったGolangでCDKを触ってみよう
Atsushi Umakatsu
Más contenido relacionado
La actualidad más candente
PHPerがgolangでもがいてる話@第1回 関西Golang勉強会
PHPerがgolangでもがいてる話@第1回 関西Golang勉強会
Keisuke Utsumi
Goをえらんだ理由
Goをえらんだ理由
Tatsumi Naganuma
zval をダイエットしてみた
zval をダイエットしてみた
Yoshio Hanawa
CakePHPとYii_エンジニア勉強会20130820
CakePHPとYii_エンジニア勉強会20130820
エンジニア勉強会 エスキュービズム
Zend OPcacheの速さの秘密を探る
Zend OPcacheの速さの秘密を探る
Yoshio Hanawa
WordPress 多言語化プラグインqTranslateの紹介
WordPress 多言語化プラグインqTranslateの紹介
Takashi Uemura
PHP カンファレンス福岡 2017 参加報告
PHP カンファレンス福岡 2017 参加報告
y-uti
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
terurou
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
Yoshitaka Kawashima
安全なテーマ作成のためのPHPの知識
安全なテーマ作成のためのPHPの知識
Fumito Mizuno
anyenv + phpenv + php-build が便利すぎる件
anyenv + phpenv + php-build が便利すぎる件
y-uti
なれる! Debian開発者 〜 45分でわかる? メンテナ入門
なれる! Debian開発者 〜 45分でわかる? メンテナ入門
Hideki Yamane
PHPの今とこれから2015
PHPの今とこれから2015
Rui Hirokawa
JIT for PHP を試した
JIT for PHP を試した
y-uti
Chrome-eject がこの先生きのこるには
Chrome-eject がこの先生きのこるには
Yosuke HASEGAWA
デザイナーのためのはじめてPHP ~Codex、どう使いこなす?~
デザイナーのためのはじめてPHP ~Codex、どう使いこなす?~
takenao
OSC Kansai@Kyoto
OSC Kansai@Kyoto
Hiroshi Bunya
Windows で PHP をビルドしてみた
Windows で PHP をビルドしてみた
y-uti
Go言語オーバービュー201507
Go言語オーバービュー201507
エンジニア勉強会 エスキュービズム
「あなた」と オープンソース/フリーソフトウェア、 そして「Debian」
「あなた」と オープンソース/フリーソフトウェア、 そして「Debian」
Hideki Yamane
La actualidad más candente
(20)
PHPerがgolangでもがいてる話@第1回 関西Golang勉強会
PHPerがgolangでもがいてる話@第1回 関西Golang勉強会
Goをえらんだ理由
Goをえらんだ理由
zval をダイエットしてみた
zval をダイエットしてみた
CakePHPとYii_エンジニア勉強会20130820
CakePHPとYii_エンジニア勉強会20130820
Zend OPcacheの速さの秘密を探る
Zend OPcacheの速さの秘密を探る
WordPress 多言語化プラグインqTranslateの紹介
WordPress 多言語化プラグインqTranslateの紹介
PHP カンファレンス福岡 2017 参加報告
PHP カンファレンス福岡 2017 参加報告
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
安全なテーマ作成のためのPHPの知識
安全なテーマ作成のためのPHPの知識
anyenv + phpenv + php-build が便利すぎる件
anyenv + phpenv + php-build が便利すぎる件
なれる! Debian開発者 〜 45分でわかる? メンテナ入門
なれる! Debian開発者 〜 45分でわかる? メンテナ入門
PHPの今とこれから2015
PHPの今とこれから2015
JIT for PHP を試した
JIT for PHP を試した
Chrome-eject がこの先生きのこるには
Chrome-eject がこの先生きのこるには
デザイナーのためのはじめてPHP ~Codex、どう使いこなす?~
デザイナーのためのはじめてPHP ~Codex、どう使いこなす?~
OSC Kansai@Kyoto
OSC Kansai@Kyoto
Windows で PHP をビルドしてみた
Windows で PHP をビルドしてみた
Go言語オーバービュー201507
Go言語オーバービュー201507
「あなた」と オープンソース/フリーソフトウェア、 そして「Debian」
「あなた」と オープンソース/フリーソフトウェア、 そして「Debian」
Similar a Go言語ハンズオン資料flagパッケージを使ってみる
遅いクエリと向き合う仕組み #CybozuMeetup
遅いクエリと向き合う仕組み #CybozuMeetup
S Akai
GAになったGolangでCDKを触ってみよう
GAになったGolangでCDKを触ってみよう
Atsushi Umakatsu
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
Kazuto Kusama
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
DIVE INTO CODE Corp.
Livlisのcakephp事例
Livlisのcakephp事例
Masahiro Saito
職場で使用しているOSSの開発に参加してみた!
職場で使用しているOSSの開発に参加してみた!
infinite_loop
OSC福岡 20111203
OSC福岡 20111203
Hiroshi Bunya
2016-11-28 開発・改善ワークフローにおけるDeployGate利用方法
2016-11-28 開発・改善ワークフローにおけるDeployGate利用方法
João Orui
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
DIVE INTO CODE Corp.
テックリンク資料20170529
テックリンク資料20170529
yoshito funayose
Java scriptの進化
Java scriptの進化
maruyama097
Stripeを1年使ってみて思ったこと
Stripeを1年使ってみて思ったこと
tomoaki koshi
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
infinite_loop
HTML5 アプリ開発
HTML5 アプリ開発
tomo_masakura
Softlayer_bluemix-summit
Softlayer_bluemix-summit
Shuichi Yukimoto
Rubyプログラミング教育に対する取り組みと事例紹介
Rubyプログラミング教育に対する取り組みと事例紹介
Yasushi Ishikawa
KLabのゲーム開発を支える開発環境
KLabのゲーム開発を支える開発環境
KLab Inc. / Tech
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
Study Group by SciencePark Corp.
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
parrotstudio
nanapiにおける継続的インテグレーション
nanapiにおける継続的インテグレーション
晃 遠山
Similar a Go言語ハンズオン資料flagパッケージを使ってみる
(20)
遅いクエリと向き合う仕組み #CybozuMeetup
遅いクエリと向き合う仕組み #CybozuMeetup
GAになったGolangでCDKを触ってみよう
GAになったGolangでCDKを触ってみよう
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
Livlisのcakephp事例
Livlisのcakephp事例
職場で使用しているOSSの開発に参加してみた!
職場で使用しているOSSの開発に参加してみた!
OSC福岡 20111203
OSC福岡 20111203
2016-11-28 開発・改善ワークフローにおけるDeployGate利用方法
2016-11-28 開発・改善ワークフローにおけるDeployGate利用方法
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
テックリンク資料20170529
テックリンク資料20170529
Java scriptの進化
Java scriptの進化
Stripeを1年使ってみて思ったこと
Stripeを1年使ってみて思ったこと
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
HTML5 アプリ開発
HTML5 アプリ開発
Softlayer_bluemix-summit
Softlayer_bluemix-summit
Rubyプログラミング教育に対する取り組みと事例紹介
Rubyプログラミング教育に対する取り組みと事例紹介
KLabのゲーム開発を支える開発環境
KLabのゲーム開発を支える開発環境
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
nanapiにおける継続的インテグレーション
nanapiにおける継続的インテグレーション
Go言語ハンズオン資料flagパッケージを使ってみる
1.
7/26開催 Go言語初心者向け ハンズオン 株式会社リンクバル 技術部 技術グループ
船寄良登
2.
1 自己紹介 2 はじめに 3
Go言語について 4 Go言語を使うメリット 5 開発環境セットアップ 6 flagパッケージを使ってcliツールを作ってみる(導入編) 7 flagパッケージを使ってcliツールを作ってみる(csvファイルをdbへinsertする) 8 flagパッケージを使ってcliツールを作ってみる(csvファイルを並列でdbへinsertする) 9 弊社のご紹介 10 最後に アジェンダ 2
3.
自己紹介 3 船寄 良登 (ふなよせ
よしと) 経歴: 受託開発会社、広告代理店などでサーバサイドエンジニアとして、 webサービスの開発をおこなってきました。 これまでPHPerでしたが、最近、Railsを本格的に触り始めました。 リンクバルでは「街コンジャパン」の開発を担当しています。 趣味: 美味しい物を食べること、子供と遊ぶこと。 その他: Go言語に興味があります。Hatchobori.goというGo言語のもくもく会を立 ち上げました。https://hatchobori-go.connpass.com/
4.
今回のハンズオンではCSVファイルを一行づつ読み込み、 MySQLへinsertする、簡単なCLIツールを作成します。 はじめに 4
5.
Go言語について 5 2009年にGoogle社が発表したプログラミング言語です。 現在の最新バージョンは1.8.3、つい先日「Go 2」の基本方針について発表されました。 マコット・キャラクターはGopher(ホリネズミ) The Go
gopher was designed by Renee French. (http://reneefrench.blogspot.com/)
6.
・シンプルな言語仕様 => 言語習得までの期間短縮 ・クロスコンパイル機能 => 標準の関数のみであれば、ほとんど環境の差異をきにする必要がない。 ex:
Windowsで作ったCLIツールをMacで実行する ・OSへの非依存 => 各種OSに標準的に備わっているAPIなどは利用せず、自前で実装している。 ・処理速度がはやい => ネイティブコードとして実行されるので、 VMやインタプリタ言語と比較して、オーバーヘッドが少ない。 Go言語を使うメリット 6
7.
Go言語を使うメリット 7 ・並列処理が簡単に書ける => goroutineとchannelを組み合わせることにより、シンプルかつ、 効率的に並列処理を書くことができる。 ・デプロイは、シングルバイナリをアップロードするだけ => デプロイが簡単 ・golint、gofmtでコーディング規約が担保できる =>
無用なコーディングルールの討論がなくなる。 コードが綺麗な状態を保てる。 ・標準ライブラリある程度が充実している ・ガーベジコレクション
8.
今回のハンズオンでは環境依存などを防ぐために 下記のURLからダウンロードをお願いします。 https://store.docker.com/editions/community/docker-ce-desktop-mac 開発環境セットアップ 8
9.
dockerを起動します。 クジラのマークが表示されれば起動完了です。 1.開発環境セットアップ 9
10.
CLIを利用するので、ターミナルを起動し、3つのタブを開きます。(⌘+T) ハンズオンの中では左から、1番のタブ、2番のタブ、3番のタブと呼びます。 開発環境セットアップ 10
11.
開発環境セットアップ 11 1番のタブで、下記のgitリポジトリをローカルの任意の場所へcloneし、 クローンしてきたディレクトリへcdしてください。 2番と3番のタブも1番と同じカレントディレクトリになるように、 cdをお願いします。 git clone https://github.com/funayoseyoshito/techlink-go cd
techlink-go
12.
1番のタブでコンテナを起動させます。 上記のコマンドを実行すると、今回はappとdbというコンテナが起動します。 app上にはGo言語の環境が、dbにはMySQLが準備されています。 開発環境セットアップ 12 docker-compose up -d docker-compose
ps
13.
appとdbのコンテナの中に入っておきましょう。 ・2番のタブでappへ入る ・3番のタブでdbへ入る 開発環境セットアップ 13 docker-compose exec app
bash cd /go/src/github.com/techlink/cli docker-compose exec db bash mysql -uroot -proot
14.
hello wold ・初めから準備されているコード(hello world)を実行してみましょう。 2番目のタブで下記コマンドを実行します。 開発環境セットアップ 14 go
run main.go
15.
go runで実行しましたが、Go言語はコンパイル言語です。 コンパイルするには下記のコマンドを使用します。 また、ファイル名を指定する場合は下記のように実行します。 go run
を実行すると、コンパイル後の実行ファイルは出力せず、 コンパイルして、実行だけ行うコマンドになります。 開発環境セットアップ 15 go build main.go go build -o upload_csv main.go
16.
flagパッケージを使ってcliツールを作ってみる(導入編) 16 ・main.goを下記のソースに書き換えましょう。 1番のタブでcdする main.goを下記のコードに書き換えます https://gist.github.com/funayoseyoshito/f5a206a9dd1b6d32d372b157d6e68d0d cd app/
17.
flagパッケージを使ってcliツールを作ってみる(導入編) 17 ・2番のタブでmain.goを実行してみましょう go run main.go go
run main.go -type p go run main.go -help
18.
・tableを作成します。3番のタブで下記を入力します。 flagパッケージを使ってcliツールを作ってみる (csvファイルをdbへinsertする) 18 use app; CREATE TABLE
`users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `age` int(11), `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, `deleted_at` timestamp NULL DEFAULT NULL, PRIMARY KEY (`id`), KEY `idx_users_deleted_at` (`deleted_at`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; show columns from users;
19.
・外部パッケージをインストールします。 2番のタブで下記のコマンドを実行します。 ・1番のタブでmain.goを下記のソースに書き換えましょう。 https://gist.github.com/funayoseyoshito/915e9336a0e40b79d334d4fbddc8c12f 19 flagパッケージを使ってcliツールを作ってみる (csvファイルをdbへinsertする) go get -u
github.com/jinzhu/gorm go get github.com/go-sql-driver/mysql
20.
・プログラムを実行する 2番のタブ下記のコマンドを実行すると、予め準備してあるcsvファイルから一行 づつ読み込み、DBへinsertします。 ↑user.csvファイル、名前と年齢の組み合わせで10,000行ある。 flagパッケージを使ってcliツールを作ってみる (csvファイルをdbへinsertする) 20 go run main.go
21.
・外部パッケージをインストールします。 2番のタブで下記のコマンドを実行します。 ・1番のタブで、main.goを下記のソースに書き換えましょう。 https://gist.github.com/funayoseyoshito/01d0bf2dcbceaaa340c3900f560d2eae ・2番のタブで実行します。 flagパッケージを使ってcliツールを作ってみる (csvファイルを並列でdbへinsertする) 21 go get golang.org/x/net/context go
run main.go -type p
22.
最後に 22 本日はお忙しい中、弊社の勉強会にご参加いただきまして、ありがとうございました。 これからも、有意義な勉強会を開催できるように努めますので、どうぞよろしくお願いします。 最後に、弊社ではエンジニア職を絶賛募集中です。 弊社に興味がある方、は是非、スタッフまでお声かけくださいませ。 また、お知り合いでご転職をお考えの方がいらっしゃいましたら、 弊社の事をお伝えいただけましたら幸いです。 [採用ページ] http://linkbal.co.jp/recruit/ [エンジニアブログ] http://tech.linkbal.co.jp/ どうもありがとうございました。
23.
23 街コンジャパン https://machicon.jp ・日本初のイベント特化型ECサイト ・4万件以上の街コン・パーティー情報を掲載 ・会員数約100万⼈(2017年7月現在)
24.
24 カップリンク https://couplink.jp/ 恋活・婚活 マッチングアプリ
25.
Hatchobori.go https://hatchobori-go.connpass.com/event/63145/ ・Go言語のコミュニティを立ち上げました。 ・主にもくもく会がメインです。 ・参加者絶賛募集中ですので、 こちらもよろしくお願いします。 最後に その2 25
Descargar ahora