Этого треда уже нет.
Это копия, сохраненная 28 мая 2021 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
image56 Кб, 1050x1050
JS Thread #209 /js/ 1993705 В конец треда | Веб
Предыдущий тред: >>1984611 (OP)
Больше пары строк кода в посте или на скриншоте ведут в ад.

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

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

Документация - https://developer.mozilla.org
Руководство для вката - https://github.com/acilsd/wrk-fet#javascript
Старая паста - https://pastebin.com/9yRADC0s
2 1993718
Mobx
3 1993725
>>1993718
useContext
4 1993727
Сап, jsач, нужна твоя помощь (сам ещё только вкатываюсь).

Суть:
Есть массив промисов (если надо, можно вместо него использовать сет промисов, чуть переписав окружающий код), с которым работают асинхронные функции. Они могут в рандомное (с нашей точки зрения) время добавлять туда промисы и удалять их оттуда. Задача: сделать функцию, которая принимает этот массив и возвращает один общий промис на выполнение всех промисов в массиве (включая добавленные позже и исключая удалённые из массива).

Promise.all не работает, он не обращает внимания на те промисы, которые добавлены позже его вызова.

Добавление я, вроде бы, смог реализовать (т. е., если используется только .push, то можно внутри асинхронной функции спокойно перебирать массив (с awaitами на каждой итерации), и если в конец массива будут добавлены новые промисы, то цикл обязательно до них дойдёт).

А вот с удалением серьёзные проблемы. Если, например, цикл дошёл до какого-то промиса и ждёт его, а в это время какая-то другая асинхронная функция удалила этот промис из массива, то как об этом узнать и прервать бессмысленное ожидание промиса, который уже удалён из массива?
Screenshot from 2021-04-12 15-03-28.png22 Кб, 954x171
5 1993733
7 1993785
>>1993727

>вкатываюсь


не лезь, дебил она тебя сожрёт

>Суть:


>пук



>если надо, можно вместо него использовать сет


чё несёт вообще

>возвращает один общий промис


ты хочешь странного

>Promise.all не работает


твоя мамка не работает

Тебе нужен async queue. Всё, больше не приходи сюда.
1234.jpg80 Кб, 888x480
8 1993824
Репощу сюда из предыдущего треда.
Здарова, вебаны. Такое дело. На https://duckduckgo.com при нажатии на капс форма поиска теряет фокус. Я пытаюсь это предотвратить. Очевидная идея — написать юзерскрипт, который будет перехватить нажатие клавиши и вернуть фокус на место. Но нет.
document.querySelector("#search_form_input").onkeydown=((e) => {console.log(e.which); return;})
$(document).keydown((e) => {console.log(e.which); return;})
И то, и то просто не печатает кейкод для капса. Потому что, как выяснилось, по какой-то причине в ЖСе для этих кнопок ивент нажатия просто не создаётся.
document.querySelector("#search_form_input").setAttribute("autofocus", "")
Тоже ничего не меняет.
У гугла, кстати, форма фокус не теряет.
Браузер Firefox 87.
9 1993834
>>1993824

> На https://duckduckgo.com при нажатии на капс форма поиска теряет фокус



Сука в гiлос просто.
10 1993843
>>1993824
Ниче там не теряет шиз, смени браузер
11 1993845
>>1993824

Или куки почисть, а можт ты прост еблан и жмешь на таб вместо капса?

У меня фокся 87 все работает
160112.jpg250 Кб, 1920x1200
12 1993871
>>1993845
>>1993843
>>1993834
>>1993824
Всё, я разобрался. Это из-за какого-то косяка в i3. Когда делаешь биндинг на любую клавишу/сочетание, это происходит. Странно, что это эта "особенность" оконного менеджера проявляется исключительно в браузере и исключительно на одном сайте.
13 1993914
У меня есть в стейте типо статус приложухи isUpdated. Короче некоторые экшены при попадании в редюсер изменяют его с true на false. Хочу чтобы если flase, то у меня фетчилась дата с сервера.
Как сделать чтобы функция мониторила статус isUpdated и автоматически что-то фетчила с сервера? В useEffect прописать state.isUpdated? Но тогда это получится бесконечный цикл фетчей.
14 1993926
>>1993914
Subscribe
15 1993927
>>1993914
веб сокет
16 1993991
Анон, как сохранить массив из express в postgresql
чтобы каждый элемент был в отдельной строке.
17 1994026
>>1993991
Обойти массив и заинсертить каждый его элемент в постгру.
18 1994045
Почему стрелочные функции плохо называть лямбда-функциями?
19 1994053
>>1994045
где плохо?
replace.png113 Кб, 1590x894
20 1994065
Да еб вашу мать.

Нужно:
Принимать в инпут только целые положительные числа и убирать все нули, если они стоят перед любыми другими цифрами, типа 002 -> 2

И вот что за пиздец на строке 7, я могу заменить эти нули на что угодно, но только не на пустой символ. Если заменяю их на числа от 1-9 все круто, 001 становится например 991. Но если хочу заменить на пустой символ и потом вернуть в setProductCount число, а не строку, преобразовывая через + оператор. То хуй там, нули игнорятся и остаются на том же самом месте. Они не меняются на пустой символ. Что за хуита? Почему нельзя заменить нули на пустой символ? Они ведь все равно еще до преобразования в число преобразовываться должны же?
21 1994068
>>1994045
Потому что они по сути не всегда анонимные? Ты можешь присвоить стрелочную функцию какой-нибудь переменной и тогда это уже не будет лямбда
22 1994070
>>1994065
Причем если подставить туда вообще какой-нибудь символ W, то закономерно преобразуется в NaN. А пустой символ ничего не делает совершенно
image.png1 Кб, 113x60
23 1994071
>>1994065
Ты что, больной?
24 1994074
>>1994071
Вот теперь объясни, в каком месте я сру себе в штаны? Почему реплейс не хочет заменять нули на пустой символ, но заменяет на что угодно другое?
25 1994077
>>1994074
Может я потерял нить твоих рассуждений, но нахуя тебе в принципе что-то реплейсить на пустой символ?

>Нужно:


Принимать в инпут только целые положительные числа и убирать все нули, если они стоят перед любыми другими цифрами, типа 002 -> 2

По регулярке проверяешь, совпадает ли введенный формат. И проверяешь начинается ли значение с 0, если да, то делаешь +value.toString() (если нужно дальше работать со значением как со строкой). Или тебе нужно еще проверять кейсы типо 102 -> 12?
26 1994079
>>1994074

> Почему реплейс не хочет заменять нули на пустой символ


Скрин или не было
27 1994080
>>1994074
>>1994071
Я не понимаю почему, но дальше всё передается так, как если бы нуля не было, как в твоем примере, даже без моей проверки. Но в самом инпуте остается 002, а дальше в корзину попадает просто обычная цифры 2, даже если её в консоль как строку вывожу. Я не могу понять почему нули не пропадают из инпута. Причем пустой символ явно заменяется на 0, и возможно каким-то хером пустой символ заменяется на 0 многократно? Потому что сама замена-то работает, что за пиздец?
28 1994089
>>1993733
Необязательно отменять сам промис. Важно, чтоб функция перестала его ждать.
Сейчас подумал конкретно над этим — можно внутри функции оборачивать каждый промис в Promise.race(этотПромис, промисНаОтмену), и тогда при срабатывании отмены (правда тут вопрос, каким образом заставить её сработать в нужный момент), функция перестанет ждать изначальный промис.

>>1993785

> не лезь, дебил она тебя сожрёт


А на чём ещё сайты делать?

> >если надо, можно вместо него использовать сет


> чё несёт вообще


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

> >возвращает один общий промис


> ты хочешь странного


Что тут странного? Ведь для чего-то же Promise.all() существует, вот мне нужно что-то похожее, но получше. С нужной задачей Promise.all() не справляется.

> Тебе нужен async queue


>>1993776

> https://caolan.github.io/async/v3/docs.html#queue


Спасибо, попробую.
29 1994094
>>1994079
>>1994077
Дело в том, что setProductCount принимает только число, ну и в целом там дальше проверок никаких делать не нужно из-за этого. Поэтому я любые введенные значения преобразую в число. Но вот дело в том, что мне просто из начала только для пользователя нужно убирать нули. И преобразования вида +value эти нули из инпута не убирают. Хоть и для дальнейших вычислений все нули пропадают если они стоят вначале.

Дальше в качестве функции я передаю коллбек вида setProductCount={(count) => (handleItemInputCounter(item, count))}. Чтобы потом это поле введенное обрабатывать. Но блядь, почему заменя корректно работает с каким угодно символом, кроме пустого значения? Такое ощущение, что пустое значение заменяется многократно на ноль. Как если в консоли ввести + и пустые кавычки
30 1994104
>>1994089

>Что тут странного?


Твой общий промис резолвится, потом ты добавляешь новый промис в исходный массив. Ожидаемое поведение?
31 1994107
>>1994080
Покажи че setProductCount делает. И компонент где используется значение productCount
32 1994108
>>1994094
А ты значение в инпуте обновляешь?
33 1994111
>>1994104

> >Что тут странного?


> Твой общий промис резолвится, потом ты добавляешь новый промис в исходный массив. Ожидаемое поведение?


Отсутствие действия. Если в массиве в какой-то момент не остаётся pending промисов (все или завершились, или удалились из массива), то текущая задача выполнена, общий промис завершился, дальше моя функция ничего делать не должна (а если вдруг надо, то её нужно заново вызвать).
34 1994160
>>1994108
>>1994107
>>1994065

В первый раз пилю свой сендбокс. Вроде бы все правильно сделал
https://codesandbox.io/s/angry-kare-slsf6?file=/basketInput.tsx

Суть в том, что в компоненте basketInput.tsx обрабатывается значение. А в компоненте App значение принимается с помощью коллбека. Может это какой-то лютоебанутый способ, я не знаю, но дело в том, что в реальном проекте туда передается еще и объект товара, так что обновление стейта там происходит чуть сложнее, и поэтому я значение из инпута принимаю таким образом. Но факт в том, что нули НЕ УБИРАЮТСЯ даже в этом упрощенном примере.

И теперь главное:
1.
В этом тестовом примере первый нолик я заменил на цифру 5. Просто удалите начальную еденичку в инпуте клавиатурой (не стрелочками) и когда появится нолик, начните вводите любое число и первый нолик заменится на 5. Если вы в коде, в строке 14 компонента basketInput.tsx поменяете 5 на пустое значение, то все нули будут оставаться на месте.
2.
Если убрать оператор + из 14 строки, и получается, передавать в setProductCount строку, НУЛИ УБИРАЮТСЯ!. Но тогда будет ошибка типизации, так как функция просит только числа. И я не хочу отправлять никуда строку, чтобы потом обрабатывать тип значения, я хочу чтобы компонент возвращал только числа.

Готов принимать хуи ведрами, только объясните в чем тут ошибка.
35 1994162
>>1994160
Ой пизда, разметку проебал. Я не специально жирно написал, не стукайте
36 1994171
>>1994160
value={String(productCount)}

У тебя был productCount=4 который ты передал в value инпуту, потом ты ввел "0" первым символом, value у инпута стало "04", а productCount ты посчитал как 4, это 4 передается обратно в value, и поскольку value не поменялось с прошлого раза, то dom можно не теребить, чего реакт и не сделал. Reconciliation!

Когда ты "0" заменяешь на "5" то у тебя получается новые value отличное от предыдущего, потом dom нужно обновить.

Когда ты уже поймешь что When leading zeros occupy the most significant digits of an integer, they could be left blank or omitted for the same numeric value.[3]

[3] - Zegarelli, Mark (2014), Basic Math and Pre-Algebra Workbook For Dummies (2nd ed.), John Wiley & Sons, p. 8, ISBN 9781118828304.
изображение.png892 Кб, 800x575
37 1994211
>>1994171
Спасибо большое, вот такого ответа мне вообще никто не давал, я думал у меня уже крыша едет и я чего-то очевидного не вижу. Наверное очевидное, да, но все же. Спасибо тебе большое
38 1994225
>>1994211

>вот такого ответа мне вообще никто не давал


А это потому что ты без кода пришел. Ну теперь то ты знаешь
39 1994324
>>1993554 →
Никогда, все тестовые спокойно делаются на хуках, я не представляю для чего редукс сейчас необходим
40 1994328
l
image.png20 Кб, 322x570
помогите пожалуйста 41 1994334
есть section
в нем лежат список, два заголовка и кнопка
при добавлении hover к section, нужно менять цвет у обоих заголовков и у элементов списка. я так понимаю, это можно сделать только путем использования js. ибо через css я уже несколько часов не могу понять КАК

я очень зеленый во всем этом деле, недавно загорелся желанием и пока начал с html и css, планирую изучать js как только буду достаточно понимать разметку и стили
42 1994350
Анонсы, знает кто как сделать звуковое оповещение в Tampermonkey на одном сайте?

Вот такой код не работает, Хром ругается "Cross-Origin Read Blocking (CORB) blocked cross-origin response". Уже блядь весь реддит перечитал, там везде похожий код, который нихуя не работает вообще

var alrtSound = document.createElement('audio');
alrtSound.src = 'https://notificationsounds.com/wake-up-tones/arpeggio-467';
alrtSound.preload = 'auto';
alrtSound.play();
43 1994352
>>1994334
mySection:hover .zagolovok {
color: myColorWHenHovered;
}
44 1994373
>>1994350
CORB гуглил?
45 1994374
кто шарит за паг: как мне в один миксин захуярить другой миксин?
46 1994378
>>1994374
хотя там не только миксин, а вообще ничего не лезет внутрь, типа надо в шаблоне что-то прописать я понимаю, но не понимаю что
47 1994401
ой всё нашёл надо block написать просто)
48 1994412
>>1994352
получается я в скрипте прямо так и пишу, только меняю mySection, zagolovok на свои селекторы? просто я попробовал и не получилось кусочек css и то что он делает приложу, думаю, так будет логичнее
49 1994413
>>1994412

>zagolovok


ААААААААААААА!
1616770511908.jpg77 Кб, 878x584
50 1994420
Стоит ли идти работать в salesforce направлении? Поясните за него вкратце неофиту, какие плюсы-минусы и все такое.
51 1994421
>>1994413
смузи уже навернул зумер?
52 1994434
>>1994420
Ну морская пехота это универсальные солдаты, чуть какая заворушка и на передовую кидают, сам смотри как сильно жить хочешь.
53 1994515
>>1994421
Какого смузи, сука? Если хочешь писать на русском - пиздуй в 1С!
14914755291420.jpg53 Кб, 421x465
54 1994522
Какого-то хера навернулось форматирование кода в проекте, когда перешёл со стабильной версии VSCode на preview.

