оптимизация, как правильнее?
Здравствуйте.
Я новичок в javascript (да и вообще в программировании). Писал скрипт к своему проекту и обратил внимание, что листинг получается монструозным за счёт того, что я практически не использую переменных, а оперирую напрямую с элементами DOM. Например: if (document.getElementById(tested_fields[7]+string_number).value.substring((document.getElementById(tested_fields[7]+string_number).value.indexOf('\'',res_find)),(document.getElementById(tested_fields[7]+string_number).value.indexOf('\'',res_find)+2))=="''"){ res_find=(document.getElementById(tested_fields[7]+string_number).value.indexOf('\'',res_find))+2; } else { enum_flag=1; res_find=(document.getElementById(tested_fields[7]+string_number).value.indexOf('\'',res_find))+1; } Когда-то я слышал, что имеет смысл избегать, где это возможно, лишних переменных (экономить память) и как-то на автомате стараюсь без них обходиться :) Меня внешний вид моего кода не напрягает совершенно и в принципе мне так удобно, но вдруг задумался, а не повлияет ли такой вид записи на скорость работы кода в худшую сторону? Какой код будет работать быстрее, мой, или такой?: var string1 = document.getElementById(tested_fields[7]+string_number).value; if (string1.substring(string1.indexOf('\'',res_find),(string1.indexOf('\'',res_find)+2))=="''"){ res_find=(string1.indexOf('\'',res_find))+2; } else { enum_flag=1; res_find=(string1.indexOf('\'',res_find))+1; } И как вообще писать правильнее с точки зрения "культуры кода"? |
Цитата:
|
Цитата:
|
:-?
Цитата:
|
Че хоть скрипт твой делать должен? Кавычки зачем-то считает?
|
polecat,
Цитата:
Цитата:
|
Вот код, делающий тоже самое (если я не ошибся):
var quote = '\''; var string1 = document.getElementById(tested_fields[7]+string_number).value; var quotePos = string1.indexOf(quote, res_find); res_find = quotePos + 1; if (string1[quotePos + 1] == quote){ res_find += 1; } else { enum_flag=1; } Можно еще регулярку использовать - код станет короче. Твои косяки: 1) Почему tested_fields[7] а не 43 или 777? Магических чисел быть не должно. 2) Почему такое дибильное именование через подчеркивание? В js такой стиль не используют. Достаточно посмотреть на имена объектов из браузерного окружения чтобы понять это. |
Цитата:
Написал же, только учусь. По пунктам: 1) Потому, что это маленький кусочек выдернутый из огромной процедуры с целью продемонстрировать пример "внешнего вида". Вообще там массив полей, которые я проверяю. Тут можно было бы и просто имя поля вставить, но выше мне нужно именно массив перебирать, а тут я просто использую элемент массива, потому, что мне так удобнее (всё равно он сформирован). 2) Потому, что мне так понятно назначение переменной. В учебнике читал, что нужно называть понятно и в одном стиле, остальное не важно - вот и соответствую. Где почитать как называть переменные, что-бы не вызывать припадков смеха у "бывалых"? 3) Этот кусочек ищет первую одинарную кавычку в строке, и смотрит что стоит за ней. Если вторая одинарная кавычка то... Там дальше длинно :) По поводу памяти - это мне рассказывали году так в 95м, при изучении паскаля. С тех пор я с программированием не сталкивался особо, а сейчас появилось желание поковыряться :) 2 Safort Спасибо. Это я и хотел узнать. :) |
Цитата:
И смеялся я не над стилем, а над способом "экономии памяти" :D Цитата:
|
А как лучше тогда делать, если я не только яваскрипт использую:
1 В разных средах использовать разные стили? или 2 Везде использовать одинаковый стиль? По поводу переменных, не то, что-бы я забыл, что вызов функций занимает процессорное время. Просто я не в курсе, что обращение к DOM модели, это вызов функции. Как то я яваскрипт начал изучать с конца - сначала понадобилась какая-то мелочь, я нашёл как это люди делают, пристроил у себя на странице, потом ещё понадобилось и.т.д. Сейчас уже кое в чём разбираюсь (в нужных мне пределах) но до изучения базы руки так и не дошли. :) Вот поэтому и возникают иногда такие вопросы. Спасибо, что отвечаете :) Да, первое представление о программировании я получил 20 лет назад в институте изучая турбопаскаль. и там нас сильно напрягали экономией памяти, а процессорное время для наших задач как-то не особо важно было :) |
Часовой пояс GMT +3, время: 18:17. |