Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 15.07.2011, 00:12
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

не фантазируй. крутого выигрыша в объёме зипованного текста быть не может.

а потом на странице вставляем такой код <button onclick="hello('Привет!')"> и чешем репу. а потом получаем жалобу в саппорт со скриншотом консоли ошибок и теряемся в догадках. а потом обнаруживаем странные глобальные переменные, созданные этим чудом для своих нужд. вам геморроя мало?
__________________
.ня
Ответить с цитированием
  #22 (permalink)  
Старый 15.07.2011, 00:26
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Во первых: при стандартном сжатии глобальные переменные не жмуться и ваш пример будет прекрасно работать;
Во вторых: привязка событий из HTML - моветон, сущности должны быть разделены;
В третьих: короткие имена переменных в JS работают быстрее (да, это факт);
В четвёртых: минификатор не создаёт дополнительных переменных;
В пятых: чтобы тестить сжатый код многие минификаторы создают source map, который показывает ошибку в несжатом варианте;
В шестых: real-тест jQuery с минификатором и без (Closure Compiler: Simple сжатие):
Original Size: 	211.02KB (62.58KB gzipped)
Compiled Size: 	88.7KB (31.26KB gzipped)


Не веришь? http://closure-compiler.appspot.com/home - пробуй сам

Конечно, если сравнивать сжатие на варианте без пробелов, табуляций, новых строк и комментов, то разница килобайт 6, но ведь в реальной жизни никто не пишет код в 1-у строку и без комментов

Ну и наконец, то, что так делают крупнейшие компании на своих сайтах и так делают отцы JS наталкивает на мысль, что это действительно того стоит.

Последний раз редактировалось kobezzza, 15.07.2011 в 01:29.
Ответить с цитированием
  #23 (permalink)  
Старый 15.07.2011, 08:25
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

1. это не мой пример, а твой. ты признаёшь, что наврал?
2. они и разделены. поведение вынесено в функцию.
3. ага, на целые сотые доли микросекунд х)
4. минификатор может и нет, а вот gcc - да. тут чел на форуме недавно жаловался.
5. ага, придумали себе грабли, а потом костыли, чтобы грабли не сильно били х) по секрету скажу, что ие даже строку не всегда правильно указывает. что уж говорить про номер символа. а минификаторы пренепременно всё в одну строку пихают.
5. а теперь фокус-покус: просто вырезаем все комментарии и получаем 40кб

хороший код не нуждается в комментариях. разве что по самому минимуму, а не как в джквери:
Цитата:
// Used for trimming whitespace
trimLeft = /^\s+/,
trimRight = /\s+$/,

// Check for digits
rdigit = /\d/,

// Match a standalone tag
rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,
ага, толпа леммингов не может ошибаться х)
__________________
.ня
Ответить с цитированием
  #24 (permalink)  
Старый 15.07.2011, 08:56
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Цитата:
1. это не мой пример, а твой. ты признаёшь, что наврал?
Нет, т.к. в случае будь пример в локали, то всё бы так и было.

Цитата:
2. они и разделены. поведение вынесено в функцию.
Это не разделение, а бред и вообще хорошая практика - это делегирование.

Цитата:
3. ага, на целые сотые доли микросекунд х)
с миру по нитке...

Цитата:
4. минификатор может и нет, а вот gcc - да. тут чел на форуме недавно жаловался.
- хз, ни разу проблем не было

Цитата:
5. ага, придумали себе грабли, а потом костыли, чтобы грабли не сильно били х) по секрету скажу, что ие даже строку не всегда правильно указывает. что уж говорить про номер символа. а минификаторы пренепременно всё в одну строку пихают.
- ни разу проблем не было

Цитата:
хороший код не нуждается в комментариях. разве что по самому минимуму, а не как в джквери:
Плачу) Т.е. не нужно описывать входные параметры методов, что они возвращают и т.д.? И я последнее время часто слышу "код jQuery ужасен!!!!", но ни разу никто не сказал почему, секрет?)

