SlideShare a Scribd company logo
1 of 29
Download to read offline
Go言語と過ごした一週間
目次
• Goとの馴れ初め。
• Goを学ぶ。
• 感想
• 次何をやりたい?
誰?
自己紹介
• 株式会社LocoPartners
• 北山慎太郎
• Go歴 1week
• 仕事では「PHP,JavaScript」書いてます。
Goとの馴れ初め
http://hackers.bar/
きっかけはここ。
Hackers Bar行った日の流れ
1. MBAを出してたら、店員さん「Goやるんです
か?」って言われる。(やったことない)
2. Go言語についてトーク(言い出せず相 でやり
過ごす)
3. ちょっと、もやもやしながらお会計
4. 締めのラーメン(一蘭)へ
言い出せなかった。。。
てか、Goやってればよかっ
た。。。
ということで
Goを学ぶ。
やったこと。
• A Tour of Go

→Go言語の基礎学習
• MacBookAirにGo環境構築

→Goのインストール&$GOPATH設定等
• 勉強会を探す。

→「最近、Go言語始めました」

・・・・・
何か作りたい・・・
ちなみに、僕は某パズルゲー
ムを無課金ですがやっていま
す。そのゲームで僕は次のよ
うな課題を抱えています。
課題
• 一日毎にランダムで出るダンジョン(ゲリラ
ダンジョン)があるが、その情報を提供して
いただいているサイト様にいかないとでる時
間帯がわからない。
• 見に行きたいけど、仕事中に趣味のサイトを
開くのはリスクがある。

→怒られた時言い訳のしようもない。
Goで解決できる?
手順
1. ゲリラ情報をスクレイピング

→Go言語でゲリラ情報のあるサイト様から
必要な情報を取得。
2. Go言語で取得したデータをSlackに通知。

→会社ではSlack使ってるから、見てても自
然!
1. ゲリラ情報をスクレイピング
• スクレイピングどうしよう?
• こちらで紹介されている、goquery使ってみる!

http://qiita.com/shunsukeaihara/items/
ba6472910db885f436a0
1. ゲリラ情報をスクレイピング
date := time.Now().Format("2006/01/0102")

