Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
i_and_go
Search
poccariswet
September 28, 2018
0
40
i_and_go
student_go 2018.09.23 の資料
poccariswet
September 28, 2018
Tweet
Share
More Decks by poccariswet
See All by poccariswet
rust for web app
poccariswet
2
330
APNG maker on wasm
poccariswet
1
170
past and future
poccariswet
0
47
ncursesを学ぼう
poccariswet
0
56
shorterql
poccariswet
0
69
editor
poccariswet
0
77
さぁ、深夜ラジオを聴こう!
poccariswet
0
72
Aizu-Go
poccariswet
1
130
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
93
16k
Adopting Sorbet at Scale
ufuk
73
9.1k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.8k
Building Adaptive Systems
keathley
38
2.3k
Bash Introduction
62gerente
608
210k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Side Projects
sachag
452
42k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
The Cult of Friendly URLs
andyhume
78
6k
Transcript
I and Go! 2018/9/23
- soeyu - 会津大学 学部3年 - 生体情報学 - 9/23 インターン中
- 趣味: 深夜ラジオ ( 短い睡眠で快眠を得たい) github 2 自己紹介
今日話すこと 3 1. Goとの出会い... 2. Goで作ってきたものたち ... 3. Goの何が良いのか... 4.
Goを使ってみて... 5. Goと僕のこれから...
“ phase1. goとの出会い 4
“ 今から約2年前... 5
“ 2016年11月 6
7 先輩、僕強くなりたいっすけどプロ グラミングの勉強って言っても、何 から始めたら良いかわからないで す... なに、まだやってないの? 今だとgo言語ってのがオススメだよ 一回やってみな! (多分こんなこと言ってたような ...)
Y先輩
8
▹ dotinstall golang (1000yen) ▹ A tour go ▹ Go
Web プログラミング などで文法を覚える ... 9
10 それから... 12月 ちょこちょこgoの勉強 1月 英語の勉強に走る ... 2月 英語 : Golang =
8:2 3月 NZ留学 (周りの人めっちゃ勉強してる ...) 4月 帰国後... goを教えてくれた先輩と話すことに
11 は...はい!!!!! ところで最近どう? コード書いてるの? 何か作った? え?やってない?何してんの?やらないと! 今からやろう Y先輩
12 それから先輩に付きっきりで色々と教わり、初めて goで成果物を作成
“ phase2. goで作っってきたものたち 13
- お天気BOT - LINE BOT SDK を用いて作成した CHAT BOT -
github.com/line/line-bot-sdk-go - 概要 - lineの機能にあるマップを開いて、場所を指定する - その場所の天気、気温などの情報が返る 14 初めての成果物
15
16 あれ、めっちゃ楽しいな...
17 ここから僕のgo人生が始まったような...
制作物紹介 18 7. url shortener 8. bot generator <now doing>
1. 天気 bot 2. twicli 3. raspi-go 4. radio-cli 5. stun server 6. editor
制作物紹介 19 7. url shortener 8. bot generator <now doing>
1. 天気 bot 2. twicli 3. raspi-go 4. radio-cli 5. stun server 6. editor
“ 2017年5月 20
2. twicli cui上でtwitterの機能を扱えるようにしたもの - https://github.com/soeyusuke/twicli - urfave/cli - fzf (画像を添付するとき用に)
- gizak/termui (いい感じのui) 21
22 2. twicli $ twicli search “バナナマン”
23 2. twicli $ twicli pic “bananaman”
24 2. twicli $ twicli user “tenntenn”
2. twicli - 初学者にとってcli toolは、作成が楽 - cliを作成しやすいlibrary結構ある - そのcli を強化してくれるlibraryもいっぱい
25
制作物紹介 26 7. url shortener 8. bot generator <now doing>
1. 天気 bot 2. twicli 3. raspi-go 4. radio-cli 5. stun server 6. editor
制作物紹介 27 7. url shortener 8. bot generator <now doing>
1. 天気 bot 2. twicli 3. raspi-go 4. radio-cli 5. stun server 6. editor
“ 2017年6月 28
3. raspi-go Rasberry piでgoを使ってみた - 大学側のバイトで動画再生システムをraspi で作成したい - gobot -
実際やることは単純でgobotの方で 制御してくれている 29
制作物紹介 30 7. url shortener 8. bot generator <now doing>
1. 天気 bot 2. twicli 3. raspi-go 4. radio-cli 5. stun server 6. editor
制作物紹介 31 7. url shortener 8. bot generator <now doing>
1. 天気 bot 2. twicli 3. raspi-go 4. radio-cli 5. stun server 6. editor
“ 2017年11月 32
深夜ラジオが好きな僕は、自分の趣味をもっと良くしたい - コマンドでradikoのタイムフリー機能から 自分の好きなラジオを選択すると落とせる... - grafov/m3u8 (m3u8ファイルのデコードして、 プレイリストを作成) - github.com/soeyusuke/bananaman
4. radio-cli 33
4. radio-cli 1. ログインしてCookieの取得 2. Tokenの取得 3. Tokenの認証 4. HTTPヘッダーにAuthTokenをセットし、m3u8ファイル
を取得 5. M3u8ファイルから音声ファイルを取得 6. ffmpegで取得音声ファイルをconcat 34
$ bananamoon -id=LFR -s=20180920010000 -file=sample 35
制作物紹介 36 7. url shortener 8. bot generator <now doing>
1. 天気 bot 2. twicli 3. raspi-go 4. radio-cli 5. stun server 6. editor
制作物紹介 37 7. url shortener 8. bot generator <now doing>
1. 天気 bot 2. twicli 3. raspi-go 4. radio-cli 5. stun server 6. editor
“ 2018年2.3月 38
ふとNetworkの勉強をしたい!って思う またその時ビデオチャットの仕組みが気になりwebrtcを勉強 - stun server (STUNサーバは外部から見た自PCのIPアドレス取得する) - WebRTCで実際に使われる STUNサーバーは Binding-Request
- github.com/soeyusuke/gostun - 標準パッケージで頑張る! 5. gostun 39
1. rfc文書の読解(https://tools.ietf.org/html/rfc5389) 5. gostun 40
2. 実装 (cli tool 化してわかりやすく...たぶん ) - シフト演算、論理演算が多かった... 3. 運用(まだしてない
) 5. gostun 41
42 実装が1番辛いと感じたdecodeの1部分
制作物紹介 43 7. url shortener 8. bot generator <now doing>
1. 天気 bot 2. twicli 3. raspi-go 4. radio-cli 5. stun server 6. editor
制作物紹介 44 7. url shortener 8. bot generator <now doing>
1. 天気 bot 2. twicli 3. raspi-go 4. radio-cli 5. stun server 6. editor
“ 2018年 6,7月 45
6. gse 先輩とバイナリエディタを作ることに...事前にエディタの ロジックを理解するために作成 - rthornton128/goncurses (ncurses api のラッパー) -
Raw mode の実装が楽 - github.com/soeyusuke/gse 46
6. gse 47 1. 機能 1.1. モードをもつ 1.2. Cui上で 1.3.
キーバインドをもつ (vimを真似しました ) 2. 動作 2.1. raw mode で1文字入力待ち 2.2. 入力に対応する関数等の実行 2.3. windowに反映
48
“ ほぼvim... 49
制作物紹介 50 7. url shortener 8. bot generator <now doing>
1. 天気 bot 2. twicli 3. raspi-go 4. radio-cli 5. stun server 6. editor
制作物紹介 51 7. url shortener 8. bot generator <now doing>
1. 天気 bot 2. twicli 3. raspi-go 4. radio-cli 5. stun server 6. editor
“ 2018年 9月 52
7. url shortener 8月のインターン先で、短縮urlの実装をしようとしていた - labstack/echo (validation go-playground validator) -
graceful shutdown - github.com/soeyusuke/url_shortener 53
7. url shortener 3つのhandler - UrlShortenerHandler - post - UrlShortenerStatusHandler
- get - RedirectHandler - get 54
7. url shortener - base62 encode, decode - 62種類の文字 A‐Z、a‐z、0‐9
- redirect - 1. パラメータを受け取る - 2. decode - 3. url に redirect 55
56 Base62 encode 部分
“ 現在... 57
8. bot generator 現在開発中 - linebot, messanger bot - 一部機能のpackage
分け - linebot sdk go が変わるごとに修正...辛い 58
“ このように なんでもできてしまう 59
“ phase 3.4. goの何がいいのか... goを使ってみて... 60
61 個人的な goの良さ - 初学者向けの教材?サイト?イベント?が周りに多い - 標準パッケージ、標準 go tool, godocが豊富
- testが良き 、cached... 61
- 並行 - ロジックを組むのが楽? - 同期、非同期 - goroutineのようなスレッドモデル 62 個人的な
goの良さ 62
“ phase 5. goと僕のこれから 63
64 - やっぱり、書いていて楽しい - go2 の draftを読んで楽しみ - test masterへ
64 これから 64
“ ご静聴ありがとうございま した。 65