From Tokyo, Japan. Web-Developer. Write some codes by Go/Scala And thanks everything around my self.

Goでgo-assetsやgo-bindataみたいなAssetコンバーターを作った / made an asset converter like go-assets and go-bidata

Goでgo-assetsやgo-bindataみたいなAssetコンバーターを作った / made an asset converter like go-assets and go-bidata

ことのあらまし

仕事でGoのWebアプリケーションを開発するときには基本的にシングルバイナリでデプロイできるように、Configファイルなどの静的ファイルはgo-bindataを使ってバイナリに巻き込めるように変換してからデプロイをかけるようにしているのだが、go-bindataは以前少し界隈で騒がれたように、おそらくもうメンテされないであろう状況になってしまった。

同様のライブラリとしては、go-assetsというものもあり、こちらに移行するかという話になったのだが今度は以下のような問題があった。

  • こっちもやっぱり積極的にメンテされているとはいい難い
  • go-assets-builderというものを利用して.goファイルを作成するのだが作成されたファイルが、実行毎に内容が変わってしまい、DIFFしづらい

後者があまり個人的にはよろしくなく、会社で扱っているコンフィグファイル配布アプリケーションにこの辺のライブラリを使用しているのだが、誰かがコミットしたもののチェックがしづらかったりしてはかどらないし、たぶんISSUE出してもPRしても反映されないんだろうなぁ・・・

となったので、go-assetsの構造からインスパイアされて自前で作った。

github.com/deadcheat/goblet

.goファイルを生成するコマンドも一緒にインストールすることもできるので取り回しがいい(はず)

あとはhttp.FileServeに直接つっこんだり、ファイルを取ってきたらそのままio.Readerとして扱えるようにしてあったりするので、身の回りのレベルでは困らない感じ

課題としては、変換後ファイルが少し大きくなりがちなので、そこを圧縮なりを考慮して小さくしていきたいというところ。

あとテスト書かないとっていうのがある。(TDDしてない。すみません)

 

Alexaスキルの開発が意外と楽しかった / I enjoyed developing an alexa skill

Alexaスキルの開発が意外と楽しかった / I enjoyed developing an alexa skill

I quit the internet. vol 2.

I quit the internet. vol 2.