React コトハジメ という資料を自分向けにだらだらまとめてる。理由は色々沢山情報はあるが、自分に合っている資料が凄く少ないと感じたからだ。
そもそもなぜ自分が JavaScript なのかという話をしてみようとおもう。また触ってみた感想などをてきとうに。
JavaScript は正直手を出す気は無かった。ただ、仕事上 WebRTC をメインにしている以上は日常的に JavaScript を見る機会が増えた事が、手を出した一番の理由だろう。JavaScript がわからなさすぎて、自分の手で少しの改良もできないことが多くなってきたからだ。
さらに、WebRTC なアプリを開発依頼されるときに機能を見積もりするためのには最低限の知識が無いと何が大変なのかを理解できない。これで開発するメンバーに迷惑をかけたくないというのもある。
なぜ React なのかどうかは、社内で利用されているライブラリが React だったから、というだけだ。こだわりは無い。Vue.js が社内で使われていたら Vue.js だろう。
React をうわべだけ触ってみたところコンポーネントな感じで、JSX という HTML/JS とも言えない独自言語で UI を生成していくあたりがまぁ悪い感じはしなさそうだという印象。ただ罠は多そう。
さらに Babel という今まで自分が触ってきた JavaScript とはなんだったのかと思わせるほどの文法がシンプルになる仕組み。今まで JavaScript 独自の文法に苦しめられていたので、これは助かった。
あとは自動ビルドしてブラウザに反映してくれる Webpack を覚えてみることにした、これは便利だ。ただテンプレートエンジンと連動したりするとあまり良くなさそうという印象はある。
デザインは残念がら興味も無いこともありなにかしらパーツを組み合わせる仕組みを利用したかった。Bootstrap か Material かというところで、Material UI を学んでみたが、よく考えられていて、最低限であれば困らなかった。ただ少しでもおうように踏み込むとしんどそうだ。
Lint 大好きなので ESLint というのも触ってみた。プラグインが豊富で好き勝手に合わせられるようだ。これは良い。ただベースが無いのでどうするのがいいのかわからない。これは Airbnb の https://github.com/airbnb/javascript を利用すると素敵な感じになるようだ。ちなみに React や JSX https://github.com/airbnb/javascript/tree/master/react もあるので助かる。マネ大事だ。
また、型チェックツールも Flow というのがあるらしいのだが、どうもしんどい感じだ。さくさくっと書けることは書けるのだが元々型の無い仕組みに後付はなかなかやっかいなんだなと。Erlang の Dialyzer の優秀さを実感した。
使うライブラリやツールを狭めたとしてもライブラリのアップデートがかなり頻繁なため、定期的に自分向けの資料をアップデートすることにしている。
JavaScript 界隈は進みが早いというのは実際そう感じる。ただネガティブな印象は無い。皆が皆、効率よく開発したいという思いをもって色々な方向から全速力でゴール無きゴールに向かって言っているというのが自分が見た印象だ。
食らいついていく気は無いが、遠くから定期的に眺めては行ければと思っている。それくらいはやったって損はないだろう。