slacklog-generator
slacklog-generator copied to clipboard
another implementation of "fetch-messages"
fetch-messages の別実装を書いてみました。
API自身とをイテレートするところと取得結果をファイルに書き出すところをそれぞれ抽象化して fetch-messages からどう使うかが見どころです。
ConversationsHistory の中身は書いてないですが そこは見せたい場所ではないので省略してます。
パッケージ解説
- internal/slackadapter/ - Slack API を実際に叩くところ。イテレート/ページネーションのためのユーティリティ関数を含む
- internal/jsonwriter/ - JSONでの永続化層。実装はクッソ適当だがI/FがWriteとCloseとして切れてるあたりがみそ。あとで差し替えるときも楽。
- subcmd/fetchmessages/ - fetch-messages サブコマンドの実装位置。サブコマンド間のnamespaceが変に混ざらないように分けたほうが吉
そのほか
contex.Context は今はこういものと覚えてほしいです。
タイムアウトとかキャンセルができたほうが良い
時間のかかることをするときに使います。
たとえばネットワークアクセスとか。
#123 がマージされたら rebase して実装できる。