SlideShare a Scribd company logo
@k_nishijima
Hello worldの次の一歩
1
第2回Golang勉強会 in Okinawa ライトニングトーク
2016年5月21日 @k_nishijima
The gopher stickers was made by Takuya Ueda.
Licensed under the Creative Commons 3.0 Attributions license.
@k_nishijima
前回の勉強会に参加して
初めてgoを触ったひと〜?
その次に何をしました?
2
@k_nishijima
今回は
「HelloWorldの次の一歩」
を現在進行形でご報告します。
3
@k_nishijima
あんた誰?
4
西島 幸一郎 / にしじま こういちろう

アールスリーインスティテュート ソリューションアーキテクト
https://www.r3it.com

大阪の会社に所属、宜野湾の自宅から100%リモートワーク
okinawa.goのコアメンバー
JAWS−UG沖縄のコアメンバー
ハッカーズチャンプルー実行委員長
ご質問などあればFacebook/Twitterなどでお気軽に〜♪
@k_nishijima
nishijima.koichiro
@k_nishijima
おさらい・前回の勉強会でやったこと
✓ 「A Tour of Go」をみんなでやりました

✓ goとはあんまり関係ないけど

「楽しいエンジニアライフを送るために重要なこと」

発表しました
5
@k_nishijima
で、その後何やった?
6
๏ 改めて環境構築しなおした
๏ 小物ツール書いてみた
๏ 面白そうなライブラリを使ってみた
๏ 仕事で(無理やり)使う機会を作ってみた←イマココ
@k_nishijima
改めて環境構築
7
๏ ブラウザでやるツアーは卒業だ!
๏ go自体はbrewで入れてあったので省略
๏ Emacsで書くのをやめてAtomを入れてみた。

IDEっぽく補完も効いて素敵♪
参考URL
๏ http://www.songmu.jp/riji/entry/prepare-golang-development-environment-on-mac.html
๏ http://www.masakoha.com/archives/997 ←皆さんの先輩のmasaさんのブログw
@k_nishijima
改めて環境構築
8
๏ gore(goのREPL)素晴らしく便利です!
๏ https://www.gitignore.io/もお忘れなく!
gi go > .gitignore
gi emacs >> .gitignore
参考URL
๏ http://motemen.hatenablog.com/entry/2015/02/go-repl-gore
@k_nishijima
ハマりどころ(?)
9
๏ プロジェクトのソースディレクトリは

$GOPATH/src/github.com/k-nishijima/exampj/
とかになるよ(やたら深い)
๏ 別ディレクトリにも多分出来るけど調べてない
@k_nishijima
超小物ツール書いてみた
10
๏ エンジニアの皆さんなら、手元にNode.jsだの
perlだのScalaだの、いろいろな言語で書かれ
てるオレオレツール、いっぱいありますよね?
๏ 片っ端からgoで書き直したくなるけど我慢
参考URL
๏ https://gist.github.com/k-nishijima/e8171f50941393480176a76343f6d90c
@k_nishijima
超小物ツール書いてみた
11
๏ go build ソース.go して

出来たバイナリを /usr/local/bin/ に入れて使ってるw
๏ 「それdateコマンドで出来るじゃん」とか

言ってはいけない(๑•̀ ㅂ•́ )‫✧ﻭو‬
@k_nishijima
何が分かるか
12
๏ 基本的なこと
๏ コマンドライン引数の取り方、

