Программирование

Ответить в тред Ответить в тред
Check this out!
JSThread #190 /js/ Аноним 27/12/20 Вск 11:18:33 18921521
16069129603330.png 56Кб, 1050x1050
1050x1050
Прошлый тред: >>1887469 (OP)

Больше пары строк кода в посте или на скриншоте ведут в ад.

Для программирования на HTML https://jsfiddle.net
Для Node.js с консолькой https://repl.it/languages/nodejs

Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.

Руководство для вката: https://developer.mozilla.org
Аноним 27/12/20 Вск 11:21:49 18921572
>>1892153 →
Ты посты его читал? Насрал нулом там другой разраб.
Аноним 27/12/20 Вск 11:26:41 18921643
>>1892157
а какая собственно разница кто? от ошибки и бага никто не застрахован и по идее язык должен помогать его быстро найти
Аноним 27/12/20 Вск 11:33:57 18921714
>>1892157
Вот другой бы и не насрал, если бы они ТС использовали. Либо он бы в своей части увидел, что числовая переменная может быть null
Аноним 27/12/20 Вск 11:39:09 18921745
>>1892171
Если значение переменной это не константа, а приходит извне в рантайме, то чем тебе поможет тс?
Аноним 27/12/20 Вск 11:41:25 18921776
>>1892174
Всё, что приходит извне должно завалидировано, а значит можно невозбранно повесить на него нужный тип.
Аноним 27/12/20 Вск 13:52:29 18922407
Блять, плюнул я короче на свои принципы, так как без UI для сервера жить тяжело. И так, жиессеры, подскажите, какой фреймворк брать? хули в шапке до сих пор нет, для вкатывальшиков
Хочу, чтобы быстро и просто. Задача: писать админки. И без всякой ёбки с пакетами.
Ещё кстати думал над Elm, что про него скажите ?
Аноним 27/12/20 Вск 13:56:12 18922438
>>1892240
Ставь бутстрап + жиквери и жри говнорадуйся.
Аноним 27/12/20 Вск 13:56:53 18922449
>>1892240
а ты уверен что тебе вообще фреймворк нужен?
алсо vue
Аноним 27/12/20 Вск 14:01:32 189224810
image.png 37Кб, 954x342
954x342
>>1892240
>хули в шапке до сих пор нет, для вкатывальшиков
>Руководство для вката: https://developer.mozilla.org
Ты не очень умный, да?
Аноним 27/12/20 Вск 14:05:19 189225011
>>1892243
>жиквери
Разве эта хуйня не устарела ?

>>1892244
В том то и дело, я вообще не уверен, что брать. С js знаком плохо, но когда писал на нем, прям плохо становилось, думаю может фреймворки поменяют моё отношение. Кто-то вообще писал админки на чистом js ?

>>1892248
>Ты не очень умный, да?
Все так, мне, как обычному мимо-проходящему, понадобилось мнение экспертов, здесь и сейчас.

Аноним 27/12/20 Вск 14:08:04 189225212
>>1892250
админка не явлется чем-то особо сложным, а чистый джс сейчас может примерно то же что раньше мог жиквери
Аноним 27/12/20 Вск 14:51:58 189226913
Пишу скрипт для тампермонкей. Скрипт состоит из функций. Весь скрипт, т.е. все функции запускаются по domcontetntloaded.

Как грамотней организовать эти функции?.

Просто писать функцию и после сразу вызывать? Или сгруппировать вызовы вначале\в конце? Или делать все функции стрелочными, чтобы не всплывали и вызывать по очереди?

Аноним 27/12/20 Вск 15:19:07 189228814
>>1892269
>Или делать все функции стрелочными, чтобы не всплывали

С этого места подробней.
Аноним 27/12/20 Вск 15:21:39 189229115
Какие зарплаты у людей в треде?
Аноним 27/12/20 Вск 15:24:33 189229716
>>1892291
Мамкины котлеты 3 штуки в день с горячей пюрешкой.
Аноним 27/12/20 Вск 15:41:15 189231317
>>1892269
Писать очередь вызовов, а функции писать внизу, предпочтительно в той же очереди, в которой вызывал.
Вообще странно, у тебя все функции - сайд-эффекты?
Аноним 27/12/20 Вск 15:52:36 189232518
Начал в этот ваш фулстак, стоит ебаться с вэбпаком и бабелем создать шаблончик и юзать его, или cra достаточно?
Аноним 27/12/20 Вск 15:56:57 189233019
Куда лучше перекатываться из front js'a? iOS?
Аноним 27/12/20 Вск 16:00:25 189233520
>>1892325
Мне cra никогда не хватало, даже для мелкопроектов. Может его улучшили конечно, хз.
Аноним 27/12/20 Вск 16:17:00 189234521
>>1892313
>у тебя все функции - сайд-эффекты
Да, это же скрипт для стороннего сайта, функции меняют содержимое.
Аноним 27/12/20 Вск 17:18:01 189241422
>>1892063 →
>в реакте для этого используют передачу вниз функции обработчика
И чем же это принципиально отличается от эвентов в Vue?
В смысле - в лучшую сторону?
Алсо, передать вниз в Vue можно что угодно, просто этого не делают.
Есть другие механизмы.

Вообще, по части гибкости реакт сосёт у Vue не нагибаясь.
Тут даже и обсуждать нечего.

>>1892138 →
И (возможно) правильно делают.
Потому, что такие вещи, как incapsulation и separation of concerns можно понимать очень по-разному, в зависимости от обстоятельств.
Не надо воспринимать как догму всю хуйню, которую пишут Дядя Боб или Фаулер.

В очень многих случаях тупо иметь всё в одном месте выгоднее, чем высосанные из пальца теории о том, что надо делать по 10 файлов на каждый пук.

Просто ньюфагам такое обычно не говорят.
Как детям не показывают, из какого места они появляются.
Аноним 27/12/20 Вск 17:36:18 189245723
>>1892414
ивенты с нагрузкой это как-то странно если честно

вот в свелте например просто биндинг по типу v-model можно сделать на проп лол

а то что во вью можно вниз обработчик передать это собственно естественно т.к. как ты запретишь передать пропом ссылку на функцию, это фишка языка, просто это не принято
Аноним 27/12/20 Вск 17:44:17 189247624
>>1892240
vue.js бери. довольно простой, даже на русском дока есть
Аноним 27/12/20 Вск 17:45:12 189247825
>>1892288
ну они же инициируются при присваивании переменной а не до исполнения как обычные

fn(); function fn() { console.log(42) }
вызывается

fn(); const fn = () => { console.log(42) }
выдает ошибку

только не пони какая ему разница если критично когда их вызовут а не когда инициализируют

плюс тут важно не то что стрелочные а что присвоены переменной, короче хз что он имел ввиду, не знаю

fn(); const fn = function() { console.log(42) }
тоже выдает ошибку
Аноним 27/12/20 Вск 17:46:27 189248026
>>1892240
Для админки сразу бери набор компонентов. С нуля вообще ничего писать не придется. Ебучий конструктор.
Аноним 27/12/20 Вск 17:47:33 189248627
Аноним 27/12/20 Вск 17:51:01 189249228
>>1892478
Так это не из-за стрелочных функций, а из-за того что ты переменную объявляешь через const, объявляй через var и поведение будет такое же как у function
Аноним 27/12/20 Вск 17:54:58 189250129
Аноним 27/12/20 Вск 18:50:32 189258930
Аноним 27/12/20 Вск 18:57:29 189260531
Аноним 27/12/20 Вск 19:20:50 189262932
Аноним 27/12/20 Вск 19:36:51 189264733
Аноним 27/12/20 Вск 20:16:49 189269634
Спасибо.
Аноним 27/12/20 Вск 20:17:18 189269835
Спасибо?
Аноним 27/12/20 Вск 20:21:45 189270936
.обисапС
Аноним 27/12/20 Вск 20:26:11 189271537
оƍиɔɐuɔ
Аноним 27/12/20 Вск 20:42:11 189273638
>>1892457
>ивенты с нагрузкой это как-то странно если честно
Это как посмотреть.
Попробуй вместо термина "эвент" использовать "сообщение".
И всё встаёт на свои места.
Аноним 27/12/20 Вск 21:17:40 189276739
>>1892152 (OP)
Аноны, такой вопрос, научился писать я код, работаю в крупной нефтяной конторе, кругом бюрократия, нас 6 чела в команде, начальник нашей группы никакущий управленец, процесс налажен херово, задачи ставятся без четких требований, заказчик сам не знает чего хочет, короче сделаешь нормально, потом приходится переделывать и тут уже говнокодишь, лишь бы быстрее задачу закрыть. Я оцениваю себя как аппер джун, есть пробелы в базе, я их закрываю читая про алгоритмы и все такое. Но вот как и куда двигаться дальше? Я хочу пересесть на мидловский стул, я пишу код самостоятельно с практиками и хорошими манерами, но ведь мидл делает тоже самое? Что отличает мидла и джуна? Читать про архитектуру? Но ведь она уже как правила заложена ранее и лидами. Анончик, расскажи, как рос сам, что посоветуешь?
Аноним 27/12/20 Вск 21:22:12 189277540
>>1892767
Хороший код получается только если делать жертвоприношения Великой Кодовой Жабке

Аватаром Жабки был Дейкстра. Почитание Дейкстры открывает пути в высшие миры Кодового Болота
Аноним 27/12/20 Вск 21:25:03 189277741
>>1892767
>Что отличает мидлаи джуна?
Только зарплата. В каждой конторе свои градации.
Аноним 27/12/20 Вск 21:25:14 189277842
>>1892767
Если пишешь все самостоятельно (и не приходится доделовать именно из-за твоих проебов) то добивай опыт до какой-то красивой цифры и перекатывайся в мидла. Почекай вакансии, если будет возможность походи на тестовые собеседования посмотри что там вообще требуют.
Аноним 27/12/20 Вск 21:43:34 189278843
image.png 327Кб, 390x600
390x600
>>1892775
>>1892777
>>1892778
Трипл пиздеть не будет. Всем спасибо, аноны, с наступающим.
Аноним 27/12/20 Вск 23:41:32 189285644
>>1892788
Самое главное, не пиши на Коболе, ибо на Коболе пишут только люди с улицы
Аноним 28/12/20 Пнд 00:08:06 189287145
Не знаю как вы, но лично меня очень смешанные чувства по поводу фразы "мы могли нанимать людей прямо с улиц":

«Можно было брать людей с улицы», — рассказывает британский кодер Джон Пайк, изучавший COBOL в 1960-х. «И, по сути, учить их, как писать программы».

Прям таки видится современный формошлеп за 50к который хуячит продающие очередную говноту интерфейсы
Аноним 28/12/20 Пнд 00:11:53 189287946
>>1892335
А чего тебе чаще всего не хватало?
Аноним 28/12/20 Пнд 00:12:39 189288047
>>1892871
Чувак, "прямо с улицы" - в программирование - в Америке 60-х, это не то же самое, что прямо с улицы в программирование в России 20-х. Понимаешь?

Чтобы было понятнее - попробуй сейчас вкатиться в какой-нибудь биотех, например. Сможешь?
Аноним 28/12/20 Пнд 00:13:50 189288148
Аноним 28/12/20 Пнд 00:17:44 189288749
>>1892325
Забей на вебпак, бери сноупак и esbuild.
Аноним 28/12/20 Пнд 00:20:55 189289050
>>1892880
> попробуй сейчас вкатиться в какой-нибудь биотех
Совершенно понимаю, что это охуительно непростая задача. Вкатился бы с удовольствием за госсчет, но пока что только вкатываюсь методами превозмоганий да и то только на чистом энтузиазме. Впрочем хер бы с этими хайтеками, меня смущает что ради таких ремесленных знаний как формошлепинг приходится чуть ли не бароном делаться
Аноним 28/12/20 Пнд 01:34:29 189294351
15905089494280.jpg 248Кб, 875x1555
875x1555
пацаны, посоветуйте сайт где можно псевдокод размещать, в виде конструктора, ну типо графически отображать
Аноним 28/12/20 Пнд 02:23:25 189296752
>>1892890
Похоже, я не очень понял, о чём ты.

Алсо, формошлёпинг - это не ремесленные знания.
Иначе - это будет хуёвый формошлёпинг.
В любой работе основную массу составляет рутина, которая кажется ничего не стоящей тому, кто привык её делать.
Аноним 28/12/20 Пнд 02:24:41 189296953
>>1892943
Ты там сисек в тесте переел, что-ли?
Какой графический псевдокод, лол?
Код - это буквы, и их надо знать.

Аноним 28/12/20 Пнд 02:31:19 189298154
>>1892969
ну ты понял че мне нужно, ну
Аноним 28/12/20 Пнд 02:35:21 189298455
Снимок экрана 2[...].png 168Кб, 622x626
622x626
>>1892981
вот типо таких блок схем что бы накидывать можно было
Аноним 28/12/20 Пнд 04:27:44 189304356
>>1892984
Есус. Гугли yEd, только это тулза, а не сайт. А нахуя тебе?
Аноним 28/12/20 Пнд 05:49:24 189311457
>>1892887
>esbuild


> The CSS content type is new and is still a work in progress. There is also a known ordering issue with importing CSS files from JavaScript files. You can follow the tracking issue for updates about this feature.

Ох лол
Аноним 28/12/20 Пнд 06:03:11 189312558
>>1892887
>сноупак
for real snowflakes
анон 28/12/20 Пнд 07:25:09 189315659
https://jsfiddle.net/6sj7goba/

Почему сплайс изменяет "настоящий" массив, а не копию, переданную в функцию?
Аноним 28/12/20 Пнд 07:37:45 189316160
>>1893156
мутатор мыть надо, негр у тебя родился, геной назвали

https://doesitmutate.xyz/splice/

скопируй передаваемый в функцию массив и передавай копию а не референс на оригинал
Аноним 28/12/20 Пнд 07:45:33 189316961
>>1893156
>а не копию, переданную в функцию?
Потому что ты передаешь в функцию не копию, а "настоящий" массив.
Аноним 28/12/20 Пнд 07:52:58 189317562
>>1893161
>>1893169
Пытался дрюкать передаваемый массив внутри функции без сплайса, он вне ее нихуя не изменился, а со сплайсом меняется.

Например, если сделать внутри что-нибудь вроде arr = arr.map(value => value + 1); то это никак на внешний не влияет
Аноним 28/12/20 Пнд 08:03:46 189318063
>>1893175
>>>arr = arr.map(value => value + 1);

