はじめに
完全に個人的なメモです。
概要は覚えてるんだけど、細かいところ(あれ何年だけ?とか)忘れるので。
Node.jsの変遷
-
2009年03 Node.js誕生
- API仕様がころころ変化
- つか、モジュール名すら変化
- 初期だし、そんなもんだろうと。
-
2012年~
- 初期型が定まった感じ?
- 個人的には、2011~2014年あたりのnode.jsの記事に出会うことが多い気がする。
2014年 Node.jsプロジェクト分裂。⇒ io.js プロジェクト誕生
-
2015年01 io.js のv1リリース
- ここからしばらく、Node.js と io.jsが両立状態(主にio.jsが進化)
2015年09 Node.jsのv4リリース。⇒io.jsとNode.jsプロジェクト統合
2016年04 Node.jsのv6リリース。
Node.js v4は2017年度末までサポート。
Node.js v6は2018年度末までサポート。
⇒LTS(=Long Term Support)版。リリースから2年間サポート。
※最新版は v7 だが、これのサポートは短い。
次のLTSはv8の見込み。
Node.jsの情報をWebで探すなら、「2016年以降」でフィルタリングするのお勧め。現行のNode.js v4 / v6 で動くコードサンプルとの遭遇率アップで幸せ。
(「2015年9月~」でも「2016年4月~」でも構わないけど)
ECMAScript
JavaScriptの標準規格
「ES」と略されること多数。ES6⇒ECMAScript v6 を意図。
- 1997年06 ES1 策定
- ・・・(中略)・・・
- 2009年12 ES5 策定
- 当時のメジャーなブラウザはほぼすべて対応。
- IE10やIE9も、コレならサポート済み。
- IE7-8は、ES3までのサポート。
- (ES4?あぁ、生まれる前に殺された子ですね。←)
- これで書いておけば、たいていのブラウザ互換は大丈夫。
- 2015年06 ES6 策定
- ES2015や、ECMA2015などとも呼称される。
- IE11【以外】のメジャーなブラウザはほぼすべて対応済み。
- Edge13~、FireFox45~、Chrome50~が対応済み。(たぶん、もう少し前のバージョンから)
- Node.js は v6~でほぼ対応済み。
Node.jsのフレームワーク
※完全に個人的嗜好/メモでの列挙。
Express
- MVCフレームワーク
- MVC=Model View Controller
- ユーザーへの表示(View)と、ユーザーからのInput(Controller)と、それに対する応答(Mode)を分けて考えよう、ってヤツ。
- UI込みでクライアント側とサーバー側を設計する際に便利なフレームワーク(らしい)。
Electron
- クロスプラットフォーム(Windows、Mac(OS X)、Linux等)なデスクトップアプリケーションを作れるフレームワーク。
- Node.jsとChroniumの組わせでデスクトップアプリ動作を実現。
- Webブラウザベースで動作するローカルなアプリ、というイメージか?
- 「Visual Studio Code」や「Atom」も、これで実装されている。
Mocha
- UnitTest用テストフレームワーク。
- シンプルで使いやすい。前提知識なしでもとっつきやすい。
- 非同期テストももちろん対応。
- Promiseオブジェクト使うときは、「done()呼び出し」ではなく「Promiseオブジェクトを返却」なので、要注意。
- Assertライブラリは好きなのを選べる。
Chai
- Assertライブラリ。
- Mochaと組み合わせて使っていて、とりあえず不満はない。
- 構文も分りやすいと思う。
参考にしたサイト様
[どうしてこうなった? Node.jsとio.jsの分裂と統合の行方。]
https://speakerdeck.com/yosuke_furukawa/dousitekounatuta-node-dot-jstoio-dot-jsfalsefen-lie-totong-he-falsexing-fang-korekaradoujin-hua-siteikufalseka
[Node.js 6.0 リリースを機にLTSについて整理してみた]
http://backport.net/blog/2016/05/03/node_js_lts/
[ECMAScript 2015のブラウザ対応状況と実践投入に向けて]
https://html5experts.jp/1000ch/16995/
[Electron 1_0でデスクトップアプリ開発超入門]
http://www.atmarkit.co.jp/ait/articles/1605/18/news017.html