15.09.2011, 13:19
|
|
|
Регистрация: 10.07.2008
Сообщений: 3,873
|
|
Еще у меня из-за замыкания начинается паранойя:
proto = {
method: function (…) {
var a, b, c, d, …;
Object.keys(…).forEach(function (…) {
//к примеру, тут не нужны a, b, c, d
});
}
}
приходится выносить в отдельный метод:
proto = {
_method: function (…) {
//тут this → window
},
method: function (…) {
var a, b, c, d, …;
Object.keys(…).forEach(this._method);
}
}
но метод в прототипе, ничего не делающий с this, кажется лишним, выносим его в отдельный объект:
utils = {
method: function (…) {…}
}
proto = {
method: function (…) {
var a, b, c, d, …;
Object.keys(…).forEach(utils.method);
}
}
в итоге придется искать в коде, что же там за utils.method, который возможно состоит из пары строчек и самостоятельно не имеет смысла, появляется проблема с передачей дополнительных переменных.
а можно было всего-лишь написать:
proto = {
method: function (…) {
var a, b, c, d, …, keys = Object.keys(…), i = keys.length;
while (i--) {
…
}
}
}
поэтому forEach использую, только когда действительно нужен локальный скоп, а еще в светлом будущем ожидается let
Последний раз редактировалось Octane, 15.09.2011 в 13:40.
|
|
15.09.2011, 13:33
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
proto = {
method: function (…) {
var a, b, c, d, …, keys = Object.keys(…), i = keys.length;
while (i--) {
//к примеру, тут не нужны a, b, c, d
}
}
}
И в чём разница?
|
|
15.09.2011, 13:38
|
|
|
Регистрация: 10.07.2008
Сообщений: 3,873
|
|
Ну так они никуда не замыкаются, паранойя не наступает
|
|
15.09.2011, 13:42
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
А что меняется от того, замыкаются они или не замыкаются? Не пойму, откуда паранойя растёт.
|
|
15.09.2011, 14:05
|
|
|
Регистрация: 10.07.2008
Сообщений: 3,873
|
|
Да ничего страшного не происходит. Я понимаю, что разница будет заметна только в тестах, где 100500 раз одно и тоже повторяют, но просто зачем все эти лишние действия (создание функции, связь скопов, call, …) будут происходить, если используя while, их не будет.
|
|
16.09.2011, 06:17
|
|
Профессор
|
|
Регистрация: 01.07.2010
Сообщений: 387
|
|
я тоже сначала заморачивался по этому поводу, а потом перестал, когда сравнил скорость...
|
|
25.09.2011, 20:09
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
Сообщение от stopkran
|
Два года писал этот код,
|
с этим надо что-то делать... например, разобраться, все-таки, почему он не закончен. И что из этого всего стоило потраченных усилий, а что - нет
Сообщение от stopkran
|
О, я много где сэкономил на производительности! :-) Но вы всё равно не найдёте. Да я и сам сейчас не вспомню всего.
|
в результате имеем код, который желательно не менять. Либо надо осознавать, что изменения могут свести на нет усилия по оптимизации. Комментарии тогда надо было делать для таких неочевидных моментов. Собственно, это их основное назначение
вот, float, это правильный подход при борьбе с паранойей, я считаю
|
|
26.09.2011, 11:42
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Сообщение от Octane
|
Да ничего страшного не происходит. Я понимаю, что разница будет заметна только в тестах, где 100500 раз одно и тоже повторяют, но просто зачем все эти лишние действия (создание функции, связь скопов, call, …) будут происходить, если используя while, их не будет.
|
О, я тоже параноик, круто.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
|
|
27.09.2011, 16:11
|
Аспирант
|
|
Регистрация: 12.12.2009
Сообщений: 54
|
|
Сообщение от x-yuri
|
в результате имеем код, который желательно не менять. Либо надо осознавать, что изменения могут свести на нет усилия по оптимизации. Комментарии тогда надо было делать для таких неочевидных моментов
|
В точку. Любые изменения этого кода приводят к ухудшению производительности. Он находится в состоянии устойчивого равновесия. Вещь в себе. На данном этапе.
Но на следующем - возникает потребность не в совершенстве кода, а в новой функциональности. И маховик начинает раскручиваться заново: добавляем, например, раскраску строк в зависимости от значений, и оказывается, что простой алгоритм не способен решить эту задачу.
|
|
27.09.2011, 23:43
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
Сообщение от stopkran
|
И маховик начинает раскручиваться заново:
|
вот поэтому я не люблю готовые визуальные компоненты. Наличие готового компонента хорошо, а умение создать такой же, знание подводных камней, еще лучше. Поэтому самое главное ты, на мой взгляд, упустил: ты не помнишь всех проблем с которыми ты сталкивался. Хотя не думаю, что все проблемы были действительно важны...
|
|
|
|