2017年9月6日水曜日

Golang で Webサービスにドキュメントをプッシュするツールを作りました

  • 複数のWebサービスにドキュメントを公開するツールです。
  • tdのようなログ送信ではなく、ドキュメントファイルを想定しています。
  • Golang 製なので、バイナリ一つで動きます。
  • シンプルなライブラリ設計で、Publisherインターフェイスを実装すればOKです。
  • context対応しているので、安全にAPIをクローズできます。

  • https://github.com/ynishi/publish
  • https://godoc.org/github.com/ynishi/publish

対応

  • github => commit を追加します。Endpointを最初からオプションで渡せるので、GHEもOKです。
  • s3 => ファイルをアップロードします。

Golang のTips

デバッグ

  • ライブラリでも最初から実行可能にしておく(mainを設置)
  • TDDとはいえ、dlvがきかないからきつい。
  • 処理を飛ばすと、debugしにくくなる。

構成

  • cobra/viper を最初から固めておく。
  • cobra使うなら、viperとセットで。
  • 最初から使うなら、cobraのscaffoldingを使う

TDD

  • err処理や、testの共通処理を関数で飛ばすのは、いまいち。
  • context.cancelに関しては、cancelして動作を確認しておく。

よきGolang lifeを!