Доперло вроде. Таким образом я перезаписываю внутрифункционный переменную просто, а архив висящий где-то в памяти это не трогает. Оригинальный массив можно менять только методами, которые его "мутируют" ( https://doesitmutate.xyz ), правильно?
Аноним 28/12/20 Пнд 08:52:55 189320564
image.png 101Кб, 721x487
721x487
Аноним 28/12/20 Пнд 08:59:58 189321165
>>1893180
да
именно поэтому ты не можешь сделать просто arr.map() - нужно присвоить получившееся значение переменной т.к. оригинальный массив не поменяется
тогда как ты можешь сделать arr.splice() и ничего не присваивать
Аноним 28/12/20 Пнд 09:01:19 189321266
>>1893205
звучит как-то собакоебски
Аноним 28/12/20 Пнд 11:04:55 189329867
Кто-нибудь пробовал ковырять SICP на JS? Меня заинтересовала тема SICP, но у схемы уебанский синтаксис, который нигде больше не применится. И оказалось что материал есть на любимом жаваскриптике.
Ссылка: https://source-academy.github.io/sicp/split/
Аноним 28/12/20 Пнд 11:10:51 189330468
Посоны, поясните плз. Я хочу объединить два коммита.git rebase -i HEAD~2. Дальше вылезает vim. Я нажимаю : и пытаюсь заюзать команду pick, но у меня вылезает ошибка " Not an editor command: pick". В туториала про это ничего не сказано. Что я делаю не так?
Аноним 28/12/20 Пнд 11:25:55 189330769
>>1893304
Хуя знает про гит, но в виме шелл команды через :!
Аноним 28/12/20 Пнд 11:28:15 189330870
Дугин - Кринж-7[...].mp4 167Кб, 640x352, 00:00:04
640x352
Аноним 28/12/20 Пнд 11:29:33 189330971
>>1893304
Он тебе предлагает отредактировать commit message что ли? Просто выйди черед :wq
Аноним 28/12/20 Пнд 11:57:47 189332472
>>1893304
>Дальше вылезает vim
по дороге едет зим и я им буду задавим (с)
Аноним 28/12/20 Пнд 13:06:11 189336973
А есть какой-нибудь онлайн-сервис, где чувак со мной проведет тестовое интервью и подскажет, где я обосрался?
Уровень сеньор (прост с фулстака хочу чисто во фронт перекатиться, и не уверен что достаточно шарю)
Аноним 28/12/20 Пнд 13:17:23 189338474
>>1893369
Могу за пару тыщ это сделать без всякий онлайн-сервисов.

250к-лид-провел-больше-сотни-собесов
Аноним 28/12/20 Пнд 13:28:48 189339575
>>1893369
>фулстак
>сениор

Выбери что-то одно. Фуллстак это максимум мидл на фронте и мидл на бэке. Хотя чаще всего это джун на фронте и максимум мидл на бэке. Поэтому если хочешь на фронт, то готовься откатываться на уровень мидла или ниже.
Аноним 28/12/20 Пнд 14:10:56 189346076
>>1887299 →
Проорал с "ментора" который принципиально не ставит ; в конце statement
Аноним 28/12/20 Пнд 14:13:24 189346377
>>1893395
)) Ты первый день что ли на двачах? Вон смотри какой кадр нарисовался пару тредов назад: >>1885745 →
Главное этот джун/стажер даже не понял, насколько сильно он обосрался. Это как пытаться выпенриться сказав, что ты сдаешь недвижку и владеешь 1-2 дома в каждом регионе России, думая что это типо круто (хотя ни один вменяемый инвестор в недвижку так не сделает)
Аноним 28/12/20 Пнд 14:22:22 189348478
>>1893463
>вменяемый инвестор в недвижку
Хуясно.
Аноним 28/12/20 Пнд 15:00:45 189352679
>>1893384
Давай, оставь контакты
Аноним 28/12/20 Пнд 15:15:22 189353980
>>1893526
Скинь телегу на le.sapin.vert@yandex.ru
Аноним 28/12/20 Пнд 15:51:30 189356781
Аноны, помогите советом: уже работаю разрабом, Реакт/Редакс вот это всё, проект и ебовый пробовал и с микросервисами. Написать компонент вполне могу - хоть классовый, хоть функциональный;
А как хочу что-то сам сделать с нуля, вижу пустую директорию в IDE или пустое поле в задачках на литкоде и такой тупёж накатывает, что не знаю что делать, смотрю, туплю и закрываю.
Что со мной не так? Как-то можно такое вылечить?
Аноним 28/12/20 Пнд 16:01:47 189357982
>>1893567
А не было желания переписать архитектуру старого кривого проекта "как надо"?
Аноним 28/12/20 Пнд 16:45:48 189361183
>>1893463
С вероятностью 80% это один и тот же чел
Аноним 28/12/20 Пнд 16:52:33 189362284
>>1893579
>переписать архитектуру старого кривого проекта
Лол кек щито?
Аноним 28/12/20 Пнд 17:40:29 189370185
Аноним 28/12/20 Пнд 19:01:27 189378886
image.png 40Кб, 1304x521
1304x521
Почему мапка даже в таким простых операциях ебейше быстрее объекта?
Аноним 28/12/20 Пнд 19:15:51 189379687
>>1893788
Потому что объект - дохуя сложная штука. Прототипы, дескрипторы пропертей - всего этого в мапе нет
Аноним 28/12/20 Пнд 20:00:21 189383288
Может ли быть больший детектор пидара в js в 2020 чем использование let вместо const? var даже в расчет не берем, это чушки-подсосники
Аноним 28/12/20 Пнд 20:04:21 189383689
for (const i = 0 ; i < 5; i++) console.log('ну я даже не знаю')
Аноним 28/12/20 Пнд 20:05:01 189383990
>>1893832
>детектор пидара
>в js
Это как детектить пидоров в баре Голубая устрица
Аноним 28/12/20 Пнд 20:05:40 189384091
Аноним 28/12/20 Пнд 20:07:06 189384192
>>1893836
for (const key in {так:"",узнай:""}) console.log(key)
Аноним 28/12/20 Пнд 20:07:53 189384293
>>1893836
нахуя циклы, когда если есть .map?
Аноним 28/12/20 Пнд 20:10:26 189384594
>>1893842
Как ты мапом факториал вычислишь?
Аноним 28/12/20 Пнд 20:10:44 189384795
Блять что такое Query в datorama?
Я зашел на их сайт, а эта петушня требует авторизоваться и всякую хуйню
Аноним 28/12/20 Пнд 20:12:03 189385096
Поясните за reduce()

Внутри него допустимо аккумулятор мутировать или нужно возвращать новый или похуй? Например, если аккумулятор - массив и нужно добавить в него значение. И будет ли разница в быстродействии?
Аноним 28/12/20 Пнд 20:13:50 189385697
>>1893847
У меня на проекте юзается ангуляр, там эта datorama со своими сущностями впилена, хрен знает что это такое
Аноним 28/12/20 Пнд 20:14:41 189386198
>>1893845
Для этого reduce есть или рекурсия.
Аноним 28/12/20 Пнд 20:16:37 189386699
>>1893861
Которые обосрутся на больших числах.
Аноним 28/12/20 Пнд 20:19:36 1893871100
На фронте есть запрос по типу:
async updateData(actor, options) {}

То есть некая асинхронная функция передает какие-то данные на бэк для конкретного actor. У меня есть массив где 20+ таких actor, как мне асинхронно разом закинуть их всех на бэк? Не ждать же мне каждый раз когда закончится исполнение предыдущего await чтобы начинать новый запрос. Асинхронщина не для этого придумана
Аноним 28/12/20 Пнд 20:19:53 1893872101
16011320437830.png 10Кб, 208x186
208x186
>>1893866
Ясно. Типичный циклодаун не знающий как работает то о чём он кукарекает.
Аноним 28/12/20 Пнд 20:22:29 1893876102
>>1893850
Мутировать конечно, ты же не собираешься использовать в качестве аккумулятора переменную извне? Разница будет не только в быстродействии, но и в использовании памяти, не в пользу создания нового массива.
Аноним 28/12/20 Пнд 20:23:15 1893878103
>>1893842
ты в мапе сайд эффект собрался прописывать?
Аноним 28/12/20 Пнд 20:23:43 1893880104
>>1893871
await Promise.all(actorsArray.map(updateData));
Аноним 28/12/20 Пнд 20:24:08 1893881105
>>1893878
Пытался писать не говнокод?
Аноним 28/12/20 Пнд 20:29:08 1893892106
2345345.png 4Кб, 271x192
271x192
>>1893876
Какое из вне?

Мутировать аккумулятор на итерациях редюса или нет? Вот в чем вопрос.

Вот на пике как правильней? Или например, если аккумулятор - объект.

Аноним 28/12/20 Пнд 20:29:26 1893893107
>>1893880
Но map же принимает только 1 аргумент... А там в функции их два - сам actor и некие options (которые как могут быть дефолтными для всех actor так и быть уникальными для каждого из них)
Аноним 28/12/20 Пнд 20:29:42 1893895108
>>1893567
Всё норм, ты просто реактомакака, а не программист.
Аноним 28/12/20 Пнд 20:29:54 1893897109
>>1893878
А зачем тебе он нужен вообще этот сайд-эффект, даже и не в мапе, а в цикле?
Аноним 28/12/20 Пнд 20:33:09 1893900110
>>1893850
Я в работе вижу практически всегда второй варик через spread, он и короче и чуть более понятен, можно еще и return убрать. А если ты пушить собрался, то больше смысла имеет определить acc во внешнем скопе и просто внутри forEach пушить. Пушить подозреваю побыстрее будет, но имеет смысл уже на 1000+ элементах.
Аноним 28/12/20 Пнд 20:33:32 1893902111
>>1893892
Извне это:
let array = [1,2,3];
otherArray.reduce((acc,e)=>/какойтокод/, array)
Аноним 28/12/20 Пнд 20:33:45 1893903112
>>1893579
Всегда есть такое желание, более того, иначе даже не могу заставить себя работать.
Аноним 28/12/20 Пнд 20:36:55 1893909113
>>1893893
Мне за тебя весь код писать? Общий принцип тебе показали, действуй.
Аноним 28/12/20 Пнд 20:46:46 1893919114
>>1893897
блин это какая-то функциональщина головного мозга
давай еще скажи что foreach тоже не нужон
Аноним 28/12/20 Пнд 20:48:26 1893921115
>>1893902
Но там же не из вне.
Аноним 28/12/20 Пнд 20:48:46 1893922116
>>1893919
Ну а срсли, зачем он тебе нужон? Обычно или что-бы во что-то кжадый элемент конвертнуть (map), что-то сагрегировать (reduce) или отфильтровать данные (filter)
Ну реально придумай плз пример, когда нельзя решить задачу этими штуками
Аноним 28/12/20 Пнд 21:00:51 1893934117
>>1893922
Потому что цикл читается и понимается гораздо лучше чем дрочево редьюсов с рекурсиями. Кукареки "да ты просто не привык к функциональщине" оставь при себе, в любом современном ФП-языке рекурсия - это в 99% случаев антипаттерн и так существуют list-comprehensions, которые читаются как обычный цикл и используются в тех же местах. Никто не дрочит твои маняредьюсы каждый раз когда им надо n раз пукнуть.
Аноним 28/12/20 Пнд 21:03:24 1893937118
>>1893922
блин да он часто проще
а уж какую-нибудь анимацию в канвасе без циклов делать вообще лол
Аноним 28/12/20 Пнд 21:06:55 1893942119
16011320437830.png 26Кб, 947x492
947x492
>>1893921
Где "там"? Если в качестве аккумулятора ты используешь переменную, значит делай копию этой переменной и работай c копией, мутируя её в калбэке функции reduce.
Писать [...acc, e] вместо (acc.push(e),acc) будет только конченный дебил почему - показано на пикриле.
Аноним 28/12/20 Пнд 21:11:50 1893947120
>>1893942
>Если в качестве аккумулятора ты используешь переменную
Где такое я сказал? Хуле ты слепошарый такой?

[...acc, e] каждую итерацию возвращает новый acc
(acc.push(e),acc) мутирует один acc
В том и был вопрос, что лучше. ФП же требует не мутировать ничего.
Аноним 28/12/20 Пнд 21:12:37 1893949121
>>1893942
Только семантически такая запись внутри reduce никакого смысла не имеет, смысл reduce в том чтобы возвращать новый объект на каждую итерацию, а не мутировать его. Есть хочешь пушить, то внутри forEach.
Аноним 28/12/20 Пнд 21:15:22 1893955122
>>1893947
Хуесосина тупорылая, я тебе изначально объяснил в каких случаях как действовать. Ты высрал "какое из вне?", на что я тебе объяснил какое. Ты хоть сам то себя понимаешь, макакен? Тебе вообще лучше забыть про программирование, даже на JS.
Аноним 28/12/20 Пнд 21:18:24 1893959123
>>1893949
>смысл reduce в том чтобы возвращать новый объект на каждую итерацию, а не мутировать его.

Смысл reduce в приведении массива одного вида, в данные другого вида. Это не обязательно объект, это может быть и число.

>Есть хочешь пушить, то внутри forEach

Показывай пример. Только не говори что собираешься мутировать в forEach какую-то переменную извне.
Аноним 28/12/20 Пнд 21:20:25 1893961124
>>1893955
Я бы лучше забыл, что ебал твою мамашу.
Аноним 28/12/20 Пнд 21:39:55 1893981125
Есть вызов:
const maxNumber = prompt('Выберите максимально возможное число')

После этого надо выполнить ряд действий, но только если юзер выбрал какое-то число а не нажал на Cancel. Мне явно проверять if (maxNumber !== null) ? Выглядит по-уебански, но я не могу же проверять на if (maxNumber) потому что оно может быть нулем...
Аноним 28/12/20 Пнд 21:44:32 1893985126
>>1893981
let numberSelected = true;
const maxNumber = prompt('Выберите максимально возможное число') ?? numberSelected = false;

if (numberSelected)
Аноним 28/12/20 Пнд 22:26:08 1894024127
>>1893985
>const maxNumber = prompt('Выберите максимально возможное число') ?? numberSelected = false;
вут
Аноним 28/12/20 Пнд 22:46:46 1894037128
Как заставить меняться изображение в теге img с помощью жс?

Вот в чем суть: есть svg-изображение "стрелочка вверх" при нажатии на которую окно под ним сворачивается, при повторном нажатии - разворачивается, однако я хочу изъебнуться и не делать так чтобы стрелочка всегда показывала вверх, когда нужно развернуть окно, она должна показываться вниз. Как это сделать при помощи ванильного ЖС?
Аноним 28/12/20 Пнд 22:48:45 1894039129
>>1894037
Ну поставь есть трансформом rotate или scale. В чем проблема-то собсна?
Аноним 28/12/20 Пнд 23:03:04 1894049130
>>1893947
>ФП же требует не мутировать ничего.
Но ты не пишешь на ФП языке, шиз. Нет никакого практического смысла дрочить редьюсы вместо for цикла с мутацией, для потребителя API это будет то же самое, ему абсолютно поебать, спавнит твоя функция 1000 ИММУТАБЕЛЬНЫХ массивов чтобы вернуть результат, или создает этот результат сразу и мутирует его в процессе.
Аноним 28/12/20 Пнд 23:04:36 1894050131
>>1894049
Я так понимаю фп - такой же бессмысленный дроч, как и ts?
Аноним 28/12/20 Пнд 23:12:57 1894060132
>>1894050
В конктексте жопоскрипта - да, более-менее. Мутировать переданные тебе объекты и так моветон, для этого гением ФП быть не надо, а внутри своей функции можешь хоть в жопу ебаться, главное результат отдай. И в жопу ебаться гораздо приятнее прямолинейным циклом, который любой дебил прочитает без проблем, чем дрочить редьюсы чтобы сделать ФП-шизика счастливее.
Аноним 28/12/20 Пнд 23:24:46 1894074133
>>1894060
>внутри своей функции можешь хоть в жопу ебаться
>в жопу ебаться гораздо приятнее прямолинейным циклом
LGBT Pride & BLM: Начало
Аноним 28/12/20 Пнд 23:51:56 1894091134
Можно ли как-то в ангуляре повесить хендлер на элемент в зависимости от параметров?
Например если в компоненте некий actionFlag = true то на элементе висит хендлер: (click) = "myFunction()"
Аноним 29/12/20 Втр 00:03:56 1894097135
>>1894091
(click) = "actionFlag ? myFunction() : null"
Аноним 29/12/20 Втр 00:15:37 1894109136
>>1894097
Типо так можно? Какие вообще ограничения на expression внутри кавычек? Я могу многострочную ебень там понаписать и т.п.?
Аноним 29/12/20 Втр 00:18:30 1894113137
>>1894109
Выше же уже и функция из компонент скопа вызвана
Конечно можешь
Аноним 29/12/20 Втр 00:27:10 1894122138
>>1894091
Ануляр вроде как всю эту дрянь в справа умеет в рантайме гонять через свой интерпретатор, поэтому туда можно писать всякую динамическую дичь как будто там всамедлишный жс
Аноним 29/12/20 Втр 00:58:57 1894155139
>>1894091
Тебе уже ответили.
Но, так лучше не делать. И не только в Ангуляре, а вообще.
Эту проверку лучше делать в функции-обработчике. В шаблоне должно быть логики по-минимуму.