scrapesUrl := fmt.Sprintf(“http://xxxxxxx.xxxxxx.xxxxx.jp/
%s.html",date)

doc, err := goquery.NewDocument(scrapesUrl);
if err != nil {
  log.Fatal(err);
}



content := doc.Find(".post-outer .entry-content").Text()
2. Slackに通知
• Slack通知どうしよう?...webhook?
• こちらを参考にさせていただいて、実装!

http://blog.shinofara.xyz/archives/290/
type Slack struct {
Text string `json:"text"`
Username string `json:"username"`
Icon_emoji string `json:"icon_emoji"`
Icon_url string `json:"icon_url"`
Channel string `json:”channel"`
}
func SendSlack(content string) {
slackWebhookUrl := "Slackで発行したURLをいれる。"
params, _ := json.Marshal(Slack{
content,
"pazdora",
"",
"",
"#pazdora"})
resp, _ := http.PostForm(
slackWebhookUrl,
url.Values{"payload": {string(params)}},
)
body, _ := ioutil.ReadAll(resp.Body)
defer resp.Body.Close()
println(string(body))
}
2. Slackに通知
1と2を合わせたものを実行。
$ go run scrape.go
解決!

(あとは、cronで自動化したらもっと楽)
まとめ
• A Tour of Goなどチュートリアルが親切で学びやすい。
• コンパイルが厳しい。

→使ってないパッケージや変数があると怒られる(でも
それがうれしい。)
• 日付のフォーマットの指定が独特?

→個人的には(Y-m-d)的なのがうれしい
今後したい事。
• Golang × raspberry pi2

→ オフィスを快適にしたい、コーヒーの残量
はかったり。
• Level or gojiでwebサイトを作成。
あと、余談ですが
僕の某パズルゲームのIDはこ
ちらなので、友達になってく
ださい。
132.088.371



※10枠ほど余ってます。。。
ご静聴ありがとうございました!

More Related Content

Viewers also liked

cli.go と cli-init で高速にコマンドラインツールを開発する / The command-line tool developed at hi...
cli.go と cli-init で高速にコマンドラインツールを開発する / The command-line tool developed at hi...cli.go と cli-init で高速にコマンドラインツールを開発する / The command-line tool developed at hi...
cli.go と cli-init で高速にコマンドラインツールを開発する / The command-line tool developed at hi...
Hidenori Takeshita
 
Chrome osとgo言語からgoogleの今後を妄想してみる
Chrome osとgo言語からgoogleの今後を妄想してみるChrome osとgo言語からgoogleの今後を妄想してみる
Chrome osとgo言語からgoogleの今後を妄想してみる
Masakazu Muraoka
 
2015/02/21 GDG神戸 Go on Android ハンズオン&もくもく会
2015/02/21 GDG神戸 Go on Android ハンズオン&もくもく会2015/02/21 GDG神戸 Go on Android ハンズオン&もくもく会
2015/02/21 GDG神戸 Go on Android ハンズオン&もくもく会
Satoshi Noda
 

Viewers also liked (20)

cli.go と cli-init で高速にコマンドラインツールを開発する / The command-line tool developed at hi...
cli.go と cli-init で高速にコマンドラインツールを開発する / The command-line tool developed at hi...cli.go と cli-init で高速にコマンドラインツールを開発する / The command-line tool developed at hi...
cli.go と cli-init で高速にコマンドラインツールを開発する / The command-line tool developed at hi...
 
HighBatch
HighBatchHighBatch
HighBatch
 
Goを知る
Goを知るGoを知る
Goを知る
 
Golang, make and robotics #gocon
Golang, make and robotics #goconGolang, make and robotics #gocon
Golang, make and robotics #gocon
 
Chrome osとgo言語からgoogleの今後を妄想してみる
Chrome osとgo言語からgoogleの今後を妄想してみるChrome osとgo言語からgoogleの今後を妄想してみる
Chrome osとgo言語からgoogleの今後を妄想してみる
 
Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)
Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)
Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)
 
Go+revel
Go+revelGo+revel
Go+revel
 
Github第8章
Github第8章Github第8章
Github第8章
 
らくちん Go言語
らくちん Go言語らくちん Go言語
らくちん Go言語
 
Eureka go 2015_12_12
Eureka go 2015_12_12Eureka go 2015_12_12
Eureka go 2015_12_12
 
alphawing meets heroku
alphawing meets herokualphawing meets heroku
alphawing meets heroku
 
2015/02/21 GDG神戸 Go on Android ハンズオン&もくもく会
2015/02/21 GDG神戸 Go on Android ハンズオン&もくもく会2015/02/21 GDG神戸 Go on Android ハンズオン&もくもく会
2015/02/21 GDG神戸 Go on Android ハンズオン&もくもく会
 
勉強会への一歩を踏み出すために
勉強会への一歩を踏み出すために勉強会への一歩を踏み出すために
勉強会への一歩を踏み出すために
 
マイクロサービスにおけるクエリー言語について
マイクロサービスにおけるクエリー言語についてマイクロサービスにおけるクエリー言語について
マイクロサービスにおけるクエリー言語について
 
ISUCON2015 PHPで予選を戦ってみた
ISUCON2015 PHPで予選を戦ってみたISUCON2015 PHPで予選を戦ってみた
ISUCON2015 PHPで予選を戦ってみた
 
Dockerぐらし!
Dockerぐらし!Dockerぐらし!
Dockerぐらし!
 
ちょっとだけさわってみる Go言語
ちょっとだけさわってみる Go言語ちょっとだけさわってみる Go言語
ちょっとだけさわってみる Go言語
 
