SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Downloaden Sie, um offline zu lesen
作ったものを見せたかった話
@CodeHex
自己紹介
• 本名: 上川 慶
• R大3年
• Perl大好き
• https://github.com/Code-
Hex/
• https://twitter.com/CodeHex
お願いです
• これは Go 初心者のスライドです
• 間違えていたら教えてください
• 暖かい目で見守ってください…
今回作っていたもの
分散ダウンローダー
with golang
考えてた仕組み
file
Content-Length: 10GB
file
Content-Length: 10GB
file file file file file file file file file file
1GB 1GB 1GB 1GB 1GB 1GB 1GB 1GB 1GB 1GB
※goroutine 10個で行う場合
file file
1GB
file
結合!!
10GB
…… …
1GB
もしファイルが用意されてた場合
file
Content-Length: 10GB
Server1 Server2 Server3 Server4
2.5GB2.5GB 2.5GB 2.5GB
Server1
2.5GB
file file file file file file
約426MB 約426MB 約426MB 約426MB 約426MB 約426MB
file file
約426MB
file
結合!!
10GB
…… …
約426MB4 (url の個数) * 6 (goroutine) の数
あったらいいよねー
Goって少しPerl似にてるよね!
2日間で作ってやる!
開発合宿初日の様子
開発合宿2日目の様子
夜中の1時の様子
今
なぜ完成しなかったか
• そもそも Go に関する知識が足りない
• 自分の力を過信していた
• 設計をちゃんと行ってなかった
合宿で得られたこと
技術面
オブジェクトはない
goroutine を沢山生成
しても良い
panic/recover はスタック
が深くなるような処理で使
うべき
Go 製のツールで外部にエラー
の内容を伝えたい場合は
error を使うべき
github.com/pkg/errors
これすごくいいよ!!
channel は闇という事実
分からなかったこと
interface の使いどころ
channel の正しい使い方
正しい gorouting の終了の方法
感想
初心を思い出した

静的言語だから工夫することが面白い
Go 楽しい!!

Weitere ähnliche Inhalte

Ähnlich wie 作ったものを見せたかった話

今日から始めるGopher - スタートGo #0 @GDG名古屋
今日から始めるGopher - スタートGo #0 @GDG名古屋今日から始めるGopher - スタートGo #0 @GDG名古屋
今日から始めるGopher - スタートGo #0 @GDG名古屋
Takuya Ueda
 

Ähnlich wie 作ったものを見せたかった話 (6)

使えるDjango1.4
使えるDjango1.4使えるDjango1.4
使えるDjango1.4
 
Dive into the Cloud with our buddy, lovely PHP!
Dive into the Cloud with our buddy, lovely PHP!Dive into the Cloud with our buddy, lovely PHP!
Dive into the Cloud with our buddy, lovely PHP!
 
aptのマニュアルをpo4a化した話
aptのマニュアルをpo4a化した話aptのマニュアルをpo4a化した話
aptのマニュアルをpo4a化した話
 
ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜
 
今日から始めるGopher - スタートGo #0 @GDG名古屋
今日から始めるGopher - スタートGo #0 @GDG名古屋今日から始めるGopher - スタートGo #0 @GDG名古屋
今日から始めるGopher - スタートGo #0 @GDG名古屋
 
20130824 Lightweight Language "Go" @LL matsuri
20130824 Lightweight Language "Go" @LL matsuri20130824 Lightweight Language "Go" @LL matsuri
20130824 Lightweight Language "Go" @LL matsuri
 

Mehr von Kei Kamikawa

Mehr von Kei Kamikawa (9)

JWT を使ってみよう
JWT を使ってみようJWT を使ってみよう
JWT を使ってみよう
 
技術を身につける技術
技術を身につける技術技術を身につける技術
技術を身につける技術
 
俺はこうして Go の CLI を作っている
俺はこうして Go の CLI を作っている俺はこうして Go の CLI を作っている
俺はこうして Go の CLI を作っている
 
我輩が作ったものを淡々と
我輩が作ったものを淡々と我輩が作ったものを淡々と
我輩が作ったものを淡々と
 
grep.metacpan.orgのススメ
grep.metacpan.orgのススメgrep.metacpan.orgのススメ
grep.metacpan.orgのススメ
 
XS を始めよう!
XS を始めよう!XS を始めよう!
XS を始めよう!
 
Okinawapm#3
Okinawapm#3Okinawapm#3
Okinawapm#3
 
Yomitan.pmに参加しようよ
Yomitan.pmに参加しようよYomitan.pmに参加しようよ
Yomitan.pmに参加しようよ
 
初見では読みづらいPerl
初見では読みづらいPerl初見では読みづらいPerl
初見では読みづらいPerl
 

作ったものを見せたかった話