2014年10月28日火曜日

ECMAScript 6 の API の対応をチェックするアプリケーションも作った

ECMAScript 5 の API の対応をチェックするアプリケーションを作った に引き続き、ECMAScript 6 の API の対応状況をチェックする Web アプリケーションを作りました。

ECMAScript 6 compatibility table を参考に、例によって Mocha + Chai + Express で heroku アプリケーションとしてデプロイしました。


ただ残念なことに "Unicode code point escapes" と "Symbol.hasInstance" はうまく動作させることができず、ひとまずこのチェックツールではサポートさせないことにしました。
"Unicode code point escapes" のチェックを有効にするとひとつも spec が実行されないというのは回避のしようがないので、全てのチェックを行えるページを別途設ける方向で行こうかなと思います。
良かったら使ってみてください。
相変わらずソースコードはこちらです。
https://github.com/rou/ECMAScript-checker

2014年10月25日土曜日

ECMAScript 5 の API の対応をチェックするアプリケーションを作った

ECMAScript 5 ってどのくらい対応されているのかなと思って下記サイトで確認する方も多いのではないでしょうか?
http://kangax.github.io/compat-table/es5/

最近はスマホの Web アプリケーション開発を業務でやっていたりするので、ECMAScript 5 に対応している OS バージョンをしっかり把握したいと思い、チェックするアプリケーションを作成しました。

コードはこちらです。
https://github.com/rou/ECMAScript-checker
Node.js + Mocha + Chai を使用してメソッドの存在を確認したりしています。

ついでに heroku で公開してみました。
https://es-checker.herokuapp.com/
heroku で公開するにあたって Express で HTTP サーバーを実現するようにしています。

いずれ ES6 のチェッカーも作ろうかなと思います。

2012年11月24日土曜日

Node.jsでWebアプリケーション作るならこんな構成?


最初に

最近 Node.js を触る機会が増えてきたので、Node.js で Web アプリケーションを作ってみようかなと考えました。
プライベートプロジェクトなのでひとまず動けば OK という感じです。

構成

と言うわけで最初にどんな構成でやるかを考えます。
こんな所でしょうか。
Node.js の各モジュールは package.json で管理します。

ディレクトリー構成

ディレクトリー構成はこんな感じです。
基本的に Express でアプリケーションを作成したものに追加していく形にしています。
複数形と単数形が混じって少し気持ち悪いですが、Mocha が test というディレクトリーに依存しているようなので気にせず進めています。
.
├── app.js
├── lib
│   ├── db
│   │   └── User.js
│   ├── db.js
│   ├── foo
│   │   └── Bar.js
│   └── foo.js
├── node_modules
├── package.json
├── public
│   ├── javascripts
│   │   └── client.js
│   └── stylesheets
│       └── style.css
├── routes
│   ├── index.js
│   └── user.js
├── test
│   ├── foo
│   │   └── Bar.js
│   └── foo.js
├── var
└── views
    ├── index.jade
    └── layout.jade

lib/ 下のルール

lib/ 下の構成はこんなルールにしてみようかなと考えました。
  • 名前空間とディレクトリーを対応させる
    • db/ と db.js
    • db/ 内のファイルにより exports されたものを db.js でまとめて exports する
たとえばこんな感じです。



終わりに

まだまだ試しながらという感じで微妙な部分ありそうかなと思いますが、ひとまずテストは書いて行けそうなので安心して進められそうです。