エンジニアと椅子
エンジニアと椅子エンジニアと椅子
エンジニアと椅子
 
Jenkins study 7 2013-01-28
Jenkins study 7 2013-01-28Jenkins study 7 2013-01-28
Jenkins study 7 2013-01-28
 
Gunosy Go lang study #6 net http url
Gunosy Go lang study #6 net http urlGunosy Go lang study #6 net http url
Gunosy Go lang study #6 net http url
 

Similar to Go言語と過ごした一週間

The History of Groovy #GroovyBase
The History of Groovy #GroovyBaseThe History of Groovy #GroovyBase
The History of Groovy #GroovyBase
kyon mm
 

Similar to Go言語と過ごした一週間 (17)

社内勉強会1 go lang
社内勉強会1 go lang 社内勉強会1 go lang
社内勉強会1 go lang
 
Goの深め方
Goの深め方Goの深め方
Goの深め方
 
5分で資料作ってSlideShareにアップロードする錬金術
5分で資料作ってSlideShareにアップロードする錬金術5分で資料作ってSlideShareにアップロードする錬金術
5分で資料作ってSlideShareにアップロードする錬金術
 
A Tour of やきう&Go - やきう民の私とGoの半年(実質3日間)
A Tour of やきう&Go - やきう民の私とGoの半年(実質3日間)A Tour of やきう&Go - やきう民の私とGoの半年(実質3日間)
A Tour of やきう&Go - やきう民の私とGoの半年(実質3日間)
 
Go言語のポインタ
Go言語のポインタGo言語のポインタ
Go言語のポインタ
 
Goで始める言語処理系実装入門
Goで始める言語処理系実装入門Goで始める言語処理系実装入門
Goで始める言語処理系実装入門
 
OSSで楽に作るGo言語クライアントツール
OSSで楽に作るGo言語クライアントツールOSSで楽に作るGo言語クライアントツール
OSSで楽に作るGo言語クライアントツール
 
ライブコーディング・Androidのライブラリを作ってみよう
ライブコーディング・Androidのライブラリを作ってみようライブコーディング・Androidのライブラリを作ってみよう
ライブコーディング・Androidのライブラリを作ってみよう
 
PHPerがgolangでもがいてる話@第1回 関西Golang勉強会
PHPerがgolangでもがいてる話@第1回 関西Golang勉強会PHPerがgolangでもがいてる話@第1回 関西Golang勉強会
PHPerがgolangでもがいてる話@第1回 関西Golang勉強会
 
WordBench三重 2018年7月22日「Gutenbergで作るランディングページ」
WordBench三重 2018年7月22日「Gutenbergで作るランディングページ」WordBench三重 2018年7月22日「Gutenbergで作るランディングページ」
WordBench三重 2018年7月22日「Gutenbergで作るランディングページ」
 
“Septeni×Scala”勉強会#1資料_20150219_寺坂
“Septeni×Scala”勉強会#1資料_20150219_寺坂“Septeni×Scala”勉強会#1資料_20150219_寺坂
“Septeni×Scala”勉強会#1資料_20150219_寺坂
 
MF GeeksNight pplogの話
MF GeeksNight pplogの話MF GeeksNight pplogの話
MF GeeksNight pplogの話
 
PHPマニュアルの育て方
PHPマニュアルの育て方PHPマニュアルの育て方
PHPマニュアルの育て方
 
ios+Android最近気付いいたこと
ios+Android最近気付いいたことios+Android最近気付いいたこと
ios+Android最近気付いいたこと
 
Hiroshima.rb on github
Hiroshima.rb on githubHiroshima.rb on github
Hiroshima.rb on github
 
Rubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LLRubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LL
 
The History of Groovy #GroovyBase
The History of Groovy #GroovyBaseThe History of Groovy #GroovyBase
The History of Groovy #GroovyBase
 

Go言語と過ごした一週間