1.「Cloud9すげぇぇぇぇ!」
→クラウド9はローカル開発環境でちょこっとプログラミングを触っていた自分にとって、楽園とでもいえるほどの環境でした。とにかくプログラミングのハードルが下がる下がる。ちょこちょこと触っていると、本格的に何か作りたいなと、そう思いいたったのです。
2.「node.jsかっけぇぇぇ!」
→WEBアプリを作る、っていうのは前提としてあったわけです。でもちろんクライアントはhtml,css,javascriptが三種の神器でデファクトスタンダードなわけですけれども、さぁ、サーバーサイドはどうしましょう、となったわけです。(以下昔話...)初めてサーバーサイドを触ったのはPHPで、いろいろもちゃもちゃと触って違和感なく作れたのですが、いろいろあってプログラミングから離れていました。そうこうしているうちに「rubyOnRailsってすごいらしいよ」という噂を耳にし、どんなものかと触っていると、「PHPでもちゃもちゃやっていた、あの面倒くさいやつ(ルーティングに該当することだと思う)が仕組みとして組み込まれてるなんてすばらしい!DRYって素敵!設定より規約ってなんかすごそう!あと開発者のDHHってなんか、響きがかっこいい!!しかもrubyって日本人の開発者なんだすげぇ!」ってなりました。でも、まぁ、一応作っては見たんですけど、まぁ、なんというかあんまし理解できなかったというか。「感動したけど、いまいちrailsって“ピン”と来ないな…」という印象でした。すごく複雑そうに見えたんです。rubyは直観的で好きなんですけど、railsは直観的でない。そう感じたんです。(...以上昔話)ということで、さわったことのあるrubyOnRailsの勉強の仕切り直しをするか、はたまた別の言語でいくのか…。いろいろ調べているうちに「Node.js、最近、キテるらしいよ」という噂を耳にし(流されやすい人)、調べてみると、結構よさげらしいじゃないですか。少し前(数年前)までは、勝手な認識ですけど「javascriptで無理やりサーバーサイドをかける、キワモノ」みたいに思ってたんです(笑)。とにかくnode.jsは非同期と相性がよさそうだし、クライアントサイドは結局javascript使うんなら、いちいち言語を切り替える必要もないのでよいと。まぁ、使ってみて「最高にクールなんだなjavascript」って思えましたけどね!
3.「expressしんぷるぅぅぅ!」
→言語選びにさんざん悩んだ挙句、さらに今度はフレームワーク選びで悩みました。nodeにはデファクトスタンダードなフレームワークがない、らしく…。railsライクなSailsやらやたらカッコよくて自己完結型のMeteorやら、シンプルなExpressやら…。実はこの段階でもまだ、「やっぱりrailsのほうがいいんじゃないだろうか」とかもう、いろいろ触りながら試行錯誤してました。で、結局Expressにしました。理由は単純「Qiitaの投稿数が多かったから」です。Rails触ったことあるし、Sailsにしようかな、とも思ったんですが「Sailsの中身が何やっているのかわからない」っていうのが、足枷になりそうな気がしたからやめました。
4.「socket.ioあしんくぅぅ!」
→nodeを選んだなら、非同期ライフを満喫したい。なにやら非同期を簡単に実装できそうじゃありませんか。でまぁ、そこそこ躓きながらも、なんとか実装できました。はい。便利ですね、非同期、楽しいですね、非同期。
5.「mongoDBそのまんまくえりぃぃ!」
→mongoDBはそのままjavascriptのオブジェクトを投げれば使える(=言語を切り替える必要がない)ということらしいので、mongoにしました。本番環境(?)に環境を移す時のことを考えると、mySQLがなにやら難しそうなことが調べると書いてあったのと「SQLじゃないのにDB」ってところが最高にキュートだと思えたので、ここはあまり迷わなかった気がします。
6.「mLabしんぷるぅぅ!」
→gitHub経由でHerokuにデプロイすることは規定路線だったので、本番環境(?)上でのDBの設定を行いました。まぁ、予想通りおおはまりしましたが、実はかなり懸念していた部分だったので、無事連携できてよかったです。
7.「gitHubおおぷんん!!」
→gitHubもまともに使えたことがなかったので、うれしいです。ちなみに自分のPCにはgitはいれません。ファイルも保存しません。
8.「herokuでぷろぃぃ!!」
→herokuの「変な外国人の思い描いたJAPAN色満載のデザイン」には未だになれませんが、無料デプロイ環境といえば、Herokuですよね。スケールしやすい(らしい)そうなので、それも夢が広がっていいですよね。
まとめ:
本当は「今までの復習を兼ねてつまったところを順番に体系的にまとめる」ということをやりたかったのですが。記憶の欠落が多くてかけない、かつ、その記事をまとめていると、その記事を書くのに時間が費やされ過ぎて、実際にモノを作る(コードを書いたり、デザインしたり)時間が無くなってしまう、という理由で断念しました。つまったところは都度まとめないとだめですね。調べ物をしながらメモをとって、それをもとに記事にする、っていうようにやらないと。まぁ、Qiitaの利用方法も手探りです。