А если ты имел в виду назначать/удалять обработчик у элемента, в зависимости от, как делают в чистом жс - то так в шаблонных фреймворках не делают. Если это критично - можно по-разному рендерить элемент - с обработчиком или без, в зависимости от условия.
Аноним 29/12/20 Втр 15:40:44 1894564140
Ананасы, поясните как правильно реализовывать залогиненное состояние клиента на странице, что бы при перезагрузке он оставался в логине. В локал сторедж записать токен авторизации и при перезагрузке его отправлять на сервер ?
Аноним 29/12/20 Втр 15:59:19 1894583141
Аноним 29/12/20 Втр 16:29:34 1894616142
>>1893895
И как из реакто-макаки стать программистом?
Я совета спросил, мне твои аналитические навыки нахуй не нужны
Аноним 29/12/20 Втр 16:55:31 1894631143
>>1892152 (OP)
Аноны, кто разрабатывал игры при помощи web, вы сами рисовали элементы? Если да, то как?
Аноним 29/12/20 Втр 16:56:58 1894632144
>>1894616
В твоём случае только живительная эвтаназия поможет.
Аноним 29/12/20 Втр 16:57:57 1894634145
>>1894631
document.createElement
И весь мир у твоих ног
если не ебанешься раньше времени
Аноним 29/12/20 Втр 16:58:57 1894635146
>>1894631
И объясните пожалуйста как работают фреймворки по типу gdevelop-app? Это типа конструктор или ты код пишешь параллельно?
Аноним 29/12/20 Втр 17:01:23 1894639147
image.png 174Кб, 838x508
838x508
>>1894634
>>1894631
Лол
Вот такого рода, к примеру, люди на фотошопе рисуют или как Честно не представляю
Аноним 29/12/20 Втр 17:05:11 1894642148
Как гребется, аноны?
Аноним 29/12/20 Втр 17:21:51 1894658149
>>1894639
Кошак скорее всего в редакторе был нарисован, а у всяких квадратиков различие только в стилях, которые можно шаблонизировать.
Аноним 29/12/20 Втр 17:25:31 1894667150
Какие пререквизиты для вката в электрон?
Аноним 29/12/20 Втр 17:30:37 1894676151
>>1894658
>редакторе
Не стать мне короче gamedevом. А так, это долго учиться в редакторах рисовать?
Аноним 29/12/20 Втр 17:40:37 1894687152
>>1894631
Очевидный WebGL. На худой конец Canvas.
Аноним 29/12/20 Втр 17:54:10 1894705153
>>1894564
"Правильно" реализовывать - это использовать http-only зашифрованную куку с сессией и вторую куку с публичной информацией о пользователе(id, имя и т.д), обе из которых должен выставлять сервер, чтобы ты мог по публичной куке в любой момент определить статус сессии. Но если сервер пишет непонятно кто, то скорее всего придется дрочить токены и локалсторы.
Аноним 29/12/20 Втр 17:57:14 1894709154
Аноним 29/12/20 Втр 18:04:01 1894714155
>>1894709
Как и все в этом треде.
Аноним 29/12/20 Втр 18:08:10 1894717156
Аноним 29/12/20 Втр 18:10:33 1894720157
>>1894717
Сам спросил, сам ответил. Вот ебанутый.
Аноним 29/12/20 Втр 18:26:03 1894733158
Где почитать как работают импорты модулей в бабеле/вебпаке? Я не понимаю когда он принимает решение импортировать весь модуль, а когда - только нужный файл. В ситуации с лодашем, у которого каждая функция чистая, импортится только то что нужно, но только если писать:
>import debounce from 'lodash/debounce';
вот так не работает:
>import {debounce} from 'lodash';
импортится весь модуль. Интересно, почему.

Пытаюсь не импортировать весь модуль graphql, используя синтаксис
>import {print as printGraphQL} from 'graphql/language/printer';
но он в бандл тащится весь модуль, когда мне только эта функция нужна.
Я вообще не понимаю как это работает.
Аноним 29/12/20 Втр 18:29:07 1894739159
>>1894632
Вся суть руснявого комьюнити - выебоны на пустом месте и элитизм. Сходи нахуй, говна кусок
Аноним 29/12/20 Втр 18:29:40 1894741160
Решил прологировать Observale что есть в одном компоненте (проект не мой) вот так:

this.readableAgents$.subscribe(
(x) => console.log(x)
);

Но в логах он сначала мне пишет пустой список а затем на следующей строке уже список заполненный объектами, хотя console.log я вызываю 1 раз. Почему так?
Аноним 29/12/20 Втр 18:47:50 1894750161
>>1894733
Ты вообще отдаешь себе отчет в том, что в приведенных тобою снипетах импорта лодаша, ты импортируешь код из разных модулей?
Аноним 29/12/20 Втр 18:49:51 1894751162
Аноним 29/12/20 Втр 18:51:57 1894753163
Аноним 29/12/20 Втр 18:53:27 1894755164
Аноним 29/12/20 Втр 18:54:27 1894756165
Аноним 29/12/20 Втр 18:55:13 1894757166
Аноним 29/12/20 Втр 18:56:21 1894759167
Аноним 29/12/20 Втр 18:58:40 1894760168
>>1892152 (OP)
Поясните, CMS были изобретены для того, чтобы кабанчики вместо заказа сайта у разраба, платили создателю движка? В чём тогда смысл существований совсем простеньких веб студий третьего сорта, берущие простенькие заказы, если их продукты можно заменить CMS. Свой движок и возможность допилить рокет саенс при желании или просто незнание рынка заказчиком?
Аноним 29/12/20 Втр 19:00:36 1894761169
16091859424740.png 90Кб, 251x203
251x203
Поясните, как грамотно использовать MutationObserver.

Мне нужен для скрипта на на сторонний сайт. Сайт на рякте, поэтому просто добавить элемент по domcontentloaded не получится.

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


Вопрос - как правильней: вызывать функцию на каждую мутацию и делать проверку в самой функции (и ретурн, если нет элемента). Или сначала проверку, а при наличии элемента вызывать функцию.



Аноним 29/12/20 Втр 19:05:59 1894766170
>>1894761
>обсерверы
>грамотно
Аноним 29/12/20 Втр 19:06:13 1894767171
>>1894741
По этой теме: в rxjs есть Observable вроде этого:

availableNames$: Observable<string[]> = this.openFields$.pipe(
map(fields => [...fields.keys()])
);

Мне нужно внутрь этого массива добавить дополнительное имя "selector", если значение переменной-флага option == true. Был бы это просто цикл, я б на пофиг подмешал туда if но тут-то надо прогать в реактивном контексте, availableNames$ это Observable а не сам массив. Как туда подмешать новое значение в зависимости от переменной-флага?
Аноним 29/12/20 Втр 19:07:31 1894768172
>>1894766
Ну а каким еще образом можно впихнуть свои элементы на чужой спа-сайт
Аноним 29/12/20 Втр 19:14:47 1894771173
>>1894768
Зачем тебе впихивать свои элементы на чужой спа-сайт?
Аноним 29/12/20 Втр 19:21:52 1894775174
>>1894771
Чувакам с хуйцом менее 20 см не понять
Аноним 29/12/20 Втр 21:55:12 1894886175
>>1894733
Это уже зависит от того, что там авторы модуля нахуевертили с импортами. Забей хуй и только обращай внимание на разросшиеся бандлы.
Аноним 29/12/20 Втр 22:19:22 1894912176
lodash в 2020/2021 нужон?
Аноним 29/12/20 Втр 22:31:41 1894926177
>>1892152 (OP)
Анончик, с наступающим, такой вопрос, может где лежат курсы с angular university в бесплатном доступе? Я потом, когда стану крутым разрабом, постараюсь отработать.
Аноним 29/12/20 Втр 22:34:16 1894930178
Аноним 29/12/20 Втр 22:37:17 1894933179
Да
Аноним 29/12/20 Втр 23:05:47 1894963180
>>1892715
А пацанчик-то реально умер. ебанулся
Аноним 29/12/20 Втр 23:28:39 1894981181
>>1894741
Зависит от того, откуда появился изначальный Observable. Скорее всего за ним стоит BehaviorSubject, который при подписке отдает значение с которым он был создан, а потом уже отдает то, что в него запишется позже.
Аноним 29/12/20 Втр 23:40:05 1894989182
>>1894767
Не совсем понял проблему.
Можешь просто в map смотреть на флаг и менять данные как тебе надо. Если тебе надо что бы данные из Observable менялись ещё при изменении флага, то тут только делать отдельный Observable с переменной флага и смерджить два obs в один.
Аноним 30/12/20 Срд 02:53:55 1895067183

>>1894631
>>1894635
>>1894676
Обычно одни рисуют, другие - пишут код.
Но, в маленьком проекте всё делаешь сам.
Есть огромное количество готового игрового клип-арта в интернетах.
Просто охуевающее количество, погугли game dev clipart.
Если надо - можно подрисовать немножко к готовому.

Также, есть куча книг по разработке игр на JS.
Там этот вопрос тоже рассматривается.
Гуглить javascript game development book.

Также - есть бесплатные туториалы и видео.
Всё гуглится.

Если не очень можешь в английский - на русском тоже должно быть дохуя всего.
Аноним 30/12/20 Срд 09:18:35 1895362184
image.png 65Кб, 1673x431
1673x431
Аноны, такая тема, может кто-то сталкивался, нужен скрипт который при нажатии на кнопку получает айди кнопки, потом ищет в родительский элемент элемента с таким айди, получает количество вложенных элментов в родителе, скрывает изначальный дочерний элемент, а все другие дочерние элементы автоматически расширяет равномерно занимая пустое пространство после скрытия изначального дочернего элемента

Надеюсь я понятно объяснил, пример на пике, у нас есть два пседоОкна, когда закрываем одно, другое автоматически должно расшириться на его пространство
Аноним 30/12/20 Срд 09:37:42 1895381185
>>1895362
фигня какая-то у тебя а не объяснение

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

ну а если хочешь ебаться то есть всякие методы для дом дерева типа closest ну а айди ты знаешь просто в листенере как this.id
Аноним 30/12/20 Срд 09:51:32 1895410186
>>1894912
нужен чтобы не писать вручную всякие дипкопи и дебаунсы
Аноним 30/12/20 Срд 09:58:41 1895422187
>>1895381
Я не знаю как прописать поведение остальных элементов так что бы они сами заполняли пустые пространства. у тебя есть пример?
Аноним 30/12/20 Срд 10:02:21 1895433188
>>1894733
пиши import { debounce } from 'lodash/debounce'
Аноним 30/12/20 Срд 10:03:11 1895434189
Аноним 30/12/20 Срд 10:59:48 1895488190
>>1895434
я знаю что такое флекс, я его использую, и он автоматически расширяется на всю ширину при масштабировании окна, то есть делает то что называется адаптивность, но как сделать так что бы элемент автоматически занимал место ДРУГИХ элементов, это я хз
Аноним 30/12/20 Срд 12:04:32 1895531191
>>1895488
когда ты скрываешь элемент там освобождается пространство которое можно занять

короче я не буду с телефона пытаться на фиддле пример показать, доберусь до ноута запосчу
Аноним 30/12/20 Срд 14:03:27 1895632192
Привет. Есть строка "00011". Как мне ее конвертнуть в number чтобы начальные нули не обрезались и получилось 00011?
Аноним 30/12/20 Срд 14:12:52 1895633193
>>1895632
И что это за число такое 00011?
Аноним 30/12/20 Срд 14:17:42 1895634194
>>1895633
Ну у меня спека на работе ебанутая. Надо возвращать номер билета обязательно в формате Number, блять. А номер в свою очередь приходит строкой, к примеру "00011". Естественно, при дефолтной конвертации через +, parseInt, Number и тд. оно нули обрезает. Вот я и спрашиваю может есть какой нибудь трюк, или мне просто отвечать чтоб не выдумывали хуйни и возвращали номер в строковом представлении.
Аноним 30/12/20 Срд 14:19:54 1895635195
Аноним 30/12/20 Срд 14:23:38 1895637196
>>1895634
в формате намбер нет нулей вначале нэ
Аноним 30/12/20 Срд 14:25:09 1895638197
>>1895637
Да я это понимаю. Получается единственный способ сохранить нули в начале номера - передавать его только в строковом формате?
Аноним 30/12/20 Срд 14:30:07 1895645198
Аноним 30/12/20 Срд 14:36:48 1895651199
>>1895634
>Надо возвращать номер билета обязательно в формате Number, блять
Куда возвращать?

Число 00011, эквивалентно числу 11, я не понимаю какую разницу между ними ты вообще ожидаешь?
Аноним 30/12/20 Срд 14:39:38 1895653200
>>1895651
>Куда возвращать?
В ответ сервиса JSON

>Число 00011, эквивалентно числу 11
Да ладно?

>я не понимаю какую разницу между ними ты вообще ожидаешь?
Ты пизданутый или что то? Прочитай еще раз выше пост. Это не моя хотелка, а по идиотски составленная спека.
Аноним 30/12/20 Срд 14:41:42 1895655201
image.png 29Кб, 423x249
423x249
Аноним 30/12/20 Срд 14:44:40 1895657202
>>1895655
Не благодарю. Ты это запускать пробовал? Что получилось?)
Аноним 30/12/20 Срд 14:46:29 1895658203
>>1895653
>В ответ сервиса JSON
в джсоне все строки, не выпендривайся и пихай туда строку
Аноним 30/12/20 Срд 14:47:22 1895660204
>>1895657
А жопу тебе не подтереть?
Аноним 30/12/20 Срд 14:48:40 1895661205
>>1895657
Пробовал, все получилось, сказать что хотел?
Аноним 30/12/20 Срд 14:49:25 1895662206
>>1895653
>В ответ сервиса JSON
Так возвращай 11. В чем проблема?

>Да ладно?
Слушаю список отличий. Вообще, в JS 011 это 9, но я сильно сомневаюсь, что ты имел в виду восьмеричное представление числа.

>Ты пизданутый или что то? Прочитай еще раз выше пост. Это не моя хотелка, а по идиотски составленная спека.
Для задающего такие вопросы ты слишком агрессивен чот.
Аноним 30/12/20 Срд 14:49:42 1895664207
>>1895660
Я просто реально не понимаю. Вот ты ведь не поленился напистаь эти 13 строк. А то что это никак проблему не решило тебе вообще пахую?)

>>1895658
Ну во первых не все.
Во вторых я бы уже давно пихнул и расслабился, если не нужно было бы для этого все пересогласовывать и просить поменять спеку и другие сервисы, зависящие от моего.
Аноним 30/12/20 Срд 14:51:40 1895665208
>>1895661
>все получилось
Что?)

>>1895662
>Так возвращай 11. В чем проблема?
В том что по спеке нужно вернуть 011, и именно с ебаным нулем, и именно в Number.

>Слушаю список отличий
То есть сарказма ты не понял. Хотя раз ты с 3 раза не понял о чем я говорил, то это не удивляет.


Аноним 30/12/20 Срд 14:52:33 1895666209
>>1895664
Какую проблему, шиз? Ты говоришь, что тебе приходит номер с нулям, ты хочешь с ним работать как с числом, но потом опять вернуть в формат с нулями. Я тебе дал способ это сделать, если тебе еще что-то надо, то формулируй вопросы нормально.
Аноним 30/12/20 Срд 14:53:13 1895667210
>>1895664
>Ну во первых не все.
все
джсон по умолчанию представление объекта в виде строки
Аноним 30/12/20 Срд 14:55:01 1895669211
>>1895665
011 и 11 это одно и то же число. Передавая 11 ты передаешь и 011 и 0011 и 00011.

>В том что по спеке нужно вернуть 011, и именно с ебаным нулем, и именно в Number.
Значит тот, кто ее писал такой же дурачок как и ты, что тут скажешь.
Аноним 30/12/20 Срд 14:55:44 1895671212
image.png 4Кб, 193x81
193x81
>>1895666
>Надо возвращать номер билета обязательно в формате Number
>чтобы начальные нули не обрезались и получилось 00011

>формулируй вопросы нормально.

Как? Ну вот скажи, как мне ЕЩЕ сформулировать? Для идиота даже понятно по моему. Но ты не понял.

>>1895667
Ой, а что это у нас такое? Специалист JS треда снова обосрался? Вот не впадлу же вам спорить, когда очевидно что в вопросе ошибаетесь.
Аноним 30/12/20 Срд 14:56:08 1895672213
mobx
Аноним 30/12/20 Срд 14:58:38 1895673214
>>1895671
Идиоту уже пять раз объяснили, что формата "Number и шобы нули не обрезались" в жопоскрипте, да и вообще в любом языке, нет. Идиот не понял, и продолжает нести свою шизоидную чушь в тред, вместо того, чтобы переформулировать вопрос и сказать наконец, что ему нужно сделать и нахуя.
Аноним 30/12/20 Срд 14:59:53 1895675215
>>1895671
чтобы парсинг джсона был с нулями тебе нужна строка заебал уже
Аноним 30/12/20 Срд 15:00:17 1895676216
>>1895665
>В том что по спеке нужно вернуть 011, и именно с ебаным нулем, и именно в Number.
Такое невозможно в жс.
Разве что только в результирующий джейсон вставлять строку, а потом парсить её и убирать кавычки.
Аноним 30/12/20 Срд 15:00:42 1895677217
>>1895634
Вопрос уровня «как мне передать !false в Bool, но не true, а именно !false».
Аноним 30/12/20 Срд 15:04:48 1895679218
>>1895676
>В том что по спеке нужно вернуть 011, и именно с ебаным нулем, и именно в Number.
>Такое невозможно в жс.

