SlideShare a Scribd company logo
Go × slackAPI
Goで毎日を少し便利に
菅原佑太
自己紹介
名前:菅原佑太
職業:システムエンジニア(新卒1年目)
現業務:ウエディングパークに関わるサイトの運用・開発
出身地:大阪
プログラミングは今年から本格的にスタート
学生時代はマスコミ系を目指していた文系が3年生でプログラミングをかじって
みたことがきっかけでエンジニアを目指すことに
人生初のLT会
LTまで一週間前
ネタが決まらず悩んでいた時にポモドーロをしていた武田先輩にアドバイスをも
らいました。
武田「来週のLT会のネタ決まった?」
自分「まだなんですよねー。何が良いですかね?」
武田「Goやってみなよ」
ポモドーロとは:
https://engineers.weddingpark.co.jp/?p=224
Go言語?
Go言語
「Go」は2009年にGoogleによって発表されたコンパイラ型のプログラミング言
語である
YouTubeやDropbox、Uberなどでもサービスのクリティカルな部分にGo言語を
採用されている界隈で有名な言語となっている
LTまであと7日
とりあえずGo言語始めて見た
初めはGo tourから
(https://go-tour-
jp.appspot.com/welcome/1)
PHPとは違うなと感じたこと(基礎)
・コンパイル型であること
・並列処理ができること
・変数名の 後ろ に型名を書くこと
・暗黙的な型宣言ができること(k := 3)
・ポインタを扱うことができること。
・defer ステートメントという呼び出し元の関数の終わり(returnする)まで遅延
させるものがあること。
・go特有の構造体がある
PHPとは違うなと感じたこと(並列処理)
Goはphpと比べとても早い
Go言語がPHP 7の30倍、
PHP 5.6と比べるとなんと82倍だという
参照:LIG(http://liginc.co.jp/284306)
Goでのfor文とdeferステートメント
・普通のループ文 ・While文のように書くことができる
(goにwhile文はない)
・deferステートメント
LTまであと6日
スライスとマップに苦しめられる
スライス・マップ
スライスの指定はa[:4], a[2:],
a[:] など指定できる。cap関
数で最大容量取得可能(slice
とポインタにつまずく)
マップはkeyと値をペアで管理すること
ができるデータ型のこと、他言語のハッ
シュや連想配列と思ってもよい
LTまであと5日
飲みに行き潰れかける
なんとか帰ってバタンキュウ
体は粘るが全日潰れる
LTまであと4日
自分:武田さんやばいです。アイデアが思いつきません、
あれ?お昼行かないんですか?
武田:今日傘忘れたから代わりにお菓子食べるよ
自分:え?ポモドーロできるのに傘忘れるなんて...。
LTまであと3日
livedoorの天気予報RSSを利用してGolangで出力してみることに(問題解決)
http://weather.livedoor.com/forecast/rss/area/130010.xml
上記URLをGETリクエストで送るためにnet/httpを使用
func Get(url string) (resp *Response, err error)
LTまであと2日
slackAPIにIncomming WebHooksを使用
Incomming WebHooksとは?
=Slackが発行するURLへPOSTするとSlackにメッセージが投稿される簡単にメ
ッセージを送ることができるAPI
Tokenを取得し次はhttp.clientを使ってGETリクエストを送信する
req, _ := http.NewRequest("GET", url, nil)
//packageをimport
import (
"bytes"
"net/http"
"net/url"
"fmt"
"encoding/xml"
"io/ioutil"
"log"
)
//変数宣言
var(
//SlackAPIトークン
token string = ""
//SlackApiのメッセージリクエストURL
apiUrl string = "https://slack.com/api/chat.postMessage"
//livedoor天気予報のRSS(東京)
FEED_URL string =
"http://weather.livedoor.com/forecast/rss/area/130010.xml"
)
①Packageと型宣言
・packageをimportする
・変数を宣言
・SlackAPIトークン取得
・SlackAPIメッセージリクエストURL
を設定する
type WeatherHack struct {
Title string
`xml:"channel>title"`
Description []string
`xml:"channel>item>descriptio
n"`
}
②構造体
・構造体を宣言する
・RSSのXMLを設定
・フィールド名を先頭大文字とする
・xmlの要素名まで展開する
func main() {
//getWeather関数にRSSのURLを渡す
wh, err := getWeather(FEED_URL)
//error処理
if err != nil {
log.Fatalf("Log: %v", err)
Return
}
//URLに生成するデータを追加
data := url.Values{}
data.Set("token",token)
data.Add("channel","")
data.Add("username","天気予報Bot")
data.Add("icon_url","")
data.Add("text", wh.Description[2])
fmt.Println(data)
//http.clientを使用してGETリクエスト送信
client := &http.Client{}
r, _ := http.NewRequest("POST", fmt.Sprintf("%s",apiUrl),
bytes.NewBufferString(data.Encode()))
r.Header.Add("Content-Type", "application/x-www-form-urlencoded")
resp, _ := client.Do(r)
fmt.Println(resp.Status)
}
③Slackにメッセージを投げる
・クエリパラメータを組み立てる
・Request型のオブジェクト
を http.NewRequest関数で生成
・リクエストURLを生成する
・実際にGETリクエストを投げる
func getWeather(feed string) (p *WeatherHack, err error) {
//http.Getメソッドを利用してGETリクエストを送る
res, err := http.Get(feed)
if err != nil {
return nil, err
}
b, err := ioutil.ReadAll(res.Body)
if err != nil {
return nil, err
}
wh := new(WeatherHack)
err = xml.Unmarshal(b, &wh)
return wh, err
}
④天気を取得する(RSS)
・GETリクエスト
・リクエストのレスポンスから
bodyを読み込む
・パース関数を呼び出す
実行結果
まとめと難しかったこと
・コンパイル型を使ったことが多くないので型宣言を忘れがちになった
・1週間でここまでしたがまだまだメソッドなど多く奥が深い
・GETリクエスト以外にもPOSTだけで5通りもの方法がある
・並列処理にチャレンジしてみたい
・ライブラリを使った開発をしてみたい
https://github.com/kosa3/weather_slack/
最後に
いかがでしたか?
Goについてまだまだ未熟ですが実際やってみても楽しいです。
是非やってない人や興味が出た方はまずは一週間でもトライしてください。
ご清聴ありがとうございました!!

More Related Content

What's hot

さくらの学校支援プロジェクト PyCon mini Sapporo 2019
さくらの学校支援プロジェクト PyCon mini Sapporo 2019さくらの学校支援プロジェクト PyCon mini Sapporo 2019
さくらの学校支援プロジェクト PyCon mini Sapporo 2019
さくらインターネット株式会社
 
Google Homeとisaaxを使って薬の飲み忘れを予防する!
Google Homeとisaaxを使って薬の飲み忘れを予防する!Google Homeとisaaxを使って薬の飲み忘れを予防する!
Google Homeとisaaxを使って薬の飲み忘れを予防する!
Nanami Setoyama
 
すぱこーに学ぶアプリ開発の第一歩
すぱこーに学ぶアプリ開発の第一歩すぱこーに学ぶアプリ開発の第一歩
すぱこーに学ぶアプリ開発の第一歩
You&I
 
エンジニアになり1ヶ月が経って!
エンジニアになり1ヶ月が経って!エンジニアになり1ヶ月が経って!
エンジニアになり1ヶ月が経って!
ssuserccd9f1
 
WPの実装言語PHPの重箱の隅っこを速度的な意味でつっついて比較してみた(2016/12/3)
WPの実装言語PHPの重箱の隅っこを速度的な意味でつっついて比較してみた(2016/12/3)WPの実装言語PHPの重箱の隅っこを速度的な意味でつっついて比較してみた(2016/12/3)
WPの実装言語PHPの重箱の隅っこを速度的な意味でつっついて比較してみた(2016/12/3)
Hiroyuki Ishikawa
 
掃除道2級に関するQ&A
掃除道2級に関するQ&A掃除道2級に関するQ&A
掃除道2級に関するQ&A
bridgedot
 
2018.10.8 つくばビットコインミートアップ 藤田
2018.10.8 つくばビットコインミートアップ 藤田2018.10.8 つくばビットコインミートアップ 藤田
2018.10.8 つくばビットコインミートアップ 藤田
Takuya Fujita
 
GPSレシーバーでGPS時刻による時刻合わせした話
GPSレシーバーでGPS時刻による時刻合わせした話GPSレシーバーでGPS時刻による時刻合わせした話
GPSレシーバーでGPS時刻による時刻合わせした話
You&I
 
さくらの夕べオンライン~小学校プログラミング教育ナイト2021
さくらの夕べオンライン~小学校プログラミング教育ナイト2021さくらの夕べオンライン~小学校プログラミング教育ナイト2021
さくらの夕べオンライン~小学校プログラミング教育ナイト2021
Asakura Megumi
 
プログラミング学習を無償化したい
プログラミング学習を無償化したいプログラミング学習を無償化したい
プログラミング学習を無償化したい
teruki miyakawa
 
誰もがプログラミング教育を無償で受けられる世界へ
誰もがプログラミング教育を無償で受けられる世界へ誰もがプログラミング教育を無償で受けられる世界へ
誰もがプログラミング教育を無償で受けられる世界へ
teruki miyakawa
 
CTOが仕事に対する新しい考え方を教えてくれた話
CTOが仕事に対する新しい考え方を教えてくれた話CTOが仕事に対する新しい考え方を教えてくれた話
CTOが仕事に対する新しい考え方を教えてくれた話
Yuki Maeto
 
Mixed Precision Training
Mixed Precision TrainingMixed Precision Training
Mixed Precision Training
Masao Taketani
 
かなしき だるやなぎちゃん ~海老を獲りに行く話~
かなしき だるやなぎちゃん ~海老を獲りに行く話~かなしき だるやなぎちゃん ~海老を獲りに行く話~
かなしき だるやなぎちゃん ~海老を獲りに行く話~
You&I
 
回答がついてる質問とそうじゃないやつの違いを調べました
回答がついてる質問とそうじゃないやつの違いを調べました回答がついてる質問とそうじゃないやつの違いを調べました
回答がついてる質問とそうじゃないやつの違いを調べました
俊介 小橋
 
What do I want to do?
What do I want to do?What do I want to do?
What do I want to do?
Kameko Ohmura
 
コンソールベタ打ち卒業:スクリプトエディタを使おう
コンソールベタ打ち卒業:スクリプトエディタを使おうコンソールベタ打ち卒業:スクリプトエディタを使おう
コンソールベタ打ち卒業:スクリプトエディタを使おう
Yu Tamura
 
さくらの夕べオンライン_20200708
さくらの夕べオンライン_20200708さくらの夕べオンライン_20200708
さくらの夕べオンライン_20200708
Asakura Megumi
 
しょうぎアプリ
しょうぎアプリしょうぎアプリ
しょうぎアプリ
You&I
 
ただ勉強するだけの落とし穴-私が考えるワンランク上の自分になる3つの方法-
ただ勉強するだけの落とし穴-私が考えるワンランク上の自分になる3つの方法-ただ勉強するだけの落とし穴-私が考えるワンランク上の自分になる3つの方法-
ただ勉強するだけの落とし穴-私が考えるワンランク上の自分になる3つの方法-
Nozomi Tsujii
 

What's hot (20)

さくらの学校支援プロジェクト PyCon mini Sapporo 2019
さくらの学校支援プロジェクト PyCon mini Sapporo 2019さくらの学校支援プロジェクト PyCon mini Sapporo 2019
さくらの学校支援プロジェクト PyCon mini Sapporo 2019
 
Google Homeとisaaxを使って薬の飲み忘れを予防する!
Google Homeとisaaxを使って薬の飲み忘れを予防する!Google Homeとisaaxを使って薬の飲み忘れを予防する!
Google Homeとisaaxを使って薬の飲み忘れを予防する!
 
すぱこーに学ぶアプリ開発の第一歩
すぱこーに学ぶアプリ開発の第一歩すぱこーに学ぶアプリ開発の第一歩
すぱこーに学ぶアプリ開発の第一歩
 
エンジニアになり1ヶ月が経って!
エンジニアになり1ヶ月が経って!エンジニアになり1ヶ月が経って!
エンジニアになり1ヶ月が経って!
 
WPの実装言語PHPの重箱の隅っこを速度的な意味でつっついて比較してみた(2016/12/3)
WPの実装言語PHPの重箱の隅っこを速度的な意味でつっついて比較してみた(2016/12/3)WPの実装言語PHPの重箱の隅っこを速度的な意味でつっついて比較してみた(2016/12/3)
WPの実装言語PHPの重箱の隅っこを速度的な意味でつっついて比較してみた(2016/12/3)
 
掃除道2級に関するQ&A
掃除道2級に関するQ&A掃除道2級に関するQ&A
掃除道2級に関するQ&A
 
2018.10.8 つくばビットコインミートアップ 藤田
2018.10.8 つくばビットコインミートアップ 藤田2018.10.8 つくばビットコインミートアップ 藤田
2018.10.8 つくばビットコインミートアップ 藤田
 
GPSレシーバーでGPS時刻による時刻合わせした話
GPSレシーバーでGPS時刻による時刻合わせした話GPSレシーバーでGPS時刻による時刻合わせした話
GPSレシーバーでGPS時刻による時刻合わせした話
 
さくらの夕べオンライン~小学校プログラミング教育ナイト2021
さくらの夕べオンライン~小学校プログラミング教育ナイト2021さくらの夕べオンライン~小学校プログラミング教育ナイト2021
さくらの夕べオンライン~小学校プログラミング教育ナイト2021
 
プログラミング学習を無償化したい
プログラミング学習を無償化したいプログラミング学習を無償化したい
プログラミング学習を無償化したい
 
誰もがプログラミング教育を無償で受けられる世界へ
誰もがプログラミング教育を無償で受けられる世界へ誰もがプログラミング教育を無償で受けられる世界へ
誰もがプログラミング教育を無償で受けられる世界へ
 
CTOが仕事に対する新しい考え方を教えてくれた話
CTOが仕事に対する新しい考え方を教えてくれた話CTOが仕事に対する新しい考え方を教えてくれた話
CTOが仕事に対する新しい考え方を教えてくれた話
 
Mixed Precision Training
Mixed Precision TrainingMixed Precision Training
Mixed Precision Training
 
かなしき だるやなぎちゃん ~海老を獲りに行く話~
かなしき だるやなぎちゃん ~海老を獲りに行く話~かなしき だるやなぎちゃん ~海老を獲りに行く話~
かなしき だるやなぎちゃん ~海老を獲りに行く話~
 
回答がついてる質問とそうじゃないやつの違いを調べました
回答がついてる質問とそうじゃないやつの違いを調べました回答がついてる質問とそうじゃないやつの違いを調べました
回答がついてる質問とそうじゃないやつの違いを調べました
 
What do I want to do?
What do I want to do?What do I want to do?
What do I want to do?
 
コンソールベタ打ち卒業:スクリプトエディタを使おう
コンソールベタ打ち卒業:スクリプトエディタを使おうコンソールベタ打ち卒業:スクリプトエディタを使おう
コンソールベタ打ち卒業:スクリプトエディタを使おう
 
さくらの夕べオンライン_20200708
さくらの夕べオンライン_20200708さくらの夕べオンライン_20200708
さくらの夕べオンライン_20200708
 
しょうぎアプリ
しょうぎアプリしょうぎアプリ
しょうぎアプリ
 
ただ勉強するだけの落とし穴-私が考えるワンランク上の自分になる3つの方法-
ただ勉強するだけの落とし穴-私が考えるワンランク上の自分になる3つの方法-ただ勉強するだけの落とし穴-私が考えるワンランク上の自分になる3つの方法-
ただ勉強するだけの落とし穴-私が考えるワンランク上の自分になる3つの方法-
 

Viewers also liked

Chrome Extensionで効率アップ
Chrome Extensionで効率アップChrome Extensionで効率アップ
Chrome Extensionで効率アップ
weddingpark
 
ひよっこエンジニア奮闘記
ひよっこエンジニア奮闘記ひよっこエンジニア奮闘記
ひよっこエンジニア奮闘記
weddingpark
 
Data Visualizationしてみた [ D3.js編 ]
Data Visualizationしてみた  [ D3.js編 ]Data Visualizationしてみた  [ D3.js編 ]
Data Visualizationしてみた [ D3.js編 ]
weddingpark
 
言語の検証と導入
言語の検証と導入言語の検証と導入
言語の検証と導入
weddingpark
 
今さらながらRSpecに入門してみた
今さらながらRSpecに入門してみた今さらながらRSpecに入門してみた
今さらながらRSpecに入門してみた
zaru sakuraba
 
エンジニアでもできる⁉︎それっぽいデザイン
エンジニアでもできる⁉︎それっぽいデザインエンジニアでもできる⁉︎それっぽいデザイン
エンジニアでもできる⁉︎それっぽいデザイン
shinta rock
 
ワクワク電子工作
ワクワク電子工作ワクワク電子工作
ワクワク電子工作
Shoichi Kakizaki
 
初心者のためのキャラクターの描き方のコツ 入門編
初心者のためのキャラクターの描き方のコツ 入門編初心者のためのキャラクターの描き方のコツ 入門編
初心者のためのキャラクターの描き方のコツ 入門編
shinta rock
 
正規表現勉強会
正規表現勉強会正規表現勉強会
正規表現勉強会
zaru sakuraba
 
アプリのテストを書かなければならないと分かっているけども、書けていない人たちへ
アプリのテストを書かなければならないと分かっているけども、書けていない人たちへアプリのテストを書かなければならないと分かっているけども、書けていない人たちへ
アプリのテストを書かなければならないと分かっているけども、書けていない人たちへ
Tomohiro Yamasaki
 
スマホフロントエンド最速化手法
スマホフロントエンド最速化手法スマホフロントエンド最速化手法
スマホフロントエンド最速化手法
zaru sakuraba
 
アプリデザインのお勉強 UI/UXのお話
アプリデザインのお勉強 UI/UXのお話アプリデザインのお勉強 UI/UXのお話
アプリデザインのお勉強 UI/UXのお話
shinta rock
 
少し未来のコードレビュー
少し未来のコードレビュー少し未来のコードレビュー
少し未来のコードレビュー
zaru sakuraba
 
WEBページを表示するまで
WEBページを表示するまでWEBページを表示するまで
WEBページを表示するまで
Shoichi Kakizaki
 
ほんわかSwift勉強資料
ほんわかSwift勉強資料ほんわかSwift勉強資料
ほんわかSwift勉強資料
kouhei kawamata
 
非エンジニア向けHTML勉強会その1
非エンジニア向けHTML勉強会その1非エンジニア向けHTML勉強会その1
非エンジニア向けHTML勉強会その1
Karino Kyohei
 
20161004 DMM/エウレカ/インテリジェンス合同勉強会
20161004 DMM/エウレカ/インテリジェンス合同勉強会20161004 DMM/エウレカ/インテリジェンス合同勉強会
20161004 DMM/エウレカ/インテリジェンス合同勉強会
Yusuke Komatsu
 
関数型・オブジェクト指向 宗教戦争に疲れたなたに送るGo言語入門
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
関数型・オブジェクト指向 宗教戦争に疲れたなたに送るGo言語入門
Tadahiro Ishisaka
 
[Golang] Go言語でサービス作ってる話
[Golang] Go言語でサービス作ってる話[Golang] Go言語でサービス作ってる話
[Golang] Go言語でサービス作ってる話
株式会社YEBIS.XYZ
 
Go言語によるwebアプリの作り方
Go言語によるwebアプリの作り方Go言語によるwebアプリの作り方
Go言語によるwebアプリの作り方
Yasutaka Kawamoto
 

Viewers also liked (20)

Chrome Extensionで効率アップ
Chrome Extensionで効率アップChrome Extensionで効率アップ
Chrome Extensionで効率アップ
 
ひよっこエンジニア奮闘記
ひよっこエンジニア奮闘記ひよっこエンジニア奮闘記
ひよっこエンジニア奮闘記
 
Data Visualizationしてみた [ D3.js編 ]
Data Visualizationしてみた  [ D3.js編 ]Data Visualizationしてみた  [ D3.js編 ]
Data Visualizationしてみた [ D3.js編 ]
 
言語の検証と導入
言語の検証と導入言語の検証と導入
言語の検証と導入
 
今さらながらRSpecに入門してみた
今さらながらRSpecに入門してみた今さらながらRSpecに入門してみた
今さらながらRSpecに入門してみた
 
エンジニアでもできる⁉︎それっぽいデザイン
エンジニアでもできる⁉︎それっぽいデザインエンジニアでもできる⁉︎それっぽいデザイン
エンジニアでもできる⁉︎それっぽいデザイン
 
ワクワク電子工作
ワクワク電子工作ワクワク電子工作
ワクワク電子工作
 
初心者のためのキャラクターの描き方のコツ 入門編
初心者のためのキャラクターの描き方のコツ 入門編初心者のためのキャラクターの描き方のコツ 入門編
初心者のためのキャラクターの描き方のコツ 入門編
 
正規表現勉強会
正規表現勉強会正規表現勉強会
正規表現勉強会
 
アプリのテストを書かなければならないと分かっているけども、書けていない人たちへ
アプリのテストを書かなければならないと分かっているけども、書けていない人たちへアプリのテストを書かなければならないと分かっているけども、書けていない人たちへ
アプリのテストを書かなければならないと分かっているけども、書けていない人たちへ
 
スマホフロントエンド最速化手法
スマホフロントエンド最速化手法スマホフロントエンド最速化手法
スマホフロントエンド最速化手法
 
アプリデザインのお勉強 UI/UXのお話
アプリデザインのお勉強 UI/UXのお話アプリデザインのお勉強 UI/UXのお話
アプリデザインのお勉強 UI/UXのお話
 
少し未来のコードレビュー
少し未来のコードレビュー少し未来のコードレビュー
少し未来のコードレビュー
 
WEBページを表示するまで
WEBページを表示するまでWEBページを表示するまで
WEBページを表示するまで
 
ほんわかSwift勉強資料
ほんわかSwift勉強資料ほんわかSwift勉強資料
ほんわかSwift勉強資料
 
非エンジニア向けHTML勉強会その1
非エンジニア向けHTML勉強会その1非エンジニア向けHTML勉強会その1
非エンジニア向けHTML勉強会その1
 
20161004 DMM/エウレカ/インテリジェンス合同勉強会
20161004 DMM/エウレカ/インテリジェンス合同勉強会20161004 DMM/エウレカ/インテリジェンス合同勉強会
20161004 DMM/エウレカ/インテリジェンス合同勉強会
 
関数型・オブジェクト指向 宗教戦争に疲れたなたに送るGo言語入門
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
関数型・オブジェクト指向 宗教戦争に疲れたなたに送るGo言語入門
 
[Golang] Go言語でサービス作ってる話
[Golang] Go言語でサービス作ってる話[Golang] Go言語でサービス作ってる話
[Golang] Go言語でサービス作ってる話
 
Go言語によるwebアプリの作り方
Go言語によるwebアプリの作り方Go言語によるwebアプリの作り方
Go言語によるwebアプリの作り方
 

Similar to Go x Slack API

Letsgo developer 2012 Continuous Delivery
Letsgo developer 2012 Continuous DeliveryLetsgo developer 2012 Continuous Delivery
Letsgo developer 2012 Continuous Delivery
Nobuhiro Sue
 
子供達と プログラミングをはじめよう
子供達と プログラミングをはじめよう子供達と プログラミングをはじめよう
子供達と プログラミングをはじめよう
Masao Niizuma
 
Rails Girls Tokyo 5th
Rails Girls Tokyo 5thRails Girls Tokyo 5th
Rails Girls Tokyo 5th
Rie Kato
 
クラウド移住で地方に住むということ
クラウド移住で地方に住むということクラウド移住で地方に住むということ
クラウド移住で地方に住むということ
Takehito Tanabe
 
ガチリアルな修羅チーム開発
ガチリアルな修羅チーム開発ガチリアルな修羅チーム開発
ガチリアルな修羅チーム開発
Atsushi Kojima
 
Clojureの世界と実際のWeb開発
Clojureの世界と実際のWeb開発Clojureの世界と実際のWeb開発
Clojureの世界と実際のWeb開発
Tsutomu Yano
 
WordPressの進化とWordPress名古屋コミュニティの進化
WordPressの進化とWordPress名古屋コミュニティの進化WordPressの進化とWordPress名古屋コミュニティの進化
WordPressの進化とWordPress名古屋コミュニティの進化
takashi ono
 
LT#6 Taskete
LT#6 TasketeLT#6 Taskete
LT#6 Taskete
Shingo Inoue
 
オープンプロセスで変える調達改革
オープンプロセスで変える調達改革オープンプロセスで変える調達改革
オープンプロセスで変える調達改革
Hal Seki
 
オープンプロセスで変える調達改革
オープンプロセスで変える調達改革オープンプロセスで変える調達改革
オープンプロセスで変える調達改革
Code for Japan
 
クラウド移住体験記
クラウド移住体験記クラウド移住体験記
クラウド移住体験記
Takehito Tanabe
 
G's Alumni Histories_20220607
G's Alumni Histories_20220607G's Alumni Histories_20220607
G's Alumni Histories_20220607
Motonao SUZUE
 
Scratchを使った CaT的脳トレのすすめ
Scratchを使った CaT的脳トレのすすめScratchを使った CaT的脳トレのすすめ
Scratchを使った CaT的脳トレのすすめ
Masao Niizuma
 
<女性限定>在宅ワーク講座 公開版 Django入門
<女性限定>在宅ワーク講座 公開版 Django入門<女性限定>在宅ワーク講座 公開版 Django入門
<女性限定>在宅ワーク講座 公開版 Django入門
Hirokazu Tokuno
 
ノンコーディングでやってみよう!音声テキスト変換 - LINE × Logic Apps × Speech to text -
ノンコーディングでやってみよう!音声テキスト変換 - LINE × Logic Apps × Speech to text -ノンコーディングでやってみよう!音声テキスト変換 - LINE × Logic Apps × Speech to text -
ノンコーディングでやってみよう!音声テキスト変換 - LINE × Logic Apps × Speech to text -
典子 松本
 
未経験の子供達と iPad/Pyonkee を半年触ってみた
未経験の子供達と iPad/Pyonkee を半年触ってみた未経験の子供達と iPad/Pyonkee を半年触ってみた
未経験の子供達と iPad/Pyonkee を半年触ってみた
Masao Niizuma
 
北海道の楽しい100人
北海道の楽しい100人北海道の楽しい100人
北海道の楽しい100人
Takehito Tanabe
 
【初心者向け】Go言語勉強会資料
 【初心者向け】Go言語勉強会資料 【初心者向け】Go言語勉強会資料
【初心者向け】Go言語勉強会資料
Yuji Otani
 
~みんなに知ってほしい~プログラミング教育基礎知識
~みんなに知ってほしい~プログラミング教育基礎知識~みんなに知ってほしい~プログラミング教育基礎知識
~みんなに知ってほしい~プログラミング教育基礎知識
Asakura Megumi
 
特にタイトルはない
特にタイトルはない特にタイトルはない
特にタイトルはない
Aya Komuro
 

Similar to Go x Slack API (20)

Letsgo developer 2012 Continuous Delivery
Letsgo developer 2012 Continuous DeliveryLetsgo developer 2012 Continuous Delivery
Letsgo developer 2012 Continuous Delivery
 
子供達と プログラミングをはじめよう
子供達と プログラミングをはじめよう子供達と プログラミングをはじめよう
子供達と プログラミングをはじめよう
 
Rails Girls Tokyo 5th
Rails Girls Tokyo 5thRails Girls Tokyo 5th
Rails Girls Tokyo 5th
 
クラウド移住で地方に住むということ
クラウド移住で地方に住むということクラウド移住で地方に住むということ
クラウド移住で地方に住むということ
 
ガチリアルな修羅チーム開発
ガチリアルな修羅チーム開発ガチリアルな修羅チーム開発
ガチリアルな修羅チーム開発
 
Clojureの世界と実際のWeb開発
Clojureの世界と実際のWeb開発Clojureの世界と実際のWeb開発
Clojureの世界と実際のWeb開発
 
WordPressの進化とWordPress名古屋コミュニティの進化
WordPressの進化とWordPress名古屋コミュニティの進化WordPressの進化とWordPress名古屋コミュニティの進化
WordPressの進化とWordPress名古屋コミュニティの進化
 
LT#6 Taskete
LT#6 TasketeLT#6 Taskete
LT#6 Taskete
 
オープンプロセスで変える調達改革
オープンプロセスで変える調達改革オープンプロセスで変える調達改革
オープンプロセスで変える調達改革
 
オープンプロセスで変える調達改革
オープンプロセスで変える調達改革オープンプロセスで変える調達改革
オープンプロセスで変える調達改革
 
クラウド移住体験記
クラウド移住体験記クラウド移住体験記
クラウド移住体験記
 
G's Alumni Histories_20220607
G's Alumni Histories_20220607G's Alumni Histories_20220607
G's Alumni Histories_20220607
 
Scratchを使った CaT的脳トレのすすめ
Scratchを使った CaT的脳トレのすすめScratchを使った CaT的脳トレのすすめ
Scratchを使った CaT的脳トレのすすめ
 
<女性限定>在宅ワーク講座 公開版 Django入門
<女性限定>在宅ワーク講座 公開版 Django入門<女性限定>在宅ワーク講座 公開版 Django入門
<女性限定>在宅ワーク講座 公開版 Django入門
 
ノンコーディングでやってみよう!音声テキスト変換 - LINE × Logic Apps × Speech to text -
ノンコーディングでやってみよう!音声テキスト変換 - LINE × Logic Apps × Speech to text -ノンコーディングでやってみよう!音声テキスト変換 - LINE × Logic Apps × Speech to text -
ノンコーディングでやってみよう!音声テキスト変換 - LINE × Logic Apps × Speech to text -
 
未経験の子供達と iPad/Pyonkee を半年触ってみた
未経験の子供達と iPad/Pyonkee を半年触ってみた未経験の子供達と iPad/Pyonkee を半年触ってみた
未経験の子供達と iPad/Pyonkee を半年触ってみた
 
北海道の楽しい100人
北海道の楽しい100人北海道の楽しい100人
北海道の楽しい100人
 
【初心者向け】Go言語勉強会資料
 【初心者向け】Go言語勉強会資料 【初心者向け】Go言語勉強会資料
【初心者向け】Go言語勉強会資料
 
~みんなに知ってほしい~プログラミング教育基礎知識
~みんなに知ってほしい~プログラミング教育基礎知識~みんなに知ってほしい~プログラミング教育基礎知識
~みんなに知ってほしい~プログラミング教育基礎知識
 
特にタイトルはない
特にタイトルはない特にタイトルはない
特にタイトルはない
 

Go x Slack API

Editor's Notes

  1. 菅原佑太と申します、今年からシステムエンジニア始めました。 現業務はウエディングパークに関わるサイトの運用・開発をしてみます。 出身地は大阪で今年から上京してきました。方言が抜けないため聞きづらいところがありましたら途中でも良いので聞いて下さい。 プログラミングは今年から本格的に始めました。 学生時代はマスコミ系、テレビ局のADや放送作家などを夢見たことがある文系大学生でした。大学3年生からプログラミングを始めたことをきっかけに エンジニアを目指すことにしました。
  2. そんな本日は人生初のLT会で緊張しておりますが何卒あたたかくご観覧ください、よろしくお願いいたします LT会に出ることが決まったもののネタが決まらず悩んでいましたところ、 ポモドーロをしていた武田さんを見つけました。 〜〜会話〜〜
  3. phpはインタプリタ型ですがgoはコンパイル型であること 並列処理に優れていること 変数を宣言するときに後ろに型名をつけること もしくは暗黙的な型としてこのように宣言をすることで変数を宣言することができます。 さらにGoはポインタを使うことができ、メモリの参照をすることができます。 deferステートメントという関数の終わり(return)まで遅延させるものがあること Goの構造体はC言語の構造体とだいたい同じですが、 ・メソッドの定義 ・構造体埋め込み 等の機能も持っています。
  4. Go言語は処理速度がとても速いため、APIのバックエンドやバッチ処理など「パフォーマンスがネックとなる部分」に採用されることが多いです。
  5. Goでのfor文はphpのfor文と似ていて型宣言だけなのですが、goではphpのようなwhileがありません。その代わりにfor文でwhileのように扱うことができます。deferステートメントを用いてこのプログラムを実行するとdeferをついたところが後に実行されるためhelloworldが表示されます。
  6. 主に配列操作で扱うのですが、スライスは配列のデータを切り出すとこに使用されマップは連想配列のようなものです。 スライスはポインタを持っていて例えば12をs[1]にいれると次のsを実行すると8,12ですがこの処理の後にaを出力すると15の部分が12になっていてポインタが渡っていることがわかります。 マップはv,okというキーと真偽を返すものに手間を取らされました。
  7. livedoorの天気予報を取得するrssを使ってgoで出力してみよう。 上記URLをリクエストするためにpackage[net/http]を使用してみた。
  8. slackにIncomming WebHooksを使用する。 簡単にトークンが取得することができるのでtokenやusername、などの値をURLに設定してリクエストを送る
  9. ライブラリの豊富さには定評があります、GitHubなどのリポジトリをライブラリとして参照することができるため、公開と利用のハードルがとても低いのです。