LINUX.ORG.RU
ФорумTalks

JavaScript как глобальный источник г...окода и самых невыносимо кошмарных практик...

 , , , ,


0

2

Так как я хреновый JS программист, практики мало, постоянно сверяюсь с доками и SO. Естественно, я помню примерно, что и как делается правильно и т.п.

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

Логично, что исходную диаграмму можно нарисовать только после генерации DOM, гуглю, как правильно вставить в link директивы.

Первые несколько ответов - использовать $timeout(...., 0) из jQuery.
Ещё один - просто добавить таймаут...

Вот эти люди они вообще как, здоровы? Они эту заразу ещё и плодят!!! А JS евангелисты в этот паровоз говна ещё и угль ковшами накидывают!
(если вдруг тут такие же: правильно angular.element(document).ready(.....))

★★★★★

Последнее исправление: Shadow (всего исправлений: 3)

А на каком ресурсе ты спрашивал? Уверен, что не на ЛОРе. На ЛОРе тебе никогда бы не посоветовали добавить таймаут.

sholom
()
Ответ на: комментарий от sholom

Я гуглил по SO.
На ЛОРе я спрашиваю про совсем непонятные вещи и получаю очень полезные ответы.

Shadow ★★★★★
() автор топика
Последнее исправление: Shadow (всего исправлений: 1)

На SO сидят толпы индусов, набивающие рейтинг, что бы в ЛинкедИн-е ссылочку на профиль вставить

Deleted
()

Ну а шо ты хотел. Раньше для вебни надо было знать хотя бы похапе и шабаскрипт. А теперь только шабаскрипт. Средний уровень по больнице пробил дно и устремился в отражение неба.

Vit ★★★★★
()
Последнее исправление: Vit (всего исправлений: 1)
Ответ на: комментарий от Goury

Я тоже хочу его так называть. Такое впечатление, что JS взял всё самое худшее из сишечки, творчески переработал, и теперь все миллиарды способов выстрелить в ногу стали намного менее очевидными, чем в сишечке.
Кстати, сайтов, вешающих мозиллу неизвестно чем, становится всё больше. Их уже примерно половина. А, да, $timeout же...

А, ну и DOM и его свойства выглядят как наркоманская пародия на sun классы в яве.

Shadow ★★★★★
() автор топика
Последнее исправление: Shadow (всего исправлений: 2)

DOM это API которое предоставляет инструменты для взаимодействия с содержимым страницы.
Такие как: события (events), создание/перемещение/удаление элементов со страницы, изменение и наделение их свойствами (хотя наверное это к DOM уже не имеет отношения).
Причем здесь ангуляр твой? Это всего лишь фреймворк, который (подобно jquery) просто упрощает написание кода предоставляя как бы готовые функции на все случаи жизни. Хотя нормальные люди пишут свои, под свои задачи.

angular.element(document).ready(.....))
Я когда то то же с такого, но в итоге все это привело к тому что я просто перестал понимать как код работает. Пока не поймеж как pure JS реализован, говорить о жабоскрипте в контексте angular ов и прочего бессмысленно.

uin ★★★
()

Вот эти люди они вообще как, здоровы?

Я в последние лет 10-15 не раз говорил, что JS — ужасный выбор для развиваемых и поддерживающихся проектов. w/o язык. Его гибкость убивает читаемость.

KRoN73 ★★★★★
()
Ответ на: комментарий от Shadow

Называя его недоязыком ты признаёшься в собственной несостоятельности. Ну а как чего называть — решай сам.
То, что это не самый лучший в мире инструмент, никто и не скрывает. Но для переднего конца в вебе альтернатив нет и в ближайшем десятилетии не предвидится.

Goury ★★★★★
()
Ответ на: комментарий от Goury

Но для переднего конца в вебе альтернатив нет

Тут в соседних ветках люди им зачем-то асинхронный парсер веба пишут.

Shadow ★★★★★
() автор топика
Ответ на: комментарий от Shadow

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

Из сишечки жээсик взял только скобочки.

hateyoufeel ★★★★★
()
Ответ на: комментарий от hateyoufeel

