×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
I and Go! 2018/9/23
Slide 2
Slide 2 text
- soeyu - 会津大学 学部3年 - 生体情報学 - 9/23 インターン中 - 趣味: 深夜ラジオ ( 短い睡眠で快眠を得たい) github 2 自己紹介
Slide 3
Slide 3 text
今日話すこと 3 1. Goとの出会い... 2. Goで作ってきたものたち ... 3. Goの何が良いのか... 4. Goを使ってみて... 5. Goと僕のこれから...
Slide 4
Slide 4 text
“ phase1. goとの出会い 4
Slide 5
Slide 5 text
“ 今から約2年前... 5
Slide 6
Slide 6 text
“ 2016年11月 6
Slide 7
Slide 7 text
7 先輩、僕強くなりたいっすけどプロ グラミングの勉強って言っても、何 から始めたら良いかわからないで す... なに、まだやってないの? 今だとgo言語ってのがオススメだよ 一回やってみな! (多分こんなこと言ってたような ...) Y先輩
Slide 8
Slide 8 text
8
Slide 9
Slide 9 text
▹ dotinstall golang (1000yen) ▹ A tour go ▹ Go Web プログラミング などで文法を覚える ... 9
Slide 10
Slide 10 text
10 それから... 12月 ちょこちょこgoの勉強 1月 英語の勉強に走る ... 2月 英語 : Golang = 8:2 3月 NZ留学 (周りの人めっちゃ勉強してる ...) 4月 帰国後... goを教えてくれた先輩と話すことに
Slide 11
Slide 11 text
11 は...はい!!!!! ところで最近どう? コード書いてるの? 何か作った? え?やってない?何してんの?やらないと! 今からやろう Y先輩
Slide 12
Slide 12 text
12 それから先輩に付きっきりで色々と教わり、初めて goで成果物を作成
Slide 13
Slide 13 text
“ phase2. goで作っってきたものたち 13
Slide 14
Slide 14 text
- お天気BOT - LINE BOT SDK を用いて作成した CHAT BOT - github.com/line/line-bot-sdk-go - 概要 - lineの機能にあるマップを開いて、場所を指定する - その場所の天気、気温などの情報が返る 14 初めての成果物
Slide 15
Slide 15 text
15
Slide 16
Slide 16 text
16 あれ、めっちゃ楽しいな...
Slide 17
Slide 17 text
17 ここから僕のgo人生が始まったような...
Slide 18
Slide 18 text
制作物紹介 18 7. url shortener 8. bot generator 1. 天気 bot 2. twicli 3. raspi-go 4. radio-cli 5. stun server 6. editor
Slide 19
Slide 19 text
制作物紹介 19 7. url shortener 8. bot generator 1. 天気 bot 2. twicli 3. raspi-go 4. radio-cli 5. stun server 6. editor
Slide 20
Slide 20 text
“ 2017年5月 20
Slide 21
Slide 21 text
2. twicli cui上でtwitterの機能を扱えるようにしたもの - https://github.com/soeyusuke/twicli - urfave/cli - fzf (画像を添付するとき用に) - gizak/termui (いい感じのui) 21
Slide 22
Slide 22 text
22 2. twicli $ twicli search “バナナマン”
Slide 23
Slide 23 text
23 2. twicli $ twicli pic “bananaman”
Slide 24
Slide 24 text
24 2. twicli $ twicli user “tenntenn”
Slide 25
Slide 25 text
2. twicli - 初学者にとってcli toolは、作成が楽 - cliを作成しやすいlibrary結構ある - そのcli を強化してくれるlibraryもいっぱい 25
Slide 26
Slide 26 text
制作物紹介 26 7. url shortener 8. bot generator 1. 天気 bot 2. twicli 3. raspi-go 4. radio-cli 5. stun server 6. editor
Slide 27
Slide 27 text
制作物紹介 27 7. url shortener 8. bot generator 1. 天気 bot 2. twicli 3. raspi-go 4. radio-cli 5. stun server 6. editor
Slide 28
Slide 28 text
“ 2017年6月 28
Slide 29
Slide 29 text
3. raspi-go Rasberry piでgoを使ってみた - 大学側のバイトで動画再生システムをraspi で作成したい - gobot - 実際やることは単純でgobotの方で 制御してくれている 29
Slide 30
Slide 30 text
制作物紹介 30 7. url shortener 8. bot generator 1. 天気 bot 2. twicli 3. raspi-go 4. radio-cli 5. stun server 6. editor
Slide 31
Slide 31 text
制作物紹介 31 7. url shortener 8. bot generator 1. 天気 bot 2. twicli 3. raspi-go 4. radio-cli 5. stun server 6. editor
Slide 32
Slide 32 text
“ 2017年11月 32
Slide 33
Slide 33 text
深夜ラジオが好きな僕は、自分の趣味をもっと良くしたい - コマンドでradikoのタイムフリー機能から 自分の好きなラジオを選択すると落とせる... - grafov/m3u8 (m3u8ファイルのデコードして、 プレイリストを作成) - github.com/soeyusuke/bananaman 4. radio-cli 33
Slide 34
Slide 34 text
4. radio-cli 1. ログインしてCookieの取得 2. Tokenの取得 3. Tokenの認証 4. HTTPヘッダーにAuthTokenをセットし、m3u8ファイル を取得 5. M3u8ファイルから音声ファイルを取得 6. ffmpegで取得音声ファイルをconcat 34
Slide 35
Slide 35 text
$ bananamoon -id=LFR -s=20180920010000 -file=sample 35
Slide 36
Slide 36 text
制作物紹介 36 7. url shortener 8. bot generator 1. 天気 bot 2. twicli 3. raspi-go 4. radio-cli 5. stun server 6. editor
Slide 37
Slide 37 text
制作物紹介 37 7. url shortener 8. bot generator 1. 天気 bot 2. twicli 3. raspi-go 4. radio-cli 5. stun server 6. editor
Slide 38
Slide 38 text
“ 2018年2.3月 38
Slide 39
Slide 39 text
ふとNetworkの勉強をしたい!って思う またその時ビデオチャットの仕組みが気になりwebrtcを勉強 - stun server (STUNサーバは外部から見た自PCのIPアドレス取得する) - WebRTCで実際に使われる STUNサーバーは Binding-Request - github.com/soeyusuke/gostun - 標準パッケージで頑張る! 5. gostun 39
Slide 40
Slide 40 text
1. rfc文書の読解(https://tools.ietf.org/html/rfc5389) 5. gostun 40
Slide 41
Slide 41 text
2. 実装 (cli tool 化してわかりやすく...たぶん ) - シフト演算、論理演算が多かった... 3. 運用(まだしてない ) 5. gostun 41
Slide 42
Slide 42 text
42 実装が1番辛いと感じたdecodeの1部分
Slide 43
Slide 43 text
制作物紹介 43 7. url shortener 8. bot generator 1. 天気 bot 2. twicli 3. raspi-go 4. radio-cli 5. stun server 6. editor
Slide 44
Slide 44 text
制作物紹介 44 7. url shortener 8. bot generator 1. 天気 bot 2. twicli 3. raspi-go 4. radio-cli 5. stun server 6. editor
Slide 45
Slide 45 text
“ 2018年 6,7月 45
Slide 46
Slide 46 text
6. gse 先輩とバイナリエディタを作ることに...事前にエディタの ロジックを理解するために作成 - rthornton128/goncurses (ncurses api のラッパー) - Raw mode の実装が楽 - github.com/soeyusuke/gse 46
Slide 47
Slide 47 text
6. gse 47 1. 機能 1.1. モードをもつ 1.2. Cui上で 1.3. キーバインドをもつ (vimを真似しました ) 2. 動作 2.1. raw mode で1文字入力待ち 2.2. 入力に対応する関数等の実行 2.3. windowに反映
Slide 48
Slide 48 text
48
Slide 49
Slide 49 text
“ ほぼvim... 49
Slide 50
Slide 50 text
制作物紹介 50 7. url shortener 8. bot generator 1. 天気 bot 2. twicli 3. raspi-go 4. radio-cli 5. stun server 6. editor
Slide 51
Slide 51 text
制作物紹介 51 7. url shortener 8. bot generator 1. 天気 bot 2. twicli 3. raspi-go 4. radio-cli 5. stun server 6. editor
Slide 52
Slide 52 text
“ 2018年 9月 52
Slide 53
Slide 53 text
7. url shortener 8月のインターン先で、短縮urlの実装をしようとしていた - labstack/echo (validation go-playground validator) - graceful shutdown - github.com/soeyusuke/url_shortener 53
Slide 54
Slide 54 text
7. url shortener 3つのhandler - UrlShortenerHandler - post - UrlShortenerStatusHandler - get - RedirectHandler - get 54
Slide 55
Slide 55 text
7. url shortener - base62 encode, decode - 62種類の文字 A‐Z、a‐z、0‐9 - redirect - 1. パラメータを受け取る - 2. decode - 3. url に redirect 55
Slide 56
Slide 56 text
56 Base62 encode 部分
Slide 57
Slide 57 text
“ 現在... 57
Slide 58
Slide 58 text
8. bot generator 現在開発中 - linebot, messanger bot - 一部機能のpackage 分け - linebot sdk go が変わるごとに修正...辛い 58
Slide 59
Slide 59 text
“ このように なんでもできてしまう 59
Slide 60
Slide 60 text
“ phase 3.4. goの何がいいのか... goを使ってみて... 60
Slide 61
Slide 61 text
61 個人的な goの良さ - 初学者向けの教材?サイト?イベント?が周りに多い - 標準パッケージ、標準 go tool, godocが豊富 - testが良き 、cached... 61
Slide 62
Slide 62 text
- 並行 - ロジックを組むのが楽? - 同期、非同期 - goroutineのようなスレッドモデル 62 個人的な goの良さ 62
Slide 63
Slide 63 text
“ phase 5. goと僕のこれから 63
Slide 64
Slide 64 text
64 - やっぱり、書いていて楽しい - go2 の draftを読んで楽しみ - test masterへ 64 これから 64
Slide 65
Slide 65 text
“ ご静聴ありがとうございま した。 65