Есть какой-нибудь плагин, который приведёт код в относительный порядок? Как их там называют - better visualizer или как-то так.
55 1994534
>>1994522
Как это - навернулось? Автоформат уебало? Может просто настройки где-то на дефолтные откатились?
56 1994541
>>1994534

>Как это - навернулось?


Ну вот так. До обновления были отступы, пробелы, табуляции. Обновился - их нет. Код выглядит как сплошная стена текста, остались только переходы на новую строку.

>Может просто настройки где-то на дефолтные откатились?


Я не сильно давно пользуюсь, поэтому не знаю.
57 1994551
>>1994541
Правой копкой нажми в файле - выбери форматировать.
58 1994561
Есть функция, которая диспатчит экшн, и следом пишет данные из стейта в локал сторадж. При этом в сторадже данные появляются так, как будто никакого диспатча не было. При этом если послать второй экшн, то данные в сторадже изменяется, но так как будто был отослан только один экшн. Я пробовал ставить таймаут на вызов записи в сторадж, но это не помогает. Где я делаю что-то неправильно? Функция литерали двухстрочная:
dispatch(action_object)
localStorage.setItem("...", string)
59 1994565
>>1994561
P.S. Думаю сделать это через промис.
60 1994581
>>1994541

Установи Prettier
Cmd ctrl f зажми
hover.gif221 Кб, 1266x861
61 1994720
>>1994412
Нет, жс тебе не нужен
image.png874 Кб, 811x579
62 1994754
учу жс и крайне не хватает общения с таким же лоускилом или может с кем поопытнее для легкости вкуривания, есть кто со схожим желанием?
63 1994800
>>1994551
Стало лучше, благодарю.

>>1994581
Спасибо, гляну.
64 1994812
>>1994754
Телега @radagant, можешь написать
65 1994842
>>1994754
>>1994812
создайте конфу в телеге для таких, может подтянутся больше людей
больше проблем, больше решений, больше опыта, профит
66 1994850
>>1994842
Хуевая затея, там кроме рака нихуя не будет, мимо олд js тредов
Такие конфы создавались 5 раз, на 2й-3 день они удалялись, пусть лучше в личке общаются
67 1994854
>>1994850

>на 2й-3 день они удалялись


Это потому что кто-то чмоня, которая любит вдыхать только ИЛИТНЫЙ ПЕРДЕЖ. Наоборот, чем больше всякого пиздеца и треша, тем лучше.
68 1994862
>>1994754
Идея хуйня. Вы будете двумя долбоебами которые ничего не знают, вас будет тошнить от друг друга, потому что в друг друге вы будете видеть самих себя.
69 1994865
Есть кнопка, по умолчанию серая. Есть функция, которая при нажатии на эту кнопку меняет её цвет с серого на зелёный. При перезагрузке страницы, цвет меняется на цвет по умолчанию, а я хочу, чтобы он сохранялся. Как я понимаю, это из-за того, что у меня вся страничка отрисовывается тремя файлами HTML, CSS и JS. Соответственно, никакого бэкенда у меня нет, и каждый раз браузер получает один и тот же исходный файл, где кнопка серая. Вопросы следующие: можно ли каким-то образом менять CSS-правило не в браузере, а непосредственно в исходном файле, или обязательно добавлять для этого бэкенд? Если всё таки придётся добавлять его в структуру проекта, то как это сделать? И правильно ли я вообще думаю?
70 1994869
>>1994862
если они развиваются не по одному курсу, то может нормально сработать, допустим сегодня чел1 выучил тему 1, чел2 выучил тему 2, но в любой момент они могут поделиться знаниями друг с другом, или разобраться в теме 3
71 1994874
>>1994865
Цвет кнопки должна для одного человека меняться и за ним привязываться, или чтобы любой человек мог зайти и нажатием опять поменять цвет кнопки для всех?
72 1994876
>>1994869
У меня был похожий опыт, в итоге мы пообщались года 3 назад. Парнишка был с дамбасса, хотел уехать в Харьков если ты все-таки переехал - красавец. В итоге мы пиздели на отвлеченные темы, что там в дамбассе, обсуждали семейные обстоятельства и прочую хуиту, но только не кодинг.
73 1994877
>>1994874
Для одного
74 1994897
>>1994842
Я лс ищу конфу или таких же нубов для совместного решения задач
@peacedoze
75 1994903
кто вкатится тот гей
76 1994934
>>1994865
Ещё пока ковырялся со сменой цвета наткнулся на странную фичу. По умолчанию цвет кнопки серый, значит при проверке условия она должна сразу же поменять цвет? Неее, нифига подобного. При первом нажатии кнопка остаётся серой, дальше работает как по маслу. Задался вопросом "Почему так?", добавил перед проверкой условия вывод цвета в консоль, и оказывается, при первом нажатии у кнопки вообще как будто нет цвета. Как это понимать?
77 1994937
>>1994934
Это значит КСС
image.png5 Кб, 306x140
78 1994941
>>1994937
В ксс цвет тоже изначально указан как серый
79 1995010
>>1994865
если только для себя, то https://developer.mozilla.org/ru/docs/Web/API/Window/localStorage

а если как нормально, то поднять себе express на бэке это вопрос одного вечера. Делаешь get запрос и post на цвет и усе.
80 1995011
>>1994522
prettify
81 1995018
>>1995010
Спасибо, анонче!
82 1995031
Как заебало нахуй, что невозможно найти вменяемых статей по работе разных модулей (даже популярных) с тайпскриптом. Я такой человек, что для того чтобы понять что-то на 100%, мне мало прочитать доки, мне надо увидеть code example, все целиком, как что работает. Какой-нибудь маленький пример.
И как же заебало, что блять негры и женщины набранные по квотам пишут ебаные статьи с нерабочим кодом. Вот я 5 минут назад читал статью, модуль Х с тайпскриптом и там, блять, ни в одной функции нет типа возвращаемого значения. Ну типо нахуй нужно, угнетатели хуевы понапридумывали говна. Писал негр. В другой статье половина кода типизирована как any. Охуенно. Писала женщина. Пиздец, заебись блять. Охуенный у тебя тайпскрипт.
Я тоже не какой-то суперпрограммист, а скорее всего хуевый. Но каждый ебаный раз, когда я открываю какую-то статью почитать, у меня на каком-то блять подсознательном уровне возникает понимание, что автор нихуя не понимает о чем пишет, а свой код даже не в состоянии запустить.
83 1995034
>>1995031
Но ведь любой модуль работает с тс так же, как и с жс, просто с типами
84 1995040
>>1995034
Нет, нихуя. Уникальные типы возвращаемых значений, уникальные аргументы, интерфейсы и т.д. И приходится либо сидеть и ебать себе мозги чтением лапшеобразного d.ts файла, либо прочитать одну годную статью, где вменяемо используются основные фичи.
85 1995045
Как же заебало, что я не могу понять синтаксис языка и во всех примерах в разные места засовывают разные штуки и добавляют новые поверх, хуй поймешь куда можно всунуть строку, куда нет.
86 1995050
>>1995031

>невозможно найти вменяемых статей по работе разных модулей


Напиши свою.
87 1995053
>>1995040
Про какой модуль речь то?
88 1995079
>>1995045
Найди гайды аля делаем интернет магазин на тс и смотри, ну ты че
90 1995469
>>1995079

> ну ты че


а че ты?
91 1995476
>>1994720
ты просто лучшее, что произошло со мной за сегодняшний день, благодарю
14597804401720.jpg18 Кб, 500x375
92 1995480
Мне надо провести code-review, с указанием на возможные ошибки \ проблемы.
Как оценить стоимость выполнения этой работы?

Проблема в том, что я не зарабатываю 300кк\секунду, а аппетиты у фрилансеров дай боже...
93 1995485
>>1995480
Ставка за час • количество часов
94 1995486
>>1995476
та пожалуйста, брат. Всегда обращайся, в JS Thread всегда можешь рассчитывать на нашу помощь. Всего наилучшего
95 1995573
Всем привет.
Работаю над одним проектом, и там есть требование, чтобы при потере соединения(например человек с планшетом зашел в лифт и там нет интернета) приложене продолжало функционировать. При этом в оффлайне оно взаимодействует уже с данными, которые кешируются на клиенте. А потом как только соединение восстановилось, данные "пушились" на бекенд и актуализировались с учетом работы в оффлайн-режиме. Т.е. то что пользователь "наредактировал" в оффлайне должно в любом случае потом улететь в базу как только появится сеть.

Куда копать, чтобы реализовать такую штуку? Пока на ум приходит IndexedDB в API браузера, но не совсем понятно как "отлавливать" автоматически момент когда сеть потеряется/снова вернется. Раз в n минут опрашивать бэкенд и смотреть на статус код ответа кажется ужасным решением, т.к. это не гибко, не безопасно и есть риск потерять данные.
97 1995593
>>1995573

> но не совсем понятно как "отлавливать" автоматически момент когда сеть потеряется/снова вернется.


Ты почему даже не попробовал в гугл этот вопрос вбить, программист?
98 1995597
Посоветуйте спич рекогнишн модуль который заведётся в электроне. А если он ещё и в оффлайне будет работать это + балл.
99 1995601
>>1995593
Я уже находил https://developer.mozilla.org/ru/docs/Web/API/NavigatorOnLine/onLine

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

>>1995587
Спасибо, посмотрю.
100 1995607
>>1994941
Может у тебя скрипт до стилей подключен?
101 1995609
>>1994720
А слабо шоб при наведении на один, второй тоже менялся?
102 1995612
>>1995609
На то и каскадность что так можно
103 1995621
>>1995612
Давай покажи.
104 1995635
>>1994754
А ты няшный?
105 1995644
>>1995597
Бамп
1.mov936 Кб, mp4,
1208x836, 0:08
106 1995661
107 1995662
>>1993705 (OP)
Можете посоветовать библиотеку? Которая бы предоставила некий холст, на котором можно позиционировать объекты по XY, который можно приближать-отдалять, перемещать/прокручивать, который бы позволял размещать на себе объекты (на которые бы также распространялось приближение-отдаление), выводить какую-то информацию, удалять ее, ну и пагинацию поддерживал в идеале.

Что-то вроде, только гораздо более сложно, предлагает draw.io, на холсте которого ты рисуешь свои диаграммы или виджет яндекс-карт, на которых можно размещать свои метки и подписи. Мне это нужно для отрисовки планов этажа и размещения на них элементов, подсветки зон и т. д.

В нпм по запросу "canvas" гуглятся соответствующие низкоуровневые штуки, по "floor plan" какие-то непонятные проекты без демок, как найти нужное я хз. Возможно, мне нужна некая рисовалка svg с вставкой элементов поверх, хз. Но делать на голом канвасе или даже на движке карт вроде лифлета кажется сложноватым.
108 1995674
Guys, а нахуя в конструкторе вызывать метод супер, если он не используется на практике? Ну мол дока реакта говорит вызывайте всегда супер когда делаете компонент на классе.
Но пропсы видно в рендере даже если мы не вызываем супер.

Тогда супер для пропсов отпадает, что же остается?
Остается что супер нужен лишь для того что бы зацепить в созданный класс, методы которые прендлежат React.Component? которыми никто не пользуется по сути, у нового класса всегла свои методы.

Правильно я понимаю?
109 1995693
>>1995661
Белое пространство между ними тоже подсвечивает, а не должно.
110 1995695
>>1995693
Шиз все настраивается, читай доку
111 1995697
>>1995674
Это чтобы ты помнил что работаешь на супер фреймворке, пасхалка такая...
112 1995699
>>1995695
Но там написано, что мы не можем получить парент из чайлда! Как же быть? Неужели жс?!
113 1995700
>>1995697Да не я уже понял, это что бы this корректно работал в конструкторе, хуета короче ебаная. Я всегда через стрелочные пишу. Да и ваще на хуках. Щас прост копаюсь в мелких нюансах перед собесом
114 1995702
>>1995699Ты че долбаеб? Это по другому делается, через вложенности. Иди штудируй интернет, ты еще зеленый для этого треда
115 1995704
>>1995662
three.js
116 1995716
>>1995702
<body>
<nav><div /></nav>
<nav><div /></nav>
<nav><div /></nav>
</body>

При наведении на любой див, подсвечиваются только дивы. Тело не трогаешь.
117 1995738
>>1995704
Выглядит как огромный и сложный 3д-движок, ты ничего не перепутал?
118 1995748
>>1995738
Покрывает все твои хотелки. А на готовенькое ты не в тот язык пришел.
image.png1,9 Мб, 1024x1300
119 1995752
>>1995748

>на готовенькое ты не в тот язык пришел


>JS Thread

120 1995754
>>1995748
Так и канвас все мои хотелки покрывает. И голый жс. И голый ассемблер тоже.
121 1995757
>>1995754
Ну так выбери уже что-нибудь одно и не выебуйся.
122 1995758
>>1995757
>>1995754
Ясно, а можно по делу советов?
>>1995752
Вот-вот.
123 1995784
>>1995716

><div />


Можешь пройти нахуй.
124 1995786
>>1995752
Так жс - вечное запиливание костылей.
125 1995795
>>1995786
Если мне нужно будет пилить костыли я открою вим и буду писать слешинклуд.
126 1995814
>>1995784

>пук среньк


Не сделать без жса. Не сделать.
127 1995854
>>1995814
Ты и html тэг без ЖСа не можешь написать.
128 1995902
Привет двач. Сейчас будет конченная просьба, но тем не менее.
Я 6 лет пишу на ноде, уже дохуя сениор с зп 5к, но есть одна толстая вонючая проблема. Я не понимаю ООП, SOLID и такие простые штуки как DI.
Как, сука, это понять? Может кто-то заделиться материалом для ну совсем тупых?
129 1995912
MongoDB
130 1995913
>>1995902
Хирьянов
131 1995915
>>1995597
Халп, у меня уже пердак горит на этом обоссаном npm нихуя не работает.
132 1995929
>>1995902
Нахуй тебе ООП в жаваскрипте? Если до 5к дорос на ноде без ООП, то может этот ООП нахуй не нужен был?
133 1995932
>>1995913
Спасибо, гляну

>>1995929
На собесах стыдно когда по основам ебут. Тоже считаю что ооп в хуй ебать можно, но идти в ТЛы без понимания такой хуйни нельзя
image.png20 Кб, 300x188
134 1995939
>>1993705 (OP)
Не понимаю почему при перетаскивании появляется просто запрещающий значок без самого элемента, а должно быть как на пике
взял тутор даже, там на видео с таким же кодом видно элемент, у меня просто значок
гуглил дев мозила, там в апи днд ничего про такое не сказано
>>1995902