Неправда. В первую очередь - извращённый секс в распутывании связи переменных и объектов (именно секс, а не переменные и объекты).
В си нуб страдает от указателей и указателей на указатели например.
А я сейчас не могу в списке аргументов JS функции передать условный вектор.

Shadow ★★★★★
() автор топика

Они эту заразу ещё и плодят!!!

Чего ворчишь?
Ты написал как сделать правильно и раскидал этот мануальник по форумам?
Сделал wiki или личную страницу с тем, чтобы она стала объектом поклонения?
Поместил свои руководства в соцсетях и расставил тёги?
Суёшь при каждом удобном случае ссылки с припиской «Прочитай об этом здесь?»

Нет?
Ну тогда терпи когда за тебя это делают другие, так как они умеют и так как у них получается.

torvn77 ★★★★★
()
Последнее исправление: torvn77 (всего исправлений: 8)

Для страдальцев есть TypeScript.

В смысле, он для всех хорош, но страдающим от несовершенства JS он должен быть прописан доктором.

grim ★★☆☆
()

Так как я хреновый JS программист, практики мало, постоянно сверяюсь с доками и SO.
angular

ССЗБ, js тут не при чем. Фреймворки, конечно, экономят время, но нужно же иметь хотя бы общее представление и знать, к примеру, про основные события — вроде DOMContentLoaded.

ktan ★★★
()

$timeout(...., 0) из jQuery

$timeout — это из ангуляра.

static_lab ★★★★★
()
Ответ на: комментарий от KRoN73

Я в последние лет 10-15 не раз говорил, что JS — ужасный выбор для развиваемых и поддерживающихся проектов. w/o язык.

Так то оно так, только заменить JS нечем. В отрасли WEB конечно.

Siado ★★★★★
()
Ответ на: комментарий от Shadow

Неправда. В первую очередь - извращённый секс в распутывании связи переменных и объектов (именно секс, а не переменные и объекты).

бред, к С не имеет никакого отношение то, о чем ты сказал

В си нуб страдает от указателей и указателей на указатели например.

В <your programming language here> нуб страдает от <most painful programming language bitch> например.

Нет ничего страшного в char *** если ты понимаешь что это такое и почему это происходит.

reprimand ★★★★★
()

а вообще, от ВСЕХ js фреймворков у меня бомбит.

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

reprimand ★★★★★
()
Ответ на: комментарий от sholom

На ЛОРе ему бы посоветовали выкинуть ангуляр и тред скатился бы в обсуждение того, какое же говно этот жаваскрипт и весь современный веб в целом.

Kilte ★★★★★
()
Ответ на: комментарий от reprimand

Нет ничего страшного в char *** если ты понимаешь что это такое и почему это происходит.

Лол, в char***, действительно нет.

void (*(*o_glXGetProcAddressARB)(const GLubyte*)) (void);

Распарсишь а уме?

Stil ★★★★★
()
Ответ на: комментарий от Stil

Указатель на функцию, который ничего не принимает и возвращает указатель на функцию, который принимает указатель на const Glubyte и возвращает o_glXGetProcAddressARB

reprimand ★★★★★
()
Последнее исправление: reprimand (всего исправлений: 1)
Ответ на: комментарий от reprimand

Указатель на функцию, который ничего не принимает и возвращает указатель на функцию, который принимает указатель на const Glubyte и возвращает o_glXGetProcAddressARB

Я не понимаю, что ты написал...

Это указатель на функцию, которая принимает инт и возвращает указатель на функцию, которая ничего не принимает и не возвращает.

Stil ★★★★★
()
Ответ на: комментарий от Stil