Цитата:
ага, толпа леммингов не может ошибаться х)
Ну ок, ты гуру, местный аналог Чака Норриса, куда всем до тебя

Последний раз редактировалось kobezzza, 15.07.2011 в 09:06.
Ответить с цитированием
  #25 (permalink)  
Старый 15.07.2011, 10:01
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

1. не было бы. как минимум потому, что в ие функция по любому стала бы глобальной :Р

2. это не бред, а правда жизни. слои не могут быть полностью изолированы, так как им надо общаться между собой. так что либо функции завязываются на идентификаторы/классы, либо вёрстка на имена функций. один фиг.

3. нищему гора мусора, ибо из кусочков ниток заебёшься шить рубашку, да и получится нечто страшное. оптимизировать надо то, что тормозит, а не что попало. а то получается наворотят мегатонны говнокода, а потому, чтобы это не тормозило вместо рефакторинга шарятся по полу в поисках ниточек

4, 5. ну я рад за тебя, чо. пока петух не клюнет - все уверены, что в консерватории тишь и благодать.

6. а зачем это описывать?
attr: function( name, value )
- что тут комментировать?
ну вот и спроси у джона, почему он считает свой код ужасным. наверно потому, что его тяжело поддерживать.

7. то есть кроме как примазаться к авторитетам ты ничего не можешь? детский сад. лет 5 назад все бредили xhtml и каждый "гуру" писал статьи как отрезать себе конечности, но ущемиться-таки к xhtml. потом ветер поменялся и теперь все бредят html5 и плюются на необходимость закрывать тэги, но продолжают щемиться теперь уже в html5. так и будешь хвостиком бегать за попсовыми блоггерами или может начнёшь трезво оценивать ситуацию? минификация, афайк, не даёт практически никаких бенефитов, зато даёт кучу лишних телодвижений. заняться больше не чем, как считать байтики и микросекунды?
__________________
.ня
Ответить с цитированием
  #26 (permalink)  
Старый 15.07.2011, 10:20
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Цитата:
1. не было бы. как минимум потому, что в ие функция по любому стала бы глобальной :Р
Причём тут ИЕ я не понял, минификатор не привязан к браузеру.

Цитата:
2. это не бред, а правда жизни. слои не могут быть полностью изолированы, так как им надо общаться между собой. так что либо функции завязываются на идентификаторы/классы, либо вёрстка на имена функций. один фиг.
Извини, но не "один" фиг. Привязка к вёрстке гораздо более универсальная.

Цитата:
3. нищему гора мусора, ибо из кусочков ниток заебёшься шить рубашку, да и получится нечто страшное. оптимизировать надо то, что тормозит, а не что попало. а то получается наворотят мегатонны говнокода, а потому, чтобы это не тормозило вместо рефакторинга шарятся по полу в поисках ниточек
Почему нельзя оптимизировать то, что занимает по времени меньше секунды (в плане сложности реализации), но даёт бонус? Я бы с тобой согласился, если бы минификация была бы чем-то нереально тяжёлым...

Цитата:
4, 5. ну я рад за тебя, чо. пока петух не клюнет - все уверены, что в консерватории тишь и благодать.
Я тоже за себя рад.

Цитата:
6. а зачем это описывать?
attr: function( name, value )
А теперь прикинь класс для работы с WebGL, там функции с кучей параметров, которые ну не фига не очевидны не набившему шишек прогеру (к томуже нуно хорошо шарить в стереометрии).

