LoginSignup
3
2

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-12-21

はじめに

こんにちは。
この投稿は 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ならね。)

AWS Lambda Layers

エコシステム構築編

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

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

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

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

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

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

まとめ

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

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

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2