Golangの共通ライブラリ

Golangの共通ライブラリを作成しました。
他言語でよく使う~Utilのようなものです。

※2017/8/30追記

v1.0.0のリリースに伴い、リポジトリのURLとgo getの取得先を変更しています。
詳しくはこちらをご覧ください。

Golangにはデフォルトで便利なパッケージがそろっており、ログ出力も可能です。
ただ、他言語にあるようなログレベルでの出力ができないため、サードパーティライブラリを利用するか自分で作るしかありません。
このあたりを自分が使うようにカスタマイズしたものが上記ライブラリです。

以下コマンドで取得してください。

利用する際は以下のようにインポートします。

なお、JSONから構造体に設定を読み出す機能とメール送信機能もあります。
気になった点などありましたらぜひPull Requestをお願いします。

日々の試行錯誤と自分の手に馴染むもの

最近、いろいろな言語で試行錯誤していたバッチをGo言語(Golang)に移行しました。
単一バイナリでどこでも動作させられるという点と実行速度、標準ライブラリが豊富な点が気に入っています。

実は以前、Go言語のフレームワーク(Revel)を利用してWebAPIを作ったこともありました。
ただ、静的ファイル(HTMLやCSSなど)の管理が結構面倒でした。
調べてみても、静的ファイルを変換してバイナリに組み込むという荒業で乗り切っている記事が多かったです(go-bindataというパッケージですね)。
以前私がWebAPIを作った際、静的ファイルとして確認用の画面があったので、

  1. バイナリをコンパイル
  2. 静的ファイルとまとめて圧縮してサーバにアップ
  3. 解凍してバイナリ実行

という方法でデプロイしていました。
最近はマイクロサービス化の風潮もあるので、WebAPIはGo・ビューはフロントエンドフレームワークというようにアプリケーションを分けてしまったほうが良いのかもしれませんね。

そんなGo言語ですが、以前私はeclipseにGoプラグインをインストールして開発をしていました。
ただ、今ではあまり効率良く開発出来ていなかったなと思っています。
ところが最近、「Visual Studio Code」でデバッグ・補完・ジャンプ・フォーマットなど一通りの機能を利用して開発できることを知りました。
正直、かなり開発を効率化できているなと実感しています。

Visual Studio Codeはいわゆる「高機能なエディタ」です。
同じようなツールとして、以前Atomを使ったことがありました。
ただ、昔利用していたPCのスペックもあってあまり気持ちよく開発出来ず、スクリプト言語を利用した開発も結局IDEで頑張っていたんです。
エディタなのでIDEと比べて動作がサクサクしており、標準(場合によっては拡張機能導入)で言語別のハイライトやLintも実行可能です。
JavaやC#も利用できますが、正直このあたりは専用IDEがあるのでそっちを使ったほうが良いかなと思います(このあたりはケースバイケースですね)。
今回Go言語や、JS・HTMLの開発ではこういったエディタは非常に便利ですので、一度使ってみてはいかがでしょうか。

…と、走り書き気味でしたが、ここ最近の気持ちを伝えたくて一気に書きました(笑)。
他に「これも良いよ!」というツール・サービスなどあれば、是非教えてください。