Всем привет! Я сейчас пытаюсь изучать JavaScript. По ходу изучения языка мне стало интересно смотреть чужой код. И когда я открываю какой-нибудь скрипт на сайте, то в скрипте вместо нормальных названий переменных, функций и прочего, я вижу весь английский алфавит. Как так можно писать? Я просто не понимаю, что находится в таких переменных. А код в таких скриптах состоит из тысяч строчек, почти каждая переменная используется много раз в скрипте и я просто ничего там понять не могу. В таких скриптах, где используются только буквы, люди сначала скрипт пишут с нормальными названиями функций, а потом перегоняют где-то скрипт и заменяют все адекватные названия на буквы?
И еще одна проблема. Когда я пытаюсь решить какую-то задачку или написать какую-нибудь простенькую функцию, то у меня это может занять несколько часов, а то и дней, а у других людей это занимает в разы меньше времени. И в итоге, даже после того, как мне удается решить задачу, я все равно не могу понять, как я ее решил. Смотрю на код и не понимаю, что за фигню я здесь написал и повторное решение задачи опять занимает очень много времени.
А как у вас это происходит? Разбирались ли вы в чужом коде? Бывают ли у вас затупы даже в своем собственном коде?
Да, чтобы сэкономить байтики скрипты минифицируют перед публикацией на сайте.
А работают при этом с нормальными исходниками.
Ищите исходники.
Когда я пытаюсь решить какую-то задачку или написать какую-нибудь простенькую функцию, то у меня это может занять несколько часов, а то и дней, а у других людей это занимает в разы меньше времени.
Надо думать, что быстро и уверенно ходить и говорить вы научились сразу при рождении.
И в итоге, даже после того, как мне удается решить задачу, я все равно не могу понять, как я ее решил. Смотрю на код и не понимаю, что за фигню я здесь написал...
... особенно когда при использований метода объекта self это не экземпляр объекта а хрен пойми что (может я написал код не правильно, но у меня так частенько получилось), я себя нашел в недавно прочитанной статье на habr :D статья, стыдно (мне), а еше rust не давно начал изучать, посмотрю что из этого выйдет))
DevMan, ну так одно от другого не далеко лежит, при минимизации современные инструменты заменяют многие конструкции на более короткие но менее читабельные, в том числе многие внутренние мнемонические переменные заменяются буквами.
DevMan, я чаще все таки вижу минификацию, а не обфускацию. Но и ее я тоже видел.
Сейчас засунул простой объект с одной функцией и прогнал через минификатор. В итоге, я свой собственный объект с функцией не смог понять.
Чаще всего популярные скрипты публикуются в 2 форматах - не пакованные, типа и минифицированные, типа script.min.js, которые занимают меньше места, но становятся малочитаемыми. Вам для изучения нужен первый вариант.