Это копия, сохраненная 23 июля 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Больше пары строк кода в посте или на скриншоте ведут в ад.
Для программирования на HTML https://codesandbox.io
Для Node.js с консолькой https://repl.it/languages/nodejs
Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если/когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Документация - https://developer.mozilla.org
Руководство для вката - https://github.com/acilsd/wrk-fet#javascript
https://xcards.vercel.app/
🍆👅💦🤤
( ^◡^)っ✂╰⋃╯
🥰🥰🥰
🤩
Ебало мое имагинировали? Что тут должно в сосноль отправлять что-либо?
у меня все
THE END
Имагинировал
Реакт для sigma male гигачедов.
Вью для double digit iq PHP-macaques.
Ангуляр для скуфоинцелов.
Э хайлоадшизики. У меня на проекте близится этап прихуячивания SSR к ряхту, а я вообще опыта в этом ваше сср не имею. Прихуячивать будем Next.js, сам проект написан на 18 реакте, используем Suspense, так что стриминг нужен.
Опытные реакт-террористы, посдкажите, как вы эту еботу деплоите? В кластере? Через кубер создаете хуеву тучу инстансов и балансируете нжинксом? Серверлесс? Делаете ли кастомный сервер для некста?
RPS будет в районе 10к в пике.
Имеется в виду, что ты обе строчки пишешь в сосноль и она тебе на каждую из них выдает аутпут. Ты провалил тест на микроцефала
>>16820
Ебанат, там до этого во всех карточках явно был вызов console.log, тут же никакого вызова нет и первое что приходит в голову - "ничего не будет выведено". Специально для таких тупых как ты даже оператор точки с запятой добавлен, что как бы намекает на законченность выражений из примера.
Так это результат выражения, а не вывод в консоль. Набранная по квотам шлюха обосралась на 4 из 150 задаче.
Да, именно так. Там хватает таких вопросов. А ещё там прямо в ручках условий текстом зачем-то написан правильный ответ.
В целом, этот смехуёчковый текст только сбивает.
Все поняли, а ты не понял. К тому же тебе дали варианты ответа, из которых даже примитивный ИИ поймет, что тут нихуя не пропущен console.log. Доебись ещё, что в каждом вопросе не написано, что это джаваскрипт, а то вдруг это сишарп
>Все
Да нихуя подобного. Все просто увидели, что в вариантах ответа нет варианта "ничего" и выбрали 1 и false.
Олсо проигрываю, как в страничку в которой буквально одна карточка, кружочек и модалка запихнули ряхт, зустанд, css-in-js. Не, ну реально по квотам тупую пизду взяли, которая вхуячивает в проект либы просто потому что они модные.
>Все просто увидели, что в вариантах ответа нет варианта "ничего" и выбрали 1 и false
Это и называется пониманием контекста. У тебя его нет
>ну реально по квотам тупую пизду взяли
Как ты понял, что этот аккаунт с именем "Yevhenii" принадлежит тупой пизде? https://github.com/yverby
Уже второй раз завалил тест на микроцефала
Какой же троллинг тупостью, я в ахуе. Ну допустим, что это не тупая пизда. Куча ненужного говна в коде от этого испарилась?
Это скорее троллинг низким тестостероном с твоей стороны. Поливаешь всех вокруг говном, а по факту сам никак не приспособлен к жизни в социуме
>троллинг низким тестостероном
Не правда. Я недавно сдавал анализы, у меня он у верхней границы нормы.
Говняк, ты починил эту хуергу с прошлого раза-то? Ни вернуться нормально, нихуя.
Спиздил вопросы с хабра, как будто свои, а нормально сделать не смог.
Это тебе не помогло, разум остался как у визгливого 14 летнего инцела, не способного понимать контекст
Почему у человека, который загребает миллионы на курсах не хватило 10к на покупку нормального микрофона?
У него зато эмоджы Мегафона в названии видео. Смог себе позволить.
Он вряд ли загребает, он никогда не продвигал свои курсы так сильно, как делают тру инфоцыгане
Тру инфоцыгане сотни миллионов лутают. Миллионы лутают инфоцыгане-джуны.
>Некст-креейт-апп
>компилируется
Вкатунец плиз. Учи матчасть.
>Шо за хуй? Попробовать ноду перенакатить?
Да этот кал вкатунский хуй разберешь. Делай eject и пили вебпак конфиг руками под себя. Умение работать со сборщиком будет тебе плюсом при трудоустройстве.
По хорошему надо было туда засунуть всю отрисовку, но оно уже заработало как надо и я забыл.
Ну кроме того, что ты не понимаешь, что ты делаешь.
У тебя let getter практически дублирует let setter.
(newSnake) => newSnake === undefined ? snake : snake = newSnake;
Get:
huetaVishe()
Set:
huetaVishe(zmeya)
А вообще как анон сказал, какой-то перекостылинг классов функциями с сайд эффектами.
не открывал блитз, с телефона работает как говно
> (newSnake) => newSnake === undefined ? snake : snake = newSnake;
Выглядит неудобно, я всегда знаю заранее мне нужно посмотреть значение или сетнуть, почему бы не использовать отдельные функции. В чем прекол делать такой комабйн?
> А вообще как анон сказал, какой-то перекостылинг классов функциями с сайд эффектами.
Ну я говорю, был план засунуть всю отрисовку туда, чтобы логика только ставила новые значения и всё.
Можно было бы написать объект и ебаться с this, может было бы лучше.
Зачем тут классы я всё ещё хз. Классы в моем понимании чтобы создавать из них объекты, мне нужен ровно один объект, я его и напишу литералом сразу.
Да тебя из любой приличной команды выпрут нахуй за отсутствие ; в конце строк. Ради тебя ещё отказываться от стандартных правил линта
Хуя у тебя там "приличная" команда, которая не может закинуть в корень проекта .prettierrc и правило для еслинта на несоответствие форматированию.
Отсутствие может породить странные баги если следующая строка начинается с ( или [. В чем прекол не ставить?
А чтобы что? Зумеры не привыкли к точкам с запятой, но в нормальных командах всегда большинство челов на опыте пришли в жопаскрипт из настоящих языков, поэтому ; для нас это буквально оператор завершения стейтмента, а не просто хуйня какая-то
>А чтобы что?
Сразу вкатунца вижу, который низу CR не делал.
Поясняю. Что бы очередной зумерок/проперженный дед не форматил файлы как он хочет и потом сеньор помидор не ебался с пулл реквесте пытаясь найти что же там залетный поридж напменял в коде.
>>16978
Т.е. обсирается преттиер, а не сеньор-помидор, у которого код после ретурна стоит.
А то есть кривокодить и полагаться на притиер - это норм, а перенос на строку случайно затесался - ЭТО ДРУГОЕ.
>Сразу вкатунца вижу, который низу CR не делал
Что блять?
Как правило с обязательным строгим выставлением точек с запятой мешает код ревью? Без точек с запятой код ревью типа лучше идет?
Причем тут точка с запятой, если речь шла про единый конфиг? Единый конфиг может подразумевать и форматирование без точки с запятой в конце, если что.
Be humble.
60-80к
Диванный вкатыш без коммерческого опыта, ты? За последние четыре года сменил три компании, везде в преттиере было правило убирать этот мусор.
>>16975
Часто делаешь деструкторизацию массива в начале строк? Или используешь IEFE? Мы вам перезвоним.
Прикол в визуальной чистоте кода.
>>16978
> return
> a+b
Ты пишешь так? Мы вам перезвоним.
>>16984
> Как правило с обязательным строгим выставлением точек с запятой мешает код ревью?
Не сильно, но мешает восприятию кода. Бесполезные ; создают визуальный шум, это буквально мусор, который в современных js/ts программах абсолютно не нужен.
> Мы вам перезвоним
> Ваши примеры не примеры
Начинают с дегенеративной хуйни, а у других ПРИМЕРЫ НЕ ПРИМЕРЫ.
Вот так хохма. Нахуй пошёл, 🤡.
Охуенные истории, 🤡. Сменил за 3 года 3 места. Везде точки с запятой, Где-то ещё и свисающие запятые.
Речь буквально шла про то, что точки с запятой якобы не надо ставить, иначе тебе не перезвонят
>Диванный вкатыш без коммерческого опыта, ты? За последние четыре года сменил три компании, везде в преттиере было правило убирать этот мусор
У меня за последние 5 лет 4 успешных проекта энтерпрайз уровня и один не менее успешный криптостартап. Никогда никому даже в голову не пришло бы отказываться от точки с запятой. Мегакринж
да лол че заливать, стандартный npx generaтор, олды никогда через npx проект не создавали?
>Где-то ещё и свисающие запятые
Не удивлюсь, если у этого уникума trailing comma тоже не обязательна, а потом в гите нахуй:
---shit: fuck
+++shit: fuck,
+++piss: cum
Видите ли, запятая, это визуальный шум, поэтому у вас в диффе гита две лишних строчки при добавлении нового свойства, элемента или аргумента
Ты перепутал. Я и за точки с запятой, и за свисающие запятые, и за всю остальную строгость письма
Какой ты молодец, рад за тебя. Ну а мы, получается, тут все поголовно по другую сторону баррикады?
При том что ты так удобно проигнорировал часть поста про точки с запятой, 🤡.
Блядь. Да не про тебя же писал, а про того уникума, который против точек с запятой. Всё отстань
Щас бы вкатуну вебпак конфиг ковырять,когда дефолт проект через npx не открывается
Представил ебало твое конечно
>> свисающие запятые нужны
это те которые в конеце массива?
хорошей практикой считается их оставлять.
Эта хуйня с запятыми - проблема твоего дифф-вьювера, нормальные вьюверы показывают диффы без этой проблемы. А точка с запятой в жс нужна (но не нужна в тс)
Это не хорошая практика, это у какого-то дедулая криво дифф отображается и он за это содомирует всю команду своими кринжованными запятыми
Смотря какой опыт. Если во второсортных или даже третьесортных галерах, то ровно 150. Если на годных проектах в хороших компаниях, то 200-250.
>>17002
Ваши примеры нерелевантны касательно реальной практики.
>>17003
Trailing commas во всех этих трёх местах были, почему бы и нет. В объектах они уместны, отсутствие точек с запятой их не обязательно отменяет. Если ты работал в конторах с устаревшими пожилыми практиками, и преттиер конфиг у вас там был из 2015 года, то мои соболезнования.
>>17006
>Энтерпрайз
Ну не удивительно, там обычно работают скуфобумеры, которые с их синдромом утёнка любят цепляться за старое и привычное. Если везде ставили точку с запятой в 2011, то значит и в 2023 надо ставить. Лол!
>>17016
Нахуя? Тебе нравится визуальный шум? Тебе нравится выполнять лишнюю работу?
>>17019
Она нужна только если ты пишешь в коде ( и [ в начале строк. Часто ты таким занимаешься? Я последний раз году так в 2015, когда IEFE ещё в ходу были.
>Нахуя? Тебе нравится визуальный шум? Тебе нравится выполнять лишнюю работу?
логически отделяют конец строки.
на всех проектах ставят.
идешка ругается если нетут.
логический шум - твои посты в треде.
На прошлом проекте был один шиз, который постоянно писал что-то вроде a = { x: 2.5, y: Math.floor(this.x) }
А теперь смотрю - внутри классов это чуть ли не валидно.
> логически отделяют конец строки
Ты без точки с запятой не способен понять, что произошёл конец строки?
> на всех проектах ставят
Не на всех. С каждым годов всё больше проектов, где их не ставят. Бумеры и скуфы с синдромом утёнка постепенно уходят в небытие.
> идешка ругается если нетут
Если её по-дебильному настроить, то так она и будет себя вести.
>Ты без точки с запятой не способен понять, что произошёл конец строки?
Я-то способен. У интерпретатора проблемы.
Так ты говоришь, что ; на всех проектах ставят, вот и неси пруфы, раз первый утверждаешь.
>>17029
Когда нечего сказать, то остаётся только бессильно пукнуть в попытке извергнуть пустое псевдо-оскорбление.
>>17030
Возвращаюсь к уже дважды сказанному, на реальных проектах такое деструктурирующее присваивание с самого начала строки встречается крайне редко. Во всех проектах где я был, в таком случае на этой же строке сначала объявлялись переменные. Да и можно правило в eslint добавить по этому поводу, плюс можно сделать подставление ; в редчайших случаях как у тебя на скриншоте, если так хочется присваивать новые значения нескольким переменным через деструктуризацию.
> на реальных проектах такое деструктурирующее присваивание с самого начала строки встречается крайне редк
Да, редко встречается [ и ( в начале строки.
Но когда встречается, оно всё может пройти тихо и незаметно, оставив на месте себя взведённый баг, который неизвестно когда стрельнёт.
Я нашел тебе спасение - no-unexpected-multiline
То ли дело срать точками с запятой
>>17035
Когда я встречал строку начинающуюся с [, то просто ставил ; на предыдущей, либо прямо перед [ в случае если преттиер убирает их в конце строк (правила не я на проекте устанавливаю, если чё). За много лет всего пару раз приходилось делать. А строки начинающиеся с ( это что-то настолько древнее, что уже не встречается в принципе
>на всех проектах ставят.
>буквально самый популярный фронтенд фреймворк написан без точек с запятой
Чел...
https://github.com/vercel/next.js/blob/canary/packages/next/src/client/components/app-router.tsx
672x904, 0:03
А, ну раз верцел без точек пишет!
1980x1080, 0:15
>>буквально самый популярный фронтенд фреймворк написан без точек с запятой
https://github.com/vercel/next.js/issues/43799
- >>17033
Бабелепроблемы.
Не понял, при чем тут Бабель и тайпскрипт, нахуя дважды транспилировать, чтобы что?
можно ещё godot script обсудить, к примеру
Забанить тебя за троллинг тупостью
https://stackblitz.com/edit/web-platform-sandbox-gyrdth?file=index.html
Если хочешь ускорить отрисовку первого, то советую батчить калькуляцию и отрисовку, например сначала для 100 точек считаем координаты, сохраняем их, а потом уже рисуем. Такой подход и для второго быстрее будет, там вообще можно сначала все точки посчитать, а потом отрисовать.
А как сразу много точек нахуярить одним вызовом? И треугольников мне тоже рисовать надо много, друг друга я ими не закрашиваю всё равно (кроме черного).
>проблема твоего дифф-вьювера
Чел, ты еблан? Если тебе нужна отдельная зумерская оконная программка, чтобы почитать дифф, то тут явно проблема в твоем визуальном восприятии. Норм челы смотрят в сырой дифф в консоли, а не в зумерские приложения. А если вдруг очень надо, то смотрят дифф в своей IDE
К тому же, насколько помню, гитхаб и гитлаб тоже рисуют лишние строки, но я ими не пользовался сто лет, мб изменилось что
Вскод, которым пользуется вся индустрия, тоже не выкупает, что изменение - не изменение. Придется альттабаться в другое приложение, блеадь, чтобы просто поревьювать код, замечательно. Webstorm проверять не буду
>буквально самый популярный фронтенд фреймворк написан без точек с запятой
Чел... https://github.com/jquery/jquery/blob/main/src/core.js
>А строки начинающиеся с ( это что-то настолько древнее, что уже не встречается в принципе
Любой джун на тайпскрипте, который плохо разбирается в Advanced типах, может запутаться и не смочь в декларативную типизацию, поэтому какую-то строку он может начать с:
(shittyTypedConst as MyType).doSomething();
И этот код в теории может пройти ревью, если и остальным членам будет лень ебаться с типами
Пикрил - вызывается не та функция, которая ожидалась. И всё из-за отсутствия точки с запятой
Добавление точки с запятой, как видно, решает проблему
Если ты про fillRect то никак, по одному квадрату за раз. Я про то чтобы группировать отдельно высчитывание координат и отдельно отрисовку, я когда-то давно ебался с этим и так выходило намного быстрее, мб тут какая-то internal оптимизация
В реакт соSAGA. Да, я надеюсь, что ты дрочишь реакт, и это заставит тебя дочитать Cuntor'а и посмотреть на сосагу.
>>17196
Так там не в отрисовке проблема, лмао, это setInterval так работает.
https://stackblitz.com/edit/web-platform-sandbox-ttmzmd?file=index.html
И правильно. Нахуя оно было надо, когда был RTK Query, не говоря уже о React Query и useSWR.
Та ты заебешь, я тебе про то чтобы в цикле дергать fillRect и ничего больше не делать, я тестил на миллионах квадратов и так выходило быстрее, даже при условии что ты по два раза проходишь цикл.
Как же хорошо вылезти из спячки, где можно было не дрочиться с менеджерами.
твоя база не база.
Предложили работу на ангуляре, до этого писал на реакте и вью, ангуляр код в жизни не видел даже краем глаза. Вопрос, каков шанс обосраться?
Не работает это так. Вот, проверь, только сохрани как файли открой отдельно, эта хуйня не поддерживает весь апи консоли.
https://stackblitz.com/edit/web-platform-sandbox-etl1ak?file=index.html
Иногда смотрю на код fellow реакто макак, и думаю, что не надо.
соглашайся.
я так вкатился в первый раз.
не пожалел.
правда теперь рякт трогать руками не могу, боюсь отупеть.
> дедулаю бомбануло но чинить свои кривые вьюверы он не будет
Дед, представь себе, в «сырой консоли» диффы тоже показывает отдельная программа и она у тебя кривая
Понятно. Принятый индустрией git diff, который работает по строго описанному стандарту, это кривая программа. А какой-то зумерский дифф, который нарушает стандарт и скрывает изменения, это база
Когда я собеседовался в таргем, меня доёбывали вопросом, докуда я доходил в Celeste, и не верили, что я прошёл всю.
А если серьёзно, то я бы пошёл только ради ноды на эту вакансию. Уже лет 10 всё хожу вокруг да около NodeJS, там бота написал, тут пет-проект сделал, а так чтобы в продакшене под нагрузкой юзать - было бы интересно.
да не, мутная какая-то кантора.
тоже с нодой считай не работал.
но из кейсов - какая-то ксго поебень, даже на хх профиля нету.
просто кекнул с пожеланий к кандидату.
не знаю как бы спросить: считаются ли кастомки в варкрафте релевантным опытом.
Надо просто узнать, зачем им это надо.
Одно дело, если они стряпают какой-то связанный с этими играми сервис. Другое - если просто для "корпоративных целей". Мне как-то раз на собесе поставили в минус, что я никогда не играл в страйкбол, и не смогу вытянуть их офис в предстоящем матче.
Дедуль, мы тебе перезвоним.
git diff - это не какая-то программа, это команда запуска настроенного тобой вьювера диффа, у тебя там настроено что-то окаменелое.
Но вообще тебе лучше не напрягаться, возраст все равно уже не тот, ляг, полежи спокойно, не лезь в эти зумерские дела.
>просто отправляет бекенд-псам запрос "/api/getlist", {params: { ord: "desc", col: "Age" }
У нас так.
Но у нас таблички могут быть многострочные и могут не подгружаться целиком, поэтому клиент тупо не всегда способен сделать сортировку.
Если бы таблица была попроще, был бы наверное смысл сделать сортировку на клиенте.
Понятно. Значит проедусь по мозгам заказчика, что эти фичи не моя головная боль. На самом деле просто похуйлень
Но ты всё равно должен выводить значок, обозначающий порядок сортировки в нужном столбце и отправлять данные наверх при надобности.
По моему опыту, с беком он будет бодаться ещё дольше, а зп идёт. Как апи созреет, нарисую и значки и запрос.
> Через кубер создаете хуеву тучу инстансов и балансируете нжинксом?
Да. Подробностей не скажу, девопсы занимаются.
Сдохни, уёбок-перекладыватель. Попрограммируй хоть раз вместо того, чтобы пиздеть и кнопки красить
git diff всегда работает в режиме unified diff, который по определению line-specific, а не character-specific. И патчи он тоже генерирует в формате unified diff, патчи тоже обычно читаются в оригинале.
Такой вопрос к зумеру: если в твоей соевой программе видно, что ты в конце массива добавил ещё один элемент, как понять, поставил ты в конце предыдущей строки запятую, или забыл? По идее, если ты не отображаешь изменения предыдущей строки, то никак, а если отображаешь, то ты срёшь себе в глаза лишней информацией
node --max-old-space-size=[megabytes]
Ахаха, кстати, вспомнил. В dextools.io вот эта таблица блядь сортируется на фронте, поэтому ты сортируешь только текущую страницу, а глобально отсортировать не можешь
Основная проблема, дедуль, в том, что ты не понимаешь, что из-за кривых настроек своего софта и вместо его настройки ты засираешь код всратыми висячими запятыми, ухудшая его читабельность
>>17576
Кривые настройки моего софта это всемирно принятый стандарт, под который пишут все top-grade тулзы. Отходишь от стандарта - тулзы не работают - ты едешь на своем гироскутере нахуй
>>17570
Понятно, школьник-теоретик. Не просто так ты не смог ответить, как ты поймешь, что запятая была пропущена
> дедуль
> апелляция к авторитетам
Дедуль, мы в курсе, что существуют коллективы где такие дедулаи как ты кошмарят людей «мировой практикой», просто будь в курсе, что есть и такие, где соблюдать твои дореволюционные ритуалы и говнять код всратыми висячими запятыми не нужно.
>Не сильно, но мешает восприятию кода. Бесполезные ; создают визуальный шум, это буквально мусор, который в современных js/ts программах абсолютно не нужен.
Имагинировал ебало зумера, у которого на ревью при виде точки с запятой выступает пот на лбу, он тревожно начинает звонить ПМу и говорить что в таких условиях невозможно работать, слишком много визуального шума, на собесе про такое ничего не говорили. ПМ успокаивает его, ведь конфиг претиера писали еще деды и менять уже никто ничего не будет, предлагая взять PTO на пару дней
А со стороны разрабов есть какие-нибудь тонкости? Или просто закинуть без задней мысли докерфайл и всё будет работать?
Блять да зачем ты ему отвечаешь, просто мимопроходящий хуй чёто пукнул. Вместо того чтобы его тупо проигнорить нееееет ты щас начнёшь доказывать шо он не прав.
А потом он видит trailing comma и у него отваливается жопа
Стейтменеджеры.
Если считать со старой версией react-query, то редакс вообще уже пососал по использованию.
Надеюсь zustand заменит ебучий редакс. Очень приятный стейт менеджер
const [width] = useState(`${[1,2].length * 465}px`);
return (
<div className={`w-[${width}]`}>
</div>
);
Классы при билде запекаются. Опиши что ты хочешь и какая там вариативность с подвохами.
Карусель. Надо контейнеру задать ширину, что бы вместить все карточки с оверфловом хидн и по клику на кнопку просто тягать туда сюда через transform translate.
Тогда возможно лучше в style просунуть стиль инлайном.
Насчёт транслейта пока не могу представить что там произойдёт, слишком варёный.
Есть ещё scroll-snap
https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Scroll_Snap
Но мне кажется тебе не подойдёт и там надо поебаться.
Ну есть ещё один очень тупой вариант. СДелать обёртку для элемента карусели, с которой можно брать ref.
Дальше, при клике на кнопку, берёшь с нужной по счёту обёртки элемента и делаешь по рефу обёртку ref.scrollIntoView(options).
Там прям можно сделать плавный перекат до элемента без ебли.
>>17948
Вот сговнял вариант на трансформе.
https://hastebin.skyra.pw/abecuxexix.htm
С рефами и scrollIntoView() мне кажется будет чище.
>Если тайпскрипт по итоге распадается в жаваскрипт то почему тогда не пишут фронт на других языках и через какой нибудь инструмент не переводят в жаваскрипт?
Ну вот смотри, гопота предлагает упороться в флаттер и дарт.
Хороший вопрос! Действительно, TypeScript компилируется в JavaScript, но это не означает, что нет смысла использовать TypeScript для написания фронт-энд приложений.
TypeScript предоставляет множество преимуществ в сравнении с JavaScript, таких как строгая типизация, улучшенная поддержка ООП, более чистый и понятный код, лучшую поддержку инструментов разработки и т.д. Кроме того, TypeScript - это язык программирования, который активно развивается и становится все более популярным в сообществе разработчиков.
В дополнение к вышесказанному, существуют инструменты, которые позволяют переводить код, написанный на других языках, в JavaScript. Некоторые из них, например, CoffeeScript или Dart, были созданы как альтернативы JavaScript, но не получили широкой поддержки в сообществе разработчиков. В настоящее время TypeScript появился как один из наиболее популярных языков, который компилируется в JavaScript.
Таким образом, использование TypeScript для написания фронт-энд приложений имеет свои преимущества и является распространенной практикой в современной разработке веб-приложений.
Пишут, просто транспайлер в жс из "других языков" писали совсем уж ничего не понимающие во фронте дедулаи, а тайпскрипт выстрелил тем, что хорошо зашел в экосистему фронта ну и хорошо раскрутили, конечно.
Ну там переменные среды из vault получить в helm файле и кнопку в спиннакере не забыть не нажать.
Если тебе на канвас мазюкать...
https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API#guides_and_tutorials
> pic 1
Если тебе именно вебГЛ и ещё больше охуеть...
https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API#guides_and_tutorials
> pic 2
Мазюкать канвас просто, а вот в вебгл полез, а там ебать охуеть какие-то буферы, какие-то шейдеры, какие-то рандомные переменные, которые хз что значат.
Ну норм, бери туториал. Я его весь не смотрел, но там вроде болие ли мение доступно из примерами.
HTML 5 Canvas Deep Dive, в принципе, идёт по функционалу канваса с примера, но думаю тебе хуёво зайдёт.
Кукбук - гигачадское пособие. Обычно в стиле проблема => решение.
>>18102
блядь, там хэндбук. Ну похуй. Там больше по АПИ расписано с нюансами, которые тебе пока не всрались. Так что бери туториал. Начнёшь крепчать - сам можешь подсмотреть что-то на MDN или в том же хэндбуке поискать описание какой функции.
Или вообще загуглить "как сделать хуйня нейм на канвасе"
>Как мне сделать динамическую ширину контейнера, которая будет зависеть от количества элементов в массиве?
???
Просто ничего не делай, он сам расширится, что бы контент убирался. Главное укажи размер каждого слайда. Посмотри как сделаны слайдеры в бутстрапе
https://getbootstrap.com/docs/4.0/components/carousel/
>const [width] = useState(`${[1,2].length * 465}px`);
Проиграл с этой "оптимизации".
element.addEventListener("click", e => {e.stopImmediatePropagation();e.stopPropagation()}, {capture: true}
Это не оптимизация, а пример того откуда берется ширина. Массив с данными приходит с Бэка. Ширина слайда 465px. Алсо, ничего не делать не помогает, контейнер должен быть с заданной шириной, что бы overflow hidden работал.
Вдобавок с клиента можно увеличить количество слайдов -> нужно увеличить ширину контейнера. В любом случае, я сделал через увеличение ширины в юзеффекте с зависимостью от длины массива с данными слайдов и начальном значении с кодом "оптимизации".
Раз уж на то пошло, как оно заметил. Из моего говнокостыля можно убрать прибитые размеры из внутреннего враппера для элементов. Он сам растянется как надо.
На контейнере с шириной 100% поставишь оверфлощ хидден.
На сложенном контейнере у берёшь скроллбар.
Уже завтра чекну лучше будет, чем с вычислением ширины или нет.
Блядь, либо уже сдохла ссылка, либо я хуй знает. Короче если до завтра не умрёшь - набросаю ещё раз.
>почему тогда не пишут фронт на других языках и через какой нибудь инструмент не переводят в жаваскрипт?
Потому что наученные опытом деды уже подметили извечный цикл:
- появляется новый "убийца JS"
- становится популярен за счёт своих фич
- группа TC39 добавляет в JS часть этих фич
- "убийца JS" становится не нужен
p.s. А вообще, JS реально хорош для своих наиболее распространённых задач. Нет другого языка, где так же просто вешать хендлеры на кнопки.
1. Все проекты ебашу через Next.js. НАсколько хорошая эта идея учитывая что в моей стране некст упоминается в около 10% вакансий. Не станет ли это отрицательным моментом для тех кто будет рассматривать мою кандидатуру?
2. Насколько критично использовать именно редакс в качестве стейт менеджера? Я использую для удобства либо реакт контекст либо zustand, но без проблем могу и редакс юзать. Опять же не станет ли это проблемой при рассмотрении моей кандидатуры?
Сейчас смотрю на такого монстра.
Это еще не страшно. Один проект на вью почти полностью состоял из такого кода
<my-cool-component ref="myCoolRef" />
this.$refs.myCoolRef.doSomething()
Правда его не фронты писали а фулстеки
Это какая-то огромная панель для менеджмента настроек. Понятно, что сама она составная.
Это значит что nginx проксирует запросы к node
>контейнер должен быть с заданной шириной, что бы overflow hidden работал.
Не должен.
display: grid;
grid-auto-flow: column;
grid-auto-columns: 465px;
Ты хуйню какую то делаешь, это всё делается средствами CSS. Посмотри принцип работы любой адекватной либы (splide, например), и реализуй с тейлвиндом
Чо там вкатываться: мидвар в экспресе - это просто функция
function (req, res, next) {
if (oops) {
next(new Error("Опаньки!") // Посылаем нах
return
}
next() //двигаемся к следующему мидлвару
}
Основное правило: не храним данные из запроса ( в том числе данные пользователя) глобально, а храним в поле объекта res
чё там вкатываться, V8 - это хром, только без DOM'а и с парой специфических функций, типа setImmediate (он же нулевой setTimeout)
expressjs нужен только чтобы сервить статику, просто несколько волшебных строк в мейн-файле.
дальше пишешь сервер как обычное приложение на js
>не храним данные из запроса ( в том числе данные пользователя) глобально, а храним в поле объекта res
кринжанул
главное не забудь сокет.ио
10 лет юзаю сокет.ио
очень надёжная вещь
если хостер блокирует вебсокеты, либа фалбекается на лонг поллинг, если он рвётся, то на аякс, потом на форму, потом на морзе, потом на голубиную почту.
короче, без связи не останешься
Net ninja канал на ютубе посмотри, там по всемму есть краш курсы
Имаджинировал ебало дауна который предлагает хомтеру вылечить 3г на двух палках какого-то хуя с мобильным интернетом.
мимо
Какое отношение имеет 3г к вебсокету?
Кто потом будет разгребать эту ебучу гору req[propName]? Я через это лично прошел и знаю, что это пиздец какая ебота. Аналоги лучше, но тоже пиздец. А асинк хуки перформанс режут процентов на 30 просто фактом своего наличия.
Вывод:
пишите на пыхе если вам не нужны вебсокеты
>ебучу гору req[propName]
Не гору, а один единственный req.context, который типизирован и имеет строгий интерфейс и написанные под него функции-экстракторы с соответствующими абстрактными типами
>который типизирован и имеет строгий интерфейс
Наличие строгого интерфейса контекста гарантирует наличие его типа до его инциализации, так что обсеры неизбежны.
https://pastebin.com/se1XBKkb
Пример кнопочек, которые дёргают трансформу, со скроллируемой при необходимости вручную контентной частью со скрытом скроллбаром.
Оно чисто для наглядности.
>вдруг есть другие варианты
Есть. Даже удобнее, но пока только эксперементальные: https://developer.mozilla.org/en-US/docs/Web/API/Navigation/navigate
мимо
>Наш стек: - Front-end — Angular.js, React.js, Vue.js, ReactJS на TypeScript;
Заебись стек с людей.
crypto.subtle.digest выдает ошибочку Cannot read properties of undefined (reading 'digest')
При этом на локалхосте открывается
Буквально огромная выделенная блямба буквально в самом начале документации на MDN.
1120x700, 0:12
Вот это решение работает точь в точь, как я делал с вычислением ширины и еблей со стейтом, только это делает за меня CSS. Заебись.
Меньше юзай сойбойские фреймворки проде хвостоветра и почаще верстай, не нужно будет на аниме форуме у вкатунцов просить помощь.
Так я наоборот, стараюсь по минимуму зависимостей подключать, просто хвостветра некст сам предлагает, по-этому я решил его пощупать. Так-то я за css modules.
>>18190
1. Ну так некст подразумевает знание реакта. Похуй вообще, сколько там процентов упоминаний некста, потому что твой опыт на нексте автоматически означает опыт с реактом, очевидно.
2. Большинство работодателей словно с синдромом утёнка дрочат на редакс. С тулкитом он не так уж плох, но зустанд очевидно намного лучше. Могут докапываться до твоего опыта, мол, нам нужно два года опыта на проекте с реактом и чтобы там обязательно был стейт менеджмент на редакса. Нахуя - не ясно, поскольку редакс прост шо пиздец, так что раз ты умеешь на нём писать, то я бы просто нарисовал себе опыт с ним.
Пиздежом попахивает. У меня на работе 2 инстанса пыхи, каждый по 32 ядра amd epyc отрабатывают в пике2ккк запросов в сутки. Это около 300 RPS на инстанс с пиковой загрузкой 70%.
Бэк написан на ларавеле, ежели что.
one: 'x',
two: 'y',
three: 'z'
}
type Keys = keyof typeof obj;
Здесь тип Keys будет 'one' | 'two' | 'three'. А можно выдернуть тип из значений? То есть получить 'x' | 'y' | 'z'.
опыт на редаксе то я конечно нарисую. Просто на гитхабе мои петы все с зустандом. Есть парочка со старым хардкорным редаксом без тулкита, но в основном на зустанде. Я за это именно переживаю что будут по гитхабу шариться и будут плеваться что редакса мало в петах
Это настолько смешно, что я оба раза проебался пытаясь повторить ларавель
Может в экспрессе заюзали орм, а в несте драйвер монги, надо в исходниках посмотреть
понятно
Потому что говорящие головы не вдаются в "как надо", они демонстрируют на коленке по верхам.
error ReferenceError: window is not defined
Даже когда я сую проверку if (!window) ...
Ошибка "ReferenceError: window is not defined" возникает потому, что объект `window` не существует на серверной стороне. Вам нужно проверить, происходит ли код на сервере или на клиенте, и выполнить соответствующие действия.
Для этого вы можете использовать объект `process`, который доступен только на серверной стороне Node.js. Вот пример кода, который позволит вам избежать ошибки:
```javascript
if (typeof window !== 'undefined') {
// Код для клиентской стороны
} else {
// Код для серверной стороны
}
```
Таким образом, вы проверяете, определен ли объект `window`. Если он не определен, значит, код выполняется на серверной стороне, и вы можете выполнить соответствующие действия, например, вернуть значение по умолчанию.
Если же объект `window` определен, то код выполняется на клиентской стороне, и вы можете продолжить выполнение кода, зависящего от окна браузера.
В экспрессе юзают mongoose
https://github.com/TechEmpower/FrameworkBenchmarks/blob/master/frameworks/JavaScript/express/mongodb-app.js
В несте typeorm
https://github.com/TechEmpower/FrameworkBenchmarks/blob/master/frameworks/TypeScript/nest/src/mongo/mongo.service.ts
Вопрос, кто какой инструмент использует для работы с базой в несте? Typeorm/Prisma? Или что-то другое?
Тогда на клиенте:
Warning: Expected server HTML to contain a matching <button> in <div>.
Uncaught Error: Hydration failed because the initial UI does not match what was rendered on the server.
нет.
Однажды один вкатун не написал use strict в начале файла и у него отвалилась жопа.
Единственный (и очень важный) плюс ангуляра в том, что в нем используются бэкендерские практики, и с помощью него можно проще вкатиться в бэкенд. Это важно, потому что времена искуственного разделения профессии на фронт и бэк подходят к концу. Фронт потихоньку перекатывается на сервер (те же серверные компоненты), с запросами к базе и прочему, а значит серверная архитектура, паттерны, солиды и ООП - это теперь новая реальность для фротомакак.
Где ты откопал методичку 2013 года, дедуль? Нахуй никому не нужны в 2к23 твои фабрики абстрактных фабрик
Мань, не обольщайся серверными компонентами некста. Я тебе больше скажу они как раз нужны чтобы перекатить сервер на фронт с помощью server actions которые внедрили в некст. Пока еще нестабильная версия но скоро заживем без бэкоговна
Если ты модули используешь (ты используешь модули), то у тебя и так строгий режим.
Ты же понимаешь, что это дикий антипаттерн и никто в здравом уме не будет это городить?
>скоро
Соевые дебилы из фейсбука только 4 года один только suspense пилили до стабильной версии, а ты тут полноценную изоморфную архитектуру предлагаешь им запилить.
У меня буквально половина проекта на этом говне. Когда приходит время рефакторинга я каждый раз охуевую от мозгов пыхеров, которые вместо того, что бы просто вернуть жсон из базы делают:
1) Получают массив SQL запросом
2) Создают <select>
3) Помещают на каждую строку <option>
4) При загрузке документа итерируются жопаскриптом по всем <option> и собирают массив данных.
При этом select нигде не используется от слова совсем.
Ты какую-то хуйню несешь. Очевидно, что селект рисуется на сервере, а собирать жаваскриптом понадобилось позже, когда решили добавить ИНТЕРАКТИВНОСТИ
На крайнем выступлении Абрамов буквально вот это все рассказывал. Что риакт будет как пыха
Так он всегда таким и был, но главное отличие что в пхп ты все складываешь в строку без проверки типов и пихая SQL-инъекции, а в реакте все под контролем
Пап-макаке припекло. Мы обсуждали картинку, на которой был приведен эталонный пхп-код, реакт выглядит примерно так же, но есть нюанс.
зочем вы обсуждае картинку из 1997? Тогда риакта еще не было. Давайте ваучеры обсудим, кто куда их израсходовал...
Пиздец ты тупой. Речь о том, что неосиляторы реакта, когда видят JSX, то у них случаются приступы воспоминаний о пхп 1997 года. И они не понимают разницу.
Но тупишь тут ты. Те кто видят в реакте пыху видит, не о скл инекциях думают, а об архитектуре приложения.
Во-во, именно так и кукарекают дурачки с появления JSX - про архитектуру и фабрики абстрактных фабрик, желая все это говнецо притащить во фронт. Так и появился ангуляр.
Чел, это хорошо что в нексе в компонентах будет скл логика, только если ты в одно рыльце приложение пишешь. А если командой на 25 специализированных рыл, то уже очень плохо.
Потому что ты захочешь перекрасить кнопки, и не найдешь исполнителей, которые помнят как это делать в твоем окаменелом говне
Тебе в ангуляр, шиз
>Очевидно, что селект рисуется на сервере, а собирать жаваскриптом понадобилось позже, когда решили добавить ИНТЕРАКТИВНОСТИ
Селект рисуется на сервере с display: none, они значально не использовался для какой-либо интерактивности. Я проверял по гиту.
Видимо это такой интересный способ сериализации, заинлайнить жсон куда-то не додумались. Не устаю поражаться креативности пыхарей с вордпреса
Да, зато они выпустили продукт и заработали миллиард баксов, а ты пердишь в труханы на диване со своей чистой архитектурой.
Недавно в описании вакансии видел
>У нас основное приложение на вордпрессе и микросервисы на ларавел
Но ты же не кобан, чтобы мечтать о миллиардах. А так у тебя ни миллиардов, ни чистой архитектуры...
И это прекрасно, главное знать, что чистую архитектуру на хлеб не намажешь и тратить время на нее не нужно.
>на хлеб не намажешь
Почему? Когда ты станешь стареньким скуфом, тебя кабан уже с миллиардами заработтаными на твоем горбу уволит. С чистой архитектурый ты можешь начать писать книжки, как правильно зарабатывать миллиарды кабану. Про то как ты говнокодил лишь бы успеть к сроку, ты книжек не напишешь.
Пока я наговнокодил, успев к сроку, у меня остается куча времени, чтоб параллельно подскакивать кабанчиком самому. А бедняге, который тратит все свое время на чистую архитектуру да, придется несладко, и кабан выгонит, и на пенсии еще работать придется.
ебало кабанчика, когда ему скажут, что не могут отловить все баги из-за проебанной архитектуры и кучи джунов, которые генерят новые, не нужно.
Дурачок, написать заново дешевле, чем содержать чсв-шных мудаков с чистой архитектурой.
Припекло, понимаю, но ты остановить и подумай.
Ну так подключайся к монге прямо с браузера. Только не забудь с кобана стребовать зепку бекендеров.
А нахуй мне задерживаться?
>у меня остается куча времени, чтоб параллельно подскакивать кабанчиком
Я вижу как ты "подскакиваешь кабанчиком" сидя во вкатун треде на оранжевом пикабу.
Не пойму, от чего у тебя загорелся зад. От того, что я могу сидеть в рабочее время на оранжевом сайте, а ты смог зайти только после восьмичасового пердолинга чистой архитектуры? Так о том и разговор.
>ы смог зайти только после восьмичасового пердолинга чистой архитектуры
Буквально час попердолился с jquery и оставшиеся 8 часов сидел в /po/, кидал боевых свиней. Вопросы?
Чистая не значит переусложненная. Чистая - значит что ты не срешь, там где ешь или спишь.
>Это из-за говнокода такие проблемы возникают что даже глыбы не могут разобраться?28
Из-за набранных по квотам нигеров и жирух
Если ты задаешь такие вопросы - книги тебе не нужны, читай для начала офф документацию, что бы от зубов отскакивала.
Хайлоадошизы на месте? Вон в Авито один из сервисов имеет нагрузку всего 200 RPS. Ноды не хватит? Ваши оправдания?
>JS неудобен для описания бизнес логики
Чем обосновано? Единый язык описания бизнес-логики зависит от рода предметной области. Единственное, чего не хватает JS-у, типов для описания объектных моделей. Это решается простым подключением тайпскрипта. Все остальные виды моделей и в жс, и в тс прекрасно описываются, как и в любом другом мультрипарадигмальном языке
>один из сервисов имеет нагрузку всего 200 RPS. Ноды не хватит? Ваши оправдания?
Очевидно, ноды не хватило, раз уж они на Go всё это писали.
Намного удобнее энтерпрайзопараши. В связке с нестом и ТС конечно. Конкурент только голанг
>как там в 80-х
Заебися, хуярим на коболе РЕАЛЬНЫЙ хайлоад, который держит по миллиону RPS И не падает
Как мне ловить эти все ошибки и различать их? Чтобы, когда я ловлю ошибку, которая брошена моим кодом, делать одно, а когда сам JS ошибку кидает, то другое.
Собираешься ошибки от частного к общему, как и не в джаваскрипте. Всякие синтаксисы, типы, референсы и прочие - подкласс Error
Можешь отэкстендить свою ошибку от еггога, и ловить её в коде. Не знаю что тебе там надо. Думой.
Так а так, как у меня на пике - нормально делать? Или подводные камни?
Если JS-ошибка то generic error, а если мой throw - моё кастомное сообщение.
IMO ёбаный нерефакторируемый говнокод.
Сделай свой кастомный ZalupaError со стуком ошибки и блэкджеком и лови его.
Будешь делать throw new ZalupaError("otsche vazhnaya oschibka")
>Syntax Error
>Как мне ловить
Synax error ты никак не поймаешь, потому что она выкидывается в момент парсинга, а не исполнения кода, где есть твой trycatch.
Можешь использовать события
https://developer.mozilla.org/en-US/docs/Web/API/Window/rejectionhandled_event
https://developer.mozilla.org/en-US/docs/Web/API/Window/unhandledrejection_event
В остальных случаях просто унаследуй свой класс для ошибок и кидай его, как тебе посоветовали выше.
Ну, может у него там что-то вроде пикрил лел.
Хочу сворачивать форму при клике за пределы ее контейнера.
Норм ли использовать document.querySelector(".my-form") для дальнейшего определения является ли target потомком этой формы?
Потому что если юзать ref, то приходится создавать компонент принимающий ref через вызов forwardRef, и потом еще задавать ему displayName. Это все по ощущениям более всрато чем первый вариант.
>document.querySelector(".my-form")
const formRef = useRef<HTMLFormElement>(null);
useEffect(()=>{
const cb = (e: MouseEvent) = > {if (!formRef.current!.contains(e.target)) СВЕРНУТЬ_ФОРМУ()}
document.addEventListener("click", cb);
return () => document.removeEventListener("click", cb)
}, [])
<form ref={formRef}>
Если чисто JS на каком-нибудь экспрессе, который тупо даёт роутинг и ничего больше, то да. А на несте с тайпскриптом есть ООП, можно хоть DDD обмазаться. Нест в принципе из коробки делает удобным описание бизнес логики.
В нормальных бекенд языках всё это идёт из коробки, в то время как для жс приходится чем-то обмазываться
это понятно, но ты используешь ref на обычном html-элементе, у меня же <NoteForm /> где если сделать так, будет ошибка.
Потому что по ебанутому компоненты создаешь.
Смотри: NoteForm - компонент выпдающего меню. В нем есть что-то такое:
<Card><Form/></Card>
Где Card - UI компонент. Вот через него и проверяй, кликнул ли пользователь внутрь карточки или нет.
>document.addEventListener("click", cb);
насколько это правильно в реакте юзать ванильные document методы?
В данном случае - правильно. Потому что клик может быть вообще вне твоего react-рута.
Что в них из коробки? Только типизация по сути. Остальным там тоже обмазаться надо. Никакого DDD нету из коробки в самих языках, в джаве или в сишарпе, никаких там гексагональных архитектур. Даже фреймворки типа спринга и дотнета только дают базу для создания хорошей архитектуры в проекте. Нест даёт то же самое. Его вообще очень часто сравнивают как раз со спрингом и дотнетом, он вполне подходит для энтерпрайза. Есть и другие фреймворки типа Adonis, но они по сравнению с нестом совсем непопулярны, на работе вряд ли будут использоваться.
я не могу ставить листенер внутрь, он не будет отлавливать внешние клики. Поэтому я ставлю листенер вверху, и здесь два варианта получить ссылку на контейнер формы, либо через ref, либо через ванильный document. Интуитивно кажется что нужно использовать ref, но с ним больше телодвижений
>я не могу ставить листенер внутрь
Блять шиз, я тебе написал - ставь листенер на документ и проверяй через ref, что клик был не по карточке.
Если ты не доверяешь кури гитхаб, хули: https://github.com/react-component/trigger/blob/0083c80ed58aa67586382ac5fad773cf00e1acb8/src/hooks/useWinClick.ts
если я ставлю листенер через document, почему бы мне тогда не находить нужный элемент через document? Я сделал через реф, пришлось оборачивать мой компонент в forwardRef и дописать
MyForm.displayName = "MyForm"
только после этого линтер от меня отъебался
>почему бы мне тогда не находить нужный элемент через document?
Потому что ты дебил, блять. Потому что все, что зависит от жизненного цикла компонента должно решаться через функционал реакта раз.
Потому что компонентный подход подразумевает переиспользование компонентов, а в твоём случае ты сможешь захардкодить либо один компонент, либо засрать весь твой декларативный код императивным jquery-like вызовами каких то рандомных селекторов два.
>дописать MyForm.displayName = "MyForm"
А теперь объясни, нахуя ты это сделал. Я серьезно. Прочитай что такое displayName для начала, прежде чем его писать куда-либо. Он вообще должен автоматически плагином проставляться, если ты не дебил.
>только после этого линтер от меня отъебался
Настрой его нормально а не костыль.
>Настрой его нормально а не костыль.
имя компонента теряется при создании через forwardRef
https://youtu.be/GEoWHZUJna0?t=459
Да тут ты не прав с самого начала, начал выдумывать какую-ту хуйню с forwardRef'ами, хотя эта задача примитивнейшая.
Это че, у вас в языке ЛИНТЕР встроенный есть настолько умный?
Да, тайпскрипт охуенен
И вместо UID само собой подставить цифровое значение, взятое из этой ячейки, в которой всегда будут только цифры. Подозреваю, что нужен какой-то уникальный селектор элемента и шаблон урла. И потом всандалить это в tampermonkey. Или может кто-то отправит в максимально подробную инструкцию по аналогичной задаче.
>tampermonkey
Можно.
Файлом скинул. Абу доебался до какого-то слова из кода для темперманкей.
Там где match, поменяешь на свой сайт. Звездочка нужна.
Там мало что-то курсов по нужной мне теме
Офигенно, спасибо! А как делают, чтобы при обновлении скрипта на гите - он обновлялся бы тамперманки? Да и в первый раз чтобы автоматом установился в тамперманки при переходе по ссылке.
Да хз, я на юдеми смотрю топовые курсы по оценкам и отзывам и качаю с торрентов. На ютубе я в душе не ебу как хороший материал найти.
>>21314
Если вкатун то лучше реакт сначала пощупать. Но сейчас без типоскрипта вообще не вкатиться наверно так что и его потом надо изучать. Если никуда не торопишься то еще Next.js поверх реакта можно накатить.
По поводу автоустановки разобрался, а автообновления - нет. Может кто-нибудь подсказать?
Запилил в скрипте
// @downloadURL https://host.name/-/raw/master/scripts/coin-admin-panel/highlights.user.js
// @updateURL https://host.name/-/raw/master/scripts/coin-admin-panel/highlights.user.js
Обнов в тапер не пришло после коммита в гит.
>innerHTML
Мы вам перезвоним. Но так как код все же рабочий - можем предложить вам ставку мойщика обдристанного очка
Тот анон добровольно откликнулся, помог., даже файл залил куда-то. А ты саркастичная мразь.
Мимо проходил
В чем сарказм? Я же подтверждаю - задача выполнена, он молодец. Только в прод я бы такой код не взял от своего джуна.
А что ты мне сделаешь, педик очкастый? Да нихуя, ведь я программист. Ты знаешь сколько у меня рейтинг на Leetcode? Я просто напишу один паттерн и ты впечатаешься в стену и потеряешь сознание. Я решил 240 hard'ов на leetcode, знаешь какой у меня скилл, унтерок? Я просто спрошу тебя про типы данных и если ты промямлишь только 8 - тебе не перезвоню.
Поэтому помни хипстарок омежий, если ты слабое безвольное дрищечмо, даже не семей приходить на собес. Если не хочешь быть обоссаным мною. Я заберу у тебя все, тупой хуесос.
Твои Angular React Vue тебе не помогут, они будут в твоём очке.
Потому что в реальной жизни используется только реакт, а вуе используют только вкатуны для пет проектов
В реальной жизни вуе часто используют. Но на говнопроектах с пхп. А в актах вкатунам лучше свелте тогда уж. Он поприятнее
Но в вуе 3 есть и тайпскрипт, и композиция и все ништяки что и в реакте. Чем он хуже принципиально?
хз как правильно.
пока можешь с таким кастылем юзать, если не найдешь варианта лучше.
на первой подсасываешь код из гитхаба. в манкей.
на второй сам гитхаб.
нигде авторизироваться не нужно, ничего кроме ссылки в правильном формате, вроде, не тредуется, для подсасывания.
с приватными репами, думаю, работает, как минимум первые пару минут.
полный код ниже.
https://dropmefiles.com/1DIkc
Предупреждение: Использование оператора with не рекомендуемо, т.к. он может быть источником запутанных багов и проблем совместимости. Детальная информация в параграфе "Ambiguity Contra" раздела "Description".
Главное потом не сделать ошибки - не создавать резюме и не устраиваться как фулкек. Хочешь фулкека? Работай попеременно то фронтом то беком. Но не одновременно на одном проекте.
Есть такое, согласен. Но вообще если вкатыш, то имеет смысл обозначать себя именно как фулстека но откликаться на фронт и бэк вакансии по отдельности. Это даст шанс выделиться среди тысяч других вкатышей. Примерный алгоритм
- Учишь бэк (или фронт)
- Откликаешься на бэк вакансии
- Паралельно учишь фронт (или бэк если выбрал фронт в первом пункте) пока вкатываешься
- позиционируешь себя фулстеком но откликаясь на бэк и фронт по отдельности
Так смысл в использовании одного языка. Почему тогда на экспрессе есть, если нест вроде как лучше? Нипанятна
пхп упоминается в каждой пятой реакт вакансии и в каждой второй вуе вакансии. Очевидно с реактом больше выбора.
>>21730
Тебе как вкатышу от этого ни жарко ни холодно. Каждый жабаскриптер мнит себя невьебенным бэкендером на ноде сейчас. Соответственно затеряешься на фоне других вкатышей. Плюс еще требуются обычно фулстаки на ноде а джунов редко на фулстаки берут. Есть чисто nest.js вакансии но мало. И даже опытным тяжело работу найти. В чатах читал как жалуются что два месяца не могут на несте работу найти.
На мне похуй, чел. В стандарте есть? Есть. Объявлен устаревшим? Не объявлен. Значит вкатун должен знать. И точка.
ты зачем в две стороны воюешь, лол?
>проебаться с тем чтобы заменить текст на ссылку?
Вкатун плиз
>ты сначала вкатись, а потом уже с хрюшами говори.
Вкатился уже несколько лет как. Скоро сеньором-помидором стану.
462x360, 0:02
>Скоро сеньором-помидором стану.
это тебе скиллбокс нашептывает?
т.е. для тебя скорость в 30строчном скрипте является ебать какой причиной?
т.е. для тебя фантазия о том, что по какой-то причине, где-то там, что может случиться какая-то ошибка из-за иннерхтмл - причина?
как именно иннерхтмл вызывает ошибку в замещение текста ссылкой?
>это тебе скиллбокс нашептывает?
Если мой тимлид это клиббокс, то да.
>для тебя скорость в 30строчном скрипте является ебать какой причиной?
Да
>т.е. для тебя фантазия о том, что по какой-то причине, где-то там, что может случиться какая-то ошибка из-за иннерхтмл - причина?
Да
>как именно иннерхтмл вызывает ошибку в замещение текста ссылкой?
В будущем там могут появится элементы, на которые могут быть навешаны обработчики событий, а ты своим иннерхатиэмэль их затираешь.
Тебя ебать не должно
Имагинируйте сишарподебилов, который действительно считают, что хелловорлд размером 2 мегабайта убьет джаваскрипт?
>Да
Кринж.
>Да
Шиза.
>В будущем там могут появится элементы, на которые могут быть навешаны обработчики событий, а ты своим иннерхатиэмэль их затираешь.
>что по какой-то причине, где-то там, что может случиться какая-то ошибка
Собственно, либо обезьяна будет вешать обработчик на эту ссылку правильно, либо она заменит иннерхтмл если ей это будет угодно и она криворукая.
Учитывая, что Анон не шарит за код, какая ему разница?
Учитывая, что логика задачи исполнена, нахуя извращаться и продумывать "А ЧТО ЕСЛИ", я исполнение скрипта на кнопку заебашил, т.к. я ебал ебаться из-за хуйни, а тут ты хочешь продумать как оно будет работать при неизвестных изменениях кода/логики.
Я бы тебя на жиквери парашу отправил драить говнокод с такими заебами и излишними продумыванием "А ЧТО ЕСЛИ".
>обезьяна будет вешать обработчик на эту ссылку правильно
Так она и повесила. Потом какой-то вкатун со скилббокса затер её innerHTML'ем.
Шиз, удачи выебываться креейтэлементом дабы сделать ссылку и обрабатывать навешанные евенты при клике на эту ссылку и последующем переходе.
>придется ручками в каждом интерфейсе прописывать
Вариант, что ты идешь к своих петушкам-пхпшникам с претензиями ты не рассматриваешь?
>К друзьям на пхп ходили уже тысячу раз, это непробиваемые скалы, которым вообще на всё похуй. Уже не вариант.
Сходить к лиду?
>это непробиваемые скалы, которым вообще на всё похуй
Жизненно.
> Уже не вариант
К тимлиду/PO попробуй сходить и аргументировать тем, что у тебя раздувается клиент из-за того, что бэкендеры отправляют какую-ту хуйню.
>они из штата заказчика, а не из нашего
Ну и забей хуй тогда, сиди хуярь свои знаки вопроса за 200к, заебись же
Ну вот иди к лиду и говори, что паста знаками вопроса негативно сказывается на твоем психическом здоровье и ты просишь надбавку за моральный ущерб.
Ну я вот ща почитал и там говорится что для лендинга-одностранички он годится, но нет у меня посложнее и к тому же на сокетах, так что хз как там с некстом пойдёт. А ведь ещё есть всякие fastify. В какую сторону смотреть хз, у вас на вашем жс так много всего интересного
Если некста не хватает то делаешь на экспрессе. Если и его мало то можно на несте. Но колупать нест ради единичного пета такое себе, сам смотри кароч.
Не, буду от малого конечно.
Ненужные выебоны, если там не будет РЕАЛЬНЫХ выебонов, вроде невъебенных анимаций, графики, сверхоптимизированного кода (при этом что бы это было видно) и подобного.
>чисто nest.js вакансии но мало. И даже опытным тяжело работу найти. В чатах читал как жалуются что два месяца не могут на несте работу найти.
Тяжело опытным которые на экспрессе без тайпскрипта пару лет шлёпали круды с монгой и прошли курсы по несту месяц назад.
Схуяле вообще эту таску на тебя повесили? Пусть лид идёт ебать тупых бекендеров сначала. У тебя походу какая-то третьесортная галера
Чел, никто кроме вкатунов не использует жс и экспресс. Сейчас жопа полная с непопулярными стеками. Хотя и с популярными тоже чего уж там
На hh по запросу express javascript 237 вакансий, по запросу express node 171 вакансия. По запросу nest node 99 вакансий, мне достаточно. Я на ноде пишу бекенд уже несколько лет, и знаю как тут обстоят дела. Даже в российских бигтехах есть проекты с бекендом на ноде.
Да есть на гитхабе и чатик и аля твиттер. Надо уже начинать откликаться и побаиваюсь если честно. Вот думаю пиздеть об опыте или нет. И если пиздеть то как грамотнее это сделать.
В чём обосрался и под что мимикрировать? Шиз, ты таблетки забыл выпить? Ты никак не опровергнул мои утверждения, ты просто серишь в тред, засоряя его.
864x720, 0:17
ты забыл куда попал, дружок?
тут все сорта шизов, как и реактомакаки, намбер прототайпы, всех хватает.
Тогда не очкуй, позадрачивай теорию и вперёд. Где то напизди, а где то нет. По реакции сделаешь выводы как лучше поступать, всё равно с первого раза не все залетают на работу, кто то >100 собесов сначала пройдёт.
tl;dw
Там есть что-то кроме того, что я уже видел на mdn, в говнолентах, и только что в видосе файршипа?
const writable = await showSaveFilePicker().then(handle => handle.createWritable());
Дальше рестримь туда body из ответа твоего fetch'а
у файршипа интереснее и быстрее, без воды.
да и единственное что годного ввезли - структуредклоне.
Смотря для кого. Если вкатун то не зашкварно.
Для нормального спеца же есть linkedin в который ты набираешь список коллег (так называемый networking). Потом твои коллеги в будущем советуют тебе как спеца своим кабанчикам и ты советуешь своему их. Таким образом и хрюш всяких обходишь и даже тех собесы иногда если за тебя ручаются серьезные люди. Даже если и в итоге нетворкинг не выстреливает то хороших вакансий на линкедине больше и толпы вкатунов не так его абьюзят его. Херки зная это в первую очередь разгребают там и суются в хх только если там никого не нашли (что тоже бывает).
Мало просишь. Я собесил несколько месяцев назад реактомакак, там буквально макаки просили 200к+
Реактомакаки самые борзые. Собесил некоторых на 150к. В результате один не мог сеттаймаут без гугла написать, второй дернуть фетч.
Ну вот именно, пусть значит нормальную оплату просит.
Я работал на галере, где меня продали как мидла(+), с лайвкодингом и вытекающими, а коллегу не взяли с отпиской, потому что нужен мид+, за ЗП гораздо ниже 100к.
Первые 150 я получил после перехода, но меня за эти 150 ебали суммарно со всеми созвонами, лайвкодингами и задачкой по stale срезу рабочего репо "приближенно к реальным условиям" примерно 8 часов.
Соответственно после такого, просить меньше меньше 175 язык не поворачивается.
Задач особо нет никаких. Сахарок на любителя. Единственный плюс - маленький размер бандла. Но и это сейчас на реактах и вуях фиксят серверными компонентами.
>сеттаймаут
за синтаксис не шарил что ли?
или там йоба какая-то уровня намбер прототайп?
может просто в лайвкодинге оплошал, бывает такое, по себе знаю.
мысли путаются, ручки трясутся, жепка от всего этого кринжа нагревается.
>preact
Недостатки:
Preact может работать медленнее в больших приложениях, поскольку его алгоритмы рендеринга и обновления DOM-дерева не настолько эффективны, как у React.
Preact может иметь некоторые коварства в использовании, поскольку его API не полностью совместимо со стандартом React, и не все решения и плагины, созданные для React, будут работать на Preact без дополнительной настройки и адаптации.
Даже стажеры, работающие за 30к это знают, а воннаби мидол за 150к - нет.
Там же вроде даже хуков нет
>структуредклоне
проебался. думал там функции сохраняются, а там какого-то хуя ошибка вылетает при копировании.
юзлесс хуйня, просто хак с жсон парсе обернули в обертку.
Один хуй из-за необновляемых все пососут бибу с полифилами
Оно крякает насмерть если в объекте функции.
Оно не перевозит в копию методы класса, но хотя бы не крякает.
Циклические референсы - восхитительно.
Пока не могу придумать навскидку, где мне это пригодилось бы.
мима
Ты тупой или кто? Я пишу, что structrideClone это НЕ обертка над json. Ты в ответ просишь тебе что-то заджсонить.
Ты идиот?
Ты хотя бы открывал страницу с описаним алгоритма структурного клонирования? Там популярно расписано зачем он нужен и какие типы данных он поддерживает.
>structrideClone это НЕ обертка над json.
только ситхи возвозят в обсолют.
я же не буквально имел в виду, что под капотом структуредклоне
- жсон.
но суть у них одна, как и минусы, похоже.
>Key differences
>One of the key differences between structuredClone and JSON.stringify is that the former can handle objects that have circular references, while the latter cannot. Circular references occur when an object references itself or another object that eventually references the original object. This can be a problem for serialization, as it can lead to an infinite loop.
>Another difference is that structuredClone can serialize and deserialize functions, which JSON.stringify and JSON.parse cannot. This can be useful for creating a deep copy of an object that includes its methods.
Это те различия, которые заставляют тебя воспринять эти две хуйни как абсолютно разные?
Шо та хуйня не может в методы, шо эта, шо та хуйня дипкопи делает, шо эта, вот эти оби хуйни такие, что хуй отличишь, короче.
>Ты тупой или кто?
Шиз, успокойся. Я следующим постом исправил линк на пост, а ты сразу распсиховался.
>Another difference is that structuredClone can serialize and deserialize functions, which JSON.stringify and JSON.parse cannot. This can be useful for creating a deep copy of an object that includes its methods.
Объясните как, если в том же алгоритме про струкчуредклоне написано, что функции идут нахуй с ошибкой, геттеры сеттеры, дескрипторы, идут нахуй, но без ошибки. О чём я написал выше?
А и да, очевидный useRef
>скачай еще 100500 фреймворков к нашему фреймворку и на выходе получишь функционал крошечного svelte
макака не палится
Проиграл с долбоеба который даже понять не может что ему пытаются сказать лол
>зачем мне нанимать двух рабочих если я могу нанять одного который лучше работает?
>аряяяя так твой один рабочий тоже рабочий
Представил ебало дегенерата лол
Я не знаю что у тебя там за require, но если этот самый require про который я думаю, то этот require будет работать только в ноде. Для браузера делай ESM модули и импорты.
Привет! Похоже, что ошибка возникает из-за того, что вы пытаетесь использовать `require`, который используется в Node.js, в клиентской части вашего приложения. В клиентской части нужно использовать другой синтаксис для импорта модулей.
Вам нужно настроить сборку своего проекта так, чтобы он мог использовать `import`/`export` вместо `require`. Для этого можно использовать Babel и Webpack.
Пример настройки сборки вашего проекта с помощью этих инструментов:
1. Установите необходимые зависимости:
```
npm install --save-dev @babel/core @babel/preset-env @babel/preset-react babel-loader webpack webpack-cli
```
2. Создайте файл `webpack.config.js`, в котором определите конфигурацию Webpack:
```javascript
module.exports = {
entry: './src/index.js', // точка входа для Webpack
output: {
filename: 'bundle.js', // имя файла, содержащего собранный код
path: __dirname + '/dist' // директория, в которую будет сохранен этот файл
},
module: {
rules: [
{
test: /\.(js|jsx)$/, // файлы с расширением .js или .jsx будут обрабатываться этой конфигурацией
exclude: /node_modules/,
use: {
loader: 'babel-loader', // использовать babel-loader для транспиляции кода
options: {
presets: ['@babel/preset-env', '@babel/preset-react']
}
}
}
]
}
};
```
3. Создайте файл `.babelrc`, в котором определите настройки Babel:
```json
{
"presets": [
"@babel/preset-env",
"@babel/preset-react"
]
}
```
4. Обновите ваш `gulpfile.js` так, чтобы он использовал новую сборку. Например, вот так:
```javascript
const gulp = require('gulp');
const webpack = require('webpack-stream');
gulp.task('build', function() {
return gulp.src('src/index.js')
.pipe(webpack(require('./webpack.config.js')))
.pipe(gulp.dest('dist/'));
});
```
5. Теперь вы можете использовать импорты в своем коде:
```javascript
import React from 'react';
import ReactDOM from 'react-dom';
const App = () => <div>Hello, world!</div>;
ReactDOM.render(<App />, document.getElementById('root'));
```
Надеюсь, это поможет вам настроить сборку вашего проекта и заставить его работать с React.
Привет! Похоже, что ошибка возникает из-за того, что вы пытаетесь использовать `require`, который используется в Node.js, в клиентской части вашего приложения. В клиентской части нужно использовать другой синтаксис для импорта модулей.
Вам нужно настроить сборку своего проекта так, чтобы он мог использовать `import`/`export` вместо `require`. Для этого можно использовать Babel и Webpack.
Пример настройки сборки вашего проекта с помощью этих инструментов:
1. Установите необходимые зависимости:
```
npm install --save-dev @babel/core @babel/preset-env @babel/preset-react babel-loader webpack webpack-cli
```
2. Создайте файл `webpack.config.js`, в котором определите конфигурацию Webpack:
```javascript
module.exports = {
entry: './src/index.js', // точка входа для Webpack
output: {
filename: 'bundle.js', // имя файла, содержащего собранный код
path: __dirname + '/dist' // директория, в которую будет сохранен этот файл
},
module: {
rules: [
{
test: /\.(js|jsx)$/, // файлы с расширением .js или .jsx будут обрабатываться этой конфигурацией
exclude: /node_modules/,
use: {
loader: 'babel-loader', // использовать babel-loader для транспиляции кода
options: {
presets: ['@babel/preset-env', '@babel/preset-react']
}
}
}
]
}
};
```
3. Создайте файл `.babelrc`, в котором определите настройки Babel:
```json
{
"presets": [
"@babel/preset-env",
"@babel/preset-react"
]
}
```
4. Обновите ваш `gulpfile.js` так, чтобы он использовал новую сборку. Например, вот так:
```javascript
const gulp = require('gulp');
const webpack = require('webpack-stream');
gulp.task('build', function() {
return gulp.src('src/index.js')
.pipe(webpack(require('./webpack.config.js')))
.pipe(gulp.dest('dist/'));
});
```
5. Теперь вы можете использовать импорты в своем коде:
```javascript
import React from 'react';
import ReactDOM from 'react-dom';
const App = () => <div>Hello, world!</div>;
ReactDOM.render(<App />, document.getElementById('root'));
```
Надеюсь, это поможет вам настроить сборку вашего проекта и заставить его работать с React.
Тейк номер 2,а я съебал спать, перекачу завтра если никого смелых нет:
О, простите за недопонимание. Если у вас возникает ошибка `ReferenceError`, когда вы пытаетесь использовать React с помощью Gulp, то нужно добавить следующую строку в файл `gulpfile.js` перед тем, как будет вызвана задача `scripts`:
```
const babelify = require('babelify');
```
Затем в функции `scripts`, которая компилирует JavaScript-файлы, нужно добавить вызов Babelify для обработки кода React:
```
function scripts() {
return browserify('src/js/main.js')
.transform(babelify, { presets: ['@babel/preset-env', '@babel/preset-react'] })
.bundle()
.pipe(source('main.js'))
.pipe(buffer())
.pipe(sourcemaps.init({ loadMaps: true }))
.pipe(uglify())
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest('dist/js/'));
}
```
Обратите внимание на опцию `{ presets: ['@babel/preset-env', '@babel/preset-react'] }`, которая указывает Babelify, что нужно использовать пресеты для компиляции кода React. При этом не забудьте установить пакет `@babel/preset-react` через npm.
Если у вас все еще возникают проблемы, пожалуйста, уточните подробности ошибки и я постараюсь помочь вам решить проблему.
Тейк номер 2,а я съебал спать, перекачу завтра если никого смелых нет:
О, простите за недопонимание. Если у вас возникает ошибка `ReferenceError`, когда вы пытаетесь использовать React с помощью Gulp, то нужно добавить следующую строку в файл `gulpfile.js` перед тем, как будет вызвана задача `scripts`:
```
const babelify = require('babelify');
```
Затем в функции `scripts`, которая компилирует JavaScript-файлы, нужно добавить вызов Babelify для обработки кода React:
```
function scripts() {
return browserify('src/js/main.js')
.transform(babelify, { presets: ['@babel/preset-env', '@babel/preset-react'] })
.bundle()
.pipe(source('main.js'))
.pipe(buffer())
.pipe(sourcemaps.init({ loadMaps: true }))
.pipe(uglify())
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest('dist/js/'));
}
```
Обратите внимание на опцию `{ presets: ['@babel/preset-env', '@babel/preset-react'] }`, которая указывает Babelify, что нужно использовать пресеты для компиляции кода React. При этом не забудьте установить пакет `@babel/preset-react` через npm.
Если у вас все еще возникают проблемы, пожалуйста, уточните подробности ошибки и я постараюсь помочь вам решить проблему.
>просисити, извинити, пазязя, я пастараюсь
Бля, какая же все таки соя, пиздец.
Ну или у меня своего рода кринж, когда что-то неживое под живое косит.
Анон, ну зачем ты так жидко серишь?
> Зачем если ты уже обосрался с тупорылыми аргументами уровня запусти тяжеловесный фрейм
1.React библиотека, и не тяжеловесная.
2. Тяжеловесной его может делать обвес в виде всяких стейт менеджеров, роутеров и так далее.
Твой первый двойной обсёр засчитан.
> и прикрути к нему еще один оптимизирующий вместо того чтобы сразу взять нормальный. Это подход тупорылой макаки, коей я не являюсь, сорре
1. Некст не нужно прикуривать к реакту, реакт уже входит в некст из коробки.
2. Некст не тяжеловесный, пишется на нём легко, да и он по дефолту компоненты в статику собирает при билде.
Твой второй двойной обсёр засчитан.
Оправдывайся, свелтошиз.
>1.React библиотека, и не тяжеловесная.
>2. Тяжеловесной его может делать обвес в виде всяких стейт менеджеров, роутеров и так далее.
>молоток не тяжеловесный.
>просто к нему нужно миллион других инструментов чтобы что-то с ним построить
>2. Некст не тяжеловесный, пишется на нём легко, да и он по дефолту компоненты в статику собирает при билде.
Проиграл с логики долбоеба. На свелте пишется в 5 раз легче и все из коробки. Но макака слишком тупая чтобы понять это. Эффект Даннинга - Крюгера во всей красе.
Напиши свой клиент с интерцепторами ик астомными ошибками. Цена вопроса - 200 строк кода, в сотни раз меньше чем аксиос.
>Тяжеловесной его может делать обвес в виде всяких стейт менеджеров, роутеров и так далее
Т.е. тяжеловесной она станет в 100% случаев?
>Некст не тяжеловесный
Ну это шиза уже.
мимо
Как ты заебал расбрасыааьься своим дауном крюгером, что здесь, что в нюфагаче. Чмо.
Не гори, некомпетентных макак надобно тыкать носом в их некомпетентность а то гонора там выше крыши
Да, я видел вчера. Как анона который просто отписал
> а где продолжение и почему вы на говно с пуками перешли?
Назвали дауном и ткнули в даунига крогера, как будто высер его, а потом и ещё раз упомянули, но там уже хоть ближе к делу.
Каких двух рабочих, даун? Рякт это такая же легковесная библиотека как свелт.
Толсто, макакен
У Свелте даже название тяжело читать, о какой легковесности свелтошизы пытаются рассказать?
>даже названия
Эффект Даннинга-Крюгера во всей красе. Из-за таких макак и всякие редаксы с реактами захватывают индустрию
Намбер.прототайп, съеби под свою шконку.
Индустрия - для "макак", а ты тупой, чтобы это понять.
Сейчас тебе расскажут, что реакт - это попса для быдломакак, а свелте - для понимающей нитакойкаквсе элиты.
глупый вопрос
давно индустрию захватывает лучшее а не то что лучше проталкивают?
есть миллион жрален где бургеры лучше чем в маке.
ПЕРЕКОТ Number.prototype.__proto__ >>2724436 (OP)
ПЕРЕКОТ structuredClone(2716735) >>2724436 (OP)
ПЕРЕКОТ в 1С >>2724436 (OP)
Это копия, сохраненная 23 июля 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.