2014-12-09 Hubot Advent Calendar 2014 の 9 日目をかいた & hubot-homepage をつくった
Hubot Advent Calendar 2014 の 9 日目を書き、ほかに hubot-homepage をつくった。1 日 1 Hubot スクリプトの 149 日目。
1 日 1 Hubot スクリプトを終えた後のことを考えている。
「フロントエンド」ってキーワードをはじめてこのブログで書いたのは 2013-12-30 らしい。およそ 1 年前か。
転職したのが 2013-09-01 で、最初 Ruby on Rails で API と Android でネイティブアプリをつくるつもりだったはず。ワンダーポート のために Node.js をはじめて使った。そこからぼくにとっての JavaScript がはじまったみたい。それ以来 JavaScript はぼくの第一言語になった。以前はそこに Java やらが居たのに。
年を越すと Apache Cordova (Adobe PhoneGap) を使いはじめた。HTML5 (JavaScript) でハイブリッドアプリをつくるようになった。4 月ごろまで使った。まともにアプリを出せなかったのは、ぼくのスキルでは、ネイティブアプリに近い動きを実現するのは厳しかったからだろうな。
また 1 月からは Backbone.js / Marionette.js / AngularJS をためしていた。上記のハイブリッドアプリは最初 AngularJS 、途中からは Backbone.js でつくっていたし、5 月ごろには blog.bouzuya.net を Marionette.js でつくりなおした。Chaplin や Knockout なども書いていないけど、ためしていたり。
このあたりのふりかえりは 2014-07-06 にもしている。あらためて Bootstrap やりたいって書いていたけど、できてないなあ。
2014-07-14 はひとつの区切りと言っていい。1 日 1 Hubot スクリプトをスタートした日だ。Hubot は Node.js + CoffeeScript で動いているので、1 日 1 Hubot スクリプトを続けるということは毎日 JavaScript なリポジトリをつくるに等しい。
Hubot スクリプトの内容を考えることにとんでもない労力がかかっている。繰り返しの中で生まれる効率化やベストプラクティスの発見は今後も活かしたいけど、1 日 1 xxx はあまり効率の良いやりかたではなさそうだ。
フロントエンドって意味だとぼくはあまり進歩してない。進歩していないわけではないけど、劇的ではないし、ものをつくるって感じではない。
年末で面談も近くて、会社的にも、ぼく個人としても、ぼくは何をしたいのか、できるようにしたいかを検討する時期に来ている。会社としてはネイティブアプリを開発している二人が主軸になっていて、それ以外はそんなに信頼されている状態にない (少なくともぼくはそう思っている)。たぶん、絵に書いたようなデザインを HTML の形で Web アプリの形で実現するスキルが求められている。ぼくは、いま転職するとして、何を武器にすべきだろう。Hubot ? GitHub ? 次の環境はどうなるか分からない。それに導入を説得できるかも怪しい。 JavaScript ? 中途半端なスキルは適用できない。
JavaScript でアプリケーションをつくれるスキルは要る気がする。単純な Web ページは CMS で駆逐されるだろう。でも、Web アプリケーションはどうだろう。 Web ブラウザをプラットフォームとしてアプリケーションをつくるのはそう簡単に置き換えられない。Web アプリケーションのバックエンド、Java や Ruby やあれやこれやが居る領域。あそこは人がたくさん居るが、JavaScript はまだまだな気がする。片手間じゃない JavaScript をやるのは良い気がする。業務ではフルスタックに近い状態なのだけど、どちらかというとフロントエンドエンジニアなところに重点を置くようにしたい。それがいい気がする。
具体的に何をやるのか。
来年は 1 日 1 Hubot スクリプトの代わりに 1 週 1 HTML5 アプリケーションをやろうと考えている。HTML5 とは言え、フロントエンドだけでなくバックエンドも用意する。バックエンドは Ruby と Ruby on Rails または JavaScript (Node.js) と express で Heroku Button または Docker などで簡単にデプロイできるようにし、それに対応する複数の HTML5 アプリケーションを TypeScript と AngularJS でつくろうと思う。月に 1 個のバックエンドと、4・5 個のフロントエンドができあがるイメージ。とりあえず、Ruby / Ruby on Rails / Node.js / express / TypeScript / AngularJS はとりあえず挙げただけで、実際にやるかは分からない。せっかくいろいろ試せる環境なので、早くつくるためのトレーニングもいいけど、いろいろな構成を試したい。
とりあえず 1 月は Node.js と TypeScript + AngularJS でためしてみて、今後の方向性を決めたい。