>ООП


я сам сейчас начинаю пользоваться тайпскриптом, не понимаю зачем, но много где нужен
Наверное стоит поделать что-то простенькое типа свое апи для туду листа какого-нибудь + почитать что-то типа введения в ооп
135 1995941
>>1994350
Так по ссылке странице, а не аудио
https://notificationsounds.com/storage/sounds/file-sounds-767-arpeggio.mp3
136 1995942
>>1995915
https://www.npmjs.com/package/ibm-watson
Любая либа, которая не будет отправлять твою хуйню куда-то там в какие-то сервисы будет работать оффлаен. Посмотри вот это, глянь как происходит рекогнишен. Если это тупо апишка, то в оффлайне не оживёт. В остальном тебе похуй куда ставить потобные тулзы - на экспресс ебучий, нест, хапи или электрон - и то и то нода
137 1995957
>>1995607
Стили в head, скрипт перед закрытием body, всё ок
Потестил с другими тегами и параметрами, та же фигня. Есть одна безумная теория, что в DOM, с которым я работаю, значения стилей по умолчанию всегда "", и меняются только когда я начинаю с ними работать. Я шизик, или такое возможно?
138 1995965
>>1995915
Вообще наверное в оффлайне это залупа полная, у тебя в любом случае будет какая-то апишка, которая будет всю эту хуйню слать в какой-то сервис, который тебе уже будет отправлять результат обработки, либо ты просто добавишь толстую жирную либу в свой проект. Не надо так. В зависимости от того, насколько критичен спич рекогнишен можно либо использовать апишки под это дело
https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition
либо изъебнуться и прикрутить что-то работающее локально, либо еще больше изъебнуться и прикрутить third party на каких-то сях или пистоне и реализовать интерфейс общения с этой залупой. Но в последнем случае будет высока вероятность, что ты сделаешь велосипед и легче будет поискать что-то готовое. Но с третьей блять стороны есть вероятность что это готовое будет дырявое и нести для твоего проекта потенциальную опасность, поэтому три раза подумай, и уже потом добавляй новую говнолибу в свой проект
>>1995942 -кун
Screenshot from 2021-04-14 17-43-58.png60 Кб, 857x518
139 1995984
Жив ли ембер в 2021? Стоит ли на него перекатываться? Предлагают перекатиться, но я хз стоит ли проманивать ривакт.
140 1995989
>>1995984
Жив, но не стоит. Реакт ебош дальше, сейчас на реактовиков ёбнутый спрос, не распыляйся
141 1996008
>>1995989
Спасибо. Просто если загуглить ember 2021, то дохуя хвалебных статей от емберодрочеров.
142 1996013
>>1995957
Я сейчас проверил, там в style вообще пусто, то есть не пусто, а у всех параметров пустая строка. Втф.
143 1996020
>>1996008
Ну пусть дальше дрочат, тебе-то что? Реакт популярнее и востребованнее, это все что тебе надо
144 1996030
>>1995957
Похоже style это именно стили на конкретном элементе а не ксс. Тебе немножко надо переписать логику: добавляй и убирай классы, а не напрямую стиль.
145 1996050
>>1994934
Так, чтобы ДОМу со стилями работать, надо сперва распарсить стили из ксс и прикрутить к элементу, а потом уже считывать значение. Ты можешь проверить это, смотря на элемент в ДОМе - значение появится только после нажатия кнопки.
Соответственно до вызова `style` на элементе никакого значения нет и нужно сперва вызвать `getComputedStyle()`, чтобы его присвоить.
Именно поэтому любой подход, дрочащий стили напрямую через ДОМ - всегда лютый оверхед по сравнению с манипуляцией строки класса или других аттрибутов.
TC39 дал им CSS, который всегда работает на парралельном потоке и ускоряется видимокартой, крась блять кнопки им. Говорит не хочу красить кнопки списком стилей, хочу жрать говно и красить кнопки через костыльную ассинхронщину на основном потоке. И это фронтэндеры блять? Пидоры это, а не фронтэндеры.
А насчёт сохранения состояния кнопки без бэкенда, тут только `localStorage` поможет.
146 1996052
>>1995939
Тайпскрипт не значит ооп
147 1996065
>>1996020
Я не споро, анон. Просто финская фирма предлагает перекатиться удаленно к ним на ембер. И периодически вакансии мелькают с ним и сразу в описании ваканси обычно пишут ЕМБЕР ЭТО ОХУЕННО, МЫ РАССКАЖЕМ ПОЧЕМУ ЕМБЕР ОХУЕННЫЙ. Но я вот не особо задумывался правда ли это, а сейчас задумался и ты вот говоришь что ембер говно и статистика тоже не даст соврать. Судя по всему это скоро новый легаси.
148 1996074
>>1996052
А толку от него тогда?
149 1996087
>>1996065
Это уже легаси. Эмбер может прекрасно ложиться на их проект, все такое, но по факту Эмбер нахуй не нужен. Он может и не быть говном, но это никак не поменяет того факта что тебе выгоднее реакт.
У нас на проекте используется hapi. Это сука пиздец, от него блевать хочется. Но архитектор залупится писать новые сервисы на чем угодно кроме него, мол, нихуя не знаю, хапи заебись, остальные фреймворки нинужны.
С эмбером мб та же история и там такой же мамонт сидит и залупится юзать реакт. так-то реакт тоже говно и мб он это прекрасно понимает и поэтому топит за эмбер, но с финансовой стороны вопроса это никак не меняет тот факт, что реакт востребованнее и дороже.
150 1996126
>>1996074
Типы
132321321321123123.png85 Кб, 1551x867
151 1996131
Аноны приветик. Как быстро ебашить сайтики типо такого?
sorbet.org

Я так понля это что то типо vue но за дизайн что отвечает? типо css фреймворк какой то?
152 1996134
>>1996131
Это называется html/css.
153 1996135
>>1996131
А что тут особенного? Я такую хуйню часа за пол на чистом хтмл+цсс сверстаю.
154 1996143
>>1996135
>>1996134
Есть гайды? как делать именно такие няшные кнопки и верстку?
все равно есть ощущение что они используют ккакой то фреймворк
155 1996148
>>1996143
Академию смотри наверное, я хз.
156 1996149
>>1996143
Делается через фреймворки `border-radius` и `background-color`.
157 1996168
>>1996149
душнила
1616874703136.jpg54 Кб, 444x580
158 1996173

>душнила

159 1996220
>>1996131
укради где-то курс анжелы ю беком э фулл стак веб девелопер, блок с хтмл+цсс, там примерно такой сайт пошагово делают
160 1996392
Коллеги, такой вопросец: имеется типикал массив объектов типа {id:intiger, name:string}.
Нужно удалить из него объект, зная только индекс.
Обычно я использую такой подход - https://jsfiddle.net/murbhpek/1/
Или есть более красивое/удобное решение?
161 1996401
>>1996392
findIndex/filter
162 1996402
>>1996392
Через рор это не делается?
нюфак
163 1996415
>>1996401
Да так короче, спс.
164 1996426
допустим я делаю сайт и использую какую нибудь стороннюю либу
есть ли какая нибудь умная тулза которая выкинет из кода этой либы все то что я в своем основном проекте не использовал? то есть уменьшит размер js файла
165 1996432
>>1996426
webpack
166 1996437
>>1996432
по описанию он именно собирает в кучу модули
он разве может удалить прям из кода этих модулей все лишнее?
168 1996446
>>1996437
Зависит от модуля и как ты его импортируешь/устанавливаешь в проект.
169 1996448
>>1996444
пасибочки :3
170 1996449
>>1996446
да тупо пишу import PIXI.js
image.png99 Кб, 887x738
171 1996450
>>1996449
А придется нет
172 1996455
>>1996449
Тут вебпук не будет волшебной таблеткой, так как у пикси даже дефолтного импорта нет. С пикси надо пердолиться по-особому и ставить отдельные пакеты вида `@pixi/${name}`. Скорее всего придётся выделить отдельный файл для реэкспорта таких пакетов с одного места, если тебе конечно писать отдельный импорт каждый раз не норм.
173 1996457
>>1996455
чо то сложновато
наверно выберу пикси.мин версию а потом в вебпаке еще выберу продакшен минификацию
174 1996461
>>1995662
бамп
175 1996462
>>1996426
С Пикси не получится, если только не делать кастом билд.

мимо 3 года пикси + тс господин
176 1996465
>>1995902
Значит ты не сеньор нихуя.
177 1996466
>>1996462
может ты мне подскажешь
мне пикси нужен для создания viewport на канвасе чтобы можно было его зумить приближать и т д. Впоследствии будет пиксельный редактор типо. Я ведь не ошибся в выборе? я посомтрел и мин версия пикси примерно 500кб плохо конечно но что поделаешь...
178 1996964
>>1996149
А как же css фреймворк box-shadow?
179 1997025
>>1995902
Я знаю прямо то что нужно тебе, но не скажу, потому что на дваче нет лички, а плодить конкурентов разбалтывая годноту я не хочу.
180 1997036
>>1997025

>а плодить конкурентов разбалтывая годноту я не хочу.


Типикал токсик пидораха.
ВСЕ СЕБЕ, ДОМА ПРИХОДИТСЯ, КРУГОМ ВРАГИ, НАМ ВСЕ ЧУЖИМ НИЧЕГО, УХ ПРОВАЛИТЬСЯ БЫ ЭТОМУ ПЕТЬКЕ! ЛИШЬ БЫ НАШ САРАЙ ВЕТРОМ НЕ СДУЛО, УИИИИ ХРЮК ХРЮК. СМОТРИ КАКУЮ ШТУЧКУ ПРИНЕСЛА ТАКОЙ НИ У КОГО НЕТ!
Как хорошо что за бугром люди живут а не орки.
181 1997043
>>1996149
Вообще то это паттерны нызывается, есть еще инлайновые гайд-лайны
и флексовые митапы.
Ну и смузи элементы тож норм.
182 1997112
>>1996013
Вот-вот, я об этом же
>>1996030
Да, наверное так будет удобнее, и в целом код станет понятнее. Я буквально только вчера увидел такую реализацию, самому как-то в голову не приходило, что можно вешать стили на классы и навешивать сами классы
183 1997113
>>1995902
Лучшее краткое объяснение того, что такое ООП(и ФП): http://blog.cleancoder.com/uncle-bob/2018/04/13/FPvsOO.html
Принципы SOLID простым языком: http://blog.cleancoder.com/uncle-bob/2020/10/18/Solid-Relevance.html

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

Например, если ты хочешь говорить с базой данных приложения, то без DI ты это сделать можешь только через import db from "db", привязавшись таким образом к той конкретной имплементации, которая лежит в том конкретном файле. С DI ты избавляешься от этого импорта и получаешь БД из какого-то другого места(в рантайме или через контейнер) привязываясь только к публичному интерфейсу, который может реализовать любая имплементация.

Более того, вся концепция ООП была придумана и существует только для того, чтобы DI реализовывать, потому что это настолько важный и удобный паттерн.
184 1997122
Какая есть простенькая либа для валидации JSON на клиенте? Нужно чисто проверка полей а-ля required: True, empty: False, type: number. AJV же больше для сервер-сайда заточен?
download.jpeg5 Кб, 194x260
185 1997130
186 1997278
Пацаны как думаете если уже сам в ручную могу с любыми api работать, вывести инфу, настроить поиск, собрать электронный магазин на коленке, редукс сторы и хуки тож пишу уже по памяти, базовый js всякие замыкания, эвентлупы и прочую дрисню знаю и подавно. Есть смысл аплаиться на джунчика? Я знаю точно что да, но мне вот пришла в голову мысль угареть по алгоритамам на пару месяцев, книжки и туториалы посмотреть что бы в ооп шпрехать сильнее. Есть смысл алгоритмы изучать, или реакто макакам на алгоритмы похуй?
187 1997280
>>1997278
Или лучше два месяца потратить на ковыряние реакта дальше?
188 1997284
>>1997278
На алгоритмы в целом похер, самые нужные все уже давно придуманы и лежат в библиотеках. Лучше учись в чистый код, рефакторинг, технологии и методологии разработки ПО.
189 1997293
>>1997284
Ok spasibo
image1,1 Мб, 942x1330
190 1997294
>>1997284
Кстати насчет чистого кода, в тему будет эта книжка, или другие какие интересные есть?
Или ты вообще про другое?
191 1997342
>>1997284
Эти вещи изучать лучше на практике. То есть - пиздовать на джуна.
1618509482752.jpg34 Кб, 277x396
192 1997349
Привет, а вы можете показать какие-нибудь свои работы? Похуй даже скрин пойдет, а то я вообще не знаю с чего начать и к чему стремиться. Идей нуль.
193 1997350
>>1997349
Смотришь на любой популярный проект и делаешь его клон. Как можешь так и делаешь
194 1997356
>>1997350
А дальше что? Что мне с ним делать, если я даже не знаю с какой стороны подходить? Я только сегодня узнал, что макеты отдельные люди делают.
195 1997360
>>1997356
Скачай с торента курсы и посмотри че там делают
196 1997374
>>1997349
Может за тебя ещë и работу сделать? Работай, пëс.
197 1997468
>>1997349
Тут нет ни у кого примеров работ. На дваче одни теоретики сидят.
Миллионы никогда не работавших вкатывальщиков под NDA бога.
198 1997499
Реально ли выучить реакт за ночь?
199 1997513
>>1997499
10 минут достаточно. Че там учить, это же просто рендер-функция
12231312312.png25 Кб, 736x623
200 1997885
https://www.npmjs.com/package/idb
Это код с официальной страницы пакета IDB для упрощения работы с indexedDB. Вопрос на миллион долларов: что здесь не так?
Поясняю: может быть я пиздец тупой и вижу ошибку там, где ее нет. А может быть все норм и я просто не понимаю каких-то осоебнностей использования языка. Короче, полчаса-час на ответы, либо до трех первых ответов, либо до первого угадавшего, а потом посмотрим, обосрался ли я.
201 1997887
>>1997280
я конечно дико извиняюсь но что в этом реакте ковырять эти два месяца?
202 1997904
>>1997887
Проектики разные в портфолио пилить, хотя у меня их уже 5 штук спа в портфолио полноценных. Да пришел к выводу что буду готовиться к собесам месяц, потом пойду их проходить. У меня такое ощущение что вот чегото не хватает сейчас, а именно на собесе и зададут такие вопросы которые я не знаю, поэтому постоянно готовлюсь дотошно что бы быть сильным на вопросах. Но уже складывается ощущение что можно и на мидла идти кек, короче свои тараканы в голове в плане подготовки, не хочу выглядеть как васян вкатун с курсов, которых 90% и которые сливаются на собесах
203 1997909
>>1997278
Структуры освой, для ООП можешь паттерны глянуть.
204 1997925
>>1997885

