Open nakahashi opened 9 years ago
ごめんすでにチケットあったね… #3は後でクローズします。
ドコモ雑談対話API
なにこれ…? まぁ良いけど、Heroku選定の理由はなんでしょう…(Heorkuってただのタイポだよね?)
タイポ直しました。 ドコモ雑談対話API → https://dev.smt.docomo.ne.jp/?p=docs.api.page&api_name=dialogue&p_name=api_reference このAPIで会話できるTwitterボットにするつもりです。
Herokuを選んだのは、
といったの理由です。 いい候補がほかにもあれば教えてください。
というか、実はheroku以外知りません。。
システム構成はこのように考えています。
Web開発ではタスクランナーとかいうのを使うのが一般的なようなので、gulpというタスクランナーを使ってPlantUMLの*.pu
ファイルを*.png
に変換してくれるタスクを勉強用に書いてみました。
PlantUML用のgulpプラグインで文字化けしたので、文字コードを指定できる機能を追加するPull Requestを出してみました。
そういう状態なので、このリポジトリ上のgulpfileはまだ仮です。
最近はたいていのメジャーなPaas事業者はGithubと連携しているし 仮に中橋リーダーがお客さんなり、うちのお偉いさんとかを 説得する材料とするには弱いかな…
他のサービスと比較してHerokuが良い!と自信を持って言える長所を いくつかのサービスのPros / Consを洗い出して言えるようになるとベストです。
今回はHerokuで良いけど、実際の業務とかだとこういった点を突っ込まれるので 余裕をもってクリアできるようにしましょう!
ついでに言うと、私もHerokuは使ったことないので楽しみです。
Expressを選定した理由は? http://qiita.com/oukayuka/items/14bfdcb6b5411a2b4b7c この編を見ると、NodeのWebアプリケーションFWって、人気がばらけてるよね。 Expressは、ちょっとリッチな感じですが、何か選定の理由ってありますか?
Expressは、Node向けWebフレームワークでは一番初めに紹介されている印象があったので、あまり深く考えずに選びました。実際稲富さんが上げた記事の中でも、Stack OverflowとQiitaでの情報が多かったのは印象と一致しています。 なので、他のフレームワークと比較して選んだわけではありません。
いや、実はHubotというボット用フレームワークを一度試してみたのですが、Twitterとの接続がいまいちだったので、やめたのでした。 ただ、Hubotも内部ではExpress3を使っていましたので、Expressを使うのは見当違いではないのかと。
私はWebフレームワークというとRubyのRailsとSinatraしか知らないのですが、ExpressはSinatraに似て比較的シンプルなフレームワークという感じでしたが。。
ただ、Express以外のフレームワークも少し調べたら面白そうだったので、もう少し調査してみたいと思います。
調査の途中ですが、少しExpressで作ったボットに関する記事を、Qiitaにアップしました。 Node.js(Express)で作ったTwitterボットとダイレクトメッセージで雑談する - Qiita
Expressの件はもう少しExpressになにを期待しているのか考えてみましょうか。 ここ、超重要で一度決めると後々変更し辛いのでね・・・。 本当はF2Fで話ししたいとこだね。。。
「何を期待しているか」という話ですが、それは「他のフレームワークと比べて」、ということでしょうか。それとも、「素のNodeと比べて」ということでしょうか。 前者は調査中です。 後者は以下のような感じです。
Node用フレームワークを調査して以下にまとめました。 Node.js - メジャーなNode用Webアプリケーションフレームワークを比較する - Qiita
Expressもいいですが、非同期処理を支援してくれるKoaがいいかも、と思いました。 Javascript書くとコールバックだらけになるので、そこをスマートに書けるようになるというのはJavascriptプログラマとしてこれから重要になっていくのではないかと。Koaはそこに切り込んでいっているので。
Koaができることとしては、非同期処理の支援を除けばExpressと似たようなものっぽいです。
よく分からないけど、Githubからアカウントロックされてました... Heroic、Express使ってみたけど、Expressは良さげですがHerokuとMongoは今後のプロダクト 開発においては恐らく商用利用が安定性とかの観点で難しそうなので、AWS使うようにしませんか?
そうなると、Expressなんかも使わなくなりそうなんですが…
AWS全然わからないので、教えてください。。
AWSの情報を少し読んで少し自己解決しました。 こんな構成でどうでしょう?
無料枠は各サービスごとにあるように読めるので、たぶん枠内で行けると思うんですけど。
うーむ、上記の構成だとkokoコーンソールのjavascriptのコードにtwitterやAWSのトークンを直書きしなきゃいけなくてやっぱり駄目ですね。。 サーバーサイドにTwitterやAWSにアクセスするAPIを作りたいのですが、koaは使っちゃダメですか?
AWS Elastic Beanstalkにkokoボットをデプロイしてみました。 ボットのID ソースのリポジトリ
ボットの機能的には以下の記事の時と変わりませんが、ES6で書き直したりしてます。 Node.js(Express)で作ったTwitterボットとダイレクトメッセージで雑談する - Qiita
リポジトリに今後の作業をIssueで挙げています。 kokoコンソールのWebアプリに関しては、フロントエンドのみちょっと作ってみます。
配置図を書いてシステム構成を設計します。 ↓こんな構成にする予定です。