生涯未熟

生涯未熟

プログラミングをちょこちょこと。

TebataというGoライブラリを作りました

最近色々とPubSubのプログラムをGoで書いていて、「こんなライブラリほしいなぁ」と思って生まれたのが、このTebataです。

github.com

どういうライブラリ?

Tebataは一言で言うと「シグナルハンドラ」です。

Subscriberを作っている時に、よくこういう処理を書いていました。

こういう感じの「シグナルを受け取ってホニャララな処理」を簡単に書くためのライブラリです。

既存ライブラリを調べる

作る前に既存ライブラリを調べたのですが、近いのがこちらのライブラリでした。

github.com

「おっ、これいいじゃん」と思ったものの、わざわざ構造体拵えて、TearDownを表す構造体メソッドを拵えて・・・ってのが面倒でした。
個人的に、実行したいfunctionを流し込んでそれを実行してくれる、くらいの感じが欲しかったのです。

あと、シグナルをキャッチしてTearDownが実行されたらプログラムが終了するのも汎用性が無くて勿体無い、という気持ちもありました。

で、作った

で、出来上がったのがTebataです。

使い方は簡単で、 tebata.New() の引数にキャッチしたいシグナルを指定して、

で、実行したいfunctionを流し込んでいきます。

これで、設定したシグナルを受け取った時にfunctionが動き出します。

書き直してみる

さて、最後に例として出したsubscriberをTebataで書き直してみます。

なんかあまり変わってない感じですが、もうちょっと複雑な処理だと効果が実感できるような気がします。

おわりに

というわけで、良かったら使ってみて下さい。
どんなご意見でも良いのでIssueやらPRやら送って頂けると嬉しいです。