去年この記事を書いてから、さらにいくらか改善をした。
- そもそもバグがあったので直してもらう
- Slack Botとしても動くようにしていたので、その変更をmasterに取り込む
- GitHub Actionsを使えるようにする
- さらにリファクターとテストの追加
- じみこが終了できるようにする
- 特定のアイテムがあるかないか返事させる
- 今後のじみこ
そもそもバグがあったので直してもらう
4月の上旬に夫が急にGo言語触りたいと言い出して「じゃあサンプルコード上げてるから使っていいよ」とjimikoのコードと記事のリンクを渡した。そしたらGoの書き方を確認しつつバグ修正とリファクターしてくれたので取り込んだ。
どうせ家でしか使わんしと思って雑にPR見てマージ。しかしこのやり取り端的に言って気持ち悪いなと思って
そういや私が作ったDialogflowのアプリを昨日、夫がいそいそと改造し始めてたけど、完成したんだろうか。
— きみきみ氏 (@kimikimi714) 2020年4月10日
PR待ってるんだけども。
PRきて真面目に返したけど、家庭で何やってるんだめっちゃ気持ち悪いなって正直思った。
— きみきみ氏 (@kimikimi714) 2020年4月10日
え、だいぶ気持ち悪いぞ?
— きみきみ氏 (@kimikimi714) 2020年4月10日
アプリの動作改善されたのは嬉しいけど、コミュニケーションは気持ち悪いぞ?
なんでこんなことしてるんだ?
— きみきみ氏 (@kimikimi714) 2020年4月10日
いや、おうちハックは別にいいんだけど
激しく動揺した。
Slack Botとしても動くようにしていたので、その変更をmasterに取り込む
リファクターしてもらったし他にもやっておきたかったことをやる気になったので、前からあったブランチに変更を取り込みつつmasterブランチでSlack向けのコードも使えるようにした。
この時のコメントのやり取りも「いや目の前にいるんだし普通に会話すればよくね?」と心の中では思ってたけど、なんか自然とコメント返しててもう駄目だなと思った。普通にって言っても会話の内容もどうなんだ。家庭内でコードレビューしてるの、何が仕事と違うんだろう。
GitHub Actionsを使えるようにする
Circle CIとかJenkinsとか使わなくても私程度の用途であればGitHub Actionsで十分じゃない?と思って使えるようにした。
使ったActionsは以下。
結構簡単に動いたので助かった。以下の画像のような感じで動作したActionsの結果一覧を見ることができる。
実はこのPR#3の方を#2より先に取り込んでいて、PR#2でコードにlintがちゃんとかかるか試していた。その時の結果の一部が以下。
ref: Merge branch 'master' of ssh://github.com/kimikimi714/jimiko-dialogflow into slack-adapter · kimikimi714/jimiko@b7c3369 · GitHub *1
でもこの結果だと
make lint
実行したときよりも reviewdog で指摘されるのが少ないのはなんでだろうな。
Slackでも動かせるようにしていた分をmasterに取り込む by kimikimi714 · Pull Request #2 · kimikimi714/jimiko · GitHub
自分で書いたコメントのように出てくる結果が少なすぎたので、ymlファイルに必要な設定が追記できてないことには気が付いていた。が、ここは正しい設定にするよりまず動く設定を入れることを重視してマージ。
さらにリファクターとテストの追加
はじめからテスト書けよ(自戒)。
テストもCIできるようになった。masterにマージされたらdeployまでいってもいいかもしれんが、家庭でちょっと使う程度のことにそこまでのボリューム持たせてもなーとも思ってやってないし、環境変数どうやって登録するよとかも調べないといけなくなる。まぁproductionレベルにしたいわけじゃないので面倒。
じみこが終了できるようにする
前の作りだとテストアプリを終了させないとじみこも終了しないようになっていた。Google Homeに「OK Google. 止めて」でも止められはするがせっかくなので、Dialogflowでアプリを終了させるためのインテントを追加した。
追加したインテントにどんな言葉を投げたら終了するか書き出して
終了前の返事と「Set this intent as end of conversation」にチェックを入れて保存する。
最後に左メニューの「Integrations」から「Google Assistant」を選んで「Add Intent」で今回追加したインテントを追加すれば、じみこがこの終了用インテントを使うようになる。
特定のアイテムがあるかないか返事させる
これが開催されるとのことだったので申し込んで、前から考えてた改善に取り組んだ。
成果物は以下。
リモートもくもく会にははじめて参加したけど、結構楽しかった。たまにはこういうのもいい。
今はGitHub Actionsが走ることでSlackに以下のように通知される。
Messageがnullになってるところは今後修正予定。コミットメッセージかコミットへのリンクを貼ろうかと思っている。
リモートもくもく会の最後のLTでGoogle Homeがちゃんと返事するところまでやったけど、音声を上げないと信じてもらえなさそうなので、Twitterにしゃべってるところを上げておく。
今日の成果物です。 pic.twitter.com/O60fOJ3pYZ
— きみきみ氏 (@kimikimi714) 2020年5月4日
今後のじみこ
本当は特定アイテムがあるかないかじゃなくて、買ってきたら買い物リストに追加するようにしたかった。けど現時点ではやり方がやっとわかった程度で5/4中にはできなかったので、おいおいやろうかなと思う。あと今のやり方だとテストアプリとしてしか使えないので、アルファ版として家庭だけで使うようとしてリリースしようと思う。リリースするにはまだ機能が少ないんだよな。
じみこのキャラクターも定まってないし。