hikarie.go #4でGoのCLIにおけるマルチプラットフォーム対応についてLTした

LTしてきた

勉強会に参加するよりひたすら家にこもってプルリ書いてるほうが好きなので去年はそういう生活をしていたけど、今年はもうちょっとアウトプットしようと年の始めに考えていた。そこで、とりあえず一発目としてhikarie.go #4というGoの勉強会でLTをした。

話したこと

GoでCLIツール書くとwindowsでも動くことを期待されることがそこそこあり、かつwindowsだけは他のOSとはだいぶ実装方法が違うので辛いという話をした。使わないしよく知らないOSの実装が重たくて思い通り開発を進められないのは厳しい。甘えていてもいられないので、僕が普段書くCLIツールでwindows対応が必要でかつそういうAPIが提供されていると作りやすそうみたいなライブラリを書いた。

go-ansiがstdout側、go-keybindがstdin側のマルチプラットフォーム対応をしてくれる。go-ansiにはもう少しAPIを足すつもりなんだけど、それがあればこの2つのライブラリを使うことで「**_windows.go」みたいなファイルを使わずにpure goのreadline代替の実装ができる。本当はそれも公開する予定だったんだけどさすがにreadline的な奴の実装をするのはそこそこ重くて間に合わなかった。

特につっこまれなかったけど、go-ansiに関しては既に似たようなのが存在しないでもない。けどまぁそれのパッケージが細分化されてて使いにくそうなのと、既存のやつが提供してる他に欲しいAPIがあったので組み直した。

ネタ作り

LT申し込む時点では何も考えてなかった上にとにかく怠惰な人間なので当日まで何もしてなかったけど、当日から徹夜を始めてすごい急いで実装して発表資料もマッハで作ってギリギリ間に合った。見に来てもらう以上はもうちょっと真面目に準備するべきだったと思う。ちゃんとしたい。

感想

久々に参加したけど和やかな雰囲気の会でよかった。