Немного о том, как работает Pikabu
Пруф: http://cs.pikabu.ru/js/over_js8.js Срока 2345
Пруф: http://cs.pikabu.ru/js/over_js8.js Срока 2345
Я не поверил, пока не посмотрел подгружаемые сорцы и не нашел эти строки.
P.S. Удивлен, что в большинстве скриптов даже обфускация не используется.
Обфускация - сделать код менее очевидным. Скажем, было console.log(name); , а станет let $ = [console, "log", name], _ = [$], c = 0;/* куча кода .... */ $[c][$[1]](_[c][2]); . И ведь это тоже самое, просто все идентификаторы были помещены в массив и используются оттуда.
Про сжатие имелось в виду скорее всего минификация и gzip.
Минификация - удаляются лишние пробелы, заменяются длинные идентификаторы на более короткие (возможно, это уже обфускация), то есть let userName = "name"; console.log(userName); заменится на let a="name";console.log(a); . console тоже скорее всего заменится и будет let b=console.log;let a="name";b(a); Смысл в том, что вместо того, чтобы вместо 10-ти "console.log" (110 символов) останется 10 + 18 на определение, то есть 28 из 110 былых.
Ну a gzip - просто при передаче стили и скрипты запаковываются в архив.
Код JavaScript в большинстве своем не секурный, его может посмотреть каждый через консоль браузера.
Обфускация - запутывание всего к хуям собачьим. Чтобы он тебе меньше стал понятен.
Минификация - удаление лишние пробелов в коде, размер уменьшается, грузится быстрее.
Минификация JS по большей части нужна только для переименования функций и переменных из myVeryLongFunction в a, b, c ... aa, ab ..., чего ты, кстати, не упомянул. В удалении лишних пробелов смысла нет ровно никакого (шучу, смысл есть на 0.5-2%), так как все нормальные пацаны настраивают сжатие на серваке и разница в объёме сжатого исходника и сжатого исходника с удалёнными пробелами составляет примерно 0.5-2%
Я никогда не обфусцировал, ибо нет необходимости, когда код лежит на гитхабе). А минификацией занимается webpack у меня.
не хочу открывать холивар, но если webpack покажется сложным, есть gulp и плагины к нему: gulp-minify, gulp-uglify и т.д.
Если нужна нечитаемая обфускация - есть плагин gulp-jsfuck (jsfuck)
Суть его в том, что он весь js код переписывает с помощью шести символов: [ ] ( ) ! +
если мы с тобой сейчас начнем нести хуйню и делать вид, что понимает друг друга, то тоже сойдем за умных.)
Обфускация - проще говоря, это запутывание кода. Чтобы исходники были не читабельными (при этом они будут следовать синтаксису языка).
Хотя зачем нужна обфускация js скриптов сайта, другое дело легко декомпилируемые языки типо C#. Хотя мб и нужна, я не веб-разработчик, не буду лезть со своим самоваром)