Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 15.09.2011, 13:19
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 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.
Ответить с цитированием
  #22 (permalink)  
Старый 15.09.2011, 13:33
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 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
        }
    }
}

И в чём разница?
Ответить с цитированием
  #23 (permalink)  
Старый 15.09.2011, 13:38
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Ну так они никуда не замыкаются, паранойя не наступает
Ответить с цитированием
  #24 (permalink)  
Старый 15.09.2011, 13:42
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

А что меняется от того, замыкаются они или не замыкаются? Не пойму, откуда паранойя растёт.
Ответить с цитированием
  #25 (permalink)  
Старый 15.09.2011, 14:05
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Да ничего страшного не происходит. Я понимаю, что разница будет заметна только в тестах, где 100500 раз одно и тоже повторяют, но просто зачем все эти лишние действия (создание функции, связь скопов, call, …) будут происходить, если используя while, их не будет.
Ответить с цитированием
  #26 (permalink)  
Старый 16.09.2011, 06:17
Аватар для float
Профессор
Отправить личное сообщение для float Посмотреть профиль Найти все сообщения от float
 
Регистрация: 01.07.2010
Сообщений: 387

я тоже сначала заморачивался по этому поводу, а потом перестал, когда сравнил скорость...
Ответить с цитированием
  #27 (permalink)  
Старый 25.09.2011, 20:09
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от stopkran
Два года писал этот код,
с этим надо что-то делать... например, разобраться, все-таки, почему он не закончен. И что из этого всего стоило потраченных усилий, а что - нет

Сообщение от stopkran
О, я много где сэкономил на производительности! :-) Но вы всё равно не найдёте. Да я и сам сейчас не вспомню всего.
в результате имеем код, который желательно не менять. Либо надо осознавать, что изменения могут свести на нет усилия по оптимизации. Комментарии тогда надо было делать для таких неочевидных моментов. Собственно, это их основное назначение

вот, float, это правильный подход при борьбе с паранойей, я считаю
Ответить с цитированием
  #28 (permalink)  
Старый 26.09.2011, 11:42
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от Octane
Да ничего страшного не происходит. Я понимаю, что разница будет заметна только в тестах, где 100500 раз одно и тоже повторяют, но просто зачем все эти лишние действия (создание функции, связь скопов, call, …) будут происходить, если используя while, их не будет.
О, я тоже параноик, круто.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #29 (permalink)  
Старый 27.09.2011, 16:11
Аспирант
Отправить личное сообщение для stopkran Посмотреть профиль Найти все сообщения от stopkran
 
Регистрация: 12.12.2009
Сообщений: 54

Сообщение от x-yuri
в результате имеем код, который желательно не менять. Либо надо осознавать, что изменения могут свести на нет усилия по оптимизации. Комментарии тогда надо было делать для таких неочевидных моментов
В точку. Любые изменения этого кода приводят к ухудшению производительности. Он находится в состоянии устойчивого равновесия. Вещь в себе. На данном этапе.

Но на следующем - возникает потребность не в совершенстве кода, а в новой функциональности. И маховик начинает раскручиваться заново: добавляем, например, раскраску строк в зависимости от значений, и оказывается, что простой алгоритм не способен решить эту задачу.
Ответить с цитированием
  #30 (permalink)  
Старый 27.09.2011, 23:43
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от stopkran
И маховик начинает раскручиваться заново:
вот поэтому я не люблю готовые визуальные компоненты. Наличие готового компонента хорошо, а умение создать такой же, знание подводных камней, еще лучше. Поэтому самое главное ты, на мой взгляд, упустил: ты не помнишь всех проблем с которыми ты сталкивался. Хотя не думаю, что все проблемы были действительно важны...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание HTML страниц Sportlife89 (X)HTML/CSS 7 03.06.2011 15:04
Передача кода HTML Владимир Седов Общие вопросы Javascript 2 12.04.2011 16:48
кеширование HTML переданого через ajax BorisBritva jQuery 6 02.04.2011 01:23
Как с помощью PHP сохранить какие-либо изменения в HTML документе? FirstFrost Работа 6 06.09.2010 16:16
Динамические html элементы sky Элементы интерфейса 2 07.03.2010 11:58