ベストプラクティス確定事項
特に問題がない限り、公式な標準、または、デファクトスタンダードを可能な限り採用する。
Web 標準に従う。
どこの仕様レベルに合わせるか?
業務アプリなどでは、実際に業務に使うマシンが対応している仕様に合わせるしかない。最低レベルのマシンを用意してテストする。
一般向けアプリでは、8~9割程度が満たす仕様を採用する。残りに合わせようとすると途轍もなくコストが高くなる。
無闇に新しい仕様を使わない。
古いバージョンを使用しているユーザーはそれなりに存在する。
古い仕様はできる限り早めに処分する。
一度移行しそこねると、多段の移行作業が必要となるのでコストが跳ね上がる。
無闇に更新しない。適度な間隔で更新する。
無闇に更新すると、無駄な作業が発生しがち。
特に用がないのであれば、Vanilla JS を使う。無闇にフレームワークを使おうとしない。
もう使わないもの
Internet Explorer (IE, IE11)
prototype.js
jQuery
製品レベルのクライアントの JavaScript は bundle(バンドル)、minify (ミニファイ)をする。
試験、開発、趣味レベルではそこまで要求しなくてもよい。
秘密にしたい所は必ず Disallow を付けておく。
テストのロケータ(要素の位置捕捉)では id, class 属性を使わず、data-* 属性を使う。(テスト以外の要因で変わらないことを保証する。)
理由
フレームワークが id, class を加工してしまうため不明瞭になりやすい。
名前やスタイルの変更でテストが変わるのを避けたい。
参考