はじめに
こんにちは。
この投稿は LINEBot&Clova Advent Calendar 2018の21日目の投稿です。
皆様、Clovaのスキル開発にいそしんでいらっしゃいますでしょうか。
Clovaのスキルに限りませんが開発をゼロから始めるのは、労力もそれなりにかかり
意外とハードルが高くなってしまうものです。
そこでゼロから作らなくても済むよう開発テンプレート的なのを用意しました。
(元ネタはハンズオンで使ったものになります。)
手前味噌で恐縮ですが、紹介していきたいと思います。
皆様の労力を少しでも軽くできますように。
ハンズオン資料
こちら当時のハンズオン資料をSpeakerDeckに上げ直しました。こちらの資料に従って作業を進めると
Clovaのスキルが開発できるようになってるんですね。1度ハンズオンでも使った実績の有る資料ですので安心してお使いください!
(でも少し情報が古いかもしれないので、適宜読みかえていただけると!)
ちなみに資料の中で使用しているコードは下記のGithubリポジトリに置いてあります。
https://github.com/mochan-tk/clova-handson-20180904
ここから下は少し雑な資料になりますがご容赦くださいませ。
開発応用編
ここからは応用編になります。
Clovaの開発をもっと楽にしていきましょう!
Typescriptテンプレート
ハンズオン資料で使用しているjavascriptのコードをTypeScriptに置き換えたブランチになります。
Node.jsでの開発の場合、javascriptでプログラミングすると思いますが
Node.jsやるならTypescriptを私は推したいです。
Typescriptのメリットについては下記の記事が参考になります。
https://furien.jp/columns/279/
Lambda テンプレート
AWS Lambdaで動かすことを前提にしたブランチです。
ちなみにAWS Lambda Layersをご存知でしょうか? LambdaのLayer機能を使うとさらにClovaの開発が楽になります。
詳細は下記を見ていただくとして、ざっくり言うと共通のコードを別途配置しておくことができる機能ですね。
(今年はLambda関連の新機能がたくさん発表されました。待ってるだけで開発が勝手に楽になっていく、そうAWSならね。)
エコシステム構築編
やはり開発が込み入ってくると、開発周りのエコシステムもちゃんと構築しておいた方が幸せになれるんですね。
開発者がやることはコードを修正してGithubにPUSHするだけにして、余計な労力をできる限り削る、これが後々効いてきます。
(お仕事の合間や土日などでClovaスキル開発をやられる場合、ちょっとした手順もシンドイと感じてきます。また多忙で開発からしばらく離れてしまうと手順を忘れたりと。。)
デプロイされるコードが必ずGitHubリポジトリの最新から持ってくることが約束されている点も良いポイントです。
手動デプロイだと間違えて一世代前のコードをデプロイしてました(汗)なーんてこともあるのではないでしょうか。
そんな状態で動作確認をしても完全に無駄になってしまいます。(ちょっとしたパニックになりますね 笑)
AWSを用いたエコシステム(Lambda)
AWS環境でCI/CDができる方法を記載しています。
GitHubに修正したコードをPUSHすると自動的にLambdaにデプロイされます。
AWS CodeStarを用いて構築の難易度を下げる工夫を入れています。
GCPを用いたエコシステム(GAE)
GCPのCloud Build を使って CI/CDを実現しています。
実は自分が公開している**「動物鳴き声クイズ」スキルはGCPのテクノロジーによって支えられている**んですね。
まとめ
いかがでしたでしょうか。
こういった既に動いた実績のあるコードをベースに自分のやりたいことにコードを置き換えていくと
労力を抑えて効率よく開発ができると思っています。
私が公開しているリソースに関してはどんどん使っていただいて大丈夫ですので是非パクってください!
(テンプレートは数ヶ月前からあまりメンテナンスできていないので、もしよろしければUPDATEしていただけると助かります 笑)