Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
作ったものを見せたかった話
@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
※gorou...
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 楽しい!!
作ったものを見せたかった話
Upcoming SlideShare
Loading in …5
×

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

Hackers Chample 2016 で Golangを舐めてて全く完成しなかった話

  • Be the first to comment

  • Be the first to like this

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

  1. 1. 作ったものを見せたかった話 @CodeHex
  2. 2. 自己紹介 • 本名: 上川 慶 • R大3年 • Perl大好き • https://github.com/Code- Hex/ • https://twitter.com/CodeHex
  3. 3. お願いです • これは Go 初心者のスライドです • 間違えていたら教えてください • 暖かい目で見守ってください…
  4. 4. 今回作っていたもの
  5. 5. 分散ダウンローダー with golang
  6. 6. 考えてた仕組み
  7. 7. file Content-Length: 10GB
  8. 8. 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個で行う場合
  9. 9. file file 1GB file 結合!! 10GB …… … 1GB
  10. 10. もしファイルが用意されてた場合
  11. 11. file Content-Length: 10GB Server1 Server2 Server3 Server4 2.5GB2.5GB 2.5GB 2.5GB
  12. 12. Server1 2.5GB file file file file file file 約426MB 約426MB 約426MB 約426MB 約426MB 約426MB
  13. 13. file file 約426MB file 結合!! 10GB …… … 約426MB4 (url の個数) * 6 (goroutine) の数
  14. 14. あったらいいよねー
  15. 15. Goって少しPerl似にてるよね!
  16. 16. 2日間で作ってやる!
  17. 17. 開発合宿初日の様子
  18. 18. 開発合宿2日目の様子
  19. 19. 夜中の1時の様子
  20. 20.
  21. 21. なぜ完成しなかったか
  22. 22. • そもそも Go に関する知識が足りない • 自分の力を過信していた • 設計をちゃんと行ってなかった
  23. 23. 合宿で得られたこと
  24. 24. 技術面
  25. 25. オブジェクトはない
  26. 26. goroutine を沢山生成 しても良い
  27. 27. panic/recover はスタック が深くなるような処理で使 うべき
  28. 28. Go 製のツールで外部にエラー の内容を伝えたい場合は error を使うべき
  29. 29. github.com/pkg/errors これすごくいいよ!!
  30. 30. channel は闇という事実
  31. 31. 分からなかったこと
  32. 32. interface の使いどころ
  33. 33. channel の正しい使い方
  34. 34. 正しい gorouting の終了の方法
  35. 35. 感想 初心を思い出した 静的言語だから工夫することが面白い
  36. 36. Go 楽しい!!

×