【Golang】第5回 dwanGoに参加しました

タイトル通りですが、先週の水曜(2014/12/10)にドワンゴさんの社員の方が開かれているdwanGoというGo言語の勉強会に参加してきました。


dwanGo - connpass

 

 

内容 

今回のテーマは「コマンドラインツールを書いてみましょう」というものでした。私はこの第5回が初参加でしたが、これまではA Tour of Goもくもく会のようでしたので参加タイミングとしてはちょうど良かったかも。

 

会自体は、最近ドワンゴさんに入社されたという@yukkuri_shinaiさんによって進められました。

コマンドラインツールは@yukkuri_shinaiさん曰く「劣化aria2」のような並列ダウンローダを作ろうということでした。

制作は

  1. httpで指定のファイルを落としてくるツールを作る
  2. ファイルの指定を引数で、かつ複数個指定できるように改良する
  3. 複数のファイルを並列で落とすように改良する
  4. フレームワークを使ってヘルプやバージョンが出せるように改良する

という4段階に分かれており、各段階ごとにgistにupされた答え(兼写経用)を見ながら@yukkuri_shinaiさんによる解説が行われました。

 

次の段階になるまでどう改良されていくのか分からなかったのと、各段階での要件がおおまかなものだったのもあって、次の段階のものを先に作ってしまっていたりもしました。

 

 

書いたコード

 

 

結果

dwgo05 http://otiai10.com/chino.gif http://otiai10.com/enju.gif

このように実行すると以下のような画像がダウンロードされます。

 

f:id:kudohamu:20141215131459g:plain

f:id:kudohamu:20141215131513g:plain

URLは適用にぐーぐる先生で探したものです。

まだまだ勉強不足で、syncパッケージの知識が怪しかったので一部写経しています。 

 

 

参加してみて

codegangsta/cliというコマンドラインツールを作るフレームワークの存在を知ることができたのは大きな収穫でした。

これまではgo-flagsを使っていましたが、今回紹介されたcodegangsta/cliの方が私の好みに合っていました。これからはこちらに乗り換えようかなと思います。


jessevdk/go-flags · GitHub

 


codegangsta/cli · GitHub

 

@yukkuri_shinaiさんが用意した写経用のコードが正しく動かないものだったり(修正済み)クリックが右クリックになったままになり再起動するなどのちょっとしたハプニングはありましたが、そのおかげで逆にほのぼのした会になっていたように思います。

内容次第ですが第6回も参加したいです。

 

それにしてもみんな書くの早いし、質問の内容も鋭いとこ突いてたりですごいなぁ

 

 

おまけ

Goのファイルアイコン可愛い

f:id:kudohamu:20141215131913p:plain

 ʕ◔ϖ◔ʔ