>что бы вы улучшили в этом коде?

205 1997930
>>1997904

>на собесе и зададут такие вопросы которые я не знаю


Поэтому нужно брать количеством, а не выжидать конкретную "свою" вакансию. Джуну надо каждый день подаваться куда только можно. А так можно вечно ждать сидеть, это глупо.
206 1997941
>>1995662
Анон, помогай. Не хочу на каком-нибудь лифлете или опенлеерс низкоуровневую хуйню городить.
208 1997964
209 1997999
>>1993705 (OP)
Как игнорировать собственное превосходство над другими кодерками и нормально работать? Вот не могу бля нормально продолжать кодить на жс, пока осознаю что нахожусь много выше всякого быдла на жаве, питонах, шарпе и прочем говне. Всякий раз как юзаю стрелочную функцию, ахуеваю от удобства и продвинутости жс по сравнению со всякими быдлоподелками
210 1998003
Я, видимо, чего-то не понимаю. Пытаюсь освоить indexedDB с idb. Я не могу понять как мне этим пользоваться. Вот я создал базу. Теперь я хочу написать функцию, которая принимает аргумент и сует его в базу. Везде в доках делают так:
async function newDB() {
const database = await openDB("huita", 1, {
//createStore
//createIndex
//blahblahblah
});
//реализация CRUD
await database.add("huita", someShit)
await database.delete("huita", someShit)
...
}

Я один искренне не понимаю, как потом этим пользоваться? Почему везде круд пишут внутри функции-создателя БД. Окей, известно, что в ЖС функция это объект. То есть блять мне на полном серьезе предлагают потом к круду лезть через жопу путем вызова newDB.functionAdd()? Я просто не понимаю как этим пользоваться что куда писать?
Более здравым мне кажется вариант с разбиением этой хуйни на куски. Типо:
async function newDB() {
const db = await openDB("huita", 1, {
//createStore
//createIndex
//blahblahblah
});
}

async function addToDB(someShit) {
const database = await openDB("huita", 1, {
await database.add("huita", someShit)
}); и т.д.
}

Но этого почему-то нигде нет. И даже в полном примере Article store просто хуячат все в создающую функцию без задней мысли, будто бы все операции с базой проводятся из этого одного файла, будто бы не может возникнуть необходимость из рандомного файла сделать обращение к базе, чтобы, например, что-то считать. Я просто блять не понимаю. И нигде в интернете ничего внятно не объясняется, у пакета миллион загрузок в неделю и 0 инфы. Может быть кто-то с этой хуйней работал? Дайте код посмотреть.
210 1998003
Я, видимо, чего-то не понимаю. Пытаюсь освоить indexedDB с idb. Я не могу понять как мне этим пользоваться. Вот я создал базу. Теперь я хочу написать функцию, которая принимает аргумент и сует его в базу. Везде в доках делают так:
async function newDB() {
const database = await openDB("huita", 1, {
//createStore
//createIndex
//blahblahblah
});
//реализация CRUD
await database.add("huita", someShit)
await database.delete("huita", someShit)
...
}

Я один искренне не понимаю, как потом этим пользоваться? Почему везде круд пишут внутри функции-создателя БД. Окей, известно, что в ЖС функция это объект. То есть блять мне на полном серьезе предлагают потом к круду лезть через жопу путем вызова newDB.functionAdd()? Я просто не понимаю как этим пользоваться что куда писать?
Более здравым мне кажется вариант с разбиением этой хуйни на куски. Типо:
async function newDB() {
const db = await openDB("huita", 1, {
//createStore
//createIndex
//blahblahblah
});
}

async function addToDB(someShit) {
const database = await openDB("huita", 1, {
await database.add("huita", someShit)
}); и т.д.
}

Но этого почему-то нигде нет. И даже в полном примере Article store просто хуячат все в создающую функцию без задней мысли, будто бы все операции с базой проводятся из этого одного файла, будто бы не может возникнуть необходимость из рандомного файла сделать обращение к базе, чтобы, например, что-то считать. Я просто блять не понимаю. И нигде в интернете ничего внятно не объясняется, у пакета миллион загрузок в неделю и 0 инфы. Может быть кто-то с этой хуйней работал? Дайте код посмотреть.
Dirty-Tony-Ryan-Allen-Asian-Guy-In-Suit-With-A-Big-Asian-Co[...].jpg184 Кб, 1626x1080
211 1998005
212 1998125
Есть у кого решение проблемы для nodejs+express? Я должен пост обработать с кодировкой win-1251, мне его присылают, мой сервер сразу выбрасывает ошибку UnsupportedMediaTypeError: unsupported charset "WINDOWS-1251". То есть он ничего не успевает сделать. Как обработать пост с такой кодировкой на express?
214 1998150
Есть приложуха на рякте. Надо её натянуть на электрон прикрутив несколько фич с последнего. Посоветуйте статей каких-нибудь как это лучше всего и безболезненно сделать.
215 1998175
Только что узнал что в MongoDB нет автоинкремента (лол). Я уверен что над Монго работали не белые люди.
216 1998227
Сап, помогите начинающему плз.

Есть две функции, которые делают то же самое - таймер обратного отсчета. Первая универсальная, у нее есть аргументы minutes, seconds. Вторая работает напрямую со значением из глобал скоупа (переменными pomodoroMinutes, pomodoroSeconds).

Логика у функций одинаковая, но вторая работает нормально, а первая как-то странно. Вторая выводит как надо: "1:59", "1:58", ... , "0:00". Первая выводит: "1:59", "1:59", ... , "1:59"

И не понимаю, это из-за интервала нельзя в функции значение из глобал скоупа менять или почему так нахуй? В первой функции проверял minutes === pomodoroMinutes, когда вызываешь ее с pomodoroMinutes, но эта хуйня все равно не работает!

https://jsbin.com/nuxedalaki/1/edit?js,console
217 1998231
>>1998227

Прикрепил не тот жсбин. Вот последний: https://jsbin.com/bijiquxixu/1/edit?js,console
218 1998237
>>1998175
Инкрементные идентификаторы - плохая идея. Чтобы нельзя было проитерировать всех твоих клиентов используется UUUID
219 1998263
Ну сделал я эту вашу тудушку спустя час чтения за реахт. Дальше то что?
220 1998265
>>1998263
Вставай на колени и открывай рот
221 1998268
>>1998265
Неосилятор, плиз.
222 1998330
>>1998237
Ебать ты долбоеб братишка. Хуже дебила, который для идентификации данных лепит где попало uuid вместо автоинкремента, может быть только червь-пидор. Особенно приятно работать в админке с таким дерьмищем, когда ты не можешь посмотреть заказ 123, тебе нужно смотреть заказ 22af49d4-8e7e-4666-8bd6-d6e0f6b41ed6 и хочется ебало набить разработчику.

uuid имеет смысл использовать только если данные сильно публичные, да и то не во всех случаях, да и то не uuid, а что-нибудь более читаемое.
223 1998332
Есть приложуха, которая работает с indexedDB. Как мне правильнее организовать логику работы? Вносить все изменения в стейт и потом просто сохранять их в БД, или все операции проводить с БД, как если бы это была полноценная серверная БД, а потом делать setState(getDataFromBD)?
image121 Кб, 2374x370
224 1998413
Че за хуйня анон? блок не правильно закрывается, в шаблонной строке, вчера все норм было, седня смотрю усы не правильно видят друг-друга, код вроде работает, но это парсер наверно хуй забивает и пропускает. Но разметка говорит что есть вопросики.

Собсно на пике. подчеркнул красной полоской.

Es lint колбасит или шо? Не моху понять нихуя че он ругается!
image.png424 Кб, 772x567
225 1998427
>>1998332
Хорошо что ты спросил
226 1998430
>>1998413
Так наведи на ошибку свой указатель то, там в тултипе обычно пишут кто из плагинов недоволен
image4 Кб, 66x94
227 1998432
>>1998430
Как таковой ошибки нет, просто плагин ругается как буд-то скобки не закрыты, и выдает одну красную в конце.
Я удалил часть этой шаблонной строки - все заебись, вставляюю ее обратно опять разметка в коде едет, хз че за баг, но я почитал на мдн, с шаблонной строкой все праввильно делаю, походу vs code тупит. Я даж переписал строку заного, нихуя не поменялось. ДУмал мож пробел какой закрался.
228 1998437
>>1997955
>>1997964
Но я не ищу веб-геометрию, анон, спасибо конечно, добра тебе, но я вообще ни разу не ищу веб-геометрию на вебгл, я вообще не ищу параметризованного рисования примитивов, иначе бы взял канвас или хотя бы д3 какой-нибудь. Я ищу либу для отрисовки векторного фона по определенной сетке, поверх которого буду накладывать другие векторные объекты, по наведению-нажатию на которые буду выводить тултипы (или еще как-то обрабатывать эти события), и все это с приблизить-отдалить-влево-вправо-вверх-вниз. Так, как если бы мне надо было отрисовать план здания. Что-то вроде я находил тут
https://codepen.io/zachdunn/pen/VvRXdP
но визуально как-то стремно смотрится (периодически залезаешь за край карты, масштабирование смазанное и т. д.). Если кто не поленится смотреть - замените https на http
тут
https://gojs.net/latest/projects/floorplanner/FloorPlanner.html
и на хабре советовали мертвые ссылки на либы для отрисовки svg
https://qna.habr.com/q/372165
Я хотел нечто подобное, только в более вылизанном виде. >>1995662
Вот типа того, да, вот этот пример особенно.
https://qna.habr.com/q/372165
но canvas... У них, я так понял, не решена проблема с z-index, а перерисовывать заново при каждом изменении - ну хуй его знает... Особенно, когда надо поверх пихать плашки всякие всплывающие, тексты и т. д.
229 1998438
>>1998432
А, ну так это bracket colorizer значит с ума сходит
Ну ты все равно такие строки то не пиши, нечитабельно же, это код, а не фильм Нолана
230 1998441
>>1998437
На форчане спроси, там подскажут-
https://boards.4channel.org/g/thread/81168658
https://boards.4channel.org/g/thread/81176255
или на SO создай тему
231 1998449
>>1998437
По ссылкам не ходил, но прост попробуй на лифлете, там можно поменять геокарту на твою кастомную карту, и есть плагины для рисования полигончиков почти без багов.
Ну и нет ничего проблемного в перерисовке 60к/с, твою видеокарту именно для этого и делали
232 1998465
>>1998132
Вот типа того, да, вот этот пример особенно.
http://fabricjs.com/build-minimap
но canvas... У них, я так понял, не решена проблема с z-index, а перерисовывать заново при каждом изменении - ну хуй его знает... Особенно, когда надо поверх пихать плашки всякие всплывающие, тексты и т. д.
>>1998449
Да я хотел что-то окологотовое. Буду смотреть на фабрик.жс, наверное, выглядит охуенно.
233 1998484
Не по6имаю нахуя высрали хук с контекстом если есть редукс?
Зачем они плодят сущности?
234 1998499
Курсы на Hexlet по NodeJS хорошие для вката?
235 1998580
>>1998484
Изкаропки. Если у тебя не очень большое приложение и нету кучи сайдэффектов, то контекст вполне себе интересная штучка.
236 1998582
>>1998484

>Зачем они плодят сущности?


А вообще это суть фронтенда. Придумать для одной задачи хуеву тучу инструментов, которые со временем станут депрекейтед.
237 1998596
>>1998330
Нихуя тебя подорвало, свидетель инкрементных индикаторов.
Если жаба душит лишние символы юзать - возьми рандомный код на 5-7 латинских букв.
238 1998607
>>1998484
Потому что редух - ехал бойлерплейт через бойлерплейт.
239 1998616
>>1998332
Хуярить свой модуль, который в зависимости от поддержки indexedDB будет хранить состояние в редуксе/indexedDB/локалсторэдж, а компоненты будут только пропукивать объекты в специально выделенные функции, от результата вызова которых зависит состояние компонента.
240 1998625
>>1998227
Ты берешь примитивное значение из глобала и передаешь аргументом в функцию. Функция создает новую ссылку на свою переменную. Ты ее меняешь и она пропадает после выхода из контекста.

Вот тебе часы наоборот. https://replit.com/@CharonIV/VeneratedTastyProperty#index.js

Либо ищи библу
241 1998645
Какие есть хорошие видеокурсы с торрента?
242 1998656
как аргументировать команду перейти на хуки с классов, кроме как что классы это устаревшее говно и ооп вообще для пидоров? есть ли более нормальные аргументы?
243 1998658
>>1998656
Никак, продолжайте гадать над значением this и ритуально биндить методы класса.
244 1998659
>>1998656
Код чище, меньше кода, лучше developer experience, работать с хуками проще и удобнее
245 1998839
Насколько вообще оправдано юзать стрелочные функции 24\7\365. Хуячить их везде, где нужно и где не нужно. Забыть нахуй что существует слово function и хуярить исключительно стрелочные?
Насколько сильно стрелочные функции влияют на производительность?
246 1998864
>>1998839
шиз, по необходиомости, везде не получится юзать, читай книжки в шапке
247 1998874
>>1998656
Классовые компоненты имеют свои преимущества. Например любые методы, которые ты объявляешь не будут пересоздаваться при каждом чихе. В функциональном компоненте это надо все оборачивать в useCallback. Нужно придумывать костыли, чтобы имитировать первый рендер и последующие. Если копнуть уже глубже, когда куча методов не было дипрекейтед, то там можно так гибко настроить, что сейчас будет полной головной болью.

Если я не ошибаюсь, то уже вроде придумали решение, что методы сразу биндятся в последней версии реакта в конструкторе.
248 1998885
У меня в проекте модульное ксс, много модулей и один отдельный ксс "простой" файл. Вебпак настроен чтобы компилировать и модули и не модули. Это норм, что мне этот "простой" файл приходится инклюдить в один из модулей, чтобы с него стили брались? Разве вебпак не должен автоматически компилировать все, не важно заинклюдил я его или нет?
249 1998894
>>1998874

>Например любые методы, которые ты объявляешь не будут пересоздаваться при каждом чихе


Но ведь денчик сказал что функции относятся к рендеру, а не к инстансу

>надо все оборачивать в useCallback


А может и не надо

>имитировать первый рендер и последующие


Почему это должно значить? Надо ведь декларативненько, а не "вот сейчас компонент отрендерится в первый раз и тут мы..."

>придумали решение, что методы сразу биндятся