Один, ОДИН не-долбоеб в треде нашелся. Это я и рассчитывал услышать.

Вот этот - >>1895673 это вообще охуеть насколько пизданутый. С 4 раза не понял получается. А идиот у него я. Хех.
Аноним 30/12/20 Срд 15:05:03 1895680219
>>1895676
До ес6 (или 5, не помню уже) числа с велущим нулем - восьмиричная запись числа. Но тами цифры в разрядах могут быть только от 0 до 7.
Аноним 30/12/20 Срд 15:06:45 1895683220
>>1892152 (OP)
node.js
делаю реквест на www.twitch.tv/directory/game/Dota%202
получаю респонс
как из него выпарсить названия каналов?
как вызвать больше респонсов от прокрутки?
Аноним 30/12/20 Срд 15:06:53 1895684221
Аноним 30/12/20 Срд 15:07:51 1895685222
>>1895679
>Один, ОДИН не-долбоеб в треде нашелся
>>>1895635
>в формате намбер нет нулей вначале нэ
>>>1895651
>Число 00011, эквивалентно числу 11
>>>1895669
>011 и 11 это одно и то же число. Передавая 11 ты передаешь и 011 и 0011 и 00011.
Аноним 30/12/20 Срд 15:13:48 1895689223
>>1895683
Кури доки к апишечке, там наверняка есть опции типа `page` и `limit`.
Ну или через папитир чисти вилкой, если к апишечке доступа нет.
Аноним 30/12/20 Срд 15:18:10 1895697224
>>1895689
с api всё понятно, но он хочет client_id для которого надо как девелоперу подрочить. Так не годится.
>Ну или через папитир чисти вилкой
Что конкретно нужно делать?
Аноним 30/12/20 Срд 15:18:19 1895698225
>>1895685
Ну то есть можно ответить как умный чел "по озвученным критериям это невозможно", а можно как ебанат поехавший, я понял.

>>1895684
Ахахахах, клоун, не рвись.
Аноним 30/12/20 Срд 15:56:27 1895751226
Какой фреймфорк лучше всего подходит для мета программирования?
Аноним 30/12/20 Срд 16:08:01 1895763227
>>1895697
>Что конкретно нужно делать?
Всё то же, что и в клиентском жс - дёргать дом, выковыривать значения, хранить их в джейсоне/дб, программно нажимать на кнопки и/или листать страницу для дальнейшего ковыряния.
Аноним 30/12/20 Срд 16:17:14 1895770228
Аноним 30/12/20 Срд 16:32:21 1895788229
Как и куда лучше и дешевле задеплоить фулстак cra?
Аноним 30/12/20 Срд 16:58:55 1895818230
>>1895788
cra? Так это же просто html со скриптом, можно хоть на гитхабе.
Аноним 30/12/20 Срд 17:03:07 1895821231
пришлось конкретно так гуглить чтобы расшифровать это cra и то не уверен что правильно
Аноним 30/12/20 Срд 17:04:19 1895823232
Аноним 30/12/20 Срд 17:10:23 1895830233
Аноним 30/12/20 Срд 17:31:12 1895848234
>>1895818
Все что высрет вебпак кидать на хостинг? С серверной частью так же?
Аноним 30/12/20 Срд 17:56:43 1895868235
image.png 15Кб, 800x159
800x159
>>1892152 (OP)
Так бля, не понимаю, что еще за функции resolve, reject которые мы передаем в Промисе?
Аноним 30/12/20 Срд 17:58:27 1895871236
>>1895848
ты в любом случае все что высрет вебпак кинешь на хостинг...
Аноним 30/12/20 Срд 17:59:23 1895874237
>>1895868
это коллбэки которые успешно или не успешно завершают промис
Аноним 30/12/20 Срд 18:02:42 1895875238
>>1895874
Но я никогда не передавал эти коллбеки никуда, юзал только then/catch (нахрена вообще есть resolve/reject когда есть then/catch ?)
Аноним 30/12/20 Срд 18:02:46 1895876239
>>1895848
С серверной частью сложнее. Нужен хостинг, переваривающий ноду, так что только всякие хероку, версель и нетлифай.
Аноним 30/12/20 Срд 18:13:49 1895884240
>>1895848
У CRA нет никакой серверной части, только статика. Вебпак, кстати, тоже никакого отношения к ней не имеет.
Аноним 30/12/20 Срд 18:14:41 1895886241
>>1895875
Их используют когда нужно сделать новый промис, а не использовать какой-то существующий.
Аноним 30/12/20 Срд 18:26:17 1895901242
>>1895875
когда внутри промиса выполняется ресолв то исполняется код в зэн блоке, а когда там исполняется реджект то код в кэтч блоке
Аноним 30/12/20 Срд 18:46:04 1895912243
sunglass-selfie[...].jpg 41Кб, 640x360
640x360
>>1892152 (OP)
Как в nodejs сделать GET с параметрами в URL? Сделал get но параметры не прикрепились (first, game_id)
const options = {
hostname: 'api.twitch.tv',
port: 443,
path: '/helix/streams',
method: 'GET',

first: 100,
game_id: 29307
};
Аноним 30/12/20 Срд 18:52:29 1895915244
Может кто объяснить почему lodash это типо КРУТА и ПИЗДАТА но вот jquery это "фу"? Потому что хипстеры не одобрили?
Аноним 30/12/20 Срд 18:55:56 1895920245
>>1895915
Зачем ты сравниваешь две библиотеки с разными предназначениями? Лодаш библиотека с набором полезных функций-утилит, а жквери это библиотека для манипуляций с домом и сетевыми запросами. Жквери устарел, потому что, во-первых, нативный жс хорошо поднялся, во-вторых, все уважающие себя перешли на фреймворки вида Ангуляр, Реакт, Вуе.
Лодаш не устарел, потому что его функционал еще не заменён нативным жс или фреймворками.
Аноним 30/12/20 Срд 19:00:06 1895927246
>>1895912
Для начала написать, через что ты этот запрос делаешь, а лучше сразу гугли "моялибанейм query parameters", может там есть встроенный способ их прикреплять, а может придется вставлять самому.
Аноним 30/12/20 Срд 19:02:06 1895931247
Аноним 30/12/20 Срд 19:05:19 1895934248
>>1895931
Установить нормальный http клиент, от этого ты охуеешь, он слишком низкоуровневый. axios какой-нибудь ставь.
Аноним 30/12/20 Срд 19:08:15 1895941249
>>1895934
уже нашёл решение
const querystring = require('querystring');
спасибо анон
Аноним 30/12/20 Срд 19:14:42 1895951250
>>1895934
ивенты error и end взаимоисключающие я правильно понял?
Аноним 30/12/20 Срд 21:54:41 1896151251
webstrom норм ИДЕ?
Аноним 30/12/20 Срд 21:58:01 1896153252
Нихуя не пойму, закинул я свой высраный потом и кровью на хостинг gearhost как теперь сделать что бы у меня была ссылка типа www.xyi.ru или что то подобное и она вела на мой сайт? Или лучше на авс залить?
Аноним 30/12/20 Срд 22:05:27 1896155253
>>1896153
?
На хероку все норм шло, не ебу что там у тебя. А если хочешь прям "свой сайт нахой" то покупай хостинг, покупай доменное имя бля а ты че думал?
Аноним 30/12/20 Срд 22:08:28 1896159254
>>1896155
Бля ну хероку и прочая ебала по моему не серьезно, хули это че за сайт www.хуйнейм.хероку.вочко.com, хочу по настоящему
Аноним 30/12/20 Срд 22:12:18 1896164255
>>1896159
Покупай бля хостинг я яндекс-хостинг юзал и свою питонопарашу туда заливал, покупай доменное имя бля. Думаешь это тебе кто-то за бесплатно подгонит?
Аноним 30/12/20 Срд 23:21:43 1896229256
>>1895676
Чувак, 011, c ёбаным нулём, в Number - это число в восьмеричном коде.
Знаешь, что это такое?
011 (oct) = 9 (dec)

Ебаный ноль - это и есть признак восьмеричного кода.
Если же тебе нужен десятичный код, в Number и с нулём - так не бывает.
Аноним 30/12/20 Срд 23:25:05 1896234257
1592603862034.png 799Кб, 1279x1842
1279x1842
>>1892152 (OP)
Есть какой то способ упаковать, или сгенерировать dllлку для nodejs скрипта, чтобы он работал без установки nodejs? dependecies: 'fs' 'querystring' 'https'
Аноним 30/12/20 Срд 23:25:32 1896235258
>>1896229


Подожду, пока кто-то более шарярщий поможет.
Аноним 30/12/20 Срд 23:26:05 1896237259
>>1895915
>>1895920
jQuery - это не фу.
Это очень удобный и красивый DSL.
И его вполне себе используют и с фреймворками.
Но, одноклеточные долбоёбы с сосача даже слов таких не знают, не говоря уже о том, чтобы понимать.
Аноним 30/12/20 Срд 23:27:04 1896240260
Аноним 30/12/20 Срд 23:36:09 1896253261
>>1896235
Более шарящий в чём?

Кстати, восьмеричные литералы с нулём нынче deprecated, про это я подзабыл, ибо давно не имел дела с ними.
Да и в твоём случае они ни при чём - я почитал с самого начала.

То, что ты хочешь - невозможно.
И это не нужно.
Не может быть никакой причины так делать.

Так что, это у тебя либо не число, а код (строка), либо ведущие нули не нужно сохранять, чтобы работать с этим числом.
Если же это таки число, и тебе потом надо отправлять данные назад в таком же виде, с нулями - значит надо делать кастомный форматтер числа для вывода в json.

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

Аноним 30/12/20 Срд 23:59:20 1896284262
>>1896253
00011 + 12 != 11 + 12 и != 0011+ 12
Аноним 31/12/20 Чтв 00:12:07 1896293263
>>1896253
>восьмеричные литералы с нулём нынче deprecated
Это вообще легально? У меня вот в новехоньком хромиуме до сих пор <marquee> и <font face=""> нормально работают
Аноним 31/12/20 Чтв 00:14:04 1896296264
Аноним 31/12/20 Чтв 00:20:24 1896304265
>>1896296
Да какая разница. Весь веб это такая хрень где можно только добавлять, но не убавлять, чтобы что-нибудь чужое случайно не сломать
Аноним 31/12/20 Чтв 00:44:56 1896344266
>>1896293
Легально. Они не работают только в strict mode. А то, что ты перечислил это вообще не часть JS. Алсо, иногда из браузеров убирают фичи, которые планировались, но в итоге не попали в стандарт.
Аноним 31/12/20 Чтв 00:48:31 1896347267
>>1896284
У тебя там своя арифметика, я смотрю.
Аноним 31/12/20 Чтв 01:02:45 1896370268
>>1896284
Ты пиздишь.

Открой, блядь, консоль браузера.
Прямо сейчас открой.
И набери туда просто 011
И сразу, тут же, внизу увидишь 9.

Потом - 0011, потом - 00011 - и снова увидишь 9.
Догадываешься, почему это 9, а не 11?

Потом набери туда 0011 === 00011
Потом - 0011 + 12 === 00011 + 12
В обоих случаях увидишь true
Неожиданно, да?
Аноним 31/12/20 Чтв 01:20:12 1896385269
>>1896370
Так мне и нужно, чтобы числа с нулями впереди обрабатывались как числа с нулями спереди, то есть чтобы js не обрезал нули.
Аноним 31/12/20 Чтв 01:50:02 1896410270
>>1896385
Звучит как шизофрения
Аноним 31/12/20 Чтв 01:57:17 1896414271
>>1896159
На namecheap купи себе доменное имя например
Аноним 31/12/20 Чтв 02:08:09 1896422272
>>1896151
это тот же пхп шторм для людей ненавидящих слово пхп, так что да
Аноним 31/12/20 Чтв 02:11:10 1896425273
>>1894930
Очень хорошие лекции. Но больше для того чтобы понимать как вообще работать в Node.js. В общем рекомендую. Сам далеко не все посмотрел правда. Сам Тимур очень шарящий
Аноним 31/12/20 Чтв 02:18:39 1896430274
1604346865291.jpg 68Кб, 717x717
717x717
>>1892152 (OP)
Есть функция, которая делает свое дело. Как к ней приделать ивент onfinished, так чтобы в нем можно было зарегистрировать другие функции на экзекуцию после неё?
Аноним 31/12/20 Чтв 02:26:33 1896438275
>>1896385
Это восьмеричные числа.
Более того - это, блядь, литералы.
Ты понимаешь что такое литерал?

У тебя там номера билетов, кажется?
Они что, восьмеричные?
Вы там ебанутые?

В любом случае - хочешь восьмеричных чисел из json - нет проблем, используй свой десериализатор, для строк, состоящих из одних цифр, и начинающихся с нуля: parseInt("011", 8)
Аноним 31/12/20 Чтв 02:32:10 1896442276
>>1896430
Никак.
Только создать новую функцию, которая будет вызывать эту функцию, а потом - onFinished().

Как вариант:
const myNewFunction = (someArg) => {
myFunction(someArg);
onFinished();
}

Потом:
myNewFunction('foo');
Аноним 31/12/20 Чтв 02:34:42 1896444277
Если мне нужно вызвать функцию сразу после инициализации и только один раз, как это правильней сделать?

Просто писать вызов функция() после инициализации или использовать iife?

И как лучше записать одноразовую функцию - обычной или стрелочной.
Аноним 31/12/20 Чтв 02:37:20 1896446278
>>1896444
Как удобнее, так и делай.
Стрелочные от обычных отличаются только обработкой this.
В стрелочных он из внешнего контекста, в обычных - свой собственный.
Аноним 31/12/20 Чтв 02:56:13 1896458279
>>1896229
Так ему бы в спеке сказали разрядность, а не Number с нолями.
Аноним 31/12/20 Чтв 02:57:56 1896460280
carbon.png 71Кб, 722x1228
722x1228
>>1896446
Стрелочную нельзя вызвать до инициализации.

Имеет ли смысл использовать стрелочные/функциональные выражения вместо обычных для оптимизации?

Скажем, у меня несколько функций внутри другой функции. И часть функций может не вызываться по условию. Если сделать объявления стрелочными после условия или делать обычные функции (которые заранее инициализируются), здесь будет разница?

Вот на пике два варианта.

Аноним 31/12/20 Чтв 03:08:24 1896463281
>>1896458
Что значит "нельзя вызвать до инициализации"?

(() => ...)()

Ты занимаешься хуйнёй преждевременной оптимизацией.
Это большой грех и корень многих зол.
Сделай уже как-нибудь, и не еби мозг.
Аноним 31/12/20 Чтв 03:09:33 1896464282
Аноним 31/12/20 Чтв 03:11:45 1896466283
>>1896463
У меня давно все сделано. Мне нужна оптимизация. Любая. Хоть сколкьо-нибудь.
Аноним 31/12/20 Чтв 03:14:15 1896467284
>>1896466
Что значит "оптимизация"?
Что тебя не устраивает в том, что ты сделал?
Почему ты думаешь, что такая ерунда тебе что-то оптимизирует?
Аноним 31/12/20 Чтв 03:19:46 1896469285
>>1896467
Ладно, как ты бы огранизовал подобную хуету?
Аноним 31/12/20 Чтв 03:51:37 1896476286
>>1896469
Какую именно? Я вообще не понимаю, в чём проблема.
Функцию инициализации?
Функции внутри функций?
Это зависит от многих вещей.

В любом случае - единственное принципиальное отличие стрелочных от обычных - обработка this.
Аноним 31/12/20 Чтв 04:33:27 1896499287
Щас на протяжении часа между мной и вебпаком был анальный секс (он сверху). А потом я сказал "нахуй это всё" и вкатился в rollup. Запустилось с 1 раза за пару минут. Перекатывайтесь на rollup!
Аноним 31/12/20 Чтв 05:17:43 1896504288
>>1896442
Если так написать onfinished сработает до того как myfunction кончит
Аноним 31/12/20 Чтв 05:19:37 1896505289
>>1896504
С чего бы это вдруг?
Ты где-то видишь асинхронный вызов?
Аноним 31/12/20 Чтв 05:29:04 1896510290
Как заколбакить функцию А из функции Б передав ей ретурн Б, на одном и том же объекте?
>>1892152 (OP)
Аноним 31/12/20 Чтв 05:32:16 1896511291
>>1896510
Что такое "заколбакить"?
Это "заколбасить" с опечаткой?

