Pull to refresh

Comments 37

Так вот чем товарищи индусы пользуются, а я то думал, что за "индуский код".

Индусский код — это не про форматирование, это про мозги.

Когда программисту делать нечего, он свой код чешет)

Интересно, что там полгода разрабатывалось? Там же кода должно быть несколько строк.

Да, сотня строк где-то на уровне десятиклассника. Мне бы такое было стыдно даже чисто для ржаки выложить. Надо учиться, видимо, свой бренд в инфопространстве прокачивать, хз...

Там же кода должно быть несколько строк.

А можно тогда их сюда в коммент скинуть пожалуйста?

Парсер внешний. Скрипту остаётся пройтись циклом по токенам после парсера, между токенами добавляем случайно пробелы/табуляции, а у токенов определённого типа случайно меняем регистр. Вот и весь скрипт. Можно конечно добавить бойлерплейта, классы, исключения и тд, но костяк этого скриптв - это десяток строк.

Чужой код — всегда потёмки ;)
Но, справедливости ради, используя .map(), .sort() и .filter() спагетти из кода уходит очень быстро.

Используя .map(), .sort() и .filter(), спагетти очень быстро уходит из кода

Обфускаторы давно вроде как есть. И используются. Причем, некоторые переименовывают пепеменные и методы в простые буквы, что уменьшает размер кода. Т.е. еще и полезные.

Я думал, польза обфускаторов не в уменьшении объёма, а в том, чтобы не дать посторонним быстро разобраться с некомпилируемым кодом и/или внести в него изменения.

Вообще-то да. Обфускаторы созданы для запутывания кода. Т. е. для создания спагетти и создания кучи ложных переходов. Переименование переменных это всё части одного процесса.

Предназначены только против людей, а не машин.

Причем, некоторые переименовывают пепеменные и методы в простые буквы, что уменьшает размер кода. Т.е. еще и полезные.

У меня дилетантский вопрос. Разве компилятору не все равно, как называются переменные? В смысле разве название переменных влияет на результат компиляции? Мне раньше казалось, что если и влияет, то несильно.

верно, компилятору всё равно, итоговый результат тот же.

но в случае js лишние байты гоняются по сети. До всеобщего внедрения gzip и на скоростях в 512кбит/с это было проблемой. Сейчас - практически нет. Даже если да, то скорее всего сайт будет страдать не от больших имён переменных в js, а от 1мб картинки-логотипа в шапке.

а ещё хоть и с натяжкой, но можно сказать, что длинные переменные дольше парсятся до вынесения вердикта, что вот на этом конкретном байте заканчивается токен, отвечающий за имя переменной. 0.0001% тактов (тысяча от миллиарда) была потяряна!!!1111

JS не проверял, а вот MySQL медленнее выполняет запрос, если названия полей и таблиц длинные. Протестировано лично мной.

Обфускаторы созданы против людей, а не машин.

Компилятору до лампочки как ты называешь переменные и есть ли в твоем коде переводы строки, а также не важен ему и твой стиль программирования. К примеру Спагетти.

Тут дело не в компиляции, а именно в читаемости кода.

Если ты, к примеру, просто уберëшь все переводы строк из исходника, даже в случае читаемости переменных, то понять, что же ты там накалякал будет проблематично, т. к. мы легче воспринимаем инфу, если она разбита на строки.

Во многих языках, есть матаданные. Там где есть интроинспекция, ее по разному называют. В шарпе это называется рефлекшен. Куча текста. Очень много текста. Больше чем кода иногда. И как пишут ниже, если передавать по сети этот код. То абфускация, это оптимизация!

Есть обфускаторы, которые вообще все преобразуют в плоский код. Названия классов вообще исчезают. Это очень уменьшает размер кода

Есть обфускаторы и есть минификаторы. Они немного пересекаются, но в целом созданы для разных задач. Хорошая обфускация увеличивает размер кода.

Даже индентификаторы не портит. Только капслоком играется. Фигня. Любой минификатор для js создает код на порядки более shitty.

Тю, а я по заголовку уже думать начал, что какой-нибудь обфускатор переизобрели. Не, ну так не интересно, если прога только пробелы добавляет, отступы и изменяет регистр букв.

Навскидку если вспомнить, форматирование кода в Visual Studio Code убирает все лишние пробелы и отступы, а встроенные функции в Microsoft Word меняют регистр букв на верхний или нижний.

Я и без этой утилиты хорошо справляюсь

ни тебе переименований переменных, ненужных переприсвоений, ни тебе добавленных замыканий =( преттер этого не делает конечно но щиттер точно должен что бы оправдать название

<sarcasm>Срочно повесить на хук коммита в git</sarcasm>

По моему условный вебпак + babel с этим уже давно успешно справляются: делают нечитабельное из читабельного ))))

Заранее прошу прощения за свои возможные ошибки, с этими вещами я знакомился когда ковырял реакт чисто для себя, и остановился на уровне "дратути я тута", и это было давно...

Я ж всё-таки бекэндер ))))

Я ж всё-таки бекэндер ))))

Специально для бэкендеров есть NodeJS с Typescript.

это не для бекендеров, это для фронтендеров пытающихся притвориться бекендерами ???

По-моему, разница с prettier, который с достойным лучшего применения упорством вставляет практически рандомные разрывы строк, лишь бы упихать код в какое-то мнимое прокрустово ложе времен VT100, минимальна.
А с остальным прекрасно справляются белковые нейросети в виде джунов.

UFO just landed and posted this here

И неко-ушки в комплекте!

А вот на Perl можно было не просто сбить форматирование, а сделать код в полном смысле нечитаемым. Пример:
http://www.99-bottles-of-beer.net/language-perl-737.html

(к сожалению, в актуальных версиях Perl этот код уже не работает корректно)

Кто работал с легаси на perl такую ерунду как этот shiiter даже не заметит.

- Я сделал программу, которая делает код нечитаемым!
- (запуская go fmt) Да ладно!?

Не раcсказывайте джавистам про go.
Не оценят и не поймут.

UFO just landed and posted this here

10 тыс. строк должны лежать в репозитории и значит восстановить не проблема. А без репозиториия есть намного более страшные случаи утери 10 тыс. строк, чем какой-то примитивный шиттер.

Sign up to leave a comment.

Other news