Спасибо, уже не надо
250 1998898
>>1998885
Не должен. Сделай импорт в рут компоненте или скажи вебпаку явно, что этот файл надо тоже собирать
251 1998931
И так начал учить реакт. Попробовал дергать api по примеру с https://ru.reactjs.org/docs/faq-ajax.html , норм. Как теперь, последовательно, отправить 2 запрос добавив в УРЛ параметр полученный в первом запросе( к примеру ключ,токен,фильтр и.тд.)?
252 1998977
>>1998931

>И так


Как?
253 1998987
>>1998931
Что тебе мешает в then сделать следующий запрос?
254 1998988
>>1993705 (OP)
Все знают что в жс-системе надо быть модным подтянутым пацанчиком, а то тебя обоссут и определят в петушиный угол 3 пхпшникам, поэтому есть вопрос: зашкварно ли в 2021 писать function для объявления функций?
255 1998991
>>1998656
Не надо никого уговаривать, пусть сидят в своём болотце классов пока код не станет совсем легаси-помойкой.

>>1998874

>Нужно придумывать костыли, чтобы имитировать первый рендер и последующие.


А может, проблема не в реакте, а в отсутствии логики у разработчиков, которые пишут говно и неспособности читать?
256 1998993
>>1998988
Ты бы сходил и почитал разницу, ёба. Стрелки - это не синтактический сахар для function, это ДРУГОЕ.
257 1999000
>>1998987
Та думал так, только как тогда сделать проверку на ошибки

>if(error===null)



?

>>1998977
Нахожу тз
258 1999003
>>1998993
Ебанашка, кто в 2021 юзает this в функциях, м?
недофреймворки, форсирующие недоооп, применяемые полутора анонами меня не интересуют
259 1999011
У меня в приложении кондишонал рендеринг, типо такого:
{условие ? компонент : затычка}
Есть проблема. При обновлении страницы на 1 наносекунду появляется затычка и тут же заменяется на компонент. Лично меня это раздражает, хотя я понимаю, что это потому что условие не выполняется мгновенно. Это можно как-нибудь пофиксить или просто хуй забить?
260 1999036
>>1999000
Для ошибок есть catch, для проверка запоса в then можешь использовать response && response чтобы андифайнд не принять
261 1999039
>>1999003
Ты че кретин? Ты вообще не вкуриваешь про что говоришь, просто съеби зеленый
262 1999042
>>1999011
Промис напиши, в then укажи прелоадер, then будет срабатывать только когда пройдет проверка натзагрузку, и прилоадер лишний раз не покажется
263 1999054
>>1999042
Еще можно в дид компонент маунт не вставлять прелоадер, а вставить его в компонент апдейт, то при первой загрузке страницы он тоже не будет показываться, вариаций много короче
264 1999370
>>1999011
Сделать так, чтобы условие выполнялось мгновенно. Не благодари.
265 1999374
Сап, сломал всю голову, но не могу понять как это сделать, если кто то подскажет в каком направлении двигаться буду очень благодарен.

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

1|1|2
1|2|2
1|1|2

То есть, необходимо найти цифру 2, по которой кликнули.
Пробовал создать многомерный массив, и проходить по нему циклом, но не получилось, встал вопрос, каким образом искать элемент сверху и снизу. Может есть какой то другой способ нахождения примыкающих друг другу элементов, чтобы были найдены элементы по горизонтали и по вертикали?
266 1999444
>>1999374
Ну смотри, я вообще ни разу не математик, а реакт-формодрочер, поэтому мое решение скорей всего будет неоптимальным. Но допустим смотри, мы щелкаем на самой правой верхней двойке. Это будет грубо говоря по координатам 3,1 (3 по горизонтали, 1 по вертикали). Нужно проверять соседние координаты, соответствуют ли они кликаемому числу. То есть какие соседние элементы у 3,1? это 2,1 и 3,2. Думаю мысль понятна.
267 1999449
>>1999444
Соседние координаты от щелчка если мы за основу берем х,y (без диагонали) это:
1) (x, y-1)
2) (x+1, y)
3) (x, y+1)
4) (x-1, y)
Ну и делаешь проверку чтобы ни одна координата не было меньше 0.
268 1999480
>>1998656
Что за проект?
Размер кодовой базы?
Твой опыт разработки?
Кто ты по жизни в этой команде?
269 1999488
>>1999480
Да это очередной залетный зумерок. 2 месяца на проекте посидел, видосики на ютабе посмотрел и все - гуру нахуй, можно уже "тупым дедам" советовать что и как надо делать
Примечательно что предложить что-то такие клованы всегда рады, но реализовывать - это не к ним, пусть кто-нибудь другой пытается воплотить их великую мечту в реальность и переписать 5 десятков модулей под новый стиль
270 1999539
>>1998656

>классы это устаревшее говно и ооп вообще для пидоров


Отличные аргументы из категории "инфлюенсер так сказал"
271 1999545
>>1999539
Интересно как он будет пытаться привязать это к тому что весь ангуляр например априори построен на TS и на классах
273 1999550
Пиздец тут копрофилы на классы слетелись
274 1999551
>>1998885
Схуёв ли он должен импортировать файлы за пределами бандла?
275 1999552
>>1999549
Блохастый, ты понимаешь вообще каково это переписывать уже готовый проект под свои хотелки? Хоть делал когда-то такое сам, а?
276 1999553
>>1999011
{условие && компонент}
Не благодари.
277 1999555
>>1999552
Не переписывать а потихоньку внедрять хуки. То есть новый функционал делать полностью с хуками. Старый пусть на классах остается. В чем проблема?
278 1999561
>>1999555
Пердеды не смогут переварить `function` где либо в проекте.
279 1999590
>>1999561
пусть пишут на const Component = ({}) => {}

Тут нет слова function

Уже три года как реакт дал им божественные хуки с возможностью дописывать кастомные хуки, но нет, они будут обмазываться классами. Хотя достаточно обновить ривакт до 16.8+ и просто начинать новые компоненты писать на хуках, а старые или переписывать по мере возможности или вообще оставить как есть.
280 1999635
>>1999553
Охуенно ты придумал, конечно, все равно что если бы никакого условия и не было. А заглушку Пушкин рендерить будет?
281 1999649
>>1999635
Так ты же плачешься, что заглушка рендерится.
282 1999728
>>1999011
Флаг проверяй, isFirstLoad к примеру, в useEffect сбрасывай
283 1999742
Сап ангулярщики подскажите как мне подменять компоненты в build-time ?

те есть у меня компонент core/search-form
я хочу сбилдить фронт для клиента, у которого другие требования к форме поиска ( другая верстка/ф-ционал )
сделал пакет clientName в нем реализовал форму поиска как бы мне подцепить ее в движок вместо старой?

нагуглил это
https://stackoverflow.com/questions/43933783/angular-pass-component-to-a-component

проблема остается в том что мне нужно передать новую "измененную форму" с самого верху приложения, у вас в ангуляре есть чето типа реактового контекста для этого?
284 1999743
285 1999745
>>1999742
алсо как вы делаете инпуты ( пропсы компонента ) обязательными?
ну те чтобы если я в верстке пишу <search-form /> он бы мне не давал его отрендерить покуда я не пропишу <search-form lang='ru' /> например ?
286 1999754
>>1998987
ok,получилось,спасибо. ура
Теперь надо будет отсортировать и прикрутить к веб формам.
287 1999773
>>1999742

>чето типа реактового контекста


инжектор

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


никак
288 1999816
>>1999773

> инжектор


https://angular.io/guide/dependency-injection
это? Не вижу инфы как в билд тайме подменить компонент, тут же только сервис можно заинжектить не?

> никак


фу
289 1999921
>>1999742
Я делал через environment. Правда только с сервисами, но думаю так же можно и компоненты.
290 2000068
анчоусы, реквестирую помощь. сейчас делаю тз и там один из пунктов написать свой дейтпикер. то есть полностью на ванилле. без либ, jquery и тп. подскажите алгоритм и как делать то такое вообще? уже много че в инете перекопал но там пиздец какой то. везде jquery ебучий, либо же какие то компонентики для фреймворков. отдельная благодарность если поделитесь линками на готовые/полуготовые вариант
291 2000157
>>2000068
получаешь даты в году (date-fns/moment.js) с разбивкой по месяцам неделям и дням

отрисовываешь в цикле

проблемы?
292 2000189
>>2000157

>без либ

293 2000194
Как описать в тс такой тип:
something: any = {
"строка-ключ": {
"строка-ключ": [строка, еще строки...],
еще много таких пар строка-массив...
},
еще много таких объектов...
}
?
294 2000198
>>2000194
Record
295 2000207
>>2000068
Делай мвс. Контролер принимает инпут (мышь, стрелки) и обновляет модель. Вьюха подписана на обновления модели. Модель простая, это текущая дата в милисекундах. Модель преобразуешь в массив чисел - дни текущей недели. этот массив посылаешь во вьюху при обновлении модели. Контроллер обновляет модель тривиально +-10006060247
296 2000209
>>2000207
+-1000x60x60x24x7
297 2000220
>>2000198
Получается мне надо заранее знать все названия ключей? Хуево чо.
298 2000221
>>2000220
Нет, Record - это когда не знаешь названия ключей
299 2000223
>>2000220
Нет

type ХуйняТип = {
[хуйняИндекс: string]: ХуйняТип
}
300 2000229
>>2000220 - >>2000198
Нет, разобрался:
type MyType = Record<string, Record<string, string[]>>;

Спасибо, котик :3

Однако как дока тайпскрипта подросла.
301 2000232
>>2000157
ну и нахуя собственно говнокодить свой велосипед?

https://pastebin.com/1pMAUu9t
302 2000233
>>2000232
>>2000189
промахнулся
303 2000242
>>2000233
Чел, ты конечно умный дохуя, саглы, но

>без либ


>всё на тайпскрипте

304 2000244
>>2000242
перепиши на ванилу, я пример накидал че ты хочешь и как это получить
305 2000255
>>2000232

>class implements


>static static static


>ts-ignore


Заебись
306 2000258
>>2000232

> LEAP_YEAR_DAYS_COUNT = 364


Лол
image.png14 Кб, 468x102
307 2000261
>>2000232
У всех тс-макак в високосном году дней меньшем, чем в обычном?
308 2000280
>>2000255
в чем проблема со статическими методами?

>ts-ignore


этого не будет если закончить реализацию

> class implements


а тут ты чего порвался?
309 2000300
>>2000232

>бля пишешь ТЗ описываешь интерфейсы и желательно тесты объясняешь разрабу чего от него хочешь


>ждешь


>ждешь


>??


>profit


Мда, вот и дождались
И запомните дети, никогда не пишите календари сами
Capture2.JPG98 Кб, 1366x768
310 2000306
>>2000300

>2 пик


Ебать зачем так сложно ЭТО ЖЕ ПИЗДЕЦ
image.png697 Кб, 722x388
311 2000314
>>2000306
Потому что кручение и верчение этой вашей плонети немношк не совпадает )))
312 2000317
>>2000300
https://pastebin.com/wqhf9DJr

ну за 20 мин на коленке набросал, чего ты ожидаешь
так то я это и сказал

> ну и нахуя собственно говнокодить свой велосипед?



>>2000068
далее реализовываешь new Proxy к результирующему объекту
далее пилишь класс i18n + наследуешься от Calendar и в getYear уже возвращаешь html верстку
313 2000318
>>2000317

> наследуешься от Calendar


всм декоратор пилишь
Вкатышь Золотце 314 2000338
Ребят, я правильно понимаю, что на рынке есть недобор специалистов, а вкатышей перебор и они никому не нужны?

Это же затратно, наверное, среди вот таких вкатышей пик1-3 нормальных искать сам я золотце.

И как вообще дела обстоят с стажировками, они нужны или сразу до джуна пытаться лямку тянуть? И на стажировку попасть еще сложнее чем на джуна?
Вкатышь Золотце 315 2000340
>>2000338
Дополню вопросом. Софт скилы играют решающую роль?
316 2000354
>>1998132
А как нормальный тултип сделать (вылезающая всплывающая подсказка над элементом, у которого сработал ховер, с динамическим контентом внутри, разная для разных элементов)? Гуглятся тухлые ответы на stackoverflow и нерабочие варианты на кодпен.
>>1995662
Бамп, к слову.
image.png261 Кб, 1324x514
317 2000356
>>2000317
Ну нет, просто нет

Особенно интересно как ты в декораторе собрался возвращаемый тип менять
318 2000384
>>2000338
Блять как я же орирую с дебичей которые даже не могут запилить себе резюме на хх или хабр карьере, а хуячат на авито. Я гарантирую что тот пчел в спортивках не вкатится тупо из-за своей фоточки.

>>2000340
Не решающую, но очень важную. Как сказал мне один лид который нанимал людей, лучше взять компанейского приятного середнячка и его прокачать до нормального уровня, чем взять сильного по скилам токсика, который распугает всю команду.
image.png17 Кб, 836x305
319 2000388
Почему в жс-фреймворках такой фетиш на декораторы? Что на фронте что на бэке
Вот пример из Nest.js - создаем Controller путем декорирования класса, но почему не путем наследования? Это ж более логично
320 2000391
>>2000356
convertDayIndexToDayOfWeek < -- тут косякнул, Date.getDay() вернувший 0 это вск а не пн на любых тестах было бы заметно

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



тут ты прав, надо адаптер делать
321 2000399
так, всем спасибо хотя вы отвечали не мне лол. варик с ТС попозже гляну. ебал я эту хуйню своими руками писать пиздец. хорошо что только для тестового такое надо.
>>2000068 - кун
322 2000408
>>2000388
а как сделать DI на наследовании?
323 2000415
>>2000408
Взял и без задней мысли сделал
image.png5 Кб, 604x64
324 2000421
AsyncErrorHandler
Че эт за хуйня и как она работает? Асинхронный обработчик ошибок.
Это catch там что-то ловит?
Что-то какая-то мутная мудреная хрень
325 2000426
>>2000421
Принимает асинхронную функцию fn (которая внезапно возвращает промис), этот промис хуячится на catch
image.png21 Кб, 528x263
326 2000429
>>2000408
DI это ладно, но зачем оборачивать декоратором объект Request в контроллерах? Можно же просто передават ьв коллбек 1й параметр - Request, это весьма очевидный контракт, нахрена какие-то декораторы мутить?
327 2000432
>>2000426
А зачем эта вложенность функции в функцию? Что возвращает (fn) => (...args) ?
И почему catch берет именно третий аргумент args[2]?
328 2000460
let sorted = {};
let objects = [{key:value},{key:value}];
for (let object of objects) {
sorted[object.key] = object;
}