Какова цель, что ты хочешь получить?
Аноним 31/12/20 Чтв 05:37:48 1896512292
>>1896442
>>1896510
Похоже, ты хочешь делать асинхронные вещи, но не понимаешь, как это называется?
Т.е. запрос к удалённому серверу, а затем - какие-то действия с результатом?
Если да - то нужно использовать promise.
Это не просто "заколбакить" одну функцию из другой, всё немножко хитрее.
Аноним 31/12/20 Чтв 05:58:09 1896516293
>>1896511
class x{
let r
A(callback)
{
onend(,(arg) =>
{
callback(arg)
})
}
B(callback){
onend(,(arg) =>
{
callback(arg)
})
}
C(callback){
onend(,(arg) =>
{
})
}
Do(){
A(B(C)) //Короче вызвать последовательно A B C
}
}
Аноним 31/12/20 Чтв 06:02:56 1896517294
>>1896512
Всё именно так как ты сказал. Запрос https.request()
Аноним 31/12/20 Чтв 06:03:11 1896518295
>>1896516
функции синхронные? ну и вызывай переданный в них коллбэк в самом низу
если асинхронные то делай тоже самое только после await

какие-то идиотские вопросы имо
Аноним 31/12/20 Чтв 06:04:26 1896519296
ну или оберни в промисы и используй then как это вообще надо делать
Аноним 31/12/20 Чтв 06:08:23 1896522297
>>1896517
Разберись с промисами. Погугли, почитай что-нибудь.
Ничего особенно сложного, но, в двух словах это трудно объяснить.
Потом можешь задать более конкретные вопросы, если будут.

Начать можешь прямо отсюда:
https://github.com/axios/axios
Аноним 31/12/20 Чтв 06:10:24 1896523298
Аноним 31/12/20 Чтв 06:11:57 1896525299
>>1896522
>>1896523
Чет вы хуйню советуете. Достаточно fetch и асинх-аваит почитать.

>>1896517
Ну так может нужно посмотреть как это делается, а не изобретать самому?
Аноним 31/12/20 Чтв 06:14:03 1896526300
>>1896525
async|await хороши, когда человек понимает, что это, и как это работает.
И что такое вообще асинхронные операции.
Аноним 31/12/20 Чтв 07:24:17 1896534301
>>1892152 (OP)
Как-то попадалось правило стайлинга, что не принято использовать continue и break. Так ли это? Часто ли сами используйте?
Я вот часто весьма.
Аноним 31/12/20 Чтв 07:48:03 1896543302
>>1896534
вообще ни разу
меня за попытку использовать цикл уже ругают
Аноним 31/12/20 Чтв 07:49:48 1896544303
Аноним 31/12/20 Чтв 07:57:51 1896546304
>>1896543
>меня за попытку использовать цикл уже ругают
Это как.
Аноним 31/12/20 Чтв 08:04:30 1896548305
Бля ребята заебался помогите. Короче есть две папки client и server клиент запускается с вэбпака ,сервер как обычно, если запускать сервер через нодемон а клиента через devServer с прокси на localhost:5000 то все крутится заебись, но стоит собрать клиента через dev или build то нихуя не работает, думаю проблема в проксировании, как захуярить это проксирование в статичную страницу?
Аноним 31/12/20 Чтв 08:07:30 1896549306
>>1896546
ну обычно как, на ревью
Аноним 31/12/20 Чтв 08:09:37 1896550307
>>1896549
Т.е. у вас ещё и циклы запрещают. Что дальше? ifelse?
Аноним 31/12/20 Чтв 08:09:58 1896551308
>>1896237
>И его вполне себе используют и с фреймворками.

Кто? Долбоебы вроде тебя? Возможно. Но любой адекватный программист знает, что нужно избегать прямых манипуляций с DOM и делать всё при помощи специального синтаксиса в шаблонах.
Аноним 31/12/20 Чтв 08:13:17 1896552309
>>1896550
тоже часто не используется лол
Аноним 31/12/20 Чтв 08:14:24 1896553310
>>1896552
А что вместо них. Тернарные операторы?
Аноним 31/12/20 Чтв 08:23:09 1896556311
Аноним 31/12/20 Чтв 09:23:00 1896572312
16093723272370.png 190Кб, 626x626
626x626
>>1896553
val && fn()
fn1() || fn2()

я себя иногда чувствую вебпаком (:
Аноним 31/12/20 Чтв 10:40:38 1896607313
>>1895067
Ай, спасибо тебе большое, добрый мен
Аноним 31/12/20 Чтв 11:36:21 1896648314
>>1896551
>что нужно избегать прямых манипуляций с DOM
обоснуй почему
Аноним 31/12/20 Чтв 11:44:01 1896656315
Планирую выпилить жквери из проекта и переписать на чистом жс.
Какие подводные? Кто пробовал такое делать?
Аноним 31/12/20 Чтв 11:45:08 1896657316
>>1896648
Дороха, у нас же ведь весь сайт в памяти клиента хранится, плюс редукс обмякает.
Аноним 31/12/20 Чтв 11:46:57 1896658317
>>1896657
Нихуя не понял, что ты хотел сказать
Аноним 31/12/20 Чтв 12:04:32 1896673318
>>1896656
Не задавался вопросом, почему до сих пор этот проект не переписан на ваниллу?
Проблема переписывания не столько в самом жикверике, сколько в сопутствующих проблемах, типа переменных в глобал скоупе, на которых может быть завязан огромный пласт логики, прямые манипуляции стилями, плагины к жиквери, которые не совсем очевидно как переписать на ваниллу без ковыряния сырцов.
Это дело может затянутся надолго короче, так что ещё добавь обьяснять кабанчику надобность такого переписывания.
Впрочем, ничто не мешает переписывать отдельные очевидные вызовы типа `$("div")`, пока пилишь очередную фичу в том же файле. И через код ревью проще будет протащить.
Аноним 31/12/20 Чтв 12:12:23 1896679319
>>1896648
Потому что фреймворк сделан для того чтобы эти манипуляции производить наиболее эффективным образом. Делая это самостоятельно, ты нарушаешь его работу и порождаешь малопроизводительный код.
Аноним 31/12/20 Чтв 12:19:51 1896685320
>>1896679
При условии что у тебя вообще есть фреймворк.
Аноним 31/12/20 Чтв 13:46:15 1896736321
>>1896685
Это и обсуждается:
>И его вполне себе используют и с фреймворками.
Аноним 31/12/20 Чтв 14:27:38 1896764322
image.png 716Кб, 1222x933
1222x933
>OOP
@
>ООП
Аноним 31/12/20 Чтв 14:37:10 1896772323
>>1896764
Согласен, ООП это круто. Ведь в ООП варианте ты можешь добавить любую функцию для сравнения и код будет работать, а в варианте без ООП тебе придётся переписывать весь код.
Аноним 31/12/20 Чтв 14:40:05 1896773324
Сайты на этих ваших хероку ghpages вообще монетизируются?
Аноним 31/12/20 Чтв 14:43:17 1896775325
>>1896772
Взял и добавил невероятную функцию сравнения в класс, а потом создал инстанс, и вызвал его метод вместо того чтобы просто вызвать эту же функцию на месте. Ой как удобно, только выиграли
Аноним 31/12/20 Чтв 14:43:21 1896776326
>2021
>сайты
>монетизируются

как там в 2008
Аноним 31/12/20 Чтв 14:52:02 1896781327
>>1896764
Ну вот в пхп наебались с этой ебаной процедурщиной и вызываемыми по динамически вычисляемому ключу функциями в копилках-массивчиках, ушли в полное джаваподобие, видимо до вас пока не дошло
анон 31/12/20 Чтв 14:53:27 1896783328
Посоветуйте хостинг недорогой, куда можно сайт на ноде запилить.
Аноним 31/12/20 Чтв 14:56:02 1896786329
>>1896781
Из php динамическая диспетчеризация методов и позднее связывание никуда не делось.

Объекты ни в жс ни в пхп ассоциативными массивами не являются.

Ты несешь какую-то дичь.
Аноним 31/12/20 Чтв 14:57:26 1896787330
>>1896781
>php
лол
>вызываемыми по динамически вычисляемому ключу функциями
в чём проблема? Берешь и вызываешь без задней мысли о конструкторах
Аноним 31/12/20 Чтв 14:59:30 1896788331
>>1896775
>вызвал его метод
И сразу понял что у меня там, equal, lessOrEqual. При этом могу менять эту логику/модифицировать в любой момент, не ломая код который использует данный объект.

>эту же функцию

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

Аноним 31/12/20 Чтв 15:01:53 1896790332
>>1896786
Я про то, что справа это нечто типа того что в старом процедурном пхп было бы ассоциативным массивом со стринговыми ключами и значениями-функциями. В плане "удобства" работы так точно одна малина
Аноним 31/12/20 Чтв 15:07:53 1896794333
>>1896764
Не понимаю, зачем нужны классы. Зачем нужно создавать объекты через функцию? В js.

Почему эти функции нельзя было положить просто в объект или вообще без него?
Аноним 31/12/20 Чтв 15:13:04 1896799334
>>1896794
Ну вот у тебя есть какой-нибудь класс вендорский Compare с методами типа compareByZalupa, ты захотел туда что-то добавить типа comparebyZalupa1, тупо экстендишь, добавляешь. Если у тебя в вендорском коде залупа типа const compare = (matcher, zalupa) и внутри она там какие-то свои правила объявления и обработки этих залуп имеет, то ты сосешь хуй
Аноним 31/12/20 Чтв 15:14:55 1896801335
>>1896788
>И сразу понял что у меня там, equal, lessOrEqual
конечно понял, ты же это написал compare.lessOrEqual(5, 10)
Так же как и я вызвал compare('lessOrEqual')(5, 10) и получил тот же результат

>не ломая код который использует данный объект
сейм

>размазанный и непонятный код
размазанный на три лишних строчки. Другое дело чётенький ООП в два раза больший по объему, и уже не страшно если в три станет

>если значения равны, ты хочешь писать данные в лог, то тебе придётся менять все функции
equal: (a, b) => {
const isEqual = a === b;
isEqual && console.log('...');
return isEqual;
}

три строчки, как я и сказал. Какие ещё функции я должен поменять?
Аноним 31/12/20 Чтв 15:19:43 1896808336
>>1896794
>Почему эти функции нельзя было положить просто в объект или вообще без него?
Если ты про фабричные функции, то методы в них создаются заново с каждым инстансом, что не есть айс в плане памяти. Иначе нужно пердолиться с прототипами, что ещё хуже в плане читаемости по сравнению с сахарком.
Аноним 31/12/20 Чтв 15:20:17 1896809337
>>1896799
compare = defaultCompare => (matcher, zalupa) => {
if (typeof defaultCompare === 'function') {
defaultCompare(...)
}
}
Аноним 31/12/20 Чтв 15:21:18 1896811338
>>1896808
можно вынести методы наружу
Аноним 31/12/20 Чтв 15:23:38 1896814339
>>1896801
>и получил тот же результат

Так ты от темы то не уходи. Я же тебе сказал, в случае если логика сравнения будет отличной от той что ты в своём compare указал, результат будет не одинаковый. Тебе нужно будет либо менять код compare, что повлияет на уже существующий, либо лепить еще одну функцию и дублировать в ней то что ты уже написал в compare, меняя только логику сравнения. Из этого мы и получаем:
>ломает код который использует данную функцию
>размазанный и непонятный код

>три строчки, как я и сказал. Какие ещё функции я должен поменять?

А если тебе нужно будет делать лог только в определенных условиях? Дай угадаю, теперь у тебя функция equal принимает не 2, а 3 аргумента? В общем, ты и правда такой тупой, что не понимаешь к чему подобные модификации ведут или просто неумело троллишь?

Аноним 31/12/20 Чтв 15:24:31 1896815340
>>1896809
Ура, мы пытаемся симулировать полиморфизм ифами, какая красота получается
Аноним 31/12/20 Чтв 15:26:37 1896817341
>>1896801
Алсо
>compare('lessOrEqual')
>'lessOrEqual'

Ты хотя бы в константы выводи подобное, хоть не такой жидкий обсер получится. Иначе другой долбоеб вроде тебя напишет lesOrEqual и вы потом как биба и боба будете неделю искать в чём же у вас там баг, почему сравнение неправильно происходит.
Аноним 31/12/20 Чтв 15:30:08 1896819342
>>1896764
Зачем ты comparisons (правильно comparators бтв) в функции объявляешь, наркоман? Чтобы на каждом вызове просто так по пять функций создавать? А аргументы зачем мутируешь? Алсо, передача магических строк это довольно хуевый API. Переделывай, короче.
Аноним 31/12/20 Чтв 15:32:24 1896822343
>>1896814
>Тебе нужно будет либо менять код compare, что повлияет на уже существующий, либо лепить еще одну функцию и дублировать в ней то что ты уже написал в compare, меняя только логику сравнения
пояснил в >>1896809

>тебе нужно будет делать лог только в определенных условиях
в каких? В полнолуние? Для остальных кейсов, когда у тебя функция делает миллион дел, есть параметр с опциями {логать: не}

>ты и правда такой тупой...
потише, дед, не напрягайся, а то сердце схватит
Аноним 31/12/20 Чтв 15:33:42 1896823344
>>1896815
>ура, функция делает десять различных действий
Аноним 31/12/20 Чтв 15:37:14 1896826345
>>1896817
>в константы выводи подобное
Чё за хуйню ты спизданул? Константу хочешь? Держи
const lessOrEqual = compare('lessOrEqual')
lessOrEqual(5, 10)
Сори, что заставил тебя заморать трусы
Аноним 31/12/20 Чтв 15:37:30 1896828346
>>1896822
>пояснил в >>1896809

Тебя это не спасёт от дублирования кода и его хуевой расширяемости.
Аноним 31/12/20 Чтв 15:39:42 1896833347
>>1896822
>есть параметр с опциями {логать: не}

Где он? Что-то не видно. Ах, да, щас только вон по той сотне файлов пройдусь, изменю существующее, дополню нужным, проверю чтобы ничего не поломалось и тогда всё появится! О чём и говорилось изначально: Нет ООП - нет планов на будущее.

Аноним 31/12/20 Чтв 15:39:51 1896834348
image.png 30Кб, 537x481
537x481
>>1896819
это была сарая версия
>аргументы зачем мутируешь
как что-то плохое
>передача магических строк это довольно хуевый API. Переделывай, короче
как скажешь, останусь после работы писать как ты захотел
Аноним 31/12/20 Чтв 15:41:54 1896836349
>>1896834
>долбоеб на полном серьёзе предлагает лепить глобальные переменные

Ты еще хуже чем я думал. Я надеюсь ты не называешь это посмешище которые ты высрал "ФП кодом".
Аноним 31/12/20 Чтв 15:47:45 1896846350
>>1896833
>Где он?
будет, когда придёт время. Или ты пишешь сразу функцию со всеми возможными вариантами использования на 5 лет вперёд? Тогда моё почтение, пророк
>изменю существующее, дополню нужным, проверю чтобы ничего не поломалось и тогда всё появится
нет, я просто напишу ещё одну маленькую функцию или разделю существующую или сделаю обёртку, а может добавлю коллбек. Ведь я пишу в функциональной парадигме у меня конструктор лего, а не дубовый шкаф на века
Аноним 31/12/20 Чтв 15:50:39 1896853351
>>1896836
про модули не слышал? Садись свой первый тудулист писать в таком случае
Аноним 31/12/20 Чтв 15:53:56 1896861352
>>1896846
>нет, я просто напишу ещё

Вот, в общем-то, и вся суть ФП. Можно только порадоваться, что твой горький опыт послужил для кого-то примером.
Аноним 31/12/20 Чтв 15:57:28 1896866353
>>1896861
ведь ты не будешь писать новый функционал. В ооп он сам себя напишет, проверит, и главное ничего не сломает. Ах как хорошо
Аноним 31/12/20 Чтв 16:03:53 1896873354
>>1896866
Именно так, ООП творит чудеса. Осталось тебе только перебороть свою лень и хотя бы основы ООП освоить. Но это конечно сложнее, чем "просто напишу еще".
Аноним 31/12/20 Чтв 16:06:15 1896874355
Аноним 31/12/20 Чтв 16:19:49 1896887356
>>1896846
>Ведь я пишу в функциональной парадигме

Бля, баш оказывается это ФП, там же можно функций накидать
Аноним 31/12/20 Чтв 16:25:39 1896891357
>>1896834
>как скажешь, останусь после работы писать как ты захотел
npm i ramda и можешь домой идти
Аноним 31/12/20 Чтв 16:25:59 1896892358
>>1896866
Справедливо говоря, в ООП бывает неприятно когда в коде вендора допустим есть метод вроде ок, но там что-то проебано, типа флаг \u не проставлен у регулярки, метод написан хуево и на 500 строк полотном процедурным, и чтобы исправить такую проблему надо делать вообще хз что, то ли переопределять метод и писать в нем почти полную копипасту того что было но с исправлением проебов, либо хз, колдовать
Аноним 31/12/20 Чтв 16:39:41 1896898359
>>1896776
в 2020 какие-то другие сайты?
Аноним 31/12/20 Чтв 16:41:19 1896900360
>>1896834
Как же херово что в жс нет перегрузки
Аноним 31/12/20 Чтв 16:43:57 1896904361
>>1896836
>const
>глобальные переменные
Вся ссуть дебилов с ООП головного мозга. Пиздуй обратно в свою жаву абстрактные однозерновые фабрики писать для вызова одного метода.
Аноним 31/12/20 Чтв 16:48:59 1896912362
>>1896891
колеги потом за такое кейкапы снимут с клавы
Аноним 31/12/20 Чтв 17:08:02 1896938363
New Bitmap Imag[...].png 8Кб, 489x223
489x223
>>1892152 (OP)
Как сделать тут так чтобы промис не throwил, а просто выполнял fail, когда fail коллируется в GameNameToID?
Аноним 31/12/20 Чтв 17:09:14 1896940364
>>1896938
а и ещё await TryGettingGameIDFromName(...) ждал пока success, но не fail
Аноним 31/12/20 Чтв 17:18:49 1896951365
New Bitmap Imag[...].png 7Кб, 525x205
525x205
>>1896940
>>1896938
невермайнд, так норм. Но теперь failу приходиться за собой везде this таскать, можно как сделать без него?
Аноним 31/12/20 Чтв 17:22:40 1896957366
>>1896551
Ебанько, jQuery != "прямые манипуляции с DOM".
Но, дегенератам-сосачерам это непонятно.

Зайди на leetcode и посмотри исходники страниц.
Там будет 1-й Ангуляр + jQuery + jQuery UI.
Аноним 31/12/20 Чтв 17:23:18 1896959367
Аноним 31/12/20 Чтв 17:27:07 1896962368
>>1896959
Сказал интеллектуал, клепающий очередной SPA.
Аноним 31/12/20 Чтв 18:00:24 1896988369
>>1896962
А в чем разница? В итоге один хуй жс файл запускается лол
Аноним 31/12/20 Чтв 18:06:59 1896993370
>>1896988
Естественно для тебя нет разницы.
Аноним 31/12/20 Чтв 18:18:09 1896995371
>>1896234
Dll именно - сильно хз. Есть упаковщики, которые могут это сверху самой нодой обмазать, но исполняемый файл 40 мб получится.
Аноним 31/12/20 Чтв 18:24:13 1897001372
>>1896234
Скрипт - это не только скрипт, но и его зависимости.
А у зависимостей - свои зависимости.
В итоге - получается 100 мегабайт жс-говна в node_modules.
Потому, что жс не предназначен для серьёзного программирования.
Аноним 31/12/20 Чтв 18:24:46 1897003373
>>1896469
Пока ты дрочишь со спчками, где-то в фоне возят слона. Профилирование (оценку времени исполнения разных частей программы) сделай и посмотри, что времени больше всего жрёт.
Аноним 31/12/20 Чтв 18:26:55 1897004374
>>1896234
это как у того же сишарпа - без рантайма работать не будет
у джс это нода, у шарпа .net
Аноним 31/12/20 Чтв 18:32:38 1897006375
>>1896995
м-можно один такой?
Аноним 31/12/20 Чтв 18:34:27 1897008376
>>1897006
Не секрет, зачем тебе это?
Что делает твой скрипт?
Аноним 31/12/20 Чтв 18:37:18 1897013377
Аноним 31/12/20 Чтв 18:47:50 1897017378
>>1897013
А какая проблема поставить node на целевую систему?
Аноним 31/12/20 Чтв 18:50:39 1897018379
>>1896551
>Но любой адекватный программист знает, что нужно избегать прямых манипуляций с DOM
Это не так.
Любой адекватный программист знает, что все что нужно, это как можно дальше откладывать рефлоу, если он неизбежен, или избегать его вовсе, если это возможно. А для этого достаточно в дом толкьо писать и никогда из него не читать.

А программирование на шаблонах, диффах, и прочим неявным рендерингом нужно для того, чтобы тупые необучаемые идиоты, которые нихуя не умеют, не понимают, и не хотят учиться, не писали говна. Но они умудряются и без этого его писать.
Аноним 31/12/20 Чтв 19:06:01 1897041380
>>1897018
>на шаблонах
Каким боком шаблоны к неявному рендерингу.

И почему если только писать в дом, то рефлоу не будет?
Браузер его не читает?
Аноним 31/12/20 Чтв 19:17:59 1897056381
>>1897041
>Каким боком шаблоны к неявному рендерингу.
Потому что это абстракция. Любая абстракция - это уровень невяности. Когда ты пишешь fn() - ты тоже функцию вызываешь неявно внезапно. Явно было бы если бы ты аргументы на стек складывал и управление по адресу передавал.

>И почему если только писать в дом, то рефлоу не будет?
Все изменения дома батчатся и применяются единомоментно в рендеринг-фрейме. Принудительный рефлоу вне цикла отрисовки происходит только если ты будешь читать из дома то, что требует пересчета.
Аноним 31/12/20 Чтв 19:22:07 1897064382
>>1897013
>>1897017
Двачую этого. Почему ноду не поставить?
Аноним 31/12/20 Чтв 19:25:53 1897075383
>>1897056
Понятно.

У жсоблядков - параллельная эволюция происходит.
Они открывают для себя те вещи, которые нормальные люди уже открыли многие годы назад.

Например, то, что "явно" писать программы в машинных кодах или на ассемблере - неэффективно. Хотя, на первый взгляд, всё выглядит наоборот.

Поэтому, они с остервенением дрочат на "чистый жс" в противовес jQuery, говорят, что фреймворки не нужны, и занимаются прочими подобными вещами.
Т.е. они живут среди нас, но, ментально отстают лет на 30.
Аноним 31/12/20 Чтв 19:26:32 1897076384
>>1896904
>придумываешь такой имя переменной окда
>has already been declared
>ну похуй, я ведь дебил, просто добавлю единичку на конце))))
Аноним 31/12/20 Чтв 19:27:16 1897078385
>>1896957
>1-й Ангуляр

