0
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

Organization

[alexa day 2019 参加レポート]Backlog for Amazon Alexa enhance を 全部見せます

概要

登壇者: 伊東 知治さん
スライド: https://speakerdeck.com/haruharuharuby/backlog-for-amazon-alexa-enhance
ターゲット: Alexa Skill の開発の経験があるかた、もしくは、興味のあるかた

プロジェクト管理ツール Backlog とリンクすることのできる Alexa Skill version 2のエンハンスの中身全部見せます。
全ての機能をどのようにエンハンスしていったか。会話設計から各APIの実装、テストまで全部見せます。

引用: https://alexaday2019.aajug.jp/session/168/

導入

  • Backlog for Amazon Alexaというスキルがあり、今回v2の開発において...な話
  • v1の設計は主に以下から構成していた
    • communicationレイヤー
      • ユーザーとの会話を豊かにするレイヤー
    • workflowレイヤー
      • 発話内容から意図を汲み取り、処理するレイヤー
    • repositoryレイヤー
      • backlogAPI叩いたりしてデータを扱うレイヤー

Be a adviser

  • ボイスアシスタントは機能ではなくノウハウを実装すべき(アドバイザーであるべき)
  • プロジェクトマネジメントにおけるボイスアシスタントの役割はなにか考える
    • プロジェクトマネージャーは普段どうしてるのか考えてみる
    • インプット -> 分析/判断 -> 決定 じゃね?
    • つまり、アシスタントからは意思決定のための情報が欲しい
    • backlogの全機能をalexaから使える事ではない
  • backlogとユーザーをつなぐ部分にボイスアシスタントが一手間加える感じ

それを踏まえて新しい設計/実装

  • v1の設計をベースに、以下を追加
    • analyticsレイヤー
      • backlogから取得したデータを分析するレイヤー
  • aws codeStarおすすめ
  • codeStarは裏でcloudformationのデプロイが走る
    • ASK-CLIより遅い
    • エディタがcloud9はちょいネック
  • プロジェクト作成後、即デプロイすること
    • パイプラインを確立させておく
    • その後変更を加えていくのが安パイ
  • interactionModelを作ってあとからcodeStar経由でのデプロイは不可能
    • 注意書きにもそうあるっぽい
  • スライドではi18n/localizationなことにも触れてるので、多言語対応するなら参考になる
  • communicationレイヤーでは Talkクラス を作って、会話を構成してる
  • workflowレイヤーはハンドリングするだけなのでとてもシンプルに

感想

設計論的な話がメインで、アプリケーション設計とか勉強している身としてはとても面白かった。
- 関心事はなにか
- ボイスアシスタントはなにをすればいいのか
- オブジェクト指向
- DRY
などなどを考えた結果、こんな感じになったのかーととても心打たれた。

あと、codeStarおすすめは繰り返しおっしゃっていたので使ってみたい。

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
Sign upLogin
0
Help us understand the problem. What are the problem?