Как функцианально уменьшить код?
329 2000474
>>2000460

>object.key]


У тебя нет никакого object.key], твой код некорректен, хуй знает, чт ты собрался уменьшать.

>let sorted = {};


Твой soted не sorted ни при каком раскладе, порядок ключей в объекте строго определен.
330 2000485
>>2000474
Окей, бой.

let vocabulary = {};
let organs = [{zalupa: 1},{zalupa: 2}];
for (let organ of organs) {
vocabulary[organ.zalupa] = organ;
}
331 2000489
>>2000485
Когда уже научитесь Map использовать?
332 2000521
>>2000338
30 лет, 2 года вкатываюсь, никто не берет.

Это из-за возраста, а не из-за избытка.
изображение.png809 Кб, 1366x735
333 2000524
>>2000521

>30 лет, 2 года вкатываюсь, никто не берет.

334 2000533
>>2000521
ПРОСТО ВКАТИСЬ
Я в 27 вкатился на вижуал бэйсик, программировал в экселе. Зато БД подтянул
Потом было уже проще перекатиться в веб. Вот я уже 3 года там, до сих пор нихуя не умею, зато платят нормальные бабки.
И ты так делай
335 2000534
>>2000338
Бля, то читаю стори что "вкатываюсь-вкатываюсь никак не могу вкатиться, все скипают, тогов работать за еду" то "вкатился изи на 70к, через 3месяца апнулся до 120к, еще через 3 получил оффер в дргую компанию и стал получать 200к"
Где тру?
336 2000535
>>2000534
Все правда. Но все зависит от человечка
337 2000542
>>2000534

>"вкатился изи на 70к, через 3месяца апнулся до 120к, еще через 3 получил оффер в дргую компанию и стал получать 200к"


Ха, возможно это был я.
338 2000575
>>2000534
>>2000338

Всё тру. Просто первых сотни, а вкатившихся единицы.

На рынке недостаток специалистов, но СПЕЦИАЛИСТОВ а не вкатунов 30 летних.
339 2000627
>>2000429
Чтобы сказать фреймворку что нужен Request. Не всегда же тебе нужен реквест, иногда тебе нужен просто параметр из path, иногда из query, иногда body, причем смапленный в твои dto, иногда все вместе. Всегда передавать реквест - это значит всегда пердолиться с рассериализацией, а это именно то, что апи фреймворки хотят упростить
340 2000644
В приложухе есть единственная форма. Целесообразно ли выдергивать из формы инпуты и делать из них один компонент Инпут, только ради чистоты кода?
341 2000679
Как можно на практике задрочить ооп и вообще все эти классы в js? Запилил уже несколько сайтов на реакте, но там ооп не используется, классовый синтаксис уже тоже. А потом на собесах начинают дрочить этими зисами, наследованиями, и начинаешь срать в штаны. Просто так сферически учить неинтересно и запоминается плохо. Если я наверну сейчас Ангуляр или начну что-то на three.js пилить, это мне может помочь? Как учили вы? Просто вот пока сайты делал (платно, коммерчески), мне всего один раз понадобилось из объекта удалять поля, и то, я в итоге сделал это иммутабельно через деструктуризацию, и в реакте много того, что в обычном js вообще делается по другому. И собственно вот весь этот дроч каких-то тем без реального применения это для меня вообще пиздец. Поэтому хочу попробовать что-то на реальной практике учить.
342 2000682
>>2000534
Проблема в том, что вот этих "джунов", которые прошли один курс и запилили по гайдам тудушку квадриллионы, из них человек 10 могут вообще внятно объяснить, что за хуйню они делают и зачем
343 2000689
>>2000679
В ангуляре тоже ооп нет, классы там для инжектов в конструктор и чтобы декораторы было куда нацепить.
Там такая же иммутабельность по тем же причинам и FRP.

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

Наследование - ну выучи prototype, __proto__, instanceof
344 2000693
>>2000689
Да поверхностно я конечно понимаю что это и как работает. Хочется именно нормально с этим поработать, чтобы это всё на практике закрепилось и чтобы я знал где и когда всё это можно применить
345 2000718
>>2000679
Кантора прочитай, залупа ты ебаная и ydkjs. Не нравится учить базу иди нахуй, значит не твое. Я сам прошел этот путь, знаю о чем говорю.
346 2000745
>>2000485
import R from "ramda";

const vocabulary = R.mergeAll(organs);
347 2000746
>>2000679

>и в реакте много того, что в обычном js вообще делается по другом


Реакт и есть обычный JS на 95%. Просто в нем используется более функциональный подход, как и везде сейчас.

This'ы в 2021 смешно писать.

Если так хочется разобраться, то читай learn . javascript .ru и пиши пет проекты без фреймворка.
image258 Кб, 811x811
348 2000758
>>2000534
На 100к вкатываются люди которые умеют решать задачи для бизнеса, искать информацию , уметь применять ее и т.д. На зп ниже 50к - идут либо инцелы студенты после вузика, либо инцелы по жизни которые так и не поняли че от них требуется,- "ну назоводе говорили гайки крутить, я и крутил".
Т.е. инцелы мыслят так - денег хочу много, а че от меня требуется не ебу. Вот вам моя всратая верстка, и знания по джсу который я учил раз в неделю. Таких успешно посылают на хауй на этапе скрининга.
Адекватные люди мыслят так - так ебать, че там на мидла джуна требуется за 100к, ага вот курсы на торентах 20 штук с серьезной логикой(клон спотифая, клон ютуба, клон фейсбука не рофл главное базовую логику повторить у себя, не обязательно весь функционал переписывать, написать и уметь объяснить че ты написал), вот собесы на ютубе, вот вакансии, вот статьи на виси от синьеров из санфрана, везде все расписано, все расказано, учим, дрочим, запоминаем, успешно применяем, аплаимся на 100к.

Сам вкатился в этом году на 100к, первый моя работа программистом. 2й собес по счету, аплаили на 80к, я выжал на 100.На вакансии не распылялся, в ИП Педриченко Иван Иванович резюме не отправлял, только в Корпорации уровня Тиньков, Вконтаке, Мейлсру и т.д. те что в топе по финансам и инраструктуре, потому что не хотел работать на дно галере или в мелкостудии.
Историю своего вката подробно напишу сюда в мае либо июне, когда будет свободное время, там длинная простыня, надо будет ее редактировать и подумать еще над содержанием, пока вот краткая затравка для неосиляторов.

Вот вам еще пасхалка это сказал черчиль, маск процитировал когда тесла почти стала банкротом -
Если вы осознанли что проходите через ад, не останавливайтесь, продолжайте идти.
Можете применять на себя, когда будете сидеть сутками над своими проектам, изученим информации и т.д.
Совет№2 - не сиди на дваче нигде кроме этого треда. Как правило анонимы здесь - это не успешные люди, и им проще говорить о своих не удачах, много токсичоности и прочей ерунды. Часто то что здесь принимается за проблему, в реальной жизни проблемой не является. Я когда перестал доску скролить, словно голову из унитаза с говном вынул. Чужое мнение влияет на нас, так пусть это будет мнение успешных людей, а не неудачников.
Тут единственная нужная тебе доска, ее можно читать просто что бы оставаться в информационном поле айти, скажем так со со спецификой анонимности можешь попиздеть за движуху и конторы, либо за код. В остальных меди анонимности нет, там специфика общения другая, менее откровенная.
image258 Кб, 811x811
348 2000758
>>2000534
На 100к вкатываются люди которые умеют решать задачи для бизнеса, искать информацию , уметь применять ее и т.д. На зп ниже 50к - идут либо инцелы студенты после вузика, либо инцелы по жизни которые так и не поняли че от них требуется,- "ну назоводе говорили гайки крутить, я и крутил".
Т.е. инцелы мыслят так - денег хочу много, а че от меня требуется не ебу. Вот вам моя всратая верстка, и знания по джсу который я учил раз в неделю. Таких успешно посылают на хауй на этапе скрининга.
Адекватные люди мыслят так - так ебать, че там на мидла джуна требуется за 100к, ага вот курсы на торентах 20 штук с серьезной логикой(клон спотифая, клон ютуба, клон фейсбука не рофл главное базовую логику повторить у себя, не обязательно весь функционал переписывать, написать и уметь объяснить че ты написал), вот собесы на ютубе, вот вакансии, вот статьи на виси от синьеров из санфрана, везде все расписано, все расказано, учим, дрочим, запоминаем, успешно применяем, аплаимся на 100к.

Сам вкатился в этом году на 100к, первый моя работа программистом. 2й собес по счету, аплаили на 80к, я выжал на 100.На вакансии не распылялся, в ИП Педриченко Иван Иванович резюме не отправлял, только в Корпорации уровня Тиньков, Вконтаке, Мейлсру и т.д. те что в топе по финансам и инраструктуре, потому что не хотел работать на дно галере или в мелкостудии.
Историю своего вката подробно напишу сюда в мае либо июне, когда будет свободное время, там длинная простыня, надо будет ее редактировать и подумать еще над содержанием, пока вот краткая затравка для неосиляторов.

Вот вам еще пасхалка это сказал черчиль, маск процитировал когда тесла почти стала банкротом -
Если вы осознанли что проходите через ад, не останавливайтесь, продолжайте идти.
Можете применять на себя, когда будете сидеть сутками над своими проектам, изученим информации и т.д.
Совет№2 - не сиди на дваче нигде кроме этого треда. Как правило анонимы здесь - это не успешные люди, и им проще говорить о своих не удачах, много токсичоности и прочей ерунды. Часто то что здесь принимается за проблему, в реальной жизни проблемой не является. Я когда перестал доску скролить, словно голову из унитаза с говном вынул. Чужое мнение влияет на нас, так пусть это будет мнение успешных людей, а не неудачников.
Тут единственная нужная тебе доска, ее можно читать просто что бы оставаться в информационном поле айти, скажем так со со спецификой анонимности можешь попиздеть за движуху и конторы, либо за код. В остальных меди анонимности нет, там специфика общения другая, менее откровенная.
349 2000783
аноны, накидайте советов. есть 5 инпутов и 1 текстареа. при попытке засабмитить форму я пробегаюсь по всем элементам через for of и проверяю чтобы они тупо не были пустыми. если все ок и нигде не фейлится то форма валидна то надо вытащить данные с инпутом и отправить их в другую функцию там распарсится и в fetch перекинется. так вот как лучше по человечески это сделать ? не охото по каждому инпуту пробегаться, но нужно получить объект в виде ключ-значение.
inb4: formData
350 2000795
>>2000783
formData
351 2000800
>>2000783
Валидация инпутов делается проще

if (Input1.trim() && Input2.trim() && Input3.trim() ){
handleSubmit()
}

инпуты собирай обработчиком onchange в переменные и отправляй дальльше
352 2000801
>>2000758
Много вёрстки требуют вкатуну? Вообще часто приходится верстать?>
353 2000810
const car = {
carModel: "toyota",
carAge: 15,
color: "white",
carHorn() {
console.log("Beep beep!");
},
};

console.log(car.carHorn());

Почему в консоли после 'Beep beep!' появляется undefined?
image.png1 Кб, 415x66
354 2000814
>>2000810
Потому что
355 2000819
>>2000814
Так всегда происходит?
356 2000830
Какой сейчас положняк по ORM для ноды? Использовать полноценную ORM, query builder, или писать чистый SQL?
357 2000831
>>2000801
Практически не спрашивают если это именно фронт. Могут как стилизовали код на прошлых проектах? modules или styled components? Подразумевается что вкатыш умеет верстать.
358 2000832
>>2000819
функция должна что-то возвращать,
в объявлении метода carHorn() после логирования напиши return 'anus' и посмотри что будет
359 2000833
>>2000810
первый консол лог вывод строку, второму ты говоришь покажи мне литерально web api - он закономерно посылает тебя нахуй, т.к. в js их нет
360 2000834
>>2000718
>>2000746
Ладно, в пизду, о чем я вообще блядь на дваче спрашиваю, сам ведь лучше знаю что мне сделать, прокрастинацией здесь занимаюсь
361 2000842
>>2000832
Попробовал сам, понял что обосрался. Действительно, почему консоль возвращает андефайнд?
Screenshot from 2021-04-18 23-20-55.png51 Кб, 732x220
362 2000845
>>2000842
Загуглил
363 2000847
>>2000842
>>2000845
Короче ситуация такая. Консолька в девтулзе всегда выводит результат выражения даже если мы ее не просим. При вызову console.log ничего не возвращается и она выводит undefined.
image.png4 Кб, 353x234
364 2000852
>>2000842
>>2000847
Потому что функция возвращает undefined если явно return не указан
Вот консолька в питоне. undefined тут нет есть только None, но все то же самое
365 2000856
>>2000852
Зумерки совсем обленились
366 2000860
>>2000830
Если easy peasy запросы будут то орм, если нет то query builder
367 2000864
>>2000432
декоратор ёпта
ее вкурил што ли ёпта?
функцию он принимает значит
и функцию возвращает
декорированную нах
понимаешь?
эта функция че-то там с args делает нах
че-то блять вытаскивает выдрачивает
2й индекс трогает ёпта
то есть 3й элемент рот его ебать
почему так?
а я ебу
контракт у него такой нах
на ус мотай
папку слушай
и збс будет
368 2000896
>>2000679
на ноде попиши дебс
369 2000938
>>2000842
Потому что ты не умеешь программировать.
Стикер255 Кб, 512x512
370 2001013
Кто-нибудь из здесь присутствующих занимался написанием собственных декораторов для классов? В каких-ситуациях для вас это была полезная практика?
371 2001202
Почему не передаётся ошибка из catch во внешние обработчики.
Функция асинхронная, но throw должен же передать ошибку во внешний обработчик ошибок?

Вместо этого выбрасывается UnhandledPromiseRejectionWarning
372 2001287
>>2001202
Хоть ты и написал async to2ch, вернуть полезный промис ты забыл
За что ты пытаешься научить puppeteer двачевать?
373 2001295
>>2001287

>За что ты пытаешься научить puppeteer двачевать?


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

>вернуть полезный промис ты забыл