Именно поэтому от депрекейтед с 2021, манюнь.
Аноним 31/12/20 Чтв 19:28:03 1897080386
>>1897013
>>1897064
Или можно же вебпаком запаковать скрипт, и взять только голый node - только исполняемые файлы, сделать bat-файл для запуска, запаковать в архив или сделать инсталлятор - и всё.
Аноним 31/12/20 Чтв 19:28:46 1897082387
>>1897075
Когда у тебя эволюция произойдет и ты поймешь, что JQuery это не фреймворк, а библиотека, а также поймешь в чём разница между библиотекой и фреймворком?
Аноним 31/12/20 Чтв 19:30:30 1897084388
>>1897080
Ну собсно я это уже предлагал. Хотя лучше реально поставить ноду, кому от неё хуже будет?
Аноним 31/12/20 Чтв 19:30:40 1897086389
>>1897078
"Именно поэтому" - это почему?
Потому, что leetcode на нём сделан, или почему?

jQuery можно использовать с любым фреймворком.
Я это делал с react и c vue.
Мне насрать на пидарские табу дегенератов-сосачеров, вроде тебя.
Аноним 31/12/20 Чтв 19:31:52 1897089390
>>1897082
Сынок, а где я утверждал, что jQuery - это фреймворк?
Ты русский язык знаешь, вообще?
Понимаешь, что значит перечисление через запятую?
Аноним 31/12/20 Чтв 19:44:44 1897105391
>>1897086
>это почему?

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

>jQuery можно использовать с любым фреймворком.

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

>Я это делал с react и c vue.

Сочувствую.

>Мне насрать на пидарские табу

Ну если для тебя "писать чистый код" это пидорское табу, то остается только догадываться какой логикой ты руководствуешься высерая подобное.
Аноним 31/12/20 Чтв 19:44:59 1897106392
HA02-02p61[1].jpg 158Кб, 1100x543
1100x543
Аноним 31/12/20 Чтв 20:06:45 1897133393
>>1897105
>Первобытный сосачер рассказывает европейскому туристу о своих верованиях и табу
Понятно.
Аноним 31/12/20 Чтв 20:11:40 1897140394
>>1897076
додик, пропробуй держать всю логику в одном файле
Аноним 31/12/20 Чтв 20:21:44 1897152395
>>1897064
>>1897017
Нельзя же каждого юзера наклонить к 3гб nodejs. Это же непрофессианально..
Аноним 31/12/20 Чтв 20:22:18 1897153396
Аноним 31/12/20 Чтв 20:33:08 1897169397
16083072999750.jpg 121Кб, 732x813
732x813
Аноним 31/12/20 Чтв 20:34:37 1897171398
Аноним 31/12/20 Чтв 20:39:44 1897181399
>>1897075
Хуя помидорину разорвало
Аноним 31/12/20 Чтв 21:05:48 1897220400
>>1897152
nodejs-овский рантайм весит ощутимо меньше. Кроме того, заставлять юзверей каждый раз таскать его с собой по-твоему сильно гуманно? Почему майкрософту можно ставить свои redistы, а ноде нельзя?
Аноним 31/12/20 Чтв 21:06:26 1897222401
>>1897171
Моча говна. nexe проще и удобнее.
Аноним 31/12/20 Чтв 22:23:56 1897300402
>>1897076
Дебич, let и const не могут быть глобальными, а то что ты назовёшь переменную дважды, тебя редактор ещё на стадии написания кода обоссыт.
Аноним 31/12/20 Чтв 22:58:49 1897336403
поясните, схуяли вообще реакт популярен?
Я посмотрел читшит по нему и редукс и охуел с того, как все отстало и ебано сделано по сравнению с vue. Особенно оподливился с редьюсеров, где коммон практис - это switch/case для мутирования стейта
В чем реакт объективно пиздат? Потому что я не увидел ни одного плюса по сравнению с vue
Аноним 31/12/20 Чтв 23:02:22 1897340404
>>1897336
Почти не в чем, кроме того, что ты куча функционала пишешь сам, и типа можешь написать что-то как ты хочешь, и все будет прозрачно (накастылить и сделать хуево в 95% случаев)
Аноним 31/12/20 Чтв 23:04:42 1897343405
Аноны, кто кодит с каких ноутов?

Думаю взять macbook air 13 2020. Хватит производительности для IDE + вкладочек браузера и еще какого-то говна сверху? Не будет гудеть, лагать, греться сильно спустя пол года?

Или подскажите свои ноуты бесшумные и не греющиеся особо
Аноним 31/12/20 Чтв 23:04:47 1897344406
>>1897340
>ты куча функционала пишешь сам, и типа можешь написать что-то как ты хочешь
Так а плюс в чем?
Это как говорить, что плюс велосипеда по сравнению с машиной в том, что на велосипеде ты ногами педалируешь сам, а не какой-то там шайтан ДВС везет тебя
Аноним 31/12/20 Чтв 23:09:21 1897349407
>>1897344
Ну о том и речь, что тут спорный плюс)
По факту вью покрывает 99.9% кейсов и потребностей и продуктов.
Если ты хочешь писать что-то супер большое и массовое, где требуется гибкость пиздец и производительность (например свой алиэкспресс, блять, ага). То наверное реакт будет поинтереснее, но шанс на это пиздецки мал.
Аноним 31/12/20 Чтв 23:09:31 1897351408
>>1897336
>поясните, схуяли вообще реакт популярен?
Потому что предлагаю понятную модель работы без магии.
Аноним 31/12/20 Чтв 23:10:20 1897353409
Аноним 31/12/20 Чтв 23:11:54 1897355410
>>1897351
Я за час разобрался как работает во вью реактивность (через подписки и геттеры/сеттеры в object.defineProperty) и в сорцах даже нашел где какие хуки в какой последовательности дергаются
Где там магия? Даже v-model - это просто сахарок над :value + @input
Аноним 31/12/20 Чтв 23:44:03 1897375411
>>1897355
А писать пробовал что-нибудь кроме туду-листа?
Аноним 31/12/20 Чтв 23:57:39 1897383412
Господа, подскажите такое дело:
есть какая-то (полу)готовая библиотека, которая бы позволяла решить задачу создания чего-то типа автокомплита или выпадающего по хоткею/правой клавише мыши списка, который должен генерироваться из csv/json/плейнтекста, лежащего на сервере?
(Я криворукое животное, js не знаю)
Аноним 01/01/21 Птн 00:05:46 1897387413
Аноним 01/01/21 Птн 00:23:27 1897397414
Желаю всем в следующем году писать только на тайпскрипте!
Аноним 01/01/21 Птн 00:30:38 1897403415
таблеточки.mp4 23132Кб, 1280x720, 00:00:13
1280x720
Аноним 01/01/21 Птн 00:38:48 1897407416
>>1897355
>>1897353
Реактивность на неявном создании геттеров и сеттеров (собсна сложное и неявное поведение и есть магия). Но иногда эта абстракция протекает и на помощь приходят костыли в виде Vue.set.

Алсо абсолютно лютые шаблоны со своим встратым DSL и биндами через магические строки.
Аноним 01/01/21 Птн 00:53:44 1897416417
>>1897397
Желаю все тупескрипт-даунам перейти на кложурскрипт
Аноним 01/01/21 Птн 00:58:49 1897421418
>>1897407
>Реактивность на неявном создании геттеров и сеттеров (собсна сложное и неявное поведение и есть магия).
Что в этом сложного и неявного-то?
>Но иногда эта абстракция протекает и на помощь приходят костыли в виде Vue.set.
Уже давно нет, конкретнее с того времени как начали там юзать proxy
>Алсо абсолютно лютые шаблоны со своим встратым DSL и биндами через магические строки.
вкусовщина
>>1897375
Конечно
Аноним 01/01/21 Птн 01:18:58 1897432419
>>1897421
>Что в этом сложного и неявного-то?
В смысле что неявного? Ты задаешь плейн объект, а вью под капотом его неявно преобразует в свою структуру, которая работает уже не как плейн объект.

>Уже давно нет, конкретнее с того времени как начали там юзать proxy
Это с v3? Ну молодцы, новый набор костылей завезли. Вроде обычный объект, но ой, деструкция-то не работает. Алсо в консоли прокси красиво смотрятся.

> вкусовщина
В смысле вкусовщина? Использование левого DSL вместо собна JS это хорошо что ли? Как там типизация, нормально работает? Или магические строки в какой-то момент стали вопросом вкуса?
Аноним 01/01/21 Птн 02:11:00 1897454420
>>1897336
он просто был раньше
а так он тупо хуже вью имо
Аноним 01/01/21 Птн 02:11:56 1897455421
ну т.е. хуже для большинства проектов
Аноним 01/01/21 Птн 02:32:21 1897473422
>>1896764
Во-первых пример вынут из жопы и если ты такое дерьмо пишешь в реальной жизни, то ты долбоеб без вариантов, во-вторых если ты хотел показать, что "мам строк кода меньше", то это решается плагином на стрелочные методы, и слева их можно сделать ровно столько же, сколько и справа, в-третьих если ты меряешь качество кода по количеству строк, то смотри пункт 1.
Аноним 01/01/21 Птн 02:32:21 1897474423
С Новым Годом, сучечки!

>>1897407
Чувак, "магия" - это другое.
Все остальные твои претензии - так же несостоятельны.

>>1897416
Кстати, где кложуротред, я не понял?
Аноним 01/01/21 Птн 02:37:07 1897481424
>>1897343
Спустя полгода ничего не будет.
Только сегодня видел у знакомой маши Air, которому 6 лет - пашет, как конь.
У меня 9-ми летний Pro на i7 хуярит за всю мазуту - сейчас с него пишу.
И есть 3-х летний Pro, тоже на i7 - основной, там вообще всё летает.