:(

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

reprimand ★★★★★
()
Ответ на: комментарий от Stil

Нет. Хотя синтаксис довольно хреновый, тут сложно поспорить.

kirk_johnson ★☆
()
Ответ на: комментарий от Goury

для переднего конца в вебе альтернатив нет и в ближайшем десятилетии не предвидится

Любой ЯП имеет не меньше 1 транслятора, позволяющего использовать JS только как промежуточную прослойку («JS is asm of the web» типа). Наберётся с десяток ЯП, которые «компилируются» только в эту прослойку и никуда больше. WebAssembly, который уже в браузерах, позволит компилировать ЯП прямо в нормальный ASM, а не в парашу. Дело только за GC. Год-два максимум.

dazdraperma
()
Ответ на: комментарий от Goury

За последние 10-15 лет много чего поменялось

у меня сейчас проект там 3 (три) js - серверный js (Rhino), и две ортогональные библиотеки клиентского js (яху фреймворк и надстройка над dojo).

хочется всем пропагандонам js раскроить черепа топором.

vtVitus ★★★★★
()
Ответ на: комментарий от Goury

У тебя ноль яваскриптов и три хипстерских говна, вот им и передавай привет.

а понятно - носитель единственно верных знаний. ты первый кандидат на раскройку черепов.

vtVitus ★★★★★
()
Ответ на: комментарий от dazdraperma

WebAssembly, который уже в браузерах, позволит компилировать ЯП прямо в нормальный ASM, а не в парашу. Дело только за GC. Год-два максимум.

Там даже DOM пока ещё не доступен. И да, как с ним работать будешь: через портированный jQuery или портированный Angular?

static_lab ★★★★★
()
Ответ на: комментарий от KRoN73

Я в последние лет 10-15 не раз говорил, что JS — ужасный выбор для развиваемых и поддерживающихся проектов. w/o язык. Его гибкость убивает читаемость.

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

WARNING ★★★★
()
Ответ на: комментарий от static_lab

В сам WebAssembly возможность манипулирования DOM'ом ещё не впилили и это не самая приоритетная задача на данный момент. Почему? Потому, что все существующие реализации WebAssembly (на данный момент) строятся на базе JS VM. А потому WebAssembly based apps могут всё, что могут JS apps:

extern void some_external_JS(int);

int main() {
  some_external_JS(42);
}
Подставь вместо some_external_JS любую DOM функцию. Можешь сделать библиотеку, описывающую все доступные функции DOM API, а потом подключать её и использовать, когда надо. Т.е. манипулировать DOM'ом уже можно, не смотря на то, что в спецификации его пока нет.

dazdraperma
()
Ответ на: комментарий от static_lab

Сейчас реализована только базовая поддержка C/C++ и ещё более простая подмножества C#. Work in progress. Как только впилят GC для поддержки Python, Go, Java, полноценного C# и т.д., так половина всего, написанного под WebAssembly будет фреймворками и UI-библиотеками (как сейчас в Go с серверными фреймворками).

dazdraperma
()
Ответ на: комментарий от dazdraperma

Как сейчас это обрабатывается, не знаю.

Но ведь

dazdraperma> Т.е. манипулировать DOM'ом уже можно, не смотря на то, что в спецификации его пока нет.

так ты не знаешь, можно ли манипулировать DOM, или манипуляции DOM закончатся на первом исключении?

Кстати, а как внешние JS-функции возвращают значения, скажем, в Си-программу?

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Речь про тот факт, что отсутствие упоминания DOM'а в текущей спецификации не говорит о том, что возможности манипулировать DOM'ом нет.

Обработка исключений таки возможна. Предыдущая ссылка была про увеличение скорости и сокращение overhead'а, связанного с обработкой исключений.

Кстати, а как внешние JS-функции возвращают значения, скажем, в Си-программу?

А в чём проблема?

dazdraperma
()
Ответ на: комментарий от dazdraperma

отсутствие упоминания DOM'а в текущей спецификации не говорит о том, что возможности манипулировать DOM'ом нет

А всё, об отсутствии чего не сказано, считается возможным. Понятно.

Обработка исключений таки возможна

Конкретную цитату, пожалуйста. Особенно интересует обработка исключений в Си.

Кстати, а как внешние JS-функции возвращают значения, скажем, в Си-программу?

А в чём проблема?

Чтобы ответить на этот вопрос, мне нужно видеть прототип функции.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Ты меня в чём-то пытаешься убедить? Иди в рассылку и там инженерам из Google, MS и Apple расскажи как ты видишь ситуацию. Уверен, твои наблюдения будут очень полезны для проекта.

dazdraperma
()
Ответ на: комментарий от dazdraperma

Ты меня в чём-то пытаешься убедить?

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

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.