А что если мне не нужно этот промис возвращать. Мне никак это ошибку не отловить вне функции?
Стикер191 Кб, 512x512
374 2001299
>>2001295
Привет. Я левый пчел. Почему ты не обернешь в try catch промис page.goto ? И ещё. Напиши не throw, а throw new Error(e)
375 2001301
>>2001295
На браузере хз, в ноде https://stackoverflow.com/a/28709667
376 2001322
Пацаны в чем разница запросов разных? Я вот использую фетч, хватает для всего. Есть еще какой то ajax, когда его надо использовать? Какие еще запросы есть? Можно ли везде фетчем пользоваться в замен остальных?
377 2001329
>>2001322
fetch юзаешь если член больше 19 см
ajax если меньше
Стикер191 Кб, 512x512
378 2001336
>>2001322
Все запросы - это промисы. Каждый вид запроса обладает своим удобным сахаром. Запрос строится на xmlhttprequest. Твой фетч - это обертка над xmlhttprequest. Ajax это вообще технология обращения к серверу без релоада страницы. Но то, про что ты говоришь ты скорее всего имеешь ввиду ajax в jquery.

Сейчас популярен axios. Удобный иструмент, много работы удобной за тебя из под коробки делает.
379 2001343
>>2001299

>Почему ты не обернешь в try catch промис page.goto ?


try/catch ловит только синхронные и async/await операции.

> И ещё. Напиши не throw, а throw new Error(e)


Ну там объект ошибки возвращается. Есть смысл ещё один объект создавать?

>>2001301
Спасибо. Выглядит весьма костыльно. Отлавливать ошибки через события это вообще законно?
customfetch.png39 Кб, 1029x233
380 2001351
>>2001322

>хватает для всего


А так сможет?
381 2001358
>>2001336Спасибо добрый анон, желаю тебе хорошего доя!
382 2001362
>>2001343

>костыльно


Какие требования такие и решения
Это даже и не catch, обработать ошибку ты не сможешь, только пологгировать
232525049-15473281901540 (1).png2 Кб, 400x400
383 2001486
>>2001362

>Какие требования такие и решения


Не думал, что это что-то необычное - отловить асинхронную ошибку.
Типа единственные правильный вариант это вовзращать промис в функции? А если промисов несколько, то все чтоль возвращать?
384 2001552
>>2001486
Но ты же ее из пизды хочешь отловить. Да, возвращать. Собрать все в один и возвращать
385 2001654
помогите, нужна 3д симуляция батута
что-то в стиле шарик падает на батут
вот так только проще
https://www.youtube.com/watch?v=uM7o_g7JS4g
386 2001671
>>2001654
Maya или blender юзай
387 2001681
>>2001671
просят прям javascript
388 2001774
Так блят. Прочитал я доку по рякту, заделал свою тудушку и ещё один проект. Но чего я не понял так это как делать бляцкие SPA. Ну в смысле идея у меня есть, но она 100% сложна и не верная. Что я упустил?
389 2001789
Есть некий get-запрос с query-параметрами, при переходе по нему у клиента открывается новое окно и происходят всякие шняги

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

Очевидное решение - делать POST-запрос вместо GET, однако ж это лишь усложнит хитрожопым жизнь, но проблему не решит. По-прежнему детали запроса можно легко подменить. Как такое решать?
390 2001812
>>2001789
валидация на сервере?
391 2001813
>>2001789

> детали запроса можно легко подменить. Как такое решать?


Neekaque

Любой запрос всегда можно сделать с помощью curl
392 2001815
>>2001774
spa - это просто js файл, который отрисовывает тебе UI и делает запросы по api по мере необходимости.
393 2001940
>>2001774
https://www.youtube.com/watch?v=uE1RG3vQP_g
охуеть ТЗ у тебя, говна попей плз
c839f9b11bead9922a062a37161804f3.jpg29 Кб, 500x375
394 2002200
Аноны меня возьмут в ЕлектроникСпротс с таким?
Буду им физ. движки писать С КОЛЛИЗИЕЙ хуевой!!
https://codepen.io/EXDude/pen/wvgYzMx
c839f9b11bead9922a062a37161804f3.jpg29 Кб, 500x375
395 2002201
>>2001681
threejs
396 2002219
Antd
397 2002260
let data = []
for (let i = 0; i <= 8; i++)
fetch(`${i}.json`).then(res => res.json()).then(text => data = [...data, ...text.response['items']])

хули массив в консоли видно, а в браузере пустой?
398 2002264
>>2002260
Там ~800 спаршенных постов из вк, если что.
399 2002268
>>2002260

>хули массив в консоли видно, а в браузере пустой?


А тебя ебет?
400 2002310
ТСач, поясни, с какого хуя стало возможным присваивать функцию с unknown аргументом в переменную, ожидающую функцию с аргументом конкретного типа? Официальную доку читал, там этот момент как-то стороной обошли.

let a = (v: number) => 0
let b = (v: unknown) => 0

a = b;

...и никакой ошибки. Пиздец.
401 2002316
>>2002260
Потому-что анонмную лямбду с циклом браузер не поймет, так что пиши console.log(tyDown)
402 2002319
>>2002260
[1, 2, 3, 4, 5].forEach(x => x)
//undefinded
[1, 2, 3, 4, 5].forEach(x => console.log(x))
//1 2 3 4 5
403 2002399
>>1997999
чем стрелочные функции удобные то такие? по-моему обджекшены даже читаются лучше
404 2002408
>>2002319
А как в браузер распечатать?
405 2002411
>>2002408

>[1, 2, 3, 4, 5].forEach(x => console.log(x))

406 2002420
>>1993705 (OP)
1. Как в реакте сбросить инпут файла? Чтобы имя отправленного файла обнулялось? Чет ничего не смог нагуглить. Пока все что придумал - закрывать форму и открывать опять.
2. Кто-нибудь работал с апи от дак дак го? Интересует их поиск. Знаю, что гугл позволяет такое делать, но за бабки.
У них есть вот такая хуйня:

>An API for some of our Instant Answers, not for full search results.


То есть это значит, что они не дают доступа к поиску как гугл? Понятно что все еще можно просто посылать результат ввода из формы на дакдакго.ком, но хочется в пете выебнуться и посылать полноценные запросы по апи.
407 2002477
>>2002310
CONTRAVARIANCE
408 2002483
фронтенд говно
жс параша
я горю
твоя мамаша
шлюха
409 2002501
>>2002411
в штмл
410 2002552
>>2002483
гуф залогинься
411 2002570
>>2002310

>a = b;


>сам стреляет себе в ногу


>нет ошибки


Действительно.
412 2002584
Шалом анон.
Есть один флекс контейнер фиксированного размера - строка
В нем два дива фиксированного размера - столбцы
Задача: сделать так, чтобы при приближении, если столбец не влезает в экран, он переносился вниз. То есть это происходит динамически.
Свойство flex-wrap: wrap не работает так как надо.
413 2002589
>>2002584
При зуме штоле?
414 2002598
>>2002570

> сам стреляет себе в ногу


Билять, это же просто пример. Этот код не использую, просто для наглядности механизма показал.
415 2002603
>>2002477
Причем здесь контравариантность?
Допустим,

let v: number = 0;
let u: unknown = 's'

v = u;

Здесь будет ошибка "Type 'unknown' is not assignable to type 'number'" и это вполне ожидаемо (а вот u = v как раз валидно и есть та самая контраваринтность).
416 2002604
417 2002610
>>2002477
А, всё, понял, там бивариантность работает. Спасибо!
418 2002643
>>2001202
Зачем ты используешь одновременно и .catch(e) на промисе, и try {await ... } catch (error) {}?

'ошибка3', как я понял, вообще никогда не выведется, ведь ошибка уже поймана внутри (и выведено 'ошибка2').
419 2002693
>>2002584
Зум страницы опредялется в мета теге вью порт и задается фиксировано один раз при загрузке страницы н грузит под нее стили. Получается тут никак их не поменять гибко.

Смотри в сторону window и его методов, там найдешь зум и ему применишь стили.
420 2002696
>>2002584
У тебя контейнер фиксированного размера и кажется тут то ты и соснул, потому что все всегда будет влезать
421 2002746
Я знаю, что тут сидят опытные архитекторы и бекенд инженеры.
А по сему вопрос:
Слышал, что хранить бизнес логику в контроллере плохая практика.
Хорошая ли практика хранить бизнес логику в мидлварах?
или нужен дополнительный слой абстракций , к которому бы обращались эти мидлвары?
422 2002777
>>2002746

> Хорошая ли практика хранить бизнес логику в мидлварах?


пиздецки плохая

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

в идеале если вы решите переехать с express на фастифай/nestjs/deno

вы перетаскиваете классы с бизнес логикой и они без проблем заводятся в отрыве от всего
423 2002796
Обьясните пожалуйста это "[y]" в выводе. Я совсем не понял как это работает, а в гугле не получилось найти. Какая логика у этого?

const listOfNeighbours = [
["canada", "mexico"],
["spain"],
["norway", "sweden", "russia"],
];

for (let i = 0; i < listOfNeighbours.length; i++) {
for (let y = 0; y < listOfNeighbours.length; y++) {
console.log(`Neighbour: ${listOfNeighbours[y]}`);
}
}
424 2002797
>>2002796
блять, там в конце перед [y] ещё стоит [и]. ебаная разметка
425 2002803
Какие же уёбищные в ангуляре формы всё-таки. Всё хорошо, пока тебе не понадобится маааленькая фича, которая за гранью фантазии разработчиков фреймворка: тут то ты понимаешь, что всё здесь намертво прибито гвоздями. Приходится расковыривать все кишки этих ёбаных форм, чтобы добавить тот или этот функционал, я заебался уже портянку писать. Зато в примерах всё красивенько.
426 2002810
>>2002796
добавь после россии украину и твой код перестанет работать лол
427 2002831
>>2002803

>маааленькая фича


Какая например? Мне для сравнения интересно.
428 2002848
>>2002831
Окей. Понадобилось поле ввода только положительных целых чисел.
1) стандартный input type=number просто смешон, забудем про него.
2) ммм, pattern? Нет, он всего лишь делает поле невалидным. Нам надо тупому юзеру наглядно показать, что нельзя вводить ничего кроме цифр, а не просто плашечку "неверное поле, имши!".
3) окей, что у нас дальше? Регулярочки всегда выручали нас. Можно разбить ящик с бананами [(ngModel)]. Но (ngModelChange) не обновляет видимый результат после преобразования регекспом, ведь всё невалидное превратится в 0 или пустую строку, а ебучая форма у мамы умная и не желает обновить поле, ведь типа "изменений нет!". Зафорсить её на это изменение тоже нельзя, ведь она лучше знает как правильнее.
4) Штош...гуманных способов больше нет, вызываем control.setValue(filteredValue); и ещё до кучи
control.updateValueAndValidity(); чтобы ебальник ей закрыть о боже! О невалидности блять, да мы только что сделали сетвэлью, почему нахуй?!!!!
429 2002851
>>2002831
Вот ещё прикол: нельзя просто взять и присвоить полям формы свойства модели.

>Type 'string' is not assignable to type 'number'.


Ах ну да, у нас же для поля типа текст тип стринг, сделай нумбер и не будет ошибки. Да идите нахуй с этим говном.
430 2002852
>>2002796
for (let y = 0; y < listOfNeighbours.length; y++) {
console.log(`Neighbour: ${listOfNeighbours[y]}`);

Вот так наверное хотел написать. Первая итерация идет по основному массиву, когда он в него заходит то итерирует каждый его под массив, каждый подмассив итерирует на его элементы, в зависимости от длинны под массива.
431 2002856
>>2002852
лол, двач код съел, ну да ладно
432 2002859
>>2002831
Если хранишь дату в модели в нечеловеческом формате и выводишь в ридонли поле через date пайп, то при ресете формы там остается невидимое значение, и теперь из кода через модель нельзя его поменять. Да, такие сценарии бывают, не пизди.
433 2002867
>>2002848
Ангуляр это не собрание твои любимых контролов, ты бы еще спросил почему select только нативный и где автокомплит.
Формы - это про интеграцию модели (NgControl) и твоих нативных контролов (input, yobaInput и т.д.)
Поэтому пишешь свой контрол как хочешь, а потом пишешь CVA на него.
434 2002874
>>2002867
Всё равно бомбит.
435 2002877
>>2002848

>1) стандартный input type=number просто смешон, забудем про него.


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

>2) ммм, pattern? Нет, он всего лишь делает поле невалидным. Нам надо тупому юзеру наглядно показать, что нельзя вводить ничего кроме цифр, а не просто плашечку "неверное поле, имши!".


Бля, добавь тогда параграф, или какой-нибудь смолл под полем, который говорит, что можно только целочисленные положительные значения в поле вводить. Уж пользователь наверно догадается, что невалидное поле над/под этим текстом означает. Можешь заодно ещё и в `title` запихнуть. На крайняк вкуривай Constraint validation API, который позволяет кастомизировать дефолтный попап, но там придётся чуть ли не свой модуль писать для этого дела.
436 2002880
>>2002852
Да, спасибо, я уже понял. Вообще охуел когда увидел что так надо. Уж хотя бы было бы как-нибудь типа [i[y]], имхо
437 2002884
>>2002880
Так, ладно, я хуйню сказал какую-то. Я только сейчас перечитал и понял что i с [y] вообще никак не связаны с массивами.
438 2002889
>>2002877

>Нам надо...


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

А что касается input type=number, ему добавили возможность настройки, которая не работает. Спрашивается, нахуя? Зачем даешь право написать max min и step, если это распространяется только на стрелочки? Почему если эти параметры указаны, программно не ограничивать ввод? Чтобы я костыль очередной писал на жээсе?
439 2002896
>>2002889
Валидация это не про ограничение ввода

>Чтобы я костыль очередной писал на жээсе?


Да. Другим нужны другие костыли, всем не угодишь
440 2002899
>>2002889
Ну и да, почему было не взять маску? которых целых 3, но одна говно, а вторая не поддерживается
Иснтрумент под задачу и все такое
441 2002900
>>2002889

> Чтобы я костыль очередной писал на жээсе?


Потому, что это антипаттерн. Ограничивать пользовательский ввод изначально дело неблагодарное, следовательно, идя этим путем ты заслуженно получаешь свою порцию боли. Правильный путь - валидировать пользовательский инпут по блюру/потере фокуса.
442 2002907
Посоны, запрос к Api выдает инфу на нескольких страницах каждая с таким ключом - &page=1
вторая страница с контентов $page=2 b и т.д

Я запиливаю пагинацию у себя, и значит вопрос, как сделать так что бы если апи дал контент на несколько страниц, то кнопки для некст страниц отображались, а если не дал, то и не отображаются?
Я понимаю что можно сделать проверку в useState мол если контент загрузился, покажи кнопку на некст страницу и подключи его с этим содержимым. Просто не догоняю, на каждую страницу делать отдельный запрос? Страниц с контентом может быть как 1 так и 10.
443 2002912
>>2002899
Почему было не взять либу типа материала просто? Я ебу? Нет. Мне спустили задачу, я поебался, правильный это путь или нет - не мое дело в данном случае. И хоть я задачу выполнил, формы огорчили тем что чуть отступишь от дефолта и тебе пизда.
444 2002922
>>2002907
Обычно серверная пагинация возвращает общее количество страниц вместе с нынешней страницей.
445 2002926
>>2002912