>Air
Лучше возьми 2-3-х летний Pro б/у.
У них характеристики могут быть даже лучше, чем у сегодняшних прошек.
Я свой 3-х летний не обновляю вовсе не потому, что денег нет, например.
Аноним 01/01/21 Птн 02:41:29 1897489425
>>1897343
>Аноны, кто кодит с каких ноутов?
Десктоп с двумя мониторами. Ломать глаза за ноутом нет никакого желания.
Аноним 01/01/21 Птн 02:44:59 1897491426
>>1897489
Ты не поверишь, чувак, но, мой 32" монитор отлично подключается к макбуку. И второй, 27" - тоже, но, уже к другому.
Аноним 01/01/21 Птн 02:48:36 1897496427
>>1897343
у меня хп 15, вполне устраивает
а ещё он няшно беленький :3
Аноним 01/01/21 Птн 02:48:42 1897497428
>>1897336
>В чем реакт объективно пиздат?

Появился, раньше. Практически без конкурентов, на тот момент. Дальше эффект снежного кома. Сейчас просто дешевле стартовать на реакте проект, чем на вью, вот и все.
Аноним 01/01/21 Птн 02:52:36 1897501429
>>1897491
Тогда бери, что нравится. 16+ памяти есть в любом ноутбуке, а процессор у них у всех говно. Только экран лучше 15 дюймов, на всякий случай. Если нравятся макбуки, то бери прошку.
Аноним 01/01/21 Птн 02:55:33 1897508430
>>1897497
Не дешевле.
Единственная реальная причина - react native, поддержка мобильной разработки.
И то - все плюются на это тупое и тормозное говно, но, под него есть инфраструктура, много наработок и т.п.

Тут другое - инерция мышления.
Люди вообще очень консервативны и инерционны.
Вчерашняя инновация сегодня становится несокрушимым железобетонным барьером на пути следующих инноваций.
Аноним 01/01/21 Птн 03:07:54 1897514431
>>1897501
Это ты немного промазал - надо было вот ему - >>1897343 - писать.
И да, ты совершенно прав.

>>1897489
Вообще, да, лучше десктоп.
Но, могут быть причины брать ноутбук.
ИДЕ нормально работают на современных ноутах, но, на десктопе - это другое.

У меня (помимо вышеописанных макбуков) есть ещё десктоп 8-ми летний, на i7 3770K, так вот, на нём всё работает несравнимо быстрее, это вообще земля и небо. И надо бы его уже обновлять, но, скорее по имиджевым причинам, т.к. хуярит он как заводной, с быстродействием вообще ниикаих проблем.
Но. это i7 3770K 3.9 GHz + 16 GB + SSD Samsung 850+960 Pro.

Аноним 01/01/21 Птн 03:10:08 1897516432
>>1897508
>Не дешевле.
Реакт в три раза популярнее Вью и Ангуляра. Разработчиков выше. Средний уровень зп соответственно выше + на реакте можно быстро склепать мвп, ну а дальше уже по ситуации действовать.
Аноним 01/01/21 Птн 03:28:19 1897522433
>>1897474
>Кстати, где кложуротред, я не понял?
Он самозамкнулся
Аноним 01/01/21 Птн 03:31:37 1897524434
>>1897454>>1897497>>1897508
Нет, шизики, в мире айти популярность проходит в одно мгновение и никакие "снежные кома" и "привычки" ваше говно в присутствии объективно лучшей альтернативы не спасут, неважно насколько оно большое и популярное. Если с чем-то легче и эффективнее работать, то с этим будут работать, а инертные и менее эффективные конкуренты как всегда останутся на обочине истории, примеров тысячи, начиная от прогрессии языков программирования, заканчивая фреймворками и либами.

А причина непопулярности вью кроется не в том, что "люди тупые и ленивые и не видят что для них лучше" как любят плакать адвокаты любого псевдоинновационного дерьма, а в том, что он объективно громоздкий, неповоротливый и не приносит ничего нового в сферу. Инновационность реакта заключается в том, что они не пошли по стандартному пути "есть html-шаблон, есть жс-код, соединим их магией", а просто выкинули нахуй html-шаблоны как таковые и сделали полностью ориентированную на жс либу, где все, что ты делаешь - это пишешь обычный жс-код. Именно эта ориентированность на код(плюс интуитивно понятный и удобный DSL с минимумом отсебятины) и подняла реакт на его полностью заслуженное место.
Аноним 01/01/21 Птн 03:37:08 1897529435
>>1897524
>неповоротливый
Понятно всё с тобой.
Пройди на хуй, пожалуйста.

Вью быстрее реакта.
И это, блядь, невооружённым глазом заметно.
И это вытекает из его природы и природы реакта.

Так что, ещё раз, иди на хуй, сынок.
Он мне будет тут рассказывать про сик транзит глория мунди.
Да я код писать начал, когда тебя ещё на свете не было, лол.
Аноним 01/01/21 Птн 03:41:13 1897534436
>>1897529
>Вью быстрее реакта.
Я ни слова не сказал про производительность, это вообще десятое дело при выборе фреймворка.
>И это, блядь, невооружённым глазом заметно.
Отличный способ измерить производительность, сразу видно вью-шизика.
Аноним 01/01/21 Птн 03:45:17 1897536437
>>1897524
>вью
>выкинули нахуй html-шаблоны как таковые
Щито бле?! Монжо чуть меньше бояры в следующий раз употреблять плиз
Аноним 01/01/21 Птн 03:50:46 1897538438
>>1897524
>Если с чем-то легче и эффективнее работать, то с этим будут работать

Ты наивен. Рулит маркетинг в первую очередь. Ember.js был отличным фреймворком, но его до сих пор мало кто знает.
Phoenix на беке, позволяет супер быстро лепить стартапы + высокая производительность, но его тоже мало кто юзает, так как нет хайпа за ним.

С реактом тоже самое. У него куча минусов, но его продолжают юзать.

Аноним 01/01/21 Птн 03:51:56 1897539439
>>1897534
Я пропустил слово "даже".
Даже невооруженным глазом заметно.

Реакт (концептуально) - типично левацкая ебанина.
Коту под хвост пустили все принципы и best practices, наработанные десятилетиями.
Мешанина из говна - наш новый марксистский идеал.
Мы наш, мы новый мир построим.

Но, тут пришли китайцы, и дали пососать.
Потому, что, в отличие от западных полезных идиотов - леваков, они знают что такое марксизм-ленинизм-маоизм не понаслышке. Они сыты этой хуйнёй по горло.
Поэтому, они делают не сферическую хуиту в вакууме, а _практичный_ (практичный, блядь, сука, нахуй) продукт.
А левакам, естественно, неприятно.
Аноним 01/01/21 Птн 04:04:45 1897543440
>>1897538
>Рулит маркетинг в первую очередь
Это смешно, когда шизики с шапочкой из фольги рассказывают про то, что рекламой можно заставить человека купить что угодно, но еще смешнее, когда они говорят, что рекламой можно заставить разработчика против его воли пользоваться бесплатным опен-сурс фреймворком.
>Ember.js был отличным фреймворком
Не был.
>Phoenix на беке, позволяет супер быстро лепить стартапы
Писал на нем хоть что-то или маняфантазируешь? Я вот случайно так получилось писал и пишу, и хоть фреймворк и язык действительно отличные, но для "быстрой разработки стартапов" до рельс и их инфраструктуры им еще грести и грести. Так что популярность рельс и непопулярность пеникса в этом отношении абсолютно объективны.
>У него куча минусов, но его продолжают юзать.
"Куча минусов" не говорит ни о чем, потому что а) в 99% случаев выясняется, что это твой субъективный манямир и реального минуса ты назвать не сможешь б) оценка производится не в вакууме, а в контексте. И в контексте текущей ситуации фронтенд-разработки, лучше реакт нет ничего.
>>1897539
>Коту под хвост пустили все принципы и best practices
Во-первых пук в лужу без конкретики, во-вторых реакт - это либа, и его способность определять бест практики и структуру твоего приложения очень ограничена по определению. В отличие от.
>аряяя китайцы леваки марксизм
Таблетки выпил?
Аноним 01/01/21 Птн 04:14:02 1897548441
>>1897543
>заставить разработчика
Так разработчик ничего не выбирает. Выбирает СТО или владелец бизнеса если шарит. А уж эти товарищи смотрят именно на хайп и тренды. Да и разрабы честно говоря тоже. Много кто знает про hotwire и stimulus например? Нет, конечно, ведь сейчас же SPA подход суется в любое очко, даже там где он вообще нахуй не нужен. Но хайп есть хайп.

>Phoenix
Медленнее, чем руби, это еще не значит что меделенее чем на Node.js или Java.

>Ruby
Вообще не популярен. Очень мало вакансий в сравнении с всеми остальными и новые проекты на нем уже почти не стартуют вообще.


>реального минуса ты назвать не сможешь
Да пожалуйста.
1). Хоть это все голишь и либа, как любят задвигать адепты реакта, но на выходе сайт на реакте весит просто овер дохера. 500-600 килобайт на первую загрузку, как нехуй делать.

2). Отсутствие встроенной архитектуры, из-за чего кодобаза на реакте очень быстро скатывается в говно.

3). Самосборный фреймворк на базе реакта, состоит чуть более чем полностью из пакетов рандомных васянов.

4). Сама по себе разработка очень долгая, в связи с черезмерным оверинжинрингом, как и у всех СПА решений, кроме свелте разве что, (но там свои проблемы)

















Аноним 01/01/21 Птн 04:16:39 1897550442
>>1897543
>Это смешно ...
К сожалению, это нихуя не смешно.

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

Люди - тупое стадо.
Ты видел эти BLM баннеры на сайтах крупнейших разработчиков?
Ну и вот.
Аноним 01/01/21 Птн 04:18:17 1897551443
>>1897543
>популярность рельс
Ты рубист, перекатившийся в жс?
Золотая классика, лол.
Всё понятно с тобой, только надо было раньше сказать, чтобы я время на тебя не тратил.
Аноним 01/01/21 Птн 04:18:38 1897552444
>>1897539
проиграл

алсо мне тоже кажется что будущее за темплейтными фреймворками вроде вью и свелте, а подход реакта немножко не взлетел
Аноним 01/01/21 Птн 04:29:30 1897555445
>>1897548
>Так разработчик ничего не выбирает. Выбирает СТО или владелец бизнеса
Владельцу бизнеса, которому хватило мозгов этот бизнес организовать, всегда хватит мозгов на то, чтобы проконсультироваться по поводу технических альтернатив и вариантов с технически подкованным человеком. Ты же несешь шизу уровня "я бы писал хороший код, да менеджер не разрешает" и пытаешься представить себя(и других разработчиков) в виде безответственного безвольного дрона, в которого менеджер/тимлид/директор загружает команды, а дальше хоть трава не расти, надо выполнять.
>но на выходе сайт на реакте весит просто овер дохера. 500-600 килобайт
Действительно огромная проблема, но ты лет на 15 с ней опоздал.
>Отсутствие встроенной архитектуры
Я просил минусы, а не плюсы.
>Самосборный фреймворк на базе реакта, состоит чуть более чем полностью из пакетов рандомных васянов
Из чего состоит любой опенсурс фреймворк, если не из "пакетов рандомных васянов" по твоему определению? Или если рандомные васяны собрали свои пакеты в один репозиторий, то это сразу меняет дело? И так же не вижу, при чем тут сам реакт.
>Сама по себе разработка очень долгая
Ты сказал или примерно почувствовал?
Аноним 01/01/21 Птн 04:29:47 1897556446
>>1897551
Открою секрет: писать можно больше чем на одном языке.
Аноним 01/01/21 Птн 04:37:21 1897558447
>>1897556
Знал бы ты, сколько сил и времени я в своё время потратил на это ваше руби.
Дурак был, потому что.

Интуитивно понимал, что это хуета.
Но, думал, что не может же быть, чтобы столько уважаемых людей продвигали откровенную хуйню. Думал, что это я не понимаю чего-то важного.
Потом поумнел.
А потом и время расставило всё по своим местам.

Но, в качестве концептуальной вещи (а не рабочего инструмента), руби оказался мне весьма полезен, в своё время.
Аноним 01/01/21 Птн 04:39:46 1897559448
>>1897558
А покакал как сегодня, твердым или жиденьким? Долго на унитазе сидел?
Аноним 01/01/21 Птн 04:41:52 1897560449
>>1897559
Это намёк на нерелейтед?

Нет, в данном случае - всё в тему.
Тогда - руби, сегодня - реакты и редуксы.
Накал анала примерно тот же самый, лол.
Аноним 01/01/21 Птн 04:45:13 1897561450
>>1897560
Это намек на то, что история твоей жизни в подобном описании имеет к обсуждению программирования примерно такое же отношение, как консистенция твоих покакулек.
Аноним 01/01/21 Птн 04:49:59 1897562451
казанова.jpg 38Кб, 415x635
415x635
>>1897561
Где ты увидел историю моей жизни, сынок?
Я рассказал о совершенно конкретных вещах, и провёл совершенно конкретные параллели.
Аноним 01/01/21 Птн 05:32:19 1897569452
Как максимально быстро вкатиться в разработку сложных веб приложений с нуля?
Аноним 01/01/21 Птн 05:59:53 1897573453
>>1897569
С нуля это невозможно.
Надо сначала вкатиться в разработку простых веб приложений.
И не надо пытаться сократить путь, это даст совершенно обратный результат.

Рекомендую использовать Vue для фронтенда.
На этом пути тебя не будут ждать никакие подводные камни - их там просто нет.
Всё ровно и предсказуемо.
В отличие от реакта, например.

Вообще, это обширная тема.
И с чего начать - зависит от многих факторов.
Например - знаешь ли ты английский?
Что ты умеешь на данный момент?
Каков личные предпочтения в технологиях и т.п.
Аноним 01/01/21 Птн 07:23:53 1897577454
Вкатила заглянул под капот и обосрал весь тред?
Аноним 01/01/21 Птн 07:52:25 1897579455
Реакто бляди никак не могут смириться, что их голая либа уже не такая топовая как раньше. Вью скоро сместит реакт на многих нишах веб разработки. Люди все больше начинают понимать, что
>>Коко, реакт даёт нам возможность писать как мы хотим и все видеть и понимать
Это нахуй не нужно почти всегда. Ты платишь эту прозрачность кучей проблем. Кодовая база везде разная, Либы везде разные, код стайл разный, архитектура разная, все почти везде разное. Новые проекты стартуют куда больше чем на вью, потому что это ебаная лиьа которая толком нихуя не умеет.
Аноним 01/01/21 Птн 07:53:58 1897580456
>>1897579
>>Дольше*
Быстро фикс
Аноним 01/01/21 Птн 08:44:55 1897583457
>>1897579
>реакт даёт нам возможность писать как мы хотим и все видеть и понимать

Это фальшивый аргумент.
На Vue я пишу так, как хочу.
И мне совершенно всё понятно.

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

Аргумент про (якобы) "неявные" реактивные привязки в Vue - просто смешон.
Это что-то на уровне "я не знаю, что там компилирует этот ваш компилятор, поэтому, буду писать прямо в машинных кодах".

