Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если/когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
У меня есть две картинки, как лучше всего наложить их одна на другую, чтобы верхняя закрывала половину нижней? Я про верстку спрашиваю, если что. При этом желательно, чтобы при изменении размеров экрана их не сильно пидорасило.
>>2453316 (OP) Сап, аноны что почитать по современной вёрстке? Чтобы кратко и как надо. Сам я ни разу не верстальщик, но готовлюсь к собесу и там 100% будут вопросы по тому как НАДО делать. Мне хотя бы по верхам пройтись...
>>2453496 Я обычно гуглю, копирую и правлю уже под свои нужды. Но знаний в вёрстке у меня 0, и допустим пояснить что хуйняА круче и современней хуйниБ, потому что... я не смогу.
Анон, недавно в каком-то треде спрашивали как обновлять большую таблицу или просто много элементов на странице, видосик ещё был в ответах. Запостите плз ещё раз.
При первом входе на страницу видно, как медиазапросы в css перестраивают страницу. Как спрятать этот процесс, не показывая ничего, пока css не загрузиться как надо?
>>2453958 Использую css модули, подключал через простое className=style.govno у каждого элемента. Сам проблемы не видел, мне доложил первый человек зашедший на моё поделие.
Часто в проекте приходится делать одну и ту же страницу для разные ролей юзеров. Вот например есть форма и есть два типа юзеров - покупатель и продавец. В форме есть незначительные изменения для каждого типа юзеров: где-то поле заблокировано, где-то его нет, где-то какой-то текст добавлен. Как сделать так, чтобы по всему компоненту формы не расставлять бесконечные {userRole === 'seller' && <>...</>} по всему компоненту формы? И что почитать на эту тему? Желательно для даунов, чтобы с практическими примерами и на пальцах. А то я реакт вроде знаю, но как разбивать на компоненты/хуки я в душе не ебу, т.к. проект у меня написан еще большими нубами чем я и мне тупо не у кого учиться.
>>2454038 Добавление любого скрипта добавляет лишнюю нагрузку на движок. Без бандлера один хуй будешь костылить решение, когда два модуля используют разные модульные системы, с такой же нагрузкой в рантайме.
>>2454051 Почему ты просто не создашь себе отдельные компоненты для разных типов юзера? Так декомпозиция будет правильнее, плюс с помощью Suspense ты сможешь уменьшить бандл. Так как seller не может быть buyer (условно), то зачем ему скачивать компонеты которые ему не нужны? Если у тебя слишком много связной логики или ты упарываешься по codestyle, то можешь сделать компонент Form и с помощью Object.assign() сделать компонент Form.Seller и Form.Buyer где у тебя будет использоваться соответствующий UI
>>2454100 > бы можно было бы повесить слой заливки поверх страницы и убирать по полной загрузке. Ох охуенно юзеру будет втыкать в белый экран пока все до единого картинки не загрузятся.
>>2454087 >Почему ты просто не создашь себе отдельные компоненты для разных типов юзера? Потому что там много одинаковых полей и будет повторение кода. Пробовал уже, и про твою декомпозицию и бандлы знаю, не переживай. У меня более абстрактный вопрос, на самом деле.
Я хочу запарсить массив фоток с поста на ноде, применить к ним изменения и отправить их на другой сервер для хранения. При этом хотелось бы использовать одно и то же имя для скаченных файлов. Как можно дождаться загрузки первой фото перед скачиванием второй? Сейчас я на finish в callback модифицирую фотку и отправляю запрос с ней, но, как видите, скачивание новой начинается до загрузки самой первой. При этом, если сохраняю все фотки с разными именами, то все норм отрабатывает.
>>2454193 У меня голова гудит, поэтому краем глаза глянув на код, могу сказать, что тебе надо промисифайнуть функцию загрузки фотки и через for await let запускать
Зачем разбираться в callback hell, если можно этого не делать
>>2454185 Пути 2: отдельные компоненты навернешь говна от принципа DRY и конструкция switch-case. В конструкцию switch-case закидываешь правила, которые потом биндишь ка компоненты формы. Если у тебя Vue — возвращай со свича объект и бинди через v-bind.
>>2454193 Подозреваю, что ты эту функцию пихнул в цикл for/forEach. Если колбек синхронный - функция на скрине должна возвращать, который резолвится резолвить после строки, где ты вызываешь колбек
Можно ли найти работу в англоязычной компании на удаленке, если я хикка-хуикка? Чтобы только в Телеге общаться, а не голосом говорить? В данный момент React учу.
>>2454466 Хуякт. На западе этапов собеса больше, никто на тих чатиться не будет. + ангельский будут требовать, ибо на хую вертели тебя с твоими месседжами, а на митинги будь добр явиться и отчитаться. + русня на западе +- равна монголам в давние времена времена — дикарь, и не более того. Прочувствуешь все прелести культуры отмены.
Пили пет-проджекты, сделай лэндинг с формой ближайшей цирюльне, запили еще пару петов (не делай ебланские копии соц-сетей и парсер гитхаба), держи гитхаб открытым и оставляй адекватное описание к коммитам. Параллельно отзывайся на вакансии хх и тому подобных ресурсов.
Разговаривать нужно будет много, закладывать за уши еще больше.
Тру хикка? Начнешь рвать волосы на жопе. Прикидываешься? Может быть добьешься успехов, если вместо двачевания займешься делом. Ты нахуй не всрался ни там, ни тут. Либо начнешь шевелить извилинами сам, либо будешь дрочить в треде «мы вам перезвоним» дальше.
>>2454466 Ебать маняфантазии, ты хотя бы здесь попробуй найти работу, полгода хотя бы поработать. Я думаю, у тебя после первого грумминга/планирования ответы сами на эти вопросы появятся. А если не появятся, тогда уже приходи, поговорим. tl;dr: Нет. Если ты не охуенно-незаменимый, то дважды нет.
>>2454368 Примерно так и делал, кстати (если я правильно понял о чем ты). Только не через switch case, а просто делал независимые от роли юзера пропсы-параметры в компоненте, куда родительский компонент (враппер то есть) уже передавал тот или иной набор пропсов в зависимости от роли юзера. Вот так и изобретаю велосипед, постигаю азы декоуплинга путем проб и ошибок.
Что делать если абсолютно спозиционированный элемент все время съезжает при малейшем измении размеров экрана? Я пробовал указывать координаты в процентах, ремах, емах, он все равно ездит? Как его пригвоздить, без маразма, чтобы на каждые 10 пикселей медиа квери не писать?
>>2454547 Дохуя пихать придется. Картина в целом такая. Если можно обойтись без абсолютного позиционирования, то я хотел бы знать как. Релативное не подходит, оно смещает блок.
Если я хочу реализовать структуру форм как здесь: https://codepen.io/Jumpy_Bunny/pen/qBYEdLz Но в реакте, то тут без редукса никак? Для контекста слишком много ререндеров будет на каждый пук. Условно я хочу сделать компонент <Form>, принимающий все пропсы <form>, но под капотом перекидывающий часть из них в форму в хранилище форм, а часть - вешать на див основного компонента. Как такая координация реализуется в реакте?
>>2454193 1) Выпиливай к хуям блокирующие existsSync и mkdirSync, за такое обоссывают. 2) На 18+ ноде пора использовать более удобный fetch 3) `${dir}${filename}` - используй path.join, в остальных случаях твое ебало будет обоссано. Тебе надо промисифицровать твою функцию: downloadImage() { return new Promise((res, rej) => { //тут пишешь свое говно, по завершению делаешь res(); //по ошибке rej(error); }) } Потом используя await проходишься по списку файлов, например: for (const name of names) { await downloadFile(name); } >>2454215 >for await let Вкатун, плиз.
>>2454570 >Но в реакте, то тут без редукса никак? Для начала открой документацию редакса и посмотри на пикрелейтед. >Для контекста слишком много ререндеров будет на каждый пук. А в редаксе их магическим образом не появится, да? >Условно я хочу сделать компонент <Form>, принимающий все пропсы <form>, но под капотом перекидывающий часть из них в форму в хранилище форм, а часть - вешать на див основного компонента. Как такая координация реализуется в реакте? npm i react-hook-form
Привет, анонасы. Пошел я на этот ваш leetcode и на первом же задании заметил, что я оказывается не могу вычесть отрицательное число в переменной т.к. это будет интерпретировано, как двойной минус и обращено в плюс. Че за нафиг, а как нам разность чисел получить? function doubleNegative(a, b) { return [ a - b, parseInt(a) - parseInt(b), ]; }
>>2454629 >Для начала открой документацию редакса и посмотри на пикрелейтед. А теперь перечитай пост, потому что я ничего не говорил про хранение состояния форм в редуксе. Для реализации моей идеи мне нужно хранить как минимум id потенциальной формы и поднабор пропсов формы, типа `action`, `method`, и собирать из этого <form> в хранилище. С колбэками сложнее, так как нужно ещё и onSubmit() вешать на элемент формы в хранилище, и значит передавать его в экшон, что редуксу не по нраву. >А в редаксе их магическим образом не появится, да? Конечно не появится, так как можно пропердоливать селекторы так, что только определённые компоненты будут ререндериться, вместо всех потомков контекста. Учитывая разметку, то реактовский контекст в моём случае должен сидеть в руте реактовского рендера, а значит будет ререндерить всю страницу при любом изменении форм. Учитывая, что я заморачиваюсь с этим, чтобы создавать формы различной вложенности, то количество этих ререндеров будет только увеличиваться с усложнением логики. >npm i react-hook-form И зачем ты это говно порекомендовал? Логику хранилища форм один хуй придётся реализовывать отдельно, плюс ещё надо будет передавать в пропсы инпутов всякое нерилейтед хукоговно, чтобы это вообще работало.
>>2454762 >я ничего не говорил про хранение состояния форм в редуксе Хранение значения формы на момент её сабмита - все еще form state. >Для реализации моей идеи мне нужно хранить как минимум id потенциальной формы и поднабор пропсов формы, типа `action`, `method`, и собирать из этого <form> в хранилище. Ты какую-то оверинжиниринг хуету городишь. Тебе надо всего-то обернуть твою форму в контекст, на момент сабмита сохранить данные в твой контекст, потом перейти на вторую страницу или что ты там хочешь. На все это уйдет 1 рендер и 2 в 17 версии и ниже. >Конечно не появится, так как можно пропердоливать селекторы так, что только определённые компоненты будут ререндериться, вместо всех потомков контекста. Ты определись, для начала, что ты и куда будешь пердолить. У тебя в любом случае при наличии селектеров будет ререндеринг на каждое изменение поля, на которое указывает твой селектор. > надо будет передавать в пропсы инпутов всякое нерилейтед хукоговно, чтобы это вообще работало. То ли дело твой вариант с контекстом, который будет ререндерить все древо формы каждый раз или вариантс редухом, где совсем нет бойлерплейта в виде диспатча и экшена в каждом компоненте поля.
>>2454788 >Хранение значения формы на момент её сабмита - все еще form state. Передача пропсов в форму - тоже состояние формы? Совсем запизделся. >Ты какую-то оверинжиниринг хуету городишь. Тебе надо всего-то обернуть твою форму в контекст, на момент сабмита сохранить данные в твой контекст, потом перейти на вторую страницу или что ты там хочешь. На все это уйдет 1 рендер и 2 в 17 версии и ниже. То есть ты даже не понимаешь, о чём я говорю. Открой блять на кодпен ещё раз и, если не вдупляешь, поменяй все .form на form.form и посмотри на финальную разметку. >Ты определись, для начала, что ты и куда будешь пердолить. У тебя в любом случае при наличии селектеров будет ререндеринг на каждое изменение поля, на которое указывает твой селектор. Наркоман, формы - бесконтрольные. >То ли дело твой вариант с контекстом, который будет ререндерить все древо формы каждый раз или вариантс редухом, где совсем нет бойлерплейта в виде диспатча и экшена в каждом компоненте поля. Но хукоговно не решает проблемы, которую надо решить. Ты совсем уже одебилился с реактомакакинга, пиздуй читать референсы всех элементов, связанных с формами, до просветления.
>>2455503 >Передача пропсов в форму - тоже состояние формы? Ты буквально сам пишешь, что это состояние, потому что ты потом его в редуххочешь запихнуть. >То есть ты даже не понимаешь, о чём я говорю. Открой блять на кодпен ещё раз и, если не вдупляешь, поменяй все .form на form.form и посмотри на финальную разметку. Я как раз вдупляю, это ты хуйню какбу-то несешь. Ок, допустим что вместо перехода на следующую страницу будем считать переход к следующей форме/сабмиту родительской формы. Так ваше величество будет удовлетворено? >формы - бесконтрольные При этом ты сам подразумеваешь контрольные, потому что: >Для контекста слишком много ререндеров будет на каждый пук > хукоговно не решает проблемы, которую надо решить >хукоговно вместе с контекстом буквально на 100% решает твою проблему. Даже без хукоговна чистый контекст твою проблему решит, но ты решил копротивояться
>>2455747 >Ты буквально сам пишешь, что это состояние, потому что ты потом его в редуххочешь запихнуть. В редух/контекст придётся пихать потому что мне нужно обновлять компоненты в двух разных местах, у которых общий предок - рут рендера: при маунте компонента создавать элемент формы в хранилище и при дизмаунте убирать его. Сколько там миллионов инпутов в этом компоненте - однохуйственно и имеет значение только во время вызова onSubmit(), да и то основная процедурка - итерация по HTMLFormElement.elements. >Я как раз вдупляю, это ты хуйню какбу-то несешь. Нихуя не вдупляешь. >Ок, допустим что вместо перехода на следующую страницу будем считать переход к следующей форме/сабмиту родительской формы. Так ваше величество будет удовлетворено? Ой бля, переходы - только одна из фич. Представь двачекапчу, но только это форма внутри формы поста, которая которая делает запрос для капчи и вставляет нужное значение в инпут основной формы. Основная форма даже не должна знать, что один из инпутов получил значение из другой формы. И чтобы это было семантичненко, без всяких болтающихя инпутов. И для всего этого только нужно написать 2 onSubmit() колбэка вместо вереницы onClick(), onKeyDown(), onKeyUp(), всяких императивных телодвижений с менеджментом состояний и перекидыванием пропсов для хукоговна. Надеюсь хоть значение знаешь, почему на дваче капча не реализована вложенными формами? >хукоговно вместе с контекстом буквально на 100% решает твою проблему. Даже без хукоговна чистый контекст твою проблему решит, но ты решил копротивояться Рякт хук форм внезапно будет создавать отдельные формы в непонятных пердях со своими айдишниками?
>>2453316 (OP) Помогите отловить утечку памяти на бекенде node.js Есть бекенд, дёргаю ручку, память утекает. Профайлер (chrome inspect) не показывает в какой именно функции проблема. Вижу, что GC молотит как не в себя, но где именно?
>>2456049 Современный фронт разраб чего? Обычных конвеерных сайтов? Если так то просто учишь синтаксис жс и идёшь пердолить реакт/преакт/свелте/солид/вуе не думая, конечно почитай лернжс и что там ещё. Для всего остального нужно почитать всякие алгоритмы, книжечки по алгоритмам, курсы алгоритмов и базовые книжки по компухтер ссаенс.
>>2455996 Ну как минимум очевидный способ комментить куски кода, пока не пропадёт утечка. Хотя я бы на твоём месте учился пользоваться девтулзами, скорее проблема в этом.
let callbacksArray = []; for (let i < 0; i < любое произвольное n; i++) { callbacksArray.add( () => setTimeout( () => чтота делает хз, случайная задержка) ); }
Нужна функция, аля waitAll(callbacksArray, () => чтота сделать после выполнения всего callbacksArray). Есть ли какое-то красивое готовое решение без изобретения велосипеда?
>>2456214 Все stable и experimental модули кроме (относительно) низкоуровневых сетевых, например, datagram, dns, https и подобные. Ну и всякое говно, которое никто не использует в виде c++ модулей, wasm модулей и подобного тебе тоже знать не обязательно.
Сап. Даж не знаю как загуглить. В общем, вот делаю я сайтик, с вью и дрф. Ну и вот как мне нужно обрабатывать ошибки, которые с сервера могут приходить? Типа есть какая-то методика там? Просто их столько всяких разных может быть и я даж не понимаю, как подступиться к этой задаче. На некоторые мне приходит типа "field_name": "error message", это понятно, можно перебрать там их и показать у соответствующего поля например, но если че-то другое там, то приходит "non_field_errors": "error message" и типа че с этим делать? Мне прям сравнивать месседж и показывать нормальное сообщение для пользователя? Это норм так делать? Прост я даже не знаю, какие там все ошибки бывают. Как это предусмотреть? Или надо как-то с сервера по-другому ошибки посылать?
>>2456766 передавай с сервера структуру {"data": data, "error": error} если сервер отвечает успешно - это будет {"data": data, "error": null} если ошибка - {"data": null, "error": error} структуру error можешь ипользовать например такую {"code": 123, "msg": "тут что хочешь"} ну и признаком ошибки будет наличие поля error
>>2456773 Ну так это мне че весь рест фреймворк переписывать чтоб он ответы посылал как мне надо? Ну и в принципе вроде оно примерно так и работает. Типа в аксиос когда успешный запрос, то он в response.data, а когда ошибка, то в error. И статус коды тоже там всякие разные делает. Прост я для аутентификации и авторизации ещё другую библиотеку использую, она тоже там шлет всякие штуки, которые хрен пойми какие бывают.
Возникла следующая проблема. В модуле слишком много импортов, большинство из них это картинки. Как можно уменьшить кол-во импортов? Реализовать какой-то динамический импорт? Как реализовать динамический импорт модуля я знаю. A как динамически импортировать картинку? Например внутри функции, и передать значение импорта в переменую, которая подставляется в src?
>>2456995 >Все проекты на ангуляре - древнее легаси, на котором держится серьёзный бизнес. За легаси переплачиваюь У меня в жизни было 50*50 легаси и новых проектов на ангуляре. Вообще не вижу вакансий на ангуляре не то что за 500, а хотяб за 350
>>2456976 Диай это ООП-шиза, так что в современном реакте не нужна. То же самое и с прочей поебенью, которую ООП-шизики вытворяют с методами. Если тебе надо поменять поведение фунции - пиши враппер/декоратор для неё и экспортируй результат.
>>2457004 >о же самое и с прочей поебенью, которую ООП-шизики вытворяют с методами. В мобХ вы же всю дорогу контейнеры состояний наследуете, и вот это вот всё? >Диай это ООП-шиза А как вы там сервисы то применяете, я не врубаю
>>2457015 >В мобХ вы же всю дорогу контейнеры состояний наследуете, и вот это вот всё? Мобх - для неосиляторов редукса. >А как вы там сервисы то применяете, я не врубаю Какие сервисы, наркоман?
>>2453316 (OP) Fronten'то боги @ гордые адэпты Жаба скрипит @ мудрецы поисковых систем @ где умные дяди ртом чтоб видэво было рассказывают как кодить Жаба Скрипит, а то я последние школьные годы на паскале грабил корованы
>>2457273 >Нихуя не понятно чем он отличается от обычного С за исключением того, что код на ес интерпретируется а не конпелируется? Троллинг тупостью пошел.
Скачал курс Udemy по вэбдеву от Кольта Стила. Там примерно 600 видосов по 5-10 минут с упражнениями. Первая половина с фронтендом зашла на ура. Но вторая половина, где начинается бэкенд и фреймворки по типу Экспресс, вообще не усваивается ни в какую (практических упражнений больше не даёт, перестал разъяснять тему и т.д.). Собственно, я впал в ступор и не знаю, как поступать дальше. По сути, у меня сейчас из знаний - база по HTML, CSS, Бутстрэп с Бульмой, основы JS до классов и асинхронности (и немного API понимаю). Какие темы мне нужно продолжить изучать, чтобы хоть какая-то база накопилась?
>>2457260 Это такой хитрый способ сказать жабаскрипт, не говоря торговую марку оракла. Обычно говорят что это спецификация, а вот жабаскрипт — конкретный язык, но это какая-то хуйня, вон у C тоже стандарт есть, но он называется стандарт C, а не ПИЗДАскрипт, не смотря на то что вот на C то как раз можно писать код под конкретный компутер.
>>2457038 >Если ты не знаешь, что такое сервис, то, тупая скотина, что ты делаешь в профессии? ООП-шизик порвался. Пиздуй писать тесты на геттеры и сеттеры. >>2457194 А ты любишь 10 обёрток писать для юзэффекта?
Сап, я нубас. Объясните, почему когда я делаю поиск по html странице: let phrase = document.querySelector('.phrase'); мой Span с классом phrase: <span class="phrase">example text</span> не помещается в переменную и выводится через консоль (null).
>>2457634 3) он начнет загружаться только когда уже весь документ загрузился, с defer он начнет загружаться сразу и запустится когда весь остальной документ готов.
>>2457621 Страница не распарсится до тех пор, пока всё реактоговно внизу не проинтерпретируется. Это может замедлить первый рендер на порядки, так как этот парсинг будет все скрипты со всеми сайдэффектами обрабатывать посреди парсинга ДОМа.
>>2453316 (OP) Здрасьте, платиновый вопрос - как зафокусить инпут после disable="false" на чистом js'e? Перелопатил уже больше 5 страниц стаковерфлоу и 2 гугла и ничего не нашел.
>>2457611 typeof класса возвращает сигнатуру конструктора этого класса. Хуй знает, как тайпскрипт обрабатывает символы, прогнанные через манядекораторы. В крайних случаях это или конструктор Model после обработки декоратором Table или просто конструктор Model.
>>2457711 >как тайпскрипт обрабатывает символы, прогнанные через манядекораторы Тащемта, никак. И у любителей навернуть ооп-говнеца люто с этого пригорает.
>>2457721 Разметку за пределами ретурна возвращать следует только если тебе это пиздец как надо и на компоненты не разбить. То есть не в 99% случаев. Та же логика с множественными ретурнами. Канонично выглядит так: return (<> !items.length ? <NoItems/> : items.map((item) => (...)) </>)
>>2457746 >нет SSR Нету волшебного пакета, который бы прикручивал SSR на любой серверный стэк без добавления промежуточного нодовского сервера. А добавлять продакшен сервер для клиентской репы - то ещё говноедство. >нет асинхронного стейт-менеджера Редукс это что? >нет babel Ого говножор пожаловал. Ты в курсе, что объединяя тайпскрипт с бабелем ты прогоняешь весь код через 2 трансформации? Это говно будет люто тормозить на кодовой базе сложнее хелловорлда, плюс сурс мапы проебутся. >нет линтеров Это конечно обосрамс, но прикручивать преттиер+еслинт к тайпскриптоской кодовой базе - та ещё ёбля. А если ещё захочется прекоммит хуков, то вообще анал-карнавал с конфигами начинается.
>>2457746 Так, я здесь, чтобы пофиксить мои косяки, так что без агрессии и по делу:
1) Хороший совет, спасибо; 2) redux-thunk? Или что тут можно придумать? 3) Тоже хороший совет. Я так понимаю, он нужен для скорости билда приложения? 4) Уже слез с линтеров
>>2457759 >А добавлять продакшен сервер для клиентской репы - то ещё говноедство. Говноедство - заставлять юзеров терять время, когда ты одним конфигом условного некста и ремикса и дешманским сервером решишь эту проблема. >Редукс это что? Синхронный стейт манагер с запредельнейшим количеством бойлдерплейта. Асинхронные запросы через useEffect хуярить будешь? Я тебя понял. >Ты в курсе, что объединяя тайпскрипт с бабелем ты прогоняешь весь код через 2 трансформации? > Это говно будет люто тормозить на кодовой базе сложнее хелловорлда У меня проект - 300к строк, ребилд в --watch режиме с бабелем менее секунды. Ебало? А ты в курсе, что у бабеля свой транспилятор типоскрипта? >сурс мапы проебутся У меня ни разу не проебалывались. Ты видимо хуйни какой-то написал в конфиге, вот и терпишь теперь. >прикручивать преттиер+еслинт к тайпскриптоской кодовой базе - та ещё ёбля Обоснуй >>2457763 >redux-thunk? Или что тут можно придумать? Как вариант, но лучше useSWR. react-query или RTK query >Я так понимаю, он нужен для скорости билда приложения? Нет, он наоборот замедляет сборку, но не критично (см. выше). Он нужен для того, что бы собирать билд под старые браузеры без постоянного долбления в caniuse что бы удостоверится, что целевой браузер потянет условный String.prototype.replaceAll >>2457765 Хорошо >>2457777
>>2457781 >RTK query Так я его и юзаю, он просто в тулките
>Он нужен для того, что бы собирать билд под старые браузеры без постоянного долбления в caniuse что бы удостоверится, что целевой браузер потянет условный String.prototype.replaceAll
Ладно, прикручу бабель
Ну, по факту разъебка, конечно, но вот к примеру SSR решается переходом на NEST, а это дополнительная ёбка с изучением нового фреймворка, причем не самого функционального, как я понял. Редакс мне очень зашел, не хотелось бы с него слезать, вот правда, когда я его прикрутил и поставил стор с одним редьюсером, время билда увеличилось вдвое... Там реально так насрано? И как это отражается на весе бандлового скрипта? А даже если перекатываться, то куда? На mobx? И последнее: я понимаю, линтеры нужны, чтобы макаки карпеющие над одним проектом высерали каки одной формы, но у иеня стек под пет-проект. Нахой мне линтер без негатива
>>2453316 (OP) Аноны, помогите разобраться с парселом. Мне надо для каждого файла получается билдить парсел? а если бы там было 20 html'ok? (в моём случае это ejs), то что мне 20 раз команду надо было писать npm run build index.html ???
>>2457799 > решается переходом на NEST На next >а это дополнительная ёбка с изучением нового фреймворка Охуеть ебка, вот файл /pages/index.tsx, соответствует маршруту /. В нем ты пишешь getServerSideProps, - эта функция будет запущена на ноде и то, что она вернет потом прилетит в виде пропса в твой компонент, через жсон. Вот тебе и весь некст. >Редакс мне очень зашел, не хотелось бы с него слезать, вот правда, когда я его прикрутил и поставил стор с одним редьюсером, время билда увеличилось вдвое Зачем тебе с него слезать? >Там реально так насрано нет >И как это отражается на весе бандлового скрипта? Сам как думаешь? >А даже если перекатываться, то куда? На mobx? Нахуя тебе куда-то перекатываться? В чем проблема редакса? Я тебе про асинхронный стейт менеджмент писал. >Нахой мне линтер Что бы показать хрюшам и собеседующему какой ты пиздатый. >>2457806 Все правильно. Не слушай местных вкатунов, которые за свою жизнь видели только jsx и вуешный шаблонизатор.
>>2457746 >>нет асинхронного стейт-менеджера А что, бывают синхронные стейт-манагеры? Это как вообще? Что там, все остальные соединения остальных клиентов в ОЧЕРЕДЬ хуярят что ли и не завершаются пока идёт обработка первого? Наверное я слишком асинхронщиной обдвачевался что забыл как работать синхронно.
>>2457848 Ну фронт так-то тоже не простое занятие. Просто в бэке нужно ещё разбираться с бд и http, потом эндпоинты на похуях одним стандартом делаешь и всё
>>2457854 По сравнению с бэком детские игры. Непростого только то, что это зоопарк технологий и базвордов, а главное, огромное комунити макак которые не умеют в профессию. ПОэтому порой даже решения от именитых контор типа ПраймФейсес или Телерик это какой то мраный пиздец и костыль на костыле.
Поэтому для тебя на самом деле нет ответа типа "фреймворкнейм" или "языкнейм" потому, что бэкэндер должен прежде всего понимать в абстракциях, структурах данных, в паттерна решения задач. А на дотнете ты это хуяришь или на котлине не суть важно, это уже просто знание конкретного инструментария.
НУ ежели ты слаще хуя тайпскрипта ничего не видал, то для сарта наверни Nest Пиздатый ангуляр-стайл фреймворк со своим CLI, а главное, на уровне этого самого фреймворка дикует макаке (т.е. тебе) хорошую архитектуру приложения.
ПОпутно совершенно точно нужно подтянуть какой-то диалект SQL, основы реляционных бд и основы noSqlBd
Для обоих двух типов в Nest есть пездатая ORM которую само собой тоже надо знать. Для скуля рекомендую навернуть бесплатный posgres для носкуля не рекомендую, но предётся навернуть mongodb
Парадигму писания бекенда когда "база данных сначала" не рекомендую, ты ведь фронт макакен. А вот "сначала данные" это норм для старта(наверняка норм на первые несколько лет работы)
>>2457793 >потому что надо быстроблядь в релиз фичу отправить, а не этот ваш рефакторинх устраивать Не пробовал пояснить манагеру, чтобы тот в свою очередь пояснил заказчику, что рефакторинг - это блять НАДО ДЕЛАТЬ? Или у вас настолько парашная галера, что даже обратной связи от разрабов нет?
>>2458018 Мне вот интересно насколько сложно переходить с реакта на ноду (и вообще бэкенд). Такое ощущение, что таких перешедших до жопы, но я нигде не вижу каких-то историй на эту тему.
>>2458043 Как я писал выше, обыяно люди которые могут только в рякт не умеют в программирование вообще. Диагноз удлённо про тебя стаить не буду. Но типовой ряктокодер это год два три фронта на рякет плюс может гдето чтото слышал про бэк.
Работа бэкэндера это придумывать логику, абстракции, управлять потоками данных и метаданных, думать на года вперед кто будет твое говно поддерживать и развивать.
Т.е. это работа творкца, проектировщика (порой очень скучная и нудная, кстати говоря).
Бэкэнд это то самое красноглазое погромирование, а не npm i YobaKnopka
Поэтому, отвечая на твой вопрос "что сложного" - всё сложно. Весь бэк сложнее сам по себе. И дело не в том, какие пакеты и либы ты знаешь, а в том, как твой мозгнатренился думатью
Мимо фулстак, который перекатывается в фулл веб, тому що заебало.
Кстати отдельно замечу, что чисто по зп не вижу никаких поводов катиться обратнов бэк. Вот если есть иные мотивы, то норм.
>>2457765 Не хорошо или плохо, а не нужно совмещать тайпскрипт и бабель. Бабель швободней и каштомней, но и настраивать его на обработку тайпскриптовских файлов - отдельный квест. >>2457781 >Говноедство - заставлять юзеров терять время, когда ты одним конфигом условного некста и ремикса и дешманским сервером решишь эту проблема. Причём здесь пользователь? Я говорю про серверный стэк. Если ты тянешь серверное говно в клиентскую репу, то ты должен ещё будешь настраивать дополнительный сервер, чтобы он работал как ожидается в стеке. А это уже за пределы шаблонной рякторепы выходит. >Синхронный стейт манагер с запредельнейшим количеством бойлдерплейта. Асинхронные запросы через useEffect хуярить будешь? Я тебя понял. О да, запускать экшоны в useEffect() это пиздец как сложно, надо говнолибу поставить для этого. >У меня проект - 300к строк, ребилд в --watch режиме с бабелем менее секунды. Ебало? Что сказать-то хотел? Если менее секунды, ты значит норм весь код транспилировать два раза? В билде разница будет намного больше, плюс в рантайме будет одновременно говно от тайпскрипта и бабеля. >А ты в курсе, что у бабеля свой транспилятор типоскрипта? Ага, который по своим правилам работает и типы при билде не проверяет. Так что тебе один хуй билдить нужно будет в тайпскрипте и надеяться, что бабель там в проде не натранспилирует непонятного говна. >У меня ни разу не проебалывались. Ты видимо хуйни какой-то написал в конфиге, вот и терпишь теперь. Долбоёб, который собирает тайпскрипт бабелем, что-то там за неправильные конфиги затирает. >>2457801 А то! Любишь серверные шаблоны - люби и жрать говно. >>2457811 >На next На проде - проприетарное облачное говно. Единственный универсальный юзкейс для него - статичный экспорт. Но даже для него нужно конфиг нжинкса отдельно пердолить. > Охуеть ебка, вот файл /pages/index.tsx, соответствует маршруту /. В нем ты пишешь getServerSideProps, - эта функция будет запущена на ноде и то, что она вернет потом прилетит в виде пропса в твой компонент, через жсон. Вот тебе и весь некст. Ты забыл сказать, что getServerSideProps() не из воздуха берёт данные, для этого должен быть уже отдельный бэкенд запущен и БД. Если нет ни того, ни другого, то придётся тащить всё это говно в репу некста и правильно организовывать, чтобы контекст нодовских говнопакетов не протекал в клиентский бандл. Ну а за рекомендацию сразу начинать с getServerSideProps() в ебаной клиентской репе надо пиздить палками. >>2457821 Да он про ебалу типа useSWR говорит. Вот только по дефолту такие говнолибы дрочат сервер по кд, что не для всех эндпоинтов оптимально. И тогда начинается каштомизация с бойлерплейтом прямо в компоненте и юзЭффектами. Только в отличии от редуха нет никаких рекомендаций по структурировании этого говна.
>>2458178 >Да он про ебалу типа useSWR говорит. Вот только по дефолту такие говнолибы дрочат сервер по кд, что не для всех эндпоинтов оптимально. И тогда начинается каштомизация с бойлерплейтом прямо в компоненте и юзЭффектами. Нихуя не понял, звучит это как какая-то дикая хуйня которую лучше не использовать никогда, а то приложению настанет быстрая неподдерживаемая пизда и следующая итерация разработки будет переписывания с нуля.
>>2458215 Речь идёт, макакен, про описание предметной области формальным языком.
Если для тебя потолок бекенда это рест для магазина ёбнуть, то я понимаю твою иронию. Однако, в большом мире кровавого энтерпрайза, бекенд, как правило, несколько сложнее чем корм для кошек в корзину пихать.
Делаешь ты бэк на нестом, дотнетом, или , прости господи, на уровне базы данных, это дело в целом десятое.
> Тебя буквально проводят ручками от nest new до готового продукта Именно поэтому я рекомендую нест для вкатунов из реакта. В несте как раз всё прекрасно документировано и прозрачно.
Я тебе, сука, русским языком пишу, что сложно это грамотно описать предметную область
>>2458178 >проприетарное облачное говно. Жду пруфы >Ты забыл сказать, что getServerSideProps() не из воздуха берёт данные, для этого должен быть уже отдельный бэкенд запущен и БД. В этом и суть, что он уже есть на любом проекте. До внедрения некста у тебя данные из воздуха брались? >чтобы контекст нодовских говнопакетов не протекал в клиентский бандл Ниразу не было таких проблем. Ну если ты долбоеб и пытаешься ORM пнуть или файл записать из useEffect, а потом тратишь хуеву тучу времени на дебаггинг, то это не проблема некста. >Вот только по дефолту такие говнолибы дрочат сервер по кд как раз суть этих либ - дрочнуть сервер один раз и сохранить данные на N(где N>=0) времени, если они понадобиться в этом же или другом компоненте, при необходимости поменять их не дроча сервер повторно. >И тогда начинается каштомизация с бойлерплейтом прямо в компоненте и юзЭффектами То ли дело редух и его полное отсутствие бойлерплейта, дааа...
>>2453316 (OP) Аноны, есть URL c джейсонплейсхолдера, я через fetch получаю json. Как вывести только первых 10 записей через slice? А то у меня по нажатию кнопочки выводит либо по айди, либо сразу все.
И как правильно а Templates данные этого файла забайндить с проемами джейсонины из код?
Я не могу понять как заставить вебпак обрабатывать картинки. Просветите долбоеба. Как сделать так, чтобы не писать: import image from "../images/image.jpg", а сразу <img src="/images/image.jpg"/>. У меня настроен file loader, но картинки все равно не грузит. Как в ваших проектах реализован бандл картинок вебпаком?
Аноны, сразу признаюсь, что туповат. Есть регулярное выражение /(?=[\S])\W/, как заставить его выбирать кроме спецаильных символов еще и нижнее подчеркивание("_")?
>>2458422 File loader для этих целей давно не юзаается. Картинки грузятся через ассеты. Читай актуальную доку, а не видосики с ютуба годовалой давности.
>>2458849 >this >!. Вот где-то тут проблема. Если ты описываешь это все в функции data у компонента, то это действительно функция у которой нет доступа к компоненту через this. Наведи на него и глянь, что там.
Алсо, отличные советы на швабре, пахнуло мэилру ответами с экспертами, набивающими рейтинг бессмысленными постами.
>>2458977 >И как же тогда быть, как обращаться к пропу? Из дата - никак, это должна быть функция, не зависимая от пропсов. У тебя по факту это свойство зависит от пропа, поэтому надо делать компутед свойство, возможно с сеттером, если нужно менять его. Или оставить в дата нулл и инициализировать в created/mounted. Или композишн апи. >Делать так: (this.adDetails as unknown as IAdDetails)?.showButtons? Оно просто не будет работать, компонента еще не существует на момент вызова дата.
>>2458983 >и инициализировать в created/mounted Алсо, если выберешь этот вариант, то изменение пропа на входе не будет вызывать перерасчет твоего свойства внутри компонента - эти хуки уже были вызваны. Если это нежелательное поведение, то тогда или вотч на проп вешать, или все же одуматься и сделать компутед.
>>2458354 >Это ты мне пытаешься доказать что работая бэкомакакой на несте нужно какую-то там архитектуру продумывать, потоки данных, метадату. Каким-то там охуенным проектировщиком нужно быть. Ок ,ок. Тебе не нужно, шлёпай формочки для сайтов по продаже дилдаков за свои ссаные 175 до налогов дальше.
В конце концнов чем больше вас таким, теб больше кеша поднимают люди с головой.
>>2458215 >>2458297 >Речь идёт про Nest.js Как вкатиться в backend на TS? Вот я три года пишу бекенды в разных проектах, но на JS. Страшно? Ну, я всё тестами обкладываю, что там не выстрелить в ногу. Ну так вот, смотрю я любые вакансии на бекендера и везде требуют TS, ещё и опционально nestjs на бекенде. Как вкатиться? Я на golang уже вкатился на полшишки, а nestjs всё так и не опробывал
Как реализовывать самый базовой таскраннер на ноде? Очередь залуп есть, способ получить следующую залупу - тоже. Как я понял мне нужно писать конструкцию вида: let currentZalupa = undefined; while (true) { currentZalupa = await getNextZalupa() if (!currentZalupa) { await sleep(30000); continue; }
await processZalupa(currentZalupa) currentZalupa = undefined } Но как прикрутить возможность вручную запускать/останавливать этот процесс?
>>2459142 >Как вкатиться? >Я на golang уже вкатился на полшишки, а nestjs всё так и не опробывал Читаешь нест, вкатываешься, хуле тут сложного. Погугли какие-нибудь курсы по этой хуйне.
>>2459266 Ничего не понятно у тебя. Тебе надо как-то организовать очередь.
Потом делаешь функцию-задачу, в неё передаёшь очередь async function zalupListener(getNextZalup) { while (true) { let currentZalup = await getNextZalup(); if (currentZalup == 'EXIT') { break; } }
а стартуешь просто zalupListener() без await Так у тебя функция запустится где-то в фоне и будет работать, пока ты в очередь не поместишь команду 'EXIT'
>>2459167 Зумеры-смузехлёбы, не читавшие даже Кантора
Это нужно для того, чтобы когда в в коллбэках хотите использовать this того класса, где вы его определяете, self это замыкание со значением this. Иначе (см ниже) this будет указывать на класс, который этот коллбэк вызвал.
Это было актуально, когда использовали колбэки вида function() {} а вот колбэки вида () => {} ведут себя иначе и там эти трюки уже не требуются. Корочеу Кантора это есть и не только у него.
>>2459464 > Тебе надо как-то организовать очередь. Очередь уже реализована, getNextZalupa() возвращает следующий элемент очереди, если он есть. Проблема в том, как пробегать по этой очереди на фоне и желательно с низким приоритетом. Я почитал, и по ходу дела await пихает вызов как микротаску, что не айс, так как обработчик залуп может заблочить колбэки эндпоинтов, пока не зарезолвит залупу. > а стартуешь просто zalupListener() без await Разве такие вызовы не вызывают проблем с "висячими" контекстами вызова? >Так у тебя функция запустится где-то в фоне и будет работать, пока ты в очередь не поместишь команду 'EXIT' Но как реализовывать start/stop/resume/pause посреди обработки залупы из любого места в коде в таком случае?
Сап. Разбираюсь с SSR на рякт. Все работает, кроме ссылок на картинки. В компонентах при импорте картинки типа import image from 'public/image.png' (пик 1) и последующем вызове renderToString (пик 3) ссылка на картинку рендерится как [Object Object] (пик 3 - лог с сервера) и, естественно выдает 404 (пик 4). При билде всё нормально.
Алсо, есть какой-нибудь менее заёбный способ организовать SSR без лишних фреймворков?
>>2459095 >Рот ебал хрюш которые придумывают дохуища названий Curriculum vitae, или сокр. CV (от лат. Curriculum vitæ, в переводе — «ход жизни» или жизнеописание)
>>2459549 Я родился в провинции Лангедок в 1668-м году. Мой род, хотя ныне и обедневший, принадлежит к одним из самых славных и древних семейств королевства. Мой отец граф де Бриссак сражался в Голландии в полку г-на Лаваля и был ранен копьем при осаде Монферрата, на стенах которого он первым водрузил королевское знамя. До 17 лет я жил в родовом замке, где, благодаря заботам моей матушки баронессы де Монжу, был прилично воспитан и получил изрядное образование. Ныне, расставшись со своими дорогими родителями, дабы послужить отечеству на поле брани, прошу зачислить меня в роту черных гвардейцев его величества
Не так давно смотрел выступление какого-то типа, который заявил, что на фронте постоянно все меняется, а на бэке ноды тишь да гладь и стабильность. Это рофл такой что ли? На фронте уже есть фактически стандарт - это Реакт (сколько бы хейтерки не усирались + редукс (иногда gql в качестве исключения). А на нодах до сих пор нет основного стека. Раньше дрочили экспресс, потом нест, теперь вот нест не модный, че там теперь фастифай?
>>2459556 >а на бэке ноды тишь да гладь и стабильность Просто приходят к тому, что не надо делать бэк на ноде. Вышло из моды. Поэтому и стандартов нет.
Где можно какому-нибудь человеку на заказ сделать сайтец? Пусть даже бесплатно, лишь бы опыт получить. Макеты там поверстать или ещё что. Короче, нормальные фриланс сервисы.
>>2459813 Сиквель всегда будет нужен, не пизди. Таблички с данными это основа любого бузинеса. Как его может хуйня заменить, для которой этот сиквель и нужен.
>>2459556 Фреймворки годы не сильно друг от друга отличается. После экспресса фастивай понятен, достаточно день привыкнуть может. А попробуй с реакта сразу на ангуляр прыгнуть.
Теперь с ноды перепиливают на облачные технологии.
>>2460147 Нит. Большинство задач от кобанчика сводится к джоинам и агрегатным функциям, с чем монга справляется намного хуже. Мога хороша только чтобы сохранять данные и отдавать в том же виде в котором они сохранены, а не для аналитики.
>>2453316 (OP) Аноны, не нашел треда по верстке, спрошу здесь. Прохожу курс на codeacademy, и там в последнем пункте доп задание типо сделать футер что бы тоже скролился. Так вот, я сам додумался добавить: position: fixed; width: 100%; z-index: 1;
но футер куда то исчез и не появлялся. Я сразу начал себя чувствовать тупым и начала пропадать мотивация продолжать учиться (так как до этого все понимал с первого раза). Вопрос почему надо было добавить bottom: 0 что бы футер появился? Почему недостаточно z-index 1, ведь именно он отвечает за наложение слоев. Алсо как перестать чувствовать себя тупым?
>>2460318 Хуй знает, по-моему этот элемент идет сразу после всего твоего контента по дефолту. А так как фиксед - не влияет на разметку, то есть высота контента не расширяется под него. Вот он и висит там внизу, пока не укажешь ему положение относительно вьюпорта.
>>2460450 Да я читал, но пропустил пунктик про final position. Кстати если я допустим там укажу right or left то почему то футер пропадает, но если указать top, то он перекрывает шапку. Почему нельзя сделать что бы блок с футером переместился налево или вправо?
>>2460549 Объясните мне, почему все так смотрят эти видеокурсы. Я понимаю когда у какой-то технологии дока говно, или тема очень обширная, но почему все так любят смотреть видео и переписывать код вместо чтения доки рякта и написания своих компонентов? Какой профит от курсов?
>>2460634 >почему все так любят смотреть видео и переписывать код вместо чтения доки рякта и написания своих компонентов Потому что в доке ряхта и написании своих компонентов нет заветных словосочетаний "Только сегодня, скидка 90%, стань сениором после просмотра курса"
>>2460634 Дока реакта кстати бесполезная хуитка что для вкатунов, что для опытных ряктомакак. Большая часть изучения рякта состоит из гугления "как сделать хуитанейм в реакте" и отличие вкатуна от опытного заключается только в том, что опытный точнее сформулирует определение хуитанейм и соответственно меньше времени потратит на отсев нерелейтед результатов.
>>2460549 Чёт проиграл с екомерса на страйпе и фаербейзе. Запилил такой огромный магазин, а как страйп и фаербейз твои аккаунты пидорнут, то не сможешь ни денег со счёта снять, ни даже дамп своей БД сделать (и это ещё непонятно, что фаербейз будет делать с БД).
Анончики, подскажите плз библиотеку компонентов чтобы выглядело как вот это -> https://vuesax.com/ , фреймворк не важен. Сабж заброшен уже два года как, а жаль
>>2453316 (OP) В некоторых мобильных браузерах есть анимация растяжения страницы по достяжению предела прокрутки вверх. Из-за этого, особенно если включена навигация жестами, скачет панель навигации, прибитая к низу страницы через display: absolute; bottom: 0. Как починить?
Реактивные господа, насколько нормально использовать в Реакте document.getElementsByClassName? Он же работает с реальным домом, а не виртуальным, это как-то не гуд. Банальный пример, элементы с note__color note__color note__color note__color--active note__color Нужно каждый раз контекстуально переставлять --active. Добавить нет проблем через target. Но как удалить не используя getElementsByClassName?
>>2461888 Либо ты скачиваешь ебалу в виде clsx, classnames и аналоги, которая будет замедлять твое прилоежние, либо хуяришь пробелы. Если еще шизовариант - использовать styled или emotion.
>>2461877 Спс анон, Mui вроде неолохо смотрится, но анимаций не хватает всё таки. Vuesax ещё как подходит, лучшая библиотека что я видел by far, на каждом компоненте такие анимации сочные, боюсь предстваить как долго такое пилить самому... но блин стрёмно брать из-за того что не поддерживается больше
>>2462089 1) У тебя на каждом ререндере будет создаваться новый объект, используй функцию как аргумент в useState 2) Зачем тебе реакт, если ты императивно хранишь состояние в DOM? Создай новый компонент note, сделай ему проп color, сделай ему clickHandler формата ()=>setColor('white') >>2462149 Охуенный совет, давай он объект будет раскладывать, потом складывать, что бы получилась еще большая ебанина чем у него сейчас. >>2461959 ok google javascript модуль числа
>>2462195 >>2462207 Это компонент по созданию ноте, в нем есть функция выбора цвета для будущего ноте. Нихуя не понял про функцию как аргумент в useState. Я храню состояние в state и отрисовываю от него активным элемент в дом. Все цвета в стейт чтобы отрисовывать каждую кнопку в верном состоянии.
>>2462061 Ты до сих пор не понимаешь разницу между попенсорсом и для чего делается реакт. На гитхабе найдёшь только вкатунские и никому не нужные проектики
Анонче, как суммировать значения двух переменных? Речь идёт о вставки js в страницу браузера. Инициализировал через let, через prompt нужно ввести значение. Но при сложении 1+1 выходит 11. Логично, что значение в переменной считается за строковой тип. Для заранее введенных значений рекомендуют писать n в конце числа. А как с prompt быть? Понятно, что как-то конвертировать, но как? да-да, просто плохо искал
>>2462644 После вкатун-тредов в /b/ и пропаганды вката в ИТ на пынявидении тут люди не знают что такое модуль и не могут прочитать статью с описанием темы 6 класса(!), а ты про ряды еще удивляешься.
>>2462649 >тут люди не знают что такое модуль Учитывая боль, с которой идёт перекат на ESM у нодопакетов, большинство разработчиков (да и сам язык) - тоже.
>>2462653 Что ты высрал - хуй его знает, какое оно отношение имеет к пониманию значения слова модуль - тоже. В контексте жопаскрипта CJS модуль - это модуль, ESM модуль - это тоже модуль, UMD модуль - тоже модуль.
>>2462678 У тебя ошибка в формуле. Не (n+1), a (n+k), где n = начальное число и k = конечное. неужели так сложно было это сразу написать и сэкономить время и силы мне и себе? Я час потратил на то, чтобы всё вспомнить и разобраться.
>>2462723 >У тебя Не у меня. >неужели так сложно было это сразу написать и сэкономить время и силы мне и себе Неужели так сложно было загуглить и открыть результат по первой ссылке? Зачем ты тратишь наше время? > Я час потратил на то, чтобы всё вспомнить и разобраться. Молодец. Теперь осваивай программу 7, 8 и 9 классов, возможно с твоими темпами до 2024 успеешь, потом можешь пытаться закатываться во фронт.
>>2462733 Просто умножать надо на количество чисел. Ты совсем не ту формулу дал. >Неужели так сложно было загуглить и открыть результат по первой ссылке? Зачем ты тратишь наше время? Я не помнил как это называется, чтобы гуглить. >Молодец. Теперь осваивай программу 7, 8 и 9 классов, возможно с твоими темпами до 2024 успеешь, потом можешь пытаться закатываться во фронт. Какой в этом смысл? Все вычисления в программировании ведутся абсолютно другими логическими операциями, математические символы и присваивания значений только сбивают с толку. Всё решается не нахождением формул из математики, которые нужно вставлять в код, а использованием выражений, которые будут вместо формулы прогонять через алгоритмы данные и выводить то же значение. То есть по сути учиться думать надо через костыли языка программирования заново.
>>2462735 >k + k+1 + ... +n = (n + 1)n/2 - k(k - 1)/2 Каким образом выводится n + 1 и k - 1?
>>2462277 >return <div key={clr} onClick={()=>onChange(clr)} className={`note note-${clr} ${value === clr ? 'note--active' : ''}`} /> это не будет работать, мэп отрисует только доступные элементы, неактивных просто не будет. Поэтому должны быть объекты со всеми цветами и состояниями. Прочитал про lazy inittialization, ну типа в моем случае вроде смысла в этом нет. >>2462266 Стоит ли для такой мелкой фигни создавать новый компонент внутри которого будет примерно такая же логика?
>>2462769 > Ты совсем не ту формулу дал. Я тебе еще раз напишу: я тебе никаких формул не давал. >Я не помнил как это называется, чтобы гуглить. >По какой математической формуле считается сумма последовательности >пикрелейтед Иди шорты постирай. >Какой в этом смысл? Для тебя, очевидно, никакого. >Все вычисления в программировании ведутся абсолютно другими логическими операциями Уважаемый "эксперт программирования", я бы рекомендовал вам для начала вкатится на стажёрскую позицию за 20к, перед тем как делать такие выводы.
>>2462784 >мэп отрисует только доступные элементы Ну значит сделай объекты, в чем проблема? const colors = [{color: "red", active: true}] >Стоит ли для такой мелкой фигни создавать новый компонент внутри которого будет примерно такая же логика? Надо делить на компоненты и писать тест для каждого компонента. Тестить огромный компонент в 1к строк будет значительно сложнее чем покрыть тестами 10 компонентов по 100 строк.
>>2462939 >>2462958 >document.documentElement.textContent = "" Обосрался, исправляюсь. Вот такой вариант удалит точно все: document.documentElement.remove(); document.doctype.remove();
Хелпаните. Проект не запускается, а в гугле ничего не помогло "Failed to compile.
Invalid configuration object. Webpack has been initialized using a configuration object that does not match the API schema." Что за хуйня и как решить проблему?
>>2463175 >Что за хуйня Тебе написали человеческим языком: >Invalid configuration object. Webpack has been initialized using a configuration object that does not match the API schema."
> как решить проблему Очевидно, написать корректный конфиг. Читать не умеешь? мне кажется, что ты нихуя не гуглил, а сразу побежал срать итт, потому что в гугле все есть
>>2463194 Какой конфиг писать блять, я создал проект командой "npx create-react-app" и решил его запустить. Какой конфиг и где его создавать? Ебучая залупа блять
>>2463197 >я создал проект командой "npx create-react-app" В этом твоя ошибка, выкинь его нахуй. >Какой конфиг и где его создавать Мне за тебя погуглить? webpack config for beginners
>>2463201 >я создал проект командой "npx create-react-app" >В этом твоя ошибка, выкинь его нахуй. А что не так с ним? Расскажи. >webpack config for beginners Пойду разбираться, спасибо.
>>2463204 >А что не так с ним? Расскажи. 1) Он кривой 2) Он медленный 3) Он тащит вместе с собой 500мб (!!!) модулей формата isString просто для того, что бы создать несколько файлов 4) Кастомизация на уровне нуля >>2463204 >Создал этот файл, все равно та же ошибка вылезает. Тебе сказали не создать файл, а написать корректный конфиг. Разницу чуешь?
ладно, мне тебя жалко стало: npm create vite@latest
>>2463216 >не создать файл, а написать корректный конфиг Не чую, конфига то нет. Я на самом деле по видосу начал делать и тут ошибка эта вылезла, попробую исправить.
>>2463222 >Я на самом деле по видосу начал делать и тут ошибка эта вылезла Это был первый звоночек, что ты что-то делаешь не так. Второй звоночек - я тебе явно указал, что CRA это гной болото чмо пидор, не прикасайся к нему вообще. Аналогично вуй-cli.
>>2463235 Я понял что vite лучше для создания проекта, спасибо. Но почему учить реакт по видосам - ошибка? Я как новичок теряюсь в нем, а по видеоурокам хоть как-то опыт получаешь и немного начинаешь понимать. Хорошо, как тогда учить реакт?
>>2463238 >Но почему учить реакт по видосам - ошибка? Ты еще не понял? Потому что 99% видосов это говно. 1% не говно, но его еще поискать надо. >Хорошо, как тогда учить реакт? Практика, багфиксинг и оптимизация чужого кода (возьми любое ишью и попробуй исправить), создание новых фич
Хули она не работае? Переписать-то я перепишу, но почему так-то она не работает??? Задача: дан массив точек (массивов (на скрине)), вычислить две самые близкие и вернуть массив с координатами этих двух точек. Написал дополнительно функцию, которая вычисляет дистанцию, отдельно она норм работает с тем же массивом, а внутри ошибку выдаёт. Да, я в курсе, что есть другой алгоритм решения этой задачи.
>>2463376 Да, я его и поправил, заработало сразу хорошо, все тесты проходят, кроме производительности. Но я понятия не имею, что тут оптимизировать. Наверное, нужен другой алгоритм.
Можете простыми словами объяснить что такое идемпотентность? Идемпотентные методы: GET, OPTIONS, HEAD, PUT, DELETE.
Я так понял это свойство, при котором повторный запрос даёт тот же результат, что и первый. Тогда вопрос, почему здесь нету POST? Он же тоже даст тот же результат, как и какой-нибудь DELETE только добавит, а не удалит? Тогда какие методы не идемпотенты
Сап. Я нуб, чет туплю. Вот делаю я поиск на сайте. На вью. Как я его сделал значит. В главном компоненте у меня серчбар с кнопкой. Когда нажимается кнопка, то делается роутер пуш на вью поиска с параметром в запросе. Ну пикрил в ообщем. А во вью поиска уже в mounted у меня функции, которые берут этот квери и делают запросы на сервер. Ну так вот, оно работает, если я делаю поиск откуда-то, кроме самой страницы поска. А если я пытаюсь сдлеать поиск, находясь уже на странице поиска, то урл меняется, но функции заново не триггерятся. Как я понимаю маунтед не срабатывает в таком случае. Как это пофиксить? Это какой-то другой хук надо использовать или вообще такой способ реализации хуйня?
>>2463420 Ну у меня будет 2 яблока, если я правильно понимаю пост запрос, он будет добавлять эти самые яблоки. А насчёт делита, было у меня 2 яблока, 2 раза использую будет 0, но он тоже идемпотентный
>>2463420 Хотя аналогия не очень из-за игры слов PUT POST PATCH PUT - разместить реcурс по определенному адресу PATCH - изменить реcурс по определенному адресу POST - создать реcурс по определенному адресу
>>2463424 Ну и говнокод, пиздец просто. Тебе сказали, выкинь нахуй твои classListы и пиши на реакте. Если ты так хочешь императивно писать - пишешь команду npm remove react react-dom, потом npm install jquery и пишешь на jquery.
>>2463423 Не пытайся натягивать аналогии на глобус. Если у тебя ресурс по адресу /products/dildo/134 то ты удаляешь продукт типа дилдо, а не дилдаки со склада
>>2463423 Повторный пост запрос создаст ещё одно яблоко, то есть сделает уже как бы другую операцию. Идемпотентный, значит что запрос каждый раз будет выдавать одинаковый результат. Типа как гет запрос.
>>2463436 Я тебе отвечал, мудак ты ебаный. Обработчик выкинь с враппера и навешивай на каждый цвет, таким образом что <div key={color} className="..." onClick={()=>setColor(color)} />
Охуеть вкатуны борзые пошли, ты им пишешь как надо, он делает не как надо еще и агрится.
>>2463425 Я кстати хуй клал на идемпотентность PUT. Наверно тут подразумевается ручка типа PUT /zalupa/:id, вот только проблема в том, что при добавлении сущности клиент не может знать идентификатор новой сущности, так как он генерируется сервером после её создания.
>>2463473 >вот только проблема в том, что при добавлении сущности клиент не может знать идентификатор новой сущности Может если его запросить, например POST'ом
>>2463539 Джуниорка Снежанна покрасила волосы в зеленый цвет, потом снова покрасила в зеленый - это patch Арсен окрыл в компании должность программиста-грузчика, потом снова открыл - это put
>>2463548 > для долбоёбов всё равно кроме get, post, put, delete ничего не существует У меня на всех проектах все захуячено через POST и GET, и всем похуй, никаких проблем с этим нет.
>>2463567 Не говнокод нихуя, просто это очевидно быстрее и легче, а само действие определяется по первому названию метода(который в жопаскрипте), например, getPage, createPage, changePage и т.п.
>>2463522 Как он его запросит, когда идентификатор будет доступен только после успешной транзакции, т.е. создания сущности? >>2463471 >PUT - изменить >>2463539 >put обновить Одна история охунней другой просто.
>>2463573 >Как он его запросит, когда идентификатор будет доступен только после успешной транзакции, т.е. создания сущности? Запрашиваешь временный идентификтор => бэкенд создает строку в базе данных, хаполняет её нуллами => возвращает идентификатор Потом юзер постит информацию в строку с этим идентификатором. Ну и крон поставить на 24часа, что бы он выпиливал идентификаторы, которые не были заполнены за последние сутки. >>2463576 >@Post >@Put Не стоит экстраполировать опыт неста на весь бэкенд, есть куча легаси проектов, где ты просто так не можешь запилить метод, потому что надо перепилить половину миддл вар и хуеву тучу чего еще.
>>2463573 бд возвращает id, при инсерте (мускуль точно), а если нет, то можно в одной транзакции прочитать текущее значение последовательности. А если у тебя юиды то ты можешь генерировать их до записи в бд
>>2463583 >Давай, расскажи, что PUT это "класть" и создать новый объект Лучше ты расскажи, в чём принципиальное отличие обновления поля через PUT от обновления поля через PATCH. >Мамкин курсовод, реальных проектов не нюхавший Ну то что ты наговнокодил удаление через геты на реальных проектах и так понятно, только твой говнокод никакого отношения к теме не имеет. >>2463585 >Запрашиваешь временный идентификтор => бэкенд создает строку в базе данных, хаполняет её нуллами => возвращает идентификатор Охуенный дизайн бд - постоянно насиловать индексы, таблицы и даже саму операционную систему, чтобы реализовать маняметод с расплывчатой формулировкой. Собственно в этом и проблема этих маняметодов. Если с гетом (эквивалент операции чтения) и постом (ебись как хочешь) всё понятно, то идемпотентность для маняметодов ты будешь реализовывать ручками и эта реализация будет тонким слоем размазана по всему стэку и всем его слоям, начиная от клиентского скрипта и заканчивая дизайном бд. >>2463587 >бд возвращает id, при инсерте (мускуль точно) Проблема в том, что возвращать его нет смысла при провальной транзакции. >А если у тебя юиды то ты можешь генерировать их до записи в бд Юиды как основные ключи нужны только если ты балуешься всякими децентрализованными сетями, тащить их для решения проблемы, вызванной методом на эндпоинте - оверкил.
Жопоскриптеры это парашники вообще, опущенцы. Низшая каста среди разработчиков, это навроде как петухи на зоне. Лучше даже писать PHP на сервере - эти и то, считаются вроде как шнырями, но не дырявыми хотя бы, как жопоскриптеры. Жопоскриптерам нельзя ни в коем случае жать руку, и даже если хочется им уебать, это надо делать ногами, иначе тоже переведут во фронтендщики. Блатные пацаны типа хаскелистов или лисперов, считают, что жопоскрипт по недоразумению родился из схемы, криво слепленной человеком из касты мужиков, попытавшимся сделать ее на джаве, за что тот был первый отправлен на парашу. Блатные вообще не общаются с жопоскриптерами или считают их чернью, недостойной внимания, иногда ради забавы унижают. Мужики, выполняющие работу на Java, или чем-то подобном, иногда пытаются жопоскриптеров менторить, общаться с ними, и даже пить пиво в барах - но надо понимать - что любой мужик должен опасаться того чтобы не зашквариться самому и не быть отправленным драить очко, вставляя css в div самому до конца своих дней.
Почему я на петухоне могу нагуглить решение своей проблемы из 2005 года и оно скорее всего будет рабочим, а в жс нужно фильтр ставить чтобы не позже 2021, и то не факт что с тех пор все не поменялось 10 раз?
>>2464281 Потому что жс строили наново на куске говна, которым он изначально был, а в бидоне гвидон трясется над совместимостью пиздец и придумывает сто контекстов для существующий кейвордов, лишь бы не вводить новые. И это ты ещё перл не видел, где решения из 80-х будут работать в большинстве.
Ахуеть в гугле не нашёл ответ, как передать реф из родителя во вложенный чайлд компонент, forwardRef работает только если напрямую из родителя в чайлд, а у меня через 2 посредников
>>2464626 Кстати, я подумал, а как сделать так, чтобы ячейки были всегда квадратными, чтобы высота менялась а зависимости от ширины контейнера? Не важно, там на таблицах или флексбоксах? Но чтобы без JS, конечно.
>>2464642 Сейчас появилось свойство в CSS 'aspect ratio', но его поддержали недавно, в 2021 году. Все браузеры в 2021 году поддержку добавили, с разницей в несколько месяцев.
А до этого были только извращения с разными трюками.
>>2464663 потому что на ноде пишут микросервисы, и скейлинг идет не через ноду а через кубер или чтото подобное потому что комуникация между нодами такого "клатстера" неудобная по факту это обертка над несколькими нод процесами а в докере больше 1 процесса не стоит делать
Ананасы, почему в VS code, Live Server гораздо популярнее Live Preview. Я сначала установил Live server, нужна была функция что бы прямо из среды разработки я мог отслеживать визуальные изменения, так это расширение вместо того что бы прямо в клиенте открывать окно, открывает мне новую вкладку в браузере. Потом установил Live Preview, и вот он делает как надо. Так почему Live Server скачали 25 миллионов, а Live Preview всего 700к?
>>2464722 Язык-то может и знаешь на уровне джуна, но это все равно что синтетические тесты железа, главное же как он показывает себя в рабочих и игровых задачах, так и ты, знаешь синтаксис, методы и прочее, но на работе этим надо на практике пользоваться
>>2463416 Это то что можно вызывать больше одного раза и не бояться, что эти несколько вызовов повлияют на какой-то стейт. Вызываешь DELETE несколько раз - значит у тебя что-то удалиться только один раз и последующие вызовы просто вернут ответ, что сущность удалена. Можно и POST сделать таким, например, постишь JSON с одинаковыми параметрами и тебе возвращается одинаковый объект. Ой, но где же ты объебался? Правильно, ты объебался там где начал использовать POST как PUT.
>>2465078 Давно ли обновили весь код и все интерпретаторы до последней версии? У php очень длинный легаси хваст, который тянется потому что много сайтов написаны на старых версиях зрз
>>2465081 В какой-то отдельно взятой компании - безусловно, но существует огромное легаси-пространство, говорю же. Но я тебя услышал, да. Можно не продолжать
>>2465095 Ты немного не уловил смысл мною сказанного. Суть в том, что браузеры обновляются помимо моего и твоего желания и если мы хотим, чтобы наше с тобой приложение работало, нужно писать уже по-новому. Когда у тебя интерпретатор пхп развернут на сервере, ты его контролируешь сам и можешь не обновлять, так как любое обновление потребует денежных затрат и если все и так работает, ты просто будешь пользоваться его старой версией.
Вообще, легаси интерпретаторы на бекенде - это классика
>>2465477 А аргументы у тебя какие-то есть? Мы в проекте потратили неделю чтобы на yarn переехать и был целый пост в чатике рабочем почему это лучше. Какие твои аргументы?
>>2465544 >так а чем yarn лучше? Так я же не поспорить хотел, а просто твою точку зрения узнать, лол Если работа с монорепо - это единственный плюс, который ты смог выдать, то довольно странно получается, так как yarn тоже это умеет
Но давай по пунктам: 1. yarn быстрее так как умеет в параллельную установку пакетов 2. Они оба имеют lock файлы, но вроде как ярн более консистентен (тут я аргументировать не смогу, это то что у нас написали в чате, а я не копал так глубоко) 3. Еще из плюсов есть возможность автоматической проверки лицензий в yarn
>>2465549 Да, еще у yarn есть .yarnrc файл, куда можно явно указать версию, которая будет использоваться. Но может быть у npm такая же возможность имеется
>>2465549 >yarn быстрее так как умеет в параллельную установку пакетов Ебало курсовых вкатунов представили, у который локальное развёртывание проектов по фэтапе вместо npm-ci ?!
Это можно как-то отрефакторить? Да да, можно как-то решить задачу принципиально другим способом и будет короткая запись, но я решил вот так. Тут 9 раз повторяется вот эта конструкция с небольшими изменениями - начало и пределы счётчиков увеличиваются на 3 for (let i = 0; i < 3; i++) { for (let k = 3; k < 6; k++) { cubes[arrCounter].push(board[k]); } } arrCounter++; ,наверное можно сделать ещё 1 уровень вложенности цикла и сократить запись с 9 до 3 повторений, а потом ещё один цикл и будет совсем коротко, но не могу сообразить как подойти к этому. https://codepen.io/pivpivpiv/pen/QWrpoNQ?editors=1112
Не пойму даже, нужно ли начинать "изнутри" или "снаружи" этой конструкции.
>>2465747 >страничку какую, размер, сложность, количество блоков, виджетов, анимаций, много ли на жс делать >адаптивно насколько адаптивно и насколько сильно меняется интерфейс >чужую вёрстку какую, с ui фреймворком, с css-фреймворком, на бутстрапе, на scss с 4 уровнями вложенности, с бэмом и шоб твоя верстка тоже была бэм, если есть a11y, нужно ли добавлять свое с тем же a11y >баги какие, с размерами, выпаданиями элементов, глитчами в анимациях
>>2465792 >Browsers and how do they work Надеюсь там указывают на какую глубину копать. На эту тему можно книгу в 1000 страниц написать, и все равно не все вместится.
>>2465994 Потому что невежды. Нельзя без сравнения чего-то конкретного вот такие тезисы кидать. Пусть покажут не русские курсы и уже тогда по факту пояснят в чем плюсы и в чем минусы
>>2453316 (OP) У меня в каждом компоненте имеется один и тот же проп с одинаковым дефолтным значением. Можно ли как-нибудь уменьшить дублирование кода?
>>2466268 Ты задал вопрос на уровне: нахуй птице крылья? Потому что без рефреша теряется суть токена, если безопасность не важна так не используй совсем
>>2466318 >Этого не слушай, вместо одной строчки с пропом добавишь одну строчку с декоратором Ты забыл сказать всю ебанину с экстендом и вызовом супера в конструкторе.
>>2466325 Определение каких-то общих свойств в родительском классе - это классика программирования. Определение их через декоратор - костыль
Как ты этот декоратор в будущем расширять будешь расширять? Для новых свойств будешь добавлять новые декораторы или все в один скидывать будешь? А если понадобится логику общую добавить, тоже в декоратор ее?
>>2466337 >Определение каких-то общих свойств в родительском классе - это классика программирования. В интерфейсе абстрактного класса ты хотел сказать? Абстрактный класс, а потом и конкретный класс, уже идут потом. >Определение их через декоратор - костыль То ли дело писать export class ZalupaProps extends BaseProps { super() ... } в каждом ебаном компоненте. Программирование настоящего свидетеля не менее настоящего ООП. А уж как в жсе реализуют тру ООП инкостыляцию так и вообще пушка. >Как ты этот декоратор в будущем расширять будешь расширять? Пошла классическая мантра про расширяемость. Особенно комично выглядит, когда другие сектанты (тоже свидетели не менее настоящего ООП) твердят, что наследование вредит раширяемости. >Для новых свойств будешь добавлять новые декораторы или все в один скидывать будешь? Ты их и так скидываешь в один мегаобъект через цепочки super(). >А если понадобится логику общую добавить, тоже в декоратор ее? Как ты собрался в пропсах логику общую через наследование реализовывать, наркоман? В них не должно быть логики изначально, так как пропсы - всего-лишь аргумент к функции рендера.
>>2466357 На стэк похуй, главное идея и люди будут играть даже в говнину на уровне дварф фортрес или той игрушки про вампира которая на электроне писалась.
>>2466351 >В интерфейсе абстрактного класса ты хотел сказать? Зависит от нужды. Может в абстрактном, а может и не в абстрактном. Это уже детали реализации
>То ли дело писать export class ZalupaProps extends BaseProps { super() ... } в каждом ебаном компоненте Общепринятый подход > костыль
>super() Если конструктора нет, то не придется писать
>Программирование настоящего свидетеля не менее настоящего ООП Какие претензии к ооп? Это всего лишь инструмент, не более
> А уж как в жсе реализуют тру ООП инкостыляцию так и вообще пушка Какие-то претензии к прототипному наследованию?
>Пошла классическая мантра про расширяемость. Особенно комично выглядит, когда другие сектанты (тоже свидетели не менее настоящего ООП) твердят, что наследование вредит раширяемости. Ты что-то по делу скажешь или будешь просто в отрицание продолжать впадать?
>Ты их и так скидываешь в один мегаобъект через цепочки super() Потому что это удобно и читаемо
>super() x2 Уже пояснил выше
>Как ты собрался в пропсах логику общую через наследование реализовывать, наркоман? В них не должно быть логики изначально, так как пропсы - всего-лишь аргумент к функции рендера. Логика не в пропсах, а логика работы с этими пропсами
>>2466354 >Если устраиваться 2 года назад, то необязательно. Сказали твоей матери, когда она пыталась устроиться уборщицей в супермаркет и спросила нужно ли среднее образование.
почему div при display:flex, находящийся по середине - работает на всю ширину, только если задать min-width: 500px, а при width: 500px не работает? и сами ячейки <li> тоже только min-width: 24px работает, а width:24px нет
>>2466630 На всю ширину страницы? Min-width: 500 задаёт минимальную планку ширины. Но блок может растягиваться. T Если ты не трогал свойства flex-grow или flex, они по умолчанию равны 1 и блок будет на всю ширину родительского блока растягиваться. width: 500 должен быть всегда 500.
>>2453316 (OP) Анончики, есть какая-нибдь годная статья для создания ботов?
Пытался гуглить, но постоянно выпадает "Создание бота для телеграм" илч что-то подобное.
Хочу попробовать сделать ботов, которые будут делать определенные вещи, например, зарегаться на сайте и отправить сообщение или проголосовать, что-то вроде.
Какое же ебаное говно этот тайпскрипт блядь уже пол дня пытаюсь ебаный редюсер переписать, чтоб хоть что-то с этой парашей работало сука тварь говнина. Фиксишь одно, вылезает другое.
А что если я в рот ебал яркие увлекательные курсы html академии для зумерков сдвг и хочу тупо дрочить книжку? на html book вроде неплохой самоучитель но там 4 версия
>>2467486 Метод navigate НЕ поддерживает юнион из типов To | number | Partial<Path> | undefined Он поддерживает только '(to: To, options?: NavigateOptions | undefined): void' и '(delta: number): void'
Требуют написать перегрузку методов или идти нахуй
Кто шарит по хукам пасаны? В обучалке делаем кастомный хук useQuery. Как я понял, когда компонент рендерится то запускается useEffect. В обучалке говорят что выносим функцию fetch из юзэффекта потому что она будет использоваться в другом компоненте иначе бы она была внутри useEffect. Но для чего внутри fetch используются useCallback который зависит от переменной query? Говорят что типа мемоизация? Но почему нельзя без юзколбэка оставить эту функцию вне юзэффекта?
Сап, изучаю синтаксис, скачал книгу кантора 2017 что-ли года, в которой переменные объявляют var. А на learnjavascript (эта же обновленная книга) переменные объявляют как let. Так вот я понял, что по стандартам переменные объявляют let. Но в чем тогда их разница, чем второй вариант лучше первого?
>>2467985 > в чем тогда их разница Вкатун, учись заходить на сайт google.com и вбивать в единственное поле свой запрос. По твоему вопросу там буквально вся первая страница результатов состоит из ответов. >по стандартам переменные объявляют let По каким стандартам, шиз? Как тебе тимлид скажет определять - так и будешь
>>2467995 Изучать другой язык, который различается с теми которые я знаю = вкатун. Я лишь спросил почему в том же учебнике по разному объясняют, разница лишь во. Времени
>>2468006 >Изучать другой язык, который различается с теми которые я знаю = вкатун. Шизик, ты идешь на двач, высираешь тут пост, вместо того что бы ввести в гугл "js var vs let" и получить ответ по первой ссылке. Количество языков, которые ты знаешь тут никакой роли не играет. >Я лишь спросил почему в том же учебнике по разному объясняют, разница лишь во. Времени Самое смешное - в учебнике на learnjavascript есть ответ на твой вопрос. Буквально. Вкатун.
>>2467985 Разница в области видимости. Let лучше тем, что он удобнее и интуитивно понятнее. Открой раздел ПЕРЕМЕННЫЕ на сайте, который ты сам написал и прочитай.
>>2468018 Вкатун, успокойся. Иди лучше свой учебник перечитай, который сам же и скинул. А если, как ты говоришь, уже знаешь язык - то приступай сразу к прочтению спецификации ecmascript
>>2468110 Вы че пьяные или че, зачем вы за других людей на все подряд отвечаете, так ещё и сретесь. Я задал вопрос, получил ответ, отьлагодарил и ушёл, нахуя такое разводить? Идите в б
Есть массив чисел. Мне надо пропустить его через мою функцию, которая вернёт более короткий массив. Этот результат опять пропустить через эту же функцию и получить ещё более короткий. И так далее, до тех пор пока при пропускании его через эту функцию, длина массива не изменится. Вот когда вернётся массив той же длины, мне надо остановиться.
Нихера не пойму как это сделать. Куда эти массивы сохранять блин.
>>2468733 Нихуя не пойму, там во всех примерах известна глубина рекурсии или её можно вычислить на основании каких-то внешних данных. А мне надо сравнивать результат текущего вызова с предыдущим. Их надо куда-то поочерёдно записывать.
>>2468744 Два варианта: 1. Делать мемо-декоратор, который будет запоминать нужное тебе значение и дёргать твою функцию в зависимости от изменения этого значения. 2. Сверять длину исходного массива-аргумента с результатом. Если у тебя там какой-нибудь фильтр или мап, то в его коллбеке можно брать исходный массив.
Вопрос по тайпскрипту. Есть функция запроса данных с сервера. Интересует в частности возвращаемое значение где res.json as Promise<>. Можете плиз объясниить что происходит в данном коде? В частности зачем там используется as и <>?
>>2469424 В мирное время работодатели просто должны вести учет военнообязанных, а сейчас просто человек с членом это как раньше молодая девка 22 лет, которая "обязательно забеременеет и уйдет в декрет"
Ананас, подскажи вкатуну, а то чёт совсем уже запутался. В общем есть небольшая прилажуха с бэком на эксперессе, в которой используется вебсокет. При разработке и запуске сервака на локалхосте всё норм работает, никаких проблем нет. Но при деплое на сервер возникает проблемка, там https протокол и соответственно требуется wss, а не ws подключение. Но с ним всё нахер крашится. Как пофиксить и перевести бэк на wss? Чёт не даже загуглить правильно не получается, одну херню выдаёт
>>2471068 Видимо плохо объяснил. В общем я перевёл все процессы на process.env.REACT_APP_API_URL. Само приложение запускается и нормально работает с хероки. Не коннектится только лишь вебсокет
Mixed Content: The page at '---' was loaded over HTTPS, but attempted to connect to the insecure WebSocket endpoint '---'. This request has been blocked; this endpoint must be available over WSS.
Как AbortController использовать в ноде? Есть таск раннер, который в бесконечном цикле обрабатывает задачи. Нужно реализовать возможность остановить этот раннер в любой момент в коде за пределами модуля, соответственно зафейлив нынешнюю задачу. Как я понял мне созданный контроллер нужно хранить где-нибудь в замыкании и при старте новой задачи создавать новый, а условная функция stop() должна помимо переключения статуса и ещё дергать AbortController.abort()?
Сап жаэс, учу язык по Кантору, читаю одну тему, практикую ее часика 2-3, перехожу к другой, но прошлая тема уже забывается иногда. Кто как учит и запоминает? Конспекты? Или у вас память как у Шелдона Купера?
>>2471676 >Кто как учит и запоминает? Нихуя не учил, все само запомнилось >Конспекты? Нахуй надо. Лучше практикуйся больше. >у вас память как у Шелдона Купера? Да
>>2471676 Хз, просто откладывается что-то и все. А если не откладывается, как минимум понятно как погуглить именно в тот момент, когда это пригодится на практике.
Ананасы ангулярщики, подскажите простой вопрос нихуя не могу вдуплить. Вот динамические компоненты через роутинг должны рендериться внутри тега router-outlet, верно? А то у меня они рендеряться после закрытия этого тега и я не могу понять, то ли лыжи не едут, то ли я ебанутый. Наткнулся в интернете на статью в которой вот такое написано и теперь сомневаюсь во всём
Path: The router API breaks down the entire URL into individual fragments. The path property could correspond to a combination of these fragments. It is mainly used to identify the angular component that should be instantiated and loaded in the parent's router outlet.
Можете подсказать ньюфагу плз, можно ли как-то во вью передавать пропы для компонентов через роутер? Ну то есть я нагуглил, что можно указывать это в индекс.жс роутера, но это не динамически как я понимаю. А я вот хочу сделать так, чтобы разная информация могла передаваться. Ну типа у меня есть допустим блог, есть компонент поста и компонент формы создания поста. Ну и 2 роута соответственно. Но что если я хочу например отредактировать пост, то есть нажать на кнопку и чтобы я попал на страницу создания поста, но с уже заполненными полями от того поста, на который я нажал? Так можно делать? Ну и не всовывая всю эту информацию в урл офк.
>>2471676 Просто читаешь как художку, если что-то интересует, то тестишь. Потом просто если натыкаешься на необходимость в чем-то, то вспоминаешь "я что-то такое видел", выясняешь что именно ты там видел.
>>2453316 (OP) Я начал изучать тайпскрипт и мне стало плохо, я потерял мотивацию к изучению программирования, это просто пиздец. Смотрю на эту навешанную хуйню и я вообще ничего не понимаю что происходит Пиздец да что он хочет от меня, я не понимаю. Как в этом говне разобраться?
Имеется вложенный роут хуёбины и родительский с навбаром. Данные для первого подгружаются лоадером, но часть из них требуется последнему. С классическими коллбеком+стейтом тормозит обновление родителя - надо тоже юзать лоадер. Но, это приводит к отправке двух одинаковых запросов. Как фетчить только один раз?
>А в чем сила фронтенд разработчика >кроме как вёрстка сайтов? 1. Ты зачем-то подменяешь программиста и его навыки верстальщиком. Ну да ладно 2. Фронтенд - это платформа для исполнения написанного тобой приложения. То есть написать можно все что угодно, даже собственную ОС, если упороться и все это будет работать в браузере
>Просто с бэком прикольно, работаешь с данными и системой Как будто на фронтенде ты работаешь не с данными, лол
У тебя какое-то странное представление о программировании и фронте в частности. Ну и нет почему-то представления о программисте как об архитекторе в общем смысле. Фронт ты или бек или еще хуй знает кто, ты можешь переключаться между платформами, языками программирования и даже Аллахом и никто тебя не осудит, наоборот будут только больше уважать
А если будешь жить как обывала, который за рамки системы выйти не может и есть стал бакенд программистом, то там и умрешь. И никто тебя не вспомнит
>>2472079 >Просто с бэком прикольно, работаешь с данными и системой, можешь опускаться на уровни по-ниже, к железу и микроконтроллерам Хорошая шутка, особенно в контексте мультиплатформенной многоязычной веб-разработки.
помогите вкатуну в реакт на тестовых заданиях предлагают пользоваться библиотекой prop-types чтоб описывать типы я хочу сразу на тайпскрипте учится, начиная с простого описывая пропсы и т.д. норм затея или хуйня?
И как вообще добавить тайпскрипт в проект ? нихуя не выходит
>>2472343 >норм затея или хуйня? Норм >И как вообще добавить тайпскрипт в проект ? нихуя не выходит Добавляешь лоадер в вебпак, добавляешь tsconfig и переписываешь свое говно на ТС
>>2472380 >как вообще добавить тайпскрипт в проект >создать новый проект чел... >create-react-app Мы вам перезвоним. >>2472390 Не надо использовать CRA, тебя на собесе сразу развернут нахуй если его увидят. Если у тебя меньше 100iq или ты по какой-то причине не можэешь самостоятельно настроить webpack/vite/etc то просто используй vite с готовыми пресетами. https://vitejs.dev/guide/#scaffolding-your-first-vite-project
>>2472391 Ты на приколе? Тебя на работе никто не будет заставлять настраивать вебпак, тем более если ты <=мидл, и на собесах почти никогда о таком не спрашивают
>>2472391 >тебя на собесе сразу развернут нахуй если его увидят Ну и ебанутые, если ищут разраба на реакте и он будет писать на реакте. Человек обычно максимально быстро осваивает то, что критически важно, а не отвлекается на мишуру.
Кто может по своему опыту сказать, что будет проще и быстрее. Знаю html css на приемлемом уровне (на собес фронта хватит). Js знаю базу, но с пониманием advanced js типа прототипов/асинхронности и остальной мишуры возникают проблемы, поэтому особо вникать в это не пытался, просто поверхностно изучил без понимания, и сразу перешел на реакт. Там хватает моего базового js, и в целом у меня есть понимание что такое реакт (делал пару проектов), понимаю что мне надо еще излучить в самом реакте, но помимо этого там еще наверняка нужны тайпскрипты/редаксы(я даже не понимаю что это и зачем), да и еще js в любом случае надо будет подтягивать. Так вот вопрос - проще ли мне будет в такой ситуации вкатится в какую нибудь лендинговую и не только галеру на верстку хотя бы за 30к месяц, учитывая что там надо понять вордпресс с битриксом. Что из этого проще - доучится до норм фронта джуна и проходить собесы 24/7 чтобы получить заветный оффер, или просто стать рабом на галере, учитывая что хотелось бы устроится на работу как можно быстрее
>>2472595 [] это истинноватое значение. == преобразует булеан к числу, true приводится к 1, [] при приведении к числу приводится к 0. "" это ложноватое значение.
>>2472454 >>2472460 Я вам гарантирую, когда cra-дебилам понадобится попердолить вебпак, а им это рано или поздно понадобится - они обосрутся. Давно пора уже во вкатунские курсы добавить главу про базовую настройку сборщика.
>>2472636 Не помогает. Я подозреваю, что проблема в шаблоне. Потому что встречались шаблоны, в которых просто нужный размер шрифта выставляешь нужные паддинги контейнеру и всё встаёт.
>>2472638 >Базовые знания сборщика >выделю половину затрачиваемого времени на вебпак, надеюсь, 2 месяцев хватит на освоение столько сложной технологии. Чел, ты бухой там?
>>2472420 Вполне себе оправдание, так как пердолинг реакта на вебпаке с нуля та ещё ёбля. Особенно если не знаешь ни того, ни другого. Главное пили своё говно на CRA в приватной репе. >>2472638 Сам по себе вебпук не сложен, на самом сайте вебпака есть максимум вкатунский гайд к нему где тебя за ручку водят. Сложность появлется в организации лоадеров, а точнее их зависимостей и кода вокруг них.
>>2472391 >у вкатуси проект уровня "нажми кнопку - покажу картинку" >ряяя, какое cra, давай с нуля пердоль вебпак Пчел, cra для таких случаев и сделали, чтобы на петпроекте гонять. Предложи ещё вкатуну в линукс, который терминал вчера открыл собрать свою первую генту, иначе не тру, медленно и несчитово.
>>2472454 >на собесах почти никогда о таком не спрашивают Я только мидлов про такое и спрашиваю. Большинство джунов знает на уровне >ну у нас на проекте был, но я его не трогал а сеньеров спрашивать такое смысла нет уже.
>>2472621 Всё правильно, вот джун и должен у себя на проекте разбирать, что у него там в вебпаке и как написанно. Чтобы реакт учить - вебпак не нужен.
В чем проблема настроить вебпак, ты типа просто читаешь че у них там на сайте написано и настраиваешь, всё. Ну там мб ещё хуйню для реакта настроить чтобы оно ошибки нормально показывало. вкатун
>>2472497 >advanced js >прототипов/асинхронности Это лет 5 назад advanced было. Потом у вкатуна спрашиваешь, что такое await, а он мнется, как восьмиклассница на первом свидании. Можешь оставить в покое прототипы, но промисы и асинхронность - это вещи, которые нужны каждый день. >тайпскрипты/редаксы(я даже не понимаю что это и зачем) Ну ты хоть разберись зачем.
>доучится до норм фронта джуна и проходить собесы 24/7 чтобы получить заветный оффер, или просто стать рабом на галере До войнушки это всегда был вариант 1, доучиться и ходить на собесы. После войнушки я даже не могу спрогнозировать, что там с рынком.
Писал на пхп и приходилось сталкиваться с vue.js Как изучить реакт, если немного знаю во вью? Чтобы не с нуля, а на примерах в чем разница, ну вы поняли
Как писать связи ключей с типами в тайпскрипте? Допустим есть функция transformObj(obj: Record<string, unknown>, types: Record<string, "string" | "number" | "object">): Record<keyof typeof types, unknown> , которая создаёт объект с ключами types, но значениями, трансформированными из таких же ключей в obj по правилам дискриминатора значения в types. Где-то там в глубинах функции, значения types обрабатываются свитчкейсом по такой логике: "string" -> string | undefined "number" -> number | undefined "object" -> Record<string, unknown> | undefined То есть при входном типе types на выходе получается объект одного типа. Как это выразить в тайпскрипте, чтобы выражение const transformedObj = transformObj( { key1: "001", key2: 30, key3: { 1: 0 } }, { key1: "number", key2: "string", key3: "object" } ) приводилось к { key2: number | undefined, key2: string | undefined, key3: Record<string, unknown> | undefined } ?
есть полоски разных цветов, которые пересекаются, и при пересечении я хочу сделать чтобы был промежуточный цвет, типа красный + желтый = оранжевый и все такое, можно ли как-то это сделать - Hex коды сложить или что-то такое?
а можно ли сделать чтобы допустим у меня было 5 ячеек в ряд, и при подсвечивании на одну из них подсвечивались все 5? при этом не работая с контейнером, потому что в контейнере их 365
это типа события на календаре, и когда я направляю на первое событие, нужно чтобы оно подсвечивалось поверх второго ( в данный момент оно под первым) ну или какие-то еще идеи есть для пересечения событий?
>>2474427 Нихуя не понял что ты хочешь сделать. Попробуй опсать свое говно по иснтрукции из оппоста: >Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю» Из того, что я понял, тебе надо иметь 4 вида подсветки на каждую ячейку календаря: Не выбрано, вабран А, выбран Б, выбраны А и Б. Если так то используй css
>>2474441 типа как на картинке это как изначально, если я на 2-3-4-5 любую из этих направляю, чтобы она становилась поверх (то бишь 6 число стало бы серым)
>>2474450 >типа как на картинке это как изначально Ты для начала объясни, что у тебя на картинке. Я вижу 31 число в виде календаря. Что ты подразумеваешь под изначально? >я на 2-3-4-5 любую из этих направляю Что такое "этих"? Что ты подразумеваешь под "направлю"? > чтобы она становилась поверх Кто она? Что значит поверх? Визуально стала больше? Перекрыла собой все остальное? Нарисуй в пэинте или карандашом что ты хочешь, нихуя не понял. Учись выражать свои мысли.