15文字より長い識別子は、1文字の識別子ほど一般的ではありません。 最も一般的な
5つの最も長い識別子は次のようになります。
prototype-1.7.0.0.js | SCRIPT_ELEMENT_REJECTS_TEXTNODE_APPENDING
|
prototype-1.7.0.0.js | MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED
|
jquery-1.7.1.js | subtractsBorderForOverflowNotVisible
|
jquery.mobile-1.0.js | getClosestElementWithVirtualBinding
|
prototype-1.7.0.0.js | HAS_EXTENDED_CREATE_ELEMENT_SYNTAX
|
Node.js用のこのスクリプトを使用すると、変数と関数の命名スタイルを、古典的なサンプルと比較して、過度の冗長性または過度に簡潔にすることができます。
var fs = require('fs'), esprima = require('esprima'), files = process.argv.splice(2); files.forEach(function (filename) { var identifiers = {}, content = fs.readFileSync(filename, 'utf-8'), syntax = esprima.parse(content); JSON.stringify(syntax, function (key, value) { if (key === 'name' && typeof identifiers[value] === 'undefined') { identifiers[value] = value.length; } return value; }); for (var key in identifiers) { if (identifiers.hasOwnProperty(key)) { console.log(identifiers[key]); } } });
次のように実行します:
node idlen.js /path/to/some/*.js | sort -n | uniq -c