ファイル入出力など、標準ライブラリの分布
๏ 明示的な型変換
などなど
参考URL:このレベルでは、およそ逆引きを見れば解決することが多い(^_^;)
๏ http://ashitani.jp/golangtips/index.html
@k_nishijima
面白そうなライブラリを使ってみた
13
๏ GitHubを見てると、興味深いものがいろいろある。ライセンスも
APL/MITが多い。オープンソース最高♪ オレも貢献したい!
๏ 例えば「go-chat-bot」
๏ でもこれ clone してきても、なんか上手くビルドできない・・・
参考URL:
๏ https://github.com/avelino/awesome-go
๏ https://github.com/go-chat-bot/bot
@k_nishijima
でも使うだけなら出来るよ!
14
参考URL:
๏ https://github.com/Masterminds/glide
๏ http://qiita.com/tienlen/items/8e192e68d6b18bec3b4a
๏ 依存モジュールの管理(Package Management)はいろいろな流儀がある模様
๏ 前回の@Tomohiroさんの資料ではgovendでしたが、ここではglideを使って
みる
๏ 自分のソースディレクトリ配下にvendorディレクトリができるの
で、.gitignore に追加をお忘れなく
@k_nishijima
おもむろにサンプルソースを貼って…
15
> $ cat botcmd.go
> package main
>
> import (
> "os"
>
> "github.com/go-chat-bot/bot/slack"
> _ "github.com/go-chat-bot/plugins/catfacts"
> _ "github.com/go-chat-bot/plugins/catgif"
> _ "github.com/go-chat-bot/plugins/chucknorris"
> // Import all the commands you wish to use
> )
> func main() {
> slack.Run(os.Getenv("SLACK_WESTBOT_TOKEN"))
> }
@k_nishijima
glide upするとvender以下に

ダウンロードしてきてくれる
16
> $ tree vendor/
> vendor/
> ├── github.com
> │   ├── go-chat-bot
> │   │   ├── bot
> │   │   │   ├── LICENCE
> │   │   │   ├── README.md
> │   │   │   ├── bot.go
@k_nishijima
詳細は公式のREADME.mdを
https://github.com/Masterminds/glide
17
@k_nishijima
ここまで来ると
18
๏ 基本的なことが少し分かって
๏ イケてるオープンソースのライブラリを利用して
コードを書くことが出来る様になる

そうしたら・・・次はどうする?
@k_nishijima
無理やり仕事で使ってみる
(^^)/
19
@k_nishijima
実例
20
๏ テキストファイル(UTF8のJSON)の置換処理
๏ 「普通ならperlだよねぇ」

๏ 何故か無理やりgoで書いてみる!
@k_nishijima
個人の感想であり効果・効能を示すものではありません。
21
@k_nishijima
他にもいろいろ
22
๏ Mac(linux)で書いてWindowsのお客様環境で
動かすバッチとか
๏ シングルバイナリ配布をフルに活かせる場面
はいろいろありそう
@k_nishijima
只今の課題:より良い例外処理
23
参考URL:
๏ http://blog.amedama.jp/entry/2015/10/11/123535
๏ http://qiita.com/ruiu/items/ff98ded599d97cf6646e
๏ 人類は if err != nil を何回書き続ければいい
のか・・・
๏ 「そういうものだ」と理解していくのか
๏ 別の綺麗な解があるのか
@k_nishijima
次はもう少し
レベルアップして
帰ってきたい!\(^o^)/オワタ
24

More Related Content

What's hot

愛媛で考えた「私のイキカタマニフェスト」
愛媛で考えた「私のイキカタマニフェスト」愛媛で考えた「私のイキカタマニフェスト」
愛媛で考えた「私のイキカタマニフェスト」
Takeshi Kakeda
 
kintoneの基礎知識とここ1年の主要アップデート情報
kintoneの基礎知識とここ1年の主要アップデート情報kintoneの基礎知識とここ1年の主要アップデート情報
kintoneの基礎知識とここ1年の主要アップデート情報
Sakae Saito
 
個人事業者でも活用できるkintone
個人事業者でも活用できるkintone個人事業者でも活用できるkintone
個人事業者でも活用できるkintone
Sakae Saito
 
Alexa Skill Contest LT資料
Alexa Skill Contest LT資料Alexa Skill Contest LT資料
Alexa Skill Contest LT資料
Koichiro Nishijima
 
30分で知るTwilio 2016
30分で知るTwilio 201630分で知るTwilio 2016
30分で知るTwilio 2016
Sakae Saito
 
