勉強になったOSS
ただGitHubでスターをつけているだけだとなんとも実りがない気がしたので、メモかつ何がどう参考になったかというのをまとめておく。
全部に言えることは「実装がきれい」。
Go
fast-service
エキスパートたちのGo言語の「1.3 インターネット回線のスピードテスト」で知った。
- sync/atomiパッケージを使用した非同期処理の実装
- Goroutine/Channel型の実装
を学ぶには実践的でとてもよかった。
Goを学びたての時に読むと理解が深まると思う。
action-slack-notify
GitHubActionでslackに通知したいなと思ったときに使ったもの。
usesで定義する中身を知りたいなと思って見た。
中身はすごくシンプルかつやっぱり読みやすい。
Goの標準パッケージしか使ってないところを見ると流石と思う。
os.Getenvで各パラメータを参照しているところを見ると、実際どうなっているのかわかりやすいと思う。
こっちで指定したSlackのWebhookURLはコンテナの中で環境変数として設定されてるんだな。とか。
公式documentをななめ読みしたり、英語全然できないタイプにはもってこいのサンプル。
slackbot作りたい人も読むと参考になると思う。
私の中ではプログラミング言語はユニバーサル言語。
go-setlock
cronの多重起動を防ぎたいけど、CentOS7/8だしなぁと思っていたときに勧めてもらった。
daemontools-encore の setlock.c を見比べたりしてみると面白いと思う。
Go言語を読んでいたと思ったらいつのまにかC言語を読んでいたという出会いに感謝。
Perl
MySQLのスロークエリを解析したいときに使う mysqldumpslow。
「お世話になってます。あなたPerlだったのね。」と感慨深く?なった。
Perlで何かしら実装したことがある人は読めると思う。
MySQLに興味を持ち始めているお年頃なのでPerlを触る機会があってよかったと再認識できる。
Perlアレルギーの人もぜひ一度触ってもらいたい。何にしろ食わず嫌いはよくない。