>правильный это путь или нет - не мое дело в данном случае


Ну понятно. А потом говорят "%фреймворк нейм% не оче". Вот теперь и у меня загорелось
446 2002933
>>2002926
Ну каждому - своё. Мне не хватает свободы.
447 2002942
>>2002922
Да все разобрался, там общего колличества страниц нет, но есть
totalResults: "113";

ток не понял как теперь это вывести. если есть, если мне надо по 10 итем на страницу надо как-то map сделать на общее колличество и поделить на 10, а че мапить то если 113 это число.
448 2002944
>>2002942
Нужно применить математику.
У нас было 113 яблок, одна корзина вмещает 10 яблок а мамаша ОПа вмещает ..., сколько корзин понадобится славику чтобы упаковать все яблоки?
449 2002946
>>2002944
Я вообще это и написал, я говорю не понял как отоброзить нужное число страниц потом. Как функция должна выглядеть
450 2002949
>>2002946
Никак, придётся тебе только первые 10 результатов показывать.
451 2002952
>>2002949
Бля не знаешь как помочь, лучше помолчи.

обычный перебор i; i<total; i++
return <div>{page}</div>

подойдет
452 2002958
faang вакансии
453 2002960
>>2002952
А если будет 1000 страниц, будешь всю тысячу рисовать?
454 2002965
>>2002960

Загрузить ещё
или нумерация страниц
455 2002972
>>2002965
А может лучше СКРОЛЛ БЕСКОНЕЧНОСТИ?
456 2002977
>>2002972
можно, но говорят что бед практикс его юзать
457 2002984
>>2002977
Твиттер, пейсбук и ютубокаменты получается бэд практис?
459 2002990
>>2002985
Советы какого-то хуя с горы vs. практический опыт многомиллиардных мегакорпораций. Кого же стоит слушать???
460 2002993
>>2002990
прочитай статью хотяб
461 2002998
>>2002993
Так пейсбук это бэд практис или нет?
462 2003007
>>2002998
Там про то, что бесконечный скрол хорош на сайте с лентой типа фейсбука, но плох в других случаях (например выдача поисковика или СУКА ДВАЧ ТРЕД НЕ НАЙДЕН)
463 2003012
>>2002998
А вообще, хуже фейсбука и его высеров нет в интернете.
LogRocket Blog.png15 Кб, 801x135
464 2003025
>>2003007

>Там про то, что бесконечный скрол хорош на сайте с лентой типа фейсбука


Конкретно в случае пейсбуко-твиттера данные не сортируются по дате.
465 2003040
Какое же говно блядь.
466 2003056
>>2001336

> Твой фетч - это обертка над xmlhttprequest


https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch

>This kind of functionality was previously achieved using XMLHttpRequest. Fetch provides a better alternative that can be easily used by other technologies such as Service Workers. Fetch also provides a single logical place to define other HTTP-related concepts such as CORS and extensions to HTTP.



Это другое, ты не понимаешь.
467 2003065
>>2003040

>не писать на ангуляре в 2021


Вдриську с маньки
468 2003096
>>2002944
Пиздец. Вроде я синтаксис выучил, а задачу эту сделать не могу.
469 2003211
Кто как использует деструктуризацию?
Стикер255 Кб, 512x512
470 2003216
>>2003211
А шо там использовать. Деструктурируешь и все.
471 2003220
>>1993705 (OP)
Как правильно вытащить координаты с navigator.geolocation.getCurrrentPosition?
Я делаю так:
function getPosition() {
function onSuccess(position: GeolocationPosition) {
const latitude = position.coords.latitude;
const longitude = position.coords.longitude;
return {latitude, longitude}
}
function onError(err: GeolocationPositionError) {
console.log(err);
}

return navigator.geolocation.getCurrentPosition(onSuccess, onError); // эта хуйня возвращает void поэтому нихуя не работает, компилятор ругается, когда я пытаюсь получить координаты {latitude, longitude} = getPosition();.

}
472 2003232
>>2003220
const getCurrentPosition = () => new Promise(navigator.geolocation.getCurrentPosition)

getCurrentPosition().then(position => {
const { latitude, longitude } = position.coords
})

Можешь так делать. Или через даже так

const {latutude, longitude} = (await getCurrentPosition()).coords

внутри async-функций
473 2003236
>>2003232
Ааааа блять, эта хуйня асинхронная, пиздец я затупок.
474 2003247
>>2003220
getPosition = () => {
return new Promise((resolve, reject) => {
navigator.geolocation.getCurrentPosition(
position: GeolocationPosition => resolve(position),
error => reject(error)
);
}
}

[latitude, longitude] = getPosition()
.then((position: GeolocationPosition) => [position.coords.latitude, position.coords.longitude])
.catch(error => console.log(error));
475 2003288
>>2003247
Почему так нахуй?
const {latitude, longitude} = (await getCoords()).coords // заебись, чотко.
////
const {latitude, longitude} = await getCoords()
.then((position: GeolocationPosition) => {position.coords.latitude, position.coords.longitude})
.catch((error: GeolocationPositionError) => console.log(error)); // Property 'latitude' does not exist on type 'void'. Property 'longitude' does not exist on type 'void'.

Не то чтобы я настаивал на втором варианте, просто интересно. У чего он нашел тип void? Что там void?
476 2003296
>>2003288
Хуй знает, пользуйся первым.
477 2003301
>>2003296
Ок. А почему-тогда он у меня аж целых 4 раза возвращает значение широты, если я пытаюсь вывести его в консоль?
const { latitude, longitude } = (await getCoords()).coords
console.log(latitude);
Он логирует одно и то же 4 раза подряд. Для интереса попытался сделать запрос к серверу, он отправил 4 запроса. Это полная хуйня. Это связано с тем что компонент лишние разы ререндерится (с чего бы это?) или что-то с промисами не так?
Capture.PNG25 Кб, 580x389
478 2003311
>>2003301
Хз, у меня вон вообще кал выводит.
479 2003341
>>2002552
Гуф умер.
480 2003346
У меня в Интернет магазине, данные о купленных товарах содержатся в Local Storage, кроме того есть система авторизации на куки (имя пользователя содержится в куки). Я бы хотел связать эти два элемента, чтобы у определённого пользователя был свой набор купленных товаров (сейчас товары не связаны с пользователем). Есть советы как этого достичь?
481 2003351
>>2003346
БД используй, дурачок. Локал сторадж не для базы данных магазинов.
482 2003377
>>1993705 (OP)
Есть длинная форма (ангуляр), как в случае ее неудачной валидации перемещать экран посетителя к ближайшему месту где есть ошибка? А то не сразу ясно, че не так
483 2003391
Как для функционального компонента определить обязательные пропсы?
image.png383 Кб, 693x520
484 2003392
>>2003346
Пиздец. И вот это будущее веба
485 2003396
>>2003377
Есть scrollTo(x, y), однако он скроллит так что эти координаты x, y оказываются в левом верхнем углу экрана а не как-то иначе. Надо чтобы в центре оказался элемент, где ошибка
Можно получить координаты элемента, ок, но че дальше-то? Как понять сколько отнять от этих координат чтобы получить правильный scrollTo? Размер экрана у всех разный
486 2003405
>>2003396
get bounding client rect
487 2003413
>>2003391
Интерфейс.
488 2003472
Посоветуйте либу для логирования
489 2003497
Пацаны, а зачем во время выполнения реквестов мы дважды делаем await (дважды резолвим промис)? Достаточно же первого await-а, зачем делать response.json()?

const myReq = new Request();
const response = await myReq.http(url);
const json = await response.json();
490 2003511
>>2003497
Во-первых так функция сделана. Во-вторых на случай, если ответ ЖЫРНЫЙ, штоб процесс случайно не положить.
491 2003548
>>1993705 (OP)
NaN !== NaN в хату, аноны. Такой вопрос, заказчик-пидор, ставит задачу очень расплывчато, потом когда сделано уже много, начинаются песни про "а вот тут вот можно вот так вот, а вот тут изменить, а тут не очень". В итоге приходится переделывать. Собственно, куда читать, где смотреть, по постановке требований к ПО? Может тут есть лиды или ПМ, которые много общаются с мычащими уродами, не знающими чего они хотят? Что помогает вам четко формализовать требования?
492 2003571
>>2003548
Так а сроки то есть? И если есть то меняются ли после новых невнятных мычаний?
493 2003590
>>2003571
Сроки наша контора сама ставит. Как правило часто выходим за сроки на сверках, но заказчик это понимает и не давит особо. Сейчас вот с короной вообще пиздец, пол года только на удаленку настраивались, но пока идем по графику. Но хочется научиться сразу ставить такие вопросы людям, чтоб они озвучивали, что конкретно им надо. Мне просто по человечески заебывает делать двойную работу и возвращаться к тому, что я уже сделал и забыл. Как то так, если что присоветуешь, буду очень благодарен.
494 2003603
>>2003590
Некоторые люди не знают что им надо пока им не покажешь, можете до разработки макетики рисовать@согласовывать, если переделки по внешнему виду, если по интеграциям - доки с описанием и диаграмками взаимодействий, но это все равно не 100% вариант, лел.
Ну а если вам платят за переделки, то тебя это вообще ебать не должно, добро пожаловать
495 2003606
>>2003603
Ох, ебать, понятно, ладно, спасибо. Просто в конторе до этого аналитики в задачах аж прописывали количество символов в полях, а тут пиздос анархия.
496 2003632
>>1993705 (OP)
Что можно использовать в качестве "затычки" для тернарного оператора после двоеточия? Например у меня есть условный оператор, но нет else. Тернарный оператор требует выражение после двоеточия.
497 2003650
>>2003632
void 8
498 2003653
>>2003632
Если тебе не нужен тернарник, не используй тернарник. Напиши просто

if (cond) {
do_x
}
499 2003662
Помогите люди добрые. Впервые юзаю вебпак и devServer.

Работаю с css при помощи плагина MiniCssExtractPlugin

Проблема вот в чем:

В начале js файла стоит import '../css/style.css';
Все работает превосходно, птички поют и т.д
Если это закомментить перестает находить css (логично)
Если расскоментить то он все еще не может нихуя найти

Помогает только полный ребут серва, после которого о чудо он снова видит файл build.css

Собственно как эту херню починить. Меня заебало каждый раз ребутать сервер.

Это к теме не относится но появилась такая проблема при работе с реактом, там честенько весь синтаксис рушится, а потом css файл перестает находить пишет Refused to apply style from 'http://localhost:8080/build.css' because its MIME type ('text/html')
500 2003702
>>2003662
У меня все то же самое. Это особенности работы.
501 2003704
>>2003702
Печально если так. Что характерно если не использовать MiniCssExtractPlugin а просто билдить все в один свалка-файл все работает и обновляется в реальном времени.

Но хотелось немного больше порядка чтоб css был отдельным файлом
502 2003715
>>2003704
А зачем тебе в дев-моде минификация КСС?
503 2003721
>>2003715
Он без минификации, просто так называется https://webpack.js.org/plugins/mini-css-extract-plugin/. Сам думал что там минификация из коробки, но нифига.
image108 Кб, 1142x734
504 2003723
Тестирую роутер в одной аппе, и короч такая хуйня, в компненте Home делаю запрос fetch, он заместо обычного адреса, в начале припихивает ему localhost:3000/www.api.com из-за чего запрос не срабатывает, я так понял это роутер че то шалит? Че может влиять на добавление этого локалхоста в начале, я так понял это какие то дефолтные настройки роутера
505 2003726
>>2003497
Томущо json(а можно и blob) надо распарсить.
image60 Кб, 1030x312
506 2003743
>>2003723
Дело не в роутере, лол. Удалил его, все равно криво отправляется, сука не пойма че за баг. В соседней аппе все ок работает, а тут залупа с адресом какая-то
2021-04-21 19-29-53.mp45,2 Мб, mp4,
1920x1080, 0:43
507 2003763
Sup сделал аналог двача(на минималках)
так же делал аналог аск.фм, он более доработанный чем имиджборда.
Подскажите какой это уровень? Стек PERN + MobX
Можно ли устроиться с этим куда нибудь?
Подобные сервисы занимает сделать 1-3 дня с бесконечными перерывами поесть, позалипать вк, поссать, съездить в качалку и тд.
image.png2 Кб, 303x62
508 2003766
>>2003723
Твой сервер на локалхосте, но ты пытаешься с него фетчить другой сайт, не прописывая схему, в итоге фетч это распознает как локальный путь. Пиши fetch("http://themealdb.com/api/...") и ебись с отключением CORS в браузере
image60 Кб, 1256x272
509 2003772
>>2003766
Я так и пишу, и все равно какая-то залупа. Лол. Мож апишка какая-то кривая. Буду копаться щас. Вообще с апи уже много работал, до этого штук 5 апи перепробовал все ок было, это первая которая вот чудит чет
510 2003773
>>2003772
Не пишешь. Схема - это http или https, в твоем запросе ее нет.
511 2003776
>>2003773
Понял ща попробую, спс
image25 Кб, 916x148
512 2003779
>>2003773
Век живи век учись, спасибо анончик.

Заметил что самые ебаные проблемы всегда самые легкие, которые тупо не замечаешь глазом, хотя они очевидные казалось бы.
513 2003782
>>2003772
И все это можно сократить до fetch().then(r => r.json()).then(setCatalog)
514 2003786
>>2003782
(async () => console.log(await (await fetch("")).json()))()
515 2003789
516 2003817
>>2003653
Тернарный оператор красивее, лаконичнее. Я легко и быстро набираю его, не отрываясь от своего смузи. А if-else громоздкая и некрасивая конструкция.
517 2003837
>>2003817
потому что ты ничего сложнее формочек не писал

нормальные приложения обрабатывают nullable значения тем или иным образом

выбрасывают эксепшены, меняют логику, делают еще что-то
в одну строчку обработку null ты не опишешь если это не hello world
518 2003854
>>2003817
Но ведь тебе не нужно if-else, дурачина, тебе нужен просто if. Можешь в одну строчку его написать, так и быть: if (true) sosatHui()
519 2003870
>>2003377
Ничего не надо перемещать, а сделать оверлэй с ошибками, и каждая из них - ссылка на поле.
520 2003871
>>2003497
Да промиса резолвишь ты хотел сказать?
Катимся 521 2003897
522 2010097
Codepen
Тред утонул или удален.
Это копия, сохраненная 28 мая 2021 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски