Help us understand the problem. What is going on with this article?

Clova開発オレオレ標準テンプレート

More than 1 year has passed since last update.

はじめに

こんにちは。
この投稿は LINEBot&Clova Advent Calendar 2018の21日目の投稿です。

皆様、Clovaのスキル開発にいそしんでいらっしゃいますでしょうか。
Clovaのスキルに限りませんが開発をゼロから始めるのは、労力もそれなりにかかり
意外とハードルが高くなってしまうものです。

そこでゼロから作らなくても済むよう開発テンプレート的なのを用意しました。
(元ネタはハンズオンで使ったものになります。)
手前味噌で恐縮ですが、紹介していきたいと思います。
皆様の労力を少しでも軽くできますように。

ハンズオン資料

ハンズオン資料

https://speakerdeck.com/mochan_tk/line-boot-awardsgong-shi-xia-qi-jiang-xi-hanzuonzi-liao

こちら当時のハンズオン資料をSpeakerDeckに上げ直しました。こちらの資料に従って作業を進めると
Clovaのスキルが開発できる
ようになってるんですね。1度ハンズオンでも使った実績の有る資料ですので安心してお使いください!
(でも少し情報が古いかもしれないので、適宜読みかえていただけると!)

ちなみに資料の中で使用しているコードは下記のGithubリポジトリに置いてあります。
https://github.com/mochan-tk/clova-handson-20180904

ここから下は少し雑な資料になりますがご容赦くださいませ。

開発応用編

ここからは応用編になります。
Clovaの開発をもっと楽にしていきましょう!

Typescriptテンプレート

https://github.com/mochan-tk/clova-handson-20180904/tree/typescript

ハンズオン資料で使用しているjavascriptのコードをTypeScriptに置き換えたブランチになります。
Node.jsでの開発の場合、javascriptでプログラミングすると思いますが
Node.jsやるならTypescriptを私は推したいです。

Typescriptのメリットについては下記の記事が参考になります。
https://furien.jp/columns/279/

Lambda テンプレート

https://github.com/mochan-tk/clova-handson-20180904/tree/lambda-layers

AWS Lambdaで動かすことを前提にしたブランチです。

ちなみにAWS Lambda Layersをご存知でしょうか? LambdaのLayer機能を使うとさらにClovaの開発が楽になります。
詳細は下記を見ていただくとして、ざっくり言うと共通のコードを別途配置しておくことができる機能ですね。
(今年はLambda関連の新機能がたくさん発表されました。待ってるだけで開発が勝手に楽になっていく、そうAWSならね。)

AWS Lambda Layers

https://speakerdeck.com/mochan_tk/line-bot-and-clova-cekkai-fa-zhe-2018da-wang-nian-hui-lt

エコシステム構築編

やはり開発が込み入ってくると、開発周りのエコシステムもちゃんと構築しておいた方が幸せになれるんですね。
開発者がやることはコードを修正してGithubにPUSHするだけにして、余計な労力をできる限り削る、これが後々効いてきます。
(お仕事の合間や土日などでClovaスキル開発をやられる場合、ちょっとした手順もシンドイと感じてきます。また多忙で開発からしばらく離れてしまうと手順を忘れたりと。。)

デプロイされるコードが必ずGitHubリポジトリの最新から持ってくることが約束されている点も良いポイントです。
手動デプロイだと間違えて一世代前のコードをデプロイしてました(汗)なーんてこともあるのではないでしょうか。
そんな状態で動作確認をしても完全に無駄になってしまいます。(ちょっとしたパニックになりますね 笑)

AWSを用いたエコシステム(Lambda)

https://github.com/mochan-tk/clova-handson-20180904/tree/lambda-deploy

AWS環境でCI/CDができる方法を記載しています。
GitHubに修正したコードをPUSHすると自動的にLambdaにデプロイされます。
AWS CodeStarを用いて構築の難易度を下げる工夫を入れています。

GCPを用いたエコシステム(GAE)

https://github.com/mochan-tk/clova-handson-20180904/tree/gae-cloud-build-type

GCPのCloud Build を使って CI/CDを実現しています。
実は自分が公開している「動物鳴き声クイズ」スキルはGCPのテクノロジーによって支えられているんですね。

まとめ

いかがでしたでしょうか。
こういった既に動いた実績のあるコードをベースに自分のやりたいことにコードを置き換えていくと
労力を抑えて効率よく開発ができると思っています。

私が公開しているリソースに関してはどんどん使っていただいて大丈夫ですので是非パクってください!
(テンプレートは数ヶ月前からあまりメンテナンスできていないので、もしよろしければUPDATEしていただけると助かります 笑)

iotlt
IoT縛りの勉強会です。 毎月イベントを実施しているので是非遊びに来てください! 登壇者を中心にQiitaでも情報発信していきます。 https://iotlt.connpass.com
https://iotlt.connpass.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away