Два пробела
Октябрь 5, 2015
Почему многие JS разработчики используют два пробела для отступа вместо табов или 4-ех пробелов? Это типа модно?
С двумя пробелами получается каша а не код. Как бы хорошо он не был бы написан, он все равно нечитабелен. Из-за маленького отступа между строчками плохо виден отступ. Также, многие JS разработчики не разделяют блоки кода друг от друга логически, в итоге получается вот такая нечитабельная каша:
'use strict'
var validate = require('aproba')
module.exports = function (tree) {
validate('O', arguments)
var seen = {}
var flat = {}
var todo = [[tree, '/']]
while (todo.length) {
var next = todo.shift()
var pkg = next[0]
seen[pkg.path] = true
var path = next[1]
flat[path] = pkg
if (path !== '/') path += '/'
for (var ii = 0; ii < pkg.children.length; ++ii) {
var child = pkg.children[ii]
if (!seen[child.path]) {
todo.push([child, flatName(path, child)])
}
}
}
return flat
}
var flatName = module.exports.flatName = function (path, child) {
validate('SO', arguments)
return path + (child.package.name || 'TOP')
}
Один из исходников NPM
Мне не удалось с первого раза прочитать этот код и понять что он делать. Этот код не читабелен. Вся его проблема читабельности этого кода в том что он слишком сжат. У нету разделения между блоками и имеется отступ в два пробела.
После форматирование, код становится более читабельным:
'use strict'
var validate = require('aproba')
module.exports = function (tree) {
validate('O', arguments)
var seen = {},
flat = {},
todo = [[tree, '/']]
while (todo.length) {
var next = todo.shift(),
pkg = next[0],
path = next[1]
seen[pkg.path] = true
flat[path] = pkg
if (path !== '/') path += '/'
for (var ii = 0; ii < pkg.children.length; ++ii) {
var child = pkg.children[ii]
if (!seen[child.path]) {
todo.push([child, flatName(path, child)])
}
}
}
return flat
}
var flatName = module.exports.flatName = function (path, child) {
validate('SO', arguments)
return path + (child.package.name || 'TOP')
}
Все что я сделал это разделил код на логические блоки и заменил отступ в два пробела на четыре пробела. Разве код стал более читабельным? По моему, да.
- JavaScript
- npm ИМХО форматирование
Комментарии