Цитата:
7. то есть кроме как примазаться к авторитетам ты ничего не можешь? детский сад. лет 5 назад все бредили xhtml и каждый "гуру" писал статьи как отрезать себе конечности, но ущемиться-таки к xhtml. потом ветер поменялся и теперь все бредят html5 и плюются на необходимость закрывать тэги, но продолжают щемиться теперь уже в html5. так и будешь хвостиком бегать за попсовыми блоггерами или может начнёшь трезво оценивать ситуацию? минификация, афайк, не даёт практически никаких бенефитов, зато даёт кучу лишних телодвижений. заняться больше не чем, как считать байтики и микросекунды?
В отличии от некоторых, у меня нету "звёздной болезни" и если ты считаешь, что прислушивание к мнениям более опытных людей - это подмазывание, то извини, но ты просто глупец.

Какие лишние телодвижения? Я запускаю 1 bat файл, который отрабатывает за микросекунды, но при этом объединяет файлы, сжимает код и проверяет на лексические ошибки.
Ответить с цитированием
  #27 (permalink)  
Старый 15.07.2011, 14:09
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

вы отдалились от темы (прочитайте её имя). Мне кажется, хватит.
Ответить с цитированием
  #28 (permalink)  
Старый 17.07.2011, 12:44
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

1. при том, что такой способ определения функции всегда создаёт глобальную функцию в jscript

2. с чего бы? один скрипт обслуживающий десяток разных страниц - куда более частая ситуация, чем одна страница обслуживающая десяток сприптов (какая-то странная страница о0). поэтому вполне нормально, что вёрстка подстраивается под скрипты, а не наоборот.

3. она увеличивает общую сложность системы (например, нам YUI компрессор портил css-ки - пришлось писать костыли), усложняет отладку (фиг ты на продакшене поймёшь где ошибка), увеличивает время сборки (а когда дедлайн на носу, итерации релизного тестирования могут быть очень короткими)

6. поэтому давайте всунем в jsdoc-и полный курс стереометрии? х) не надо писать функции с кучей параметров и всё будет хорошо. разумеется, если писать говнокод, то без комментов никак.

7. то есть ты признаёшь, что своих мозгов тебе не хватает и поэтому не имея собственного мнения ты пропагандируешь идеи тех у кого учился?

8. а батничек сам появился? а тулза для минификации сама поставилась? а муки выбора тулзы не мучали? ты потратил на это своё время. бесполезно потратил. и теперь всем, кто будет работать с этим кодом после тебя придётся настраивать у себя всё окружение на которое ты завязался в своём коде. пример с jq показателен. автор сидит на линухе и юзает мэйкфайлы. у него всё хорошо. а вот чтобы собрать его под виндой надо шаманить с сигвином. нельзя просто поставить какой-нибудь питон и запустить make.py. нет, надо поставить эмулятор линуха, прикрутить сборщики css и js, и писать собственный батничек, чтобы не лазить каждый раз в консоль. хорошо, что он хотябы не заюзал какой-нибудь node-js, которого нету под винду, но некоторые и этим не гнушаются.

melky, не указывай нам что делать и мы не скажем куда тебе пойти ;-)
__________________
.ня

Последний раз редактировалось tenshi, 17.07.2011 в 12:47.
Ответить с цитированием
  #29 (permalink)  
Старый 17.07.2011, 14:20
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

tenshi, воу-воу-воу! JScript?
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #30 (permalink)  
Старый 17.07.2011, 17:56
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от tenshi
1. при том, что такой способ определения функции всегда создаёт глобальную функцию в jscript
Не создаёт. Я, конечно, понимаю, с чем ты попутал, но и там создаётся не глобальная, а в текущем контексте.


Сообщение от trikadin
tenshi, воу-воу-воу! JScript?
А что не так?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что означает ошибка "Отсутствует исполняющее ядро ДЛЯ расширения имени файла js" Mattias Общие вопросы Javascript 6 15.02.2021 13:16
Как изменить скрипт, что бы им его можно было использовать для нужной страницы Nick50_70 Общие вопросы Javascript 0 28.04.2009 23:30
сделайте правила для форума scuter Сайт Javascript.ru 29 21.04.2009 17:28
Сторонние библиотеки - быть или не быть? IIIEPJIOK Оффтопик 64 21.03.2009 19:39