nakahashi / koko.doc

0 stars 0 forks source link

システム構成の設計 #2

Open nakahashi opened 9 years ago

nakahashi commented 9 years ago

配置図を書いてシステム構成を設計します。 ↓こんな構成にする予定です。

iKazuyoshi commented 9 years ago

ごめんすでにチケットあったね… #3は後でクローズします。

iKazuyoshi commented 9 years ago

ドコモ雑談対話API

なにこれ…? まぁ良いけど、Heroku選定の理由はなんでしょう…(Heorkuってただのタイポだよね?)

nakahashi commented 9 years ago

タイポ直しました。 ドコモ雑談対話API → https://dev.smt.docomo.ne.jp/?p=docs.api.page&api_name=dialogue&p_name=api_reference このAPIで会話できるTwitterボットにするつもりです。

nakahashi commented 9 years ago

Herokuを選んだのは、

といったの理由です。 いい候補がほかにもあれば教えてください。

nakahashi commented 9 years ago

というか、実はheroku以外知りません。。

nakahashi commented 9 years ago

システム構成はこのように考えています。 layout

nakahashi commented 9 years ago

Web開発ではタスクランナーとかいうのを使うのが一般的なようなので、gulpというタスクランナーを使ってPlantUMLの*.puファイルを*.pngに変換してくれるタスクを勉強用に書いてみました。

PlantUML用のgulpプラグインで文字化けしたので、文字コードを指定できる機能を追加するPull Requestを出してみました。

そういう状態なので、このリポジトリ上のgulpfileはまだ仮です。

iKazuyoshi commented 9 years ago

最近はたいていのメジャーなPaas事業者はGithubと連携しているし 仮に中橋リーダーがお客さんなり、うちのお偉いさんとかを 説得する材料とするには弱いかな…

他のサービスと比較してHerokuが良い!と自信を持って言える長所を いくつかのサービスのPros / Consを洗い出して言えるようになるとベストです。

今回はHerokuで良いけど、実際の業務とかだとこういった点を突っ込まれるので 余裕をもってクリアできるようにしましょう!

iKazuyoshi commented 9 years ago

ついでに言うと、私もHerokuは使ったことないので楽しみです。

iKazuyoshi commented 9 years ago

Expressを選定した理由は? http://qiita.com/oukayuka/items/14bfdcb6b5411a2b4b7c この編を見ると、NodeのWebアプリケーションFWって、人気がばらけてるよね。 Expressは、ちょっとリッチな感じですが、何か選定の理由ってありますか?

nakahashi commented 9 years ago

Expressは、Node向けWebフレームワークでは一番初めに紹介されている印象があったので、あまり深く考えずに選びました。実際稲富さんが上げた記事の中でも、Stack OverflowとQiitaでの情報が多かったのは印象と一致しています。 なので、他のフレームワークと比較して選んだわけではありません。

nakahashi commented 9 years ago

いや、実はHubotというボット用フレームワークを一度試してみたのですが、Twitterとの接続がいまいちだったので、やめたのでした。 ただ、Hubotも内部ではExpress3を使っていましたので、Expressを使うのは見当違いではないのかと。

nakahashi commented 9 years ago

私はWebフレームワークというとRubyのRailsとSinatraしか知らないのですが、ExpressはSinatraに似て比較的シンプルなフレームワークという感じでしたが。。

nakahashi commented 9 years ago

ただ、Express以外のフレームワークも少し調べたら面白そうだったので、もう少し調査してみたいと思います。

nakahashi commented 9 years ago

調査の途中ですが、少しExpressで作ったボットに関する記事を、Qiitaにアップしました。 Node.js(Express)で作ったTwitterボットとダイレクトメッセージで雑談する - Qiita

iKazuyoshi commented 9 years ago

Expressの件はもう少しExpressになにを期待しているのか考えてみましょうか。 ここ、超重要で一度決めると後々変更し辛いのでね・・・。 本当はF2Fで話ししたいとこだね。。。

nakahashi commented 9 years ago

「何を期待しているか」という話ですが、それは「他のフレームワークと比べて」、ということでしょうか。それとも、「素のNodeと比べて」ということでしょうか。 前者は調査中です。 後者は以下のような感じです。

nakahashi commented 9 years ago

Node用フレームワークを調査して以下にまとめました。 Node.js - メジャーなNode用Webアプリケーションフレームワークを比較する - Qiita

Expressもいいですが、非同期処理を支援してくれるKoaがいいかも、と思いました。 Javascript書くとコールバックだらけになるので、そこをスマートに書けるようになるというのはJavascriptプログラマとしてこれから重要になっていくのではないかと。Koaはそこに切り込んでいっているので。

Koaができることとしては、非同期処理の支援を除けばExpressと似たようなものっぽいです。

iKazuyoshi commented 9 years ago

よく分からないけど、Githubからアカウントロックされてました... Heroic、Express使ってみたけど、Expressは良さげですがHerokuとMongoは今後のプロダクト 開発においては恐らく商用利用が安定性とかの観点で難しそうなので、AWS使うようにしませんか?

そうなると、Expressなんかも使わなくなりそうなんですが…

nakahashi commented 9 years ago

AWS全然わからないので、教えてください。。

nakahashi commented 9 years ago

AWSの情報を少し読んで少し自己解決しました。 こんな構成でどうでしょう?

aws

無料枠は各サービスごとにあるように読めるので、たぶん枠内で行けると思うんですけど。

nakahashi commented 9 years ago

うーむ、上記の構成だとkokoコーンソールのjavascriptのコードにtwitterやAWSのトークンを直書きしなきゃいけなくてやっぱり駄目ですね。。 サーバーサイドにTwitterやAWSにアクセスするAPIを作りたいのですが、koaは使っちゃダメですか?

nakahashi commented 9 years ago

AWS Elastic Beanstalkにkokoボットをデプロイしてみました。 ボットのID ソースのリポジトリ

ボットの機能的には以下の記事の時と変わりませんが、ES6で書き直したりしてます。 Node.js(Express)で作ったTwitterボットとダイレクトメッセージで雑談する - Qiita

リポジトリに今後の作業をIssueで挙げています。 kokoコンソールのWebアプリに関しては、フロントエンドのみちょっと作ってみます。