Любого, кто предъявляет подобные аргументы, нужно смело посылать на хуй, не вступая в дискуссию.
Аноним 01/01/21 Птн 09:05:15 1897585458
Читаю такой про constraint validation API, пытаюсь вникнуть и тут меня осенило, что оно по сути зависит от хтмл аттрибутов, то есть нахуй не нужно для валидации через жс.
Аноним 01/01/21 Птн 12:15:20 1897622459
В компоненте делаю проверку если _id соответствует id админа то рендерю страницу админа, норм подход? Или нужно ебстись с токенами отправлять их на сервер и тд тп?
Аноним 01/01/21 Птн 12:31:30 1897633460
Фулстаки подскажите оптимальную структуру проекта?
Аноним 01/01/21 Птн 12:50:46 1897645461
>>1897633
Это когда менеджер не заебывает вопросами "Ну когда сделаешь? Ну когда же? Когда?"
Аноним 01/01/21 Птн 13:03:25 1897649462
>>1897579
>Вью скоро сместит реакт на многих нишах веб разработки
Да-да, пять лет уже смещает, а скачиваний в npm все еще в 4.5 раза меньше. Прям не могу смириться с такой несправедливостью.
Аноним 01/01/21 Птн 13:07:25 1897650463
>>1897633
Любой бек с нуля я бы начинал дддшным
Фронт зависит от задач и фреймворка. Если есть грамотно составленные тз с нормальной разметкой - можно навернуть atomic
Аноним 01/01/21 Птн 13:43:53 1897664464
>>1897222
>>1897171
и то идругое не поддерживает ноде15, но спс энивей, я разберусь
Аноним 01/01/21 Птн 13:44:49 1897666465
>>1897220
р-рантайм? дай ссылку плз
Аноним 01/01/21 Птн 14:02:14 1897673466
>>1897583
>При этом, большинство реактоблядей не могут сказать то же самое про реакт, про хуки, контексты, редуксы и прочее.
Хуки и редуксы к которым у вью шизиков всегда почему-то есть претензии - это способы менеджить стейт в реакте, причем очень прямолинейные, контролируемые и понятные, как только поймешь их принцип. Не вижу, почему они должны быть сложнее для понимания, чем вью-система для стейта, которая по сути является неявным setState, работающим через жопу и кучу оберток-проксей.
Аноним 01/01/21 Птн 14:43:01 1897716467
15533767175410.jpg 34Кб, 497x497
497x497
>>1897673
>и понятные, как только поймешь их принцип
Аноним 01/01/21 Птн 14:43:54 1897718468
>>1897716
Лол неужели все так тяжело
Аноним 01/01/21 Птн 14:47:55 1897724469
>>1897716
Расскажи, что тебе непонятно.
Аноним 01/01/21 Птн 14:50:17 1897725470
Аноним 01/01/21 Птн 14:55:29 1897730471
>>1897725
useCallback will return a memoized version of the callback that only changes if one of the dependencies has changed. This is useful when passing callbacks to optimized child components that rely on reference equality to prevent unnecessary renders (e.g. shouldComponentUpdate).

useMemo will only recompute the memoized value when one of the dependencies has changed. This optimization helps to avoid expensive calculations on every render.

Помогло?
Аноним 01/01/21 Птн 15:06:45 1897749472
>>1897730
Реактовская дока - самая убогая дока евар.
Аноним 01/01/21 Птн 15:12:17 1897761473
Мне кажется, те, кто пишет что Реакт непонятный, а Вью оооо, то, как работает Вью тоже не понимают нихуя. Иначе я хз как мемоизация может быть сложнее тонкостей работы вьюшных прокси.
Аноним 01/01/21 Птн 15:19:58 1897780474
>>1897749
Ты просто не видел некоторого дерьма. У эпл под тысячами новых апишек красуются пустые страницы с No overview available и списком методов, а гайдам которые за ручку водят под сраку лет
Аноним 01/01/21 Птн 15:33:57 1897788475
>>1897761
Я понимаю как работает vue
У меня претензии в реакте не к тому, что там что-то НЕПОНЯТНО, а к тому, что скорее убого
https://github.com/reduxjs/redux/blob/master/examples/todos/src/reducers/todos.js
Вот офишл экзампл, простейший туду апп. Что блять за свичт-кейс? Почему перезапись стейта сделана через ВОЗВРАТ значения из редьюсера?
Сравни с тем же vuex, где во-первых мутации сделаны отдельными функциями, а не пердоленьем со switch/case в 2020 (я чо бля, на первом курсе снова и пишу лаба2.цпп?) и прозрачно понятно, откуда БРАТЬ стейт, а какая хуйня его ИЗМЕНЯЕТ
Аноним 01/01/21 Птн 15:39:28 1897790476
>>1897788
Отклеилась ссылка на vuex
Тут разбили на отдельные файлы экшны и мутации, я обычно в одном файле делаю, но суть понятна
https://github.com/vuejs/vuex/blob/dev/examples/todomvc/store/mutations.js
https://github.com/vuejs/vuex/blob/dev/examples/todomvc/store/index.js

Нет, я понимаю конечно что реакт топит за функциональное программирование, и его подход в этом плане более трушный
Но ФП в промышленной разработке хуево взлетает, работает в лучшем случае какой-то гибрид типа скалы
А в реакте вангую в реальных проектах есть овердохуя костылей для сайд-эффектов, которые в реальном, а не кукаретическом программировании очень нужны бывают
Аноним 01/01/21 Птн 15:50:16 1897799477
>>1897788
>У меня претензии в реакте
>кидает ссылку на редакс
Че?
Аноним 01/01/21 Птн 15:53:51 1897802478
>>1897799
Так а какие претензии могут быть к самому реакту, если он сам по себе - маленькая либа по выплевыванию html в зависимости от переданых в него данных?
Существуют разве в природе проекты на реакте без стейт-менеджмента, роутинга и прочего?
Аноним 01/01/21 Птн 15:54:25 1897804479
>>1897799
Ну и я правильно понял, что тебе нечего возрозить на этот пиздец в редаксе и ты признаешь что это злоебучий высер по сравнению с vuex?
Аноним 01/01/21 Птн 15:58:40 1897809480
>>1897802
Стейт-менеджмент не равно редакс. Глобальный стейт, для которого редакс и сделан, нужен примерно никогда, а в тех редких случаях, когда он нужен(сессия, например), есть менее нагроможденные альтернативы типа эффектора.
>>1897804
На редакс у меня дохуя возражений, но речь идет не про него, а про реакт, и я не вижу, с чего ты начинаешь перескакивать с темы на тему и ставить знак равенства между двумя независимыми либами.
Аноним 01/01/21 Птн 16:02:02 1897811481
>>1897802
без роутинга делать спа уныло
но роутинг ничего особенного страшного
без глобального стейта сложно написать большое приложение
Аноним 01/01/21 Птн 16:03:51 1897814482
>>1897811
>без глобального стейта сложно написать большое приложение
Что ты собрался в нем хранить и нахуя, расскажи?
Аноним 01/01/21 Птн 16:08:17 1897816483
>>1897814
информацию которая нужна во многих частях приложения
зайди например на сайт какого нибудь озона - корзина, город и т.п. настройки почти наверняка хранятся в стейте
Аноним 01/01/21 Птн 16:11:25 1897823484
>>1897816
>корзина, город и т.п. настройки почти наверняка хранятся в стейте
Не знаю где там что у озона хранится, но должны они храниться на сервере или в крайнем случае в куках, если это что-то простое и глобальное, типа города.
Аноним 01/01/21 Птн 16:13:16 1897825485
>>1897823
Ясн, если в реакт-экосистеме нет способа нормально это сделать - это просто НИНУЖНО
Аноним 01/01/21 Птн 16:16:07 1897830486
>>1897788
>Вот офишл экзампл
Редакс это не часть Реакта, алое. Но поскольку в Реакт входит useReducer, то не вопрос, отвечу.

>Что блять за свичт-кейс?
В чем проблема?

>Почему перезапись стейта сделана через ВОЗВРАТ значения из редьюсера?
Потому что в этом смысл редьюсера — принять старый стейт и ничего не мутируя вернуть новый.

>Сравни с тем же vuex, где во-первых мутации сделаны отдельными функциями
Сравнил. Чем создание функции increment с this.count += payload принципиально лучше case actions.increment: return state + action.payload?

>прозрачно понятно, откуда БРАТЬ стейт, а какая хуйня его ИЗМЕНЯЕТ
И чем же обращение по this прозрачнее чем state из аргумента?
Аноним 01/01/21 Птн 16:20:29 1897836487
>>1897825
Вуедебил даже свою мамашу засунет в стор, если это просто.
Аноним 01/01/21 Птн 16:21:38 1897839488
Глобальный стейт прекрасно хранится в контексте, для этого даже либ не надо никаких. Хуй знает в чем ваша проблема.
Аноним 01/01/21 Птн 16:29:59 1897847489
Что-то не понял прикол: await можно использовать только внутри асинхронных функций, объявленных через async, тогда какого хрена await можно спокойно использовать в самом верхнем скоупе?
Аноним 01/01/21 Птн 16:36:49 1897854490
>>1897847
В каком верхнем скоупе, наркоман? Если пишешь с асинк/эвейт, то код у тебя в модулях лежит.
Аноним 01/01/21 Птн 16:39:19 1897858491
image.png 2Кб, 353x111
353x111
Аноним 01/01/21 Птн 16:40:05 1897859492
>>1897847
>тогда какого хрена await можно спокойно использовать в самом верхнем скоупе?
Нельзя.
Аноним 01/01/21 Птн 16:40:57 1897860493
>>1897858
Это не "верхний скоуп", это консоль браузера.
Аноним 01/01/21 Птн 16:43:11 1897861494
>>1897839
На самом деле для сайта стейт - это dom.
01/01/21 Птн 16:52:35 1897865495
>>1897788
Ебать оказывается есть валенки тупее меня в разы, сука я за пару недель освоил редакс после работы занимаясь пару часов в день, а ты пидр тут вроде и вью свое толкаешь а тупо почитать доку про сраный редакс не можешь? Ххарк пьфу в твое жирное ебло
Аноним 01/01/21 Птн 16:56:03 1897867496
>>1897725
usememo это реактокостыль из-за того что у них нет computed свойств которые не вычисляются каждый ререндер
Аноним 01/01/21 Птн 16:59:08 1897869497
>>1897823
ну город в куках ок, хотя читать куки из любого места где может город понадобится как-то не очень удобно а вот корзину и в куки не засунешь, типа предлагаешь ее каждый раз запрашивать?
Аноним 01/01/21 Птн 16:59:13 1897870498
>>1897867
Да все хуки - это костыли. А useEffect - это инвалидная коляска со встроенным сортиром.
Аноним 01/01/21 Птн 17:00:10 1897872499
>>1897867
Computed свойства это костыль из-за того, что у них нет useMemo, который не вычисляется на каждый рендер.
01/01/21 Птн 17:01:19 1897874500
>>1897870
Все фреймворки и либы это костыли, до сих пор пишеш на ваниле и html?
Аноним 01/01/21 Птн 17:04:24 1897878501
>>1897869
>ну город в куках ок, хотя читать куки из любого места где может город понадобится как-то не очень удобно
Город может понадобиться только в одном месте - на сервере, который его учитывает в формировании ответов, а фронт этот город должен максимум отобразить. Если ты считаешь, что читать город из локалстора и передавать его в каждом запросе удобнее, чем просто хранить в куках, то тебе надо пересмотреть свое понимание удобности.
>а вот корзину и в куки не засунешь, типа предлагаешь ее каждый раз запрашивать?
Разумеется запрашивать, или ты думаешь, что клиент должен иметь разные корзины на мобилке и в веб-версии? Корзина гостя - это просто вариант корзины клиента и реализовывать ее через локалстор, вместо такой же серверной реализации, смысла нет. Запрашивать не каждый раз, а один раз при первом рендере(или когда надо явно обновить).
Аноним 01/01/21 Птн 17:06:58 1897881502
>>1897865
Задачка
У тебя есть компонент Рынок который в конкретный момент времени показывает один из дочерних компонентов
1) Огурцы
2) Помидоры
3) Бананы
Для отображения компонента Огурцы тебе нужно забрать с сервера список с огурцами, для Помидоров список с помидорами и тд

Какой вариант ты выберешь?

1) Держать все три компонента в памяти с их списками
2) Каждый раз при показе дочернего компонента создавать новый и снова запрашивать данные с сервера
3) Держать списки помидоров, огурцов и тд в родительском компоненте Рынок
Аноним 01/01/21 Птн 17:11:02 1897883503
>>1897872
Как раз есть мемоизация
01/01/21 Птн 17:20:45 1897889504
>>1897881
Держать в стейте списки полученные с бэка, при переходе к компоненту огурцы запарашивать новые данные на сервер и если они есть получать, а что?
Аноним 01/01/21 Птн 17:21:04 1897890505
>>1897881
Любой компонент, который прямо основывается на данных с сервера, должен эти данные дергать каждый раз, когда маунтится впервые, кроме невероятно редких случаев. А на твой вопрос можно выбрать и 1 и 2, потому что в такой формулировке это один и тот же вариант, разницу между ними ты сформулировать не сумел.
Аноним 01/01/21 Птн 17:26:30 1897893506
>>1897881
Это зависит от сервера.
Сервер должен на списки возвращать облегчённый джейсон из индекса, а для детальных запросов - отдельный эндпоинт с запросом.
Аноним 01/01/21 Птн 17:28:59 1897895507
>>1897890

1) 2) данные хранятся в дочернем компоненте.
1) При показе компонент не создается заново В vue нужно обернуть компонент в кееpalive
2) создается
Аноним 01/01/21 Птн 17:31:08 1897897508
>>1897893
В любом случае пользователю придется ждать рендеринга, причем время ожидания зависит от интернета пользователя
Аноним 01/01/21 Птн 17:35:18 1897900509
>>1897889
Ты еще кучу данных в гет запросе будешь отправлять? Или состояние предыдущего запроса на сервере хранить?
01/01/21 Птн 17:39:15 1897904510
>>1897900
Нахуя? Если есть локальный стейт и там лежит все что нужно. Прилетаю новые данные в стейт они отображаются, если нет значит нет. Ты совсем валенок видно?
Аноним 01/01/21 Птн 17:42:16 1897908511
>>1897904
Значит ты всегда запрашиваешь все данные при рендеринге компонента? Ну и что ты хотел этим сказать? Что выбрал 2)
Аноним 01/01/21 Птн 17:42:31 1897909512
>>1897878
ты думаешь только об одном обращении к апи, а ведь это все нужно и просто для отображения

простейший пример, у них например при наличии товараов в корзине на иконке корзины появляется количество товаров в ней

ты предлагаешь делать такой запрос на корзину отдельно для этой кнопки из ее компонента? а как она узнает что его снова надо сделать? может туда еще и сокет прикрутить лол

в разы проще хранить корзину в стейте
Аноним 01/01/21 Птн 17:43:30 1897910513
через локалстор это кстати вариант довольно корявого глобального стейта
Аноним 01/01/21 Птн 17:44:02 1897911514
>>1897908
Я тебе расписал выше что делаю при запросах
Аноним 01/01/21 Птн 17:50:19 1897913515
>>1897910
А где его еще хранить при перезагрузке страницы?
Аноним 01/01/21 Птн 17:55:22 1897915516
>>1897911
Если под локальным стейтом ты подразумеваешь что-то не являющееся состоянием компонентов Огуцы, Помидоры, то ты выбрал п 3) Непонятно почему ты назвал это локальным
Аноним 01/01/21 Птн 17:58:21 1897916517
>>1897915
Локальный значит локально на пк, а не на сервере
Аноним 01/01/21 Птн 17:58:40 1897917518
>>1897913
при перезагрузке он должен снова запрашиваться
а при спа перезагрузка должна быть редкой только если f5 нажать
Аноним 01/01/21 Птн 17:58:50 1897918519
>>1897860
А что тогда является верхним скоупом?
Аноним 01/01/21 Птн 17:58:51 1897919520
>>1897909
Единственный нормальный вариант это сокет. Или в общем server events
Аноним 01/01/21 Птн 18:01:56 1897921521
>>1897904
И что это меняет? Предварительный запрос на сервер тебе нужен так и так, а где ты его будешь вызывать, в компоненте корзины или на самом верху приложения и передавать вниз - суть остается одна и та же.
Аноним 01/01/21 Птн 18:03:44 1897923522
Аноним 01/01/21 Птн 18:05:32 1897926523
Аноним 01/01/21 Птн 18:07:04 1897929524
>>1897918
Все, что ты пишешь вне функции.
Аноним 01/01/21 Птн 18:16:59 1897939525
>>1897929
...
Но ведь записи в консоли браузера это и есть "вне функции"? Не один ли хуй где именно ты это напишешь: в файле index.js который ты подгрузишь на страницу или в консоли? Концептуально разницы ноль
Аноним 01/01/21 Птн 18:26:28 1897946526
>>1897939
Консоль браузера - это debugging tool и ее разработчик может туда засунуть что угодно, включая возможность для удобства писать await вне функции(который под капотом все равно выполняется внутри функции, потому что в жаваскрипте в принципе нельзя по-другому).
Аноним 01/01/21 Птн 18:31:58 1897952527
>>1897946
>потому что в жаваскрипте в принципе нельзя по-другому
Можно. Скрипты и модули исполняются в контекстах vm. Ты и сам можешь эти контексты создавать если рантайм пробрасывает тебе нужные апи (в ноде например проброшены апи от v8, в jsшелле от spidermonkey)
Аноним 01/01/21 Птн 18:39:44 1897956528
>>1897952
Только это уже не жаваскрипт, а работа с его движком.
Аноним 01/01/21 Птн 19:15:45 1897985529
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов