Идентификаторы длиной больше 15 встречаются реже односимвольных. Чаще всего встречаются 6-cимвольные имена. Такие результаты получил автор Esprima — парсера для JavaScript, написанного на JavaScript, проанализировав исходный код таких библиотек, как jQuery, Prototype, MooTools, Underscore и некоторых других.
Пятёрка самых длинных идентификаторов выглядит так:
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
Автор: ilya42