これをマスターして初心者脱出!-kintoneチョイ技10選- [cybozu.com conference 2015 大阪 K-2]
これをマスターして初心者脱出!-kintoneチョイ技10選- [cybozu.com conference 2015 大阪 K-2]これをマスターして初心者脱出!-kintoneチョイ技10選- [cybozu.com conference 2015 大阪 K-2]
これをマスターして初心者脱出!-kintoneチョイ技10選- [cybozu.com conference 2015 大阪 K-2]
JOYZO
 
VRセミナー講演資料20161119
VRセミナー講演資料20161119VRセミナー講演資料20161119
VRセミナー講演資料20161119
syamane
 
全俺が泣いた!kintone発見からの3年弱を振り返る
全俺が泣いた!kintone発見からの3年弱を振り返る全俺が泣いた!kintone発見からの3年弱を振り返る
全俺が泣いた!kintone発見からの3年弱を振り返る
Sakae Saito
 
kintone Café 新潟 Vol.2 LT
kintone Café 新潟 Vol.2 LTkintone Café 新潟 Vol.2 LT
kintone Café 新潟 Vol.2 LT
JOYZO
 
実践!JavaScriptカスタマイズ
実践!JavaScriptカスタマイズ実践!JavaScriptカスタマイズ
実践!JavaScriptカスタマイズ
Sakae Saito
 
ちょこっと使うAWS
ちょこっと使うAWSちょこっと使うAWS
ちょこっと使うAWS
Sakae Saito
 

What's hot (11)

愛媛で考えた「私のイキカタマニフェスト」
愛媛で考えた「私のイキカタマニフェスト」愛媛で考えた「私のイキカタマニフェスト」
愛媛で考えた「私のイキカタマニフェスト」
 
kintoneの基礎知識とここ1年の主要アップデート情報
kintoneの基礎知識とここ1年の主要アップデート情報kintoneの基礎知識とここ1年の主要アップデート情報
kintoneの基礎知識とここ1年の主要アップデート情報
 
個人事業者でも活用できるkintone
個人事業者でも活用できるkintone個人事業者でも活用できるkintone
個人事業者でも活用できるkintone
 
Alexa Skill Contest LT資料
Alexa Skill Contest LT資料Alexa Skill Contest LT資料
Alexa Skill Contest LT資料
 
30分で知るTwilio 2016
30分で知るTwilio 201630分で知るTwilio 2016
30分で知るTwilio 2016
 
これをマスターして初心者脱出!-kintoneチョイ技10選- [cybozu.com conference 2015 大阪 K-2]
これをマスターして初心者脱出!-kintoneチョイ技10選- [cybozu.com conference 2015 大阪 K-2]これをマスターして初心者脱出!-kintoneチョイ技10選- [cybozu.com conference 2015 大阪 K-2]
これをマスターして初心者脱出!-kintoneチョイ技10選- [cybozu.com conference 2015 大阪 K-2]
 
VRセミナー講演資料20161119
VRセミナー講演資料20161119VRセミナー講演資料20161119
VRセミナー講演資料20161119
 
全俺が泣いた!kintone発見からの3年弱を振り返る
全俺が泣いた!kintone発見からの3年弱を振り返る全俺が泣いた!kintone発見からの3年弱を振り返る
全俺が泣いた!kintone発見からの3年弱を振り返る
 
kintone Café 新潟 Vol.2 LT
kintone Café 新潟 Vol.2 LTkintone Café 新潟 Vol.2 LT
kintone Café 新潟 Vol.2 LT
 
実践!JavaScriptカスタマイズ
実践!JavaScriptカスタマイズ実践!JavaScriptカスタマイズ
実践!JavaScriptカスタマイズ
 
ちょこっと使うAWS
ちょこっと使うAWSちょこっと使うAWS
ちょこっと使うAWS
 

Recently uploaded

生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
Osaka University
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
sugiuralab
 
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
Osaka University
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
azuma satoshi
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
osamut
 
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
ARISE analytics
 
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptxiMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
kitamisetagayaxxx
 
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
Yuki Miyazaki
 

Recently uploaded (10)

生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
 
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
 
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
 
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptxiMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
 
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
 

Helloworld次の一歩