0日目。
法人インフォをぶっこ抜きたくて https://github.com/garsue/sparql/ というの書いてる。
GoのSPARQLのクライアントライブラリは https://github.com/knakk/sparql があるけど、 レスポンスまるっとメモリにロードするのがちょっと嫌で、なによりよくあるRDBと同じノリで使えたらいい感じかなと思って、SQL driverとしてクライアントライブラリを書いてみた。
database/sql/driverはちょいちょい進化していて、 実装すべきinterfaceとそうでもないやつが別れてきてる。
ので、これからなんかSQL driverとして実装したいぞ、っていうときに現時点(go 1.11)で実装すべきinterfaceとかつらつら書く。 が、ひとまず言いたいのは initでRegisterとかしなくていいよ ということ。
最初は黒魔術っぽくアンスコimportで使いたいdriver使えていい感じに見えたけど、 driver固有のオプションをdsnで文字列として渡さなきゃいけなかったりあんまりイケてなかった。
そこで登場したのが Connector で、
要するにふつーのstructでオプション値表現しつつ、Conn
を返すメソッドもってればよくね?ってなったらしい。
使う側はsql.OpenDB
にConnector渡してやるだけで、そんなに使い勝手は変わらない、
というかdsn文字列頑張って組み立てなくて良くなるから楽になる。
今後はConnectorベースの初期化が広まるといいっすね。
(以上が言いたかったことであとは割とどうでもいい話)
その他に実装すべきinterfaceとしてはとりあえずcontext.Context
受け取る系。
あと NamedArg 対応しておくとオシャン。
(以下本当にどうでもいい話)
最近ランジャタイというお笑いコンビにハマっている。 ちょっと前に日曜チャップリンで欽ちゃんのネタを見て以来、すっかり心を掴まれてしまった。 (気になる人はググってみよう)
正直何が面白いのかわからず、好きなのかどうかすらわからないが、録画した日曜チャップリンを1ヶ月間毎日2,3回みていた。 今も疲れたときに見直したりしている。
友人に進めるときもまずは欽ちゃんのネタをまっさきに勧めているが、今のところハマった人はいない。
ランジャタイの出るライブにも足を運んでいて、先日一緒に写真をとることもできた。うれしい。
実は前述のGoのSQL Driverの話を golang.tokyo #20 でLTしようかと思っていたのだが、 ランジャタイも出演するお笑いスペシャルライブ「K-PRO一年ライブ」とかぶってしまい、キャンセルしてしまった。
せっかく外に出そうと思っていた情報なので雑にでも書けてよかった。