Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: что я хочу получить, что я для этого делаю, что я вместо этого получаю. Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
>>1881515 >рандомный говнокод Так это у тебя говнлкод в одну строчек. Главное, что генераторы могут останавливать выполнение. await на генераторах, вроде.
Скопировал мой пример, которые я сам выдумываю от нечего делать, напредъявлял претензий и свалил. Думал, родишь что-то полезное, хотя бы генератор айдишников. Немного опечален тобой.
>>1881641 >Дайте гайд настройки вебпака для серверной части приложения На сайте самого вебпака отличная документация с пошаговыми примерами. Можно за вечер разобраться.
>>1881666 А кто тебе сказал, что жс это представитель функционального программирования? Это во-первых. Во-вторых, в случае JS это зависит от браузера, в Сафари например есть tco.
>>1881677 >Название треда обозначает контекст И? Вот теперь ты знаешь, что жс это не представитель языка с функциональной парадигмой программирования, радуйся.
>>1881705 >JS - это про передвижение кнопок и конвертацию массивов >сычуш, вот тебе стороннее API, с него будут приходить таблицы на 1к строк, сделай так чтобы можно было их сортировать, фильтровать, перемещать по экрану, добавлять данные из них в отдельные хранилища, чтобы всё красиво и плавно было, а также работало на мобилках и микроволновках >ЖЭЭС ЭТА ПРО КНОПКИ И МАССИВЫ пук среньк
>мимо 450к фулстек Ты то мне и нужен был, пидалю реакт тс нода монго экспресс , делаю регистрацию , валидацию, постинг вроде все крутится, как думаешь стоит куда то кидать резюме? И че еще модно из веб сокетов? Io? И нахера докер если есть живой сервер?
Здарова, поцаны, помогите мне. Первый день изучаю великолепный язык JS, набросал код (1 и 2 скриншот), но появилась ужасная ошибка (3 скриншот), что же не так? Плиз помогите мне я даун.
>>1881747 Ну перестань. Ошибки это не магия же какая-то. Тут простая цепочка на самом деле:
1. В консоли написано что мы пытаемся обратиться к свойству getContext у null, которого, конечно, нет 2. Значит в ctx у нас null 3. Значит getElementById вернул null 4. Идем на MDN, смотрим когда он возвращает null: https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementById 5. Понимаем что он не смог найти такой элемент в DOM 6. Тут два варианта — или его еще не существовало на тот момент или неверный селектор 7. Проверяем оба варианта — скрипт вызывается в самом конце, значит в DOM он уже должен быть, значит это неверный селектор 8. Иии... это таки неверный селектор
Полностью всю, или по большей части, вынести всё возможное - на клиентскую сторону, чтобы всё client-side работало, в браузере.
Парсинг, можно было бы реализовать, парся контейнеры, после конвертации PNG в dataURL. Стеганографию, тоже можно было бы реализовать client-side, с помощью async-функций или promise. Базу данных, и контейнеры, можно было бы сохранять, используя FileSystem API, с возможностью конвертации базы данных в JSON-формат, с последующим сливом базы в JSON из браузера.
Всё равно, всё это вместе: серверная часть (локального сервера) + клиентская сторона (скрипты) - всё это вместе, одна большая локальная - читалка нанопостов. Почему бы не сделать её клинтской?
Опционально, наверняка, серверную часть, можно было бы на Node.JS перепилить, но это уже на крайняк как-бы, если на клиенте нельзя сделать. Потому что такая зависимость как Node.JS это был бы огромный минус для cliet-side софтины, которую можно таскать в zip-архиве, на флешке.
В общем, гляньте, посмотрите код, может всё-таки не всё можно перепилить, а может и всё. Бггыы.
Двач, привет. Послезавтра иду на собеседование на стажировку на js-разработчика. Готовлюсь. Ссыкую. Поспрашивайте меня всякую теорию, а я буду отвечать. Всякие заебистые вопросики, но лучше и простые тоже включать. В общем помогите подготовиться, пожалсто!
>>1881821 >Напишите аналог функции console.count но вовзращающая число в виде результата, а не выводящая его в консоль >Напишите ленивые map, reduce, filter, every, some, чтобы для цепочки вызовов этих методов, фактически происходила только одна итерация >Напишите range(start, end, step) где step может быть нецелым, start и end как положительным так и отрицательным, и бесконечным в том числе >Напишите класс итерируемой слабой коллекции, напримиер WeakSet, который был бы наследником оригинального WeakSet, имплементировал все его методы, но при этом по элементам множества можно было бы итерироваться.
>>1881826 Server Side Rendering (рус. Компиляция кода на сервере). Нужон для облегчения нагрузки на браузер и компьютер юзера. Контент генерится на сервере и отдается пользователю. Грубо говоря так.
>>1881828 Пиздец нахуй, это же не для джуна даже! Такое я смогу ответить только дня через три, а собес в пятницу, так что я принял в оборот. Давайте следующее :P
>>1881836 Мы вам перезвоним. Поясняй за отличия var/let/const. Зачем в реакте нужно прописывать key для списков? Почему не рекомендуется передавать туда индекс? Как вы будете дебажить тормозящую форму на реакте? Есть лог-файл в миллиард строк в формате "дата-сообщение", каким образом можно найти сообщение за 1 января 2020, не прочесывая весь файл?
>>1881847 var объявляет переменную с глобальной областью видимости, let имеет блочную область видимость, const - это let, но значение нельзя изменять. Key для списков прописывается, чтобы реакт при рендере и при удалении каких-либо элементов имел грубо говоря "за что зацепиться". Индекс можно передавать, но лучше передавать какой-нибудь уникальный айди. Не рекомендуется, потому что может поменяться порядок элементов, а элемент с ключем 3, может стать на место 2 - это вызовет сбой компонентов реакта. Как дебажить тормозящую форму? - я ещё пока не изучал формы как следует. Что значит тормозящую? Плохо работающую или запросы отправляющую долго? Лог файл открыть в ворде, ctrl+f и ввести дату.
>>1881856 Нахуя?))))))) https://www.npmjs.com/package/promise-polyfill Ладно, я честно говоря хуй напишу его в ближайшие два дня, потому что это потребует у меня опять же закапывания в глубь предмета и кучу тестов, так что я принял во внимание, если получится, через недельку пришлю
>>1881861 >var объявляет переменную с глобальной областью видимости Если объявлена в функции, то будет область действия функция, иначе насрет в глобал. >Key для списков прописывается, чтобы реакт при рендере и при удалении каких-либо элементов имел грубо говоря "за что зацепиться". Надо подробнее. Без ключа рекатe бы пришлось сверять каждое свойство каждого элемента, это очень медленно. >Что значит тормозящую? Ну представь форму с несколькими табами, 20 хитрыми контролами. Юзер начинает вводить текст в поле Name и после каждого символа сайт пропердывает несколько секунд и как будто вся форма перерисовывается. >Лог файл открыть в ворде, ctrl+f и ввести дату. Файл весит террабайт. Ворд будет искать неделю, а нужно сегодня. Нужно описать принцип поиска, без конкретики.
Иногда возникают ситуации, когда нужно сделать что-то с задержкой. Но есть ещё когда и нужно отменить это отложенное выполнение. Как поступить? Делать сеттаймауты и отменять их или через new Date() отслеживать? Просто таймауты возвращают каждый раз id увеличенный на 1. Дойдёт до ситуации когда id будет 10000000000000000000000000.
>>1881879 Можно сделать по-разному. Сильно зависит от задачи и того как устроен. Часто проще не отменять таймер (хотя бы потому что setTimer это неудобно и id где-то надо хранить, а промисы не отменяются) а сделать в коллбеке/then какое-то условие, которое проверяется, актуален он или нет (не размонтировался ли компонент, не сменился ли айдишник чего-то и т.п.). На new Date() точно завязываться не надо.
>>1881875 >Ну представь форму с несколькими табами, 20 хитрыми контролами. Юзер начинает вводить текст в поле Name и после каждого символа сайт пропердывает несколько секунд и как будто вся форма перерисовывается. Так, ну в таком случае я буду смотреть методы, что происходит при вводе символов, мб кто-то до меня создал какой-то метод, который... Хотя нет, буду смотреть lifecycle hooks в первую очередь. ComponentDidUpdate мб. Буду искать разгадку в этом. Наверное при каждом изменении value инпута запускается ререндеринг. Буду копать куда-то туда, наверное. Надо бы повторить эту темку... Пропсы чекну ещё. >Если объявлена в функции, то будет область действия функция, иначе насрет в глобал. Блин, спасибо, анон, ты крут. Я как-то даже и не додумывался, честно признаться. Теперь тоже буду знать. >Файл весит террабайт. Ворд будет искать неделю, а нужно сегодня. Нужно описать принцип поиска, без конкретики. Блин, честно говоря не знаю даже как и ответить. Гугл сказал: файл лога -> парсер -> logstash -> elastic search -> kibana :D Ч так понял, что интерфейс бд предоставляет метод, который ищет по значению.
>>1881886 >Пропсы чекну ещё. Угу, самая распространенная ошибка нуба - пробрасывать каждый раз незабинженые функции в потомков. >Гугл сказал: файл лога -> парсер -> logstash -> elastic search -> kibana :D Нахуй гугл, это все конкретные тулзы. Тебе парой слов нужно описать абстрактный алгоритм, представь что доступны 2 функции readLineN и getLineCount и последовательно читать с нуля до getLineCount будешь всю неделю.
>>1881875 >Файл весит террабайт. Ворд будет искать неделю, а нужно сегодня. Нужно описать принцип поиска, без конкретики. `fs.createRedStream()`, а детали уже зависят от того, как эти данные там хранятся и известно ли нам это. И разве текстовики в 1ТБ хранить реально? Вроде же файловые системы серверов будут пердеть уже при 524ГБ одним файлом.
>>1881892 Ну пропсы на всякий случай проверю, хз. В процессе расследования причины мб посмотрю что там. >Нахуй гугл, это все конкретные тулзы. Тебе парой слов нужно описать абстрактный алгоритм, представь что доступны 2 функции readLineN и getLineCount и последовательно читать с нуля до getLineCount будешь всю неделю. Мне сложно понять просто в чем тут подвох. Я не видел логи на террабайт никогда. Предпологаю, что 1 января находится где-то в первых записях лога, так как мб он каждый год обновляется. В таком случае мотну вверх и посмотрю глазами. Слишком абстрактно, братец.
>>1881895 >Слишком абстрактно, братец. Кстати да, сильно зависит, есть ли переносы строк в файле или нет. Типичная задачу уровня "угадай шизу собедователя". Про переносы он только во втором посте рассказал, но это не значит, что собеседующий будет ожидать поясняющие вопросы, так как он ожидал мгновенного ответа про структуры данных. Или не ожидал.
>>1881904 >я просто хочу чтобы джун слышал про бинарный поиск Как я и сказал >>1881900. Забыл добавить, что даже алгоритмический ответ не гарантирует прохода, так как может легко перетечь в вопросы про кишочки и лимиты софта/железа. Максимум шиза конечно, если собесер ожидает знание багов проприетарщины от ждуна.
Сап, начал учиться на реакте писать, делаю "калькулятор затрат". По какой-то причине функция которая должна на клик по кнопке срабатывать, срабатывает на любое изменение значения inputов, почему так?
>>1881911 ><button type="submit" onClick={handleSubmit}> Ты бы избежал этой ёбли, если бы знал HTML. Твой ивент можно полу-ванильным способом решить, даже не зная реакта.
>>1881916 handleSubmit(args) это вызов функции. Можешь исправить на () => handleSubmit(args), это будет работать в твоем простом примере, но в большом проекте может выйти боком.
>>1881926 Это как ленивые программисты, нихуя не делают, пока не припрет. Из того примера, мап не должна применяться к бесконечному списку, потому что дальше ограничена каким-то условием.
>>1881921 В ленивом map ты можешь остановить выполнение на n-ом элементе, т. е. прописать break и получить результат незаконченного map, в стандартном (не ленивом) map он у тебя будет прогонять callback-функцию до конца массива.
>>1881964 Array.prototype.myMap = function (fn, iteration = this.length) { if (this.length) { for (let i = 0; i < iteration; i++) { this [ i ] (съело почему то) = fn(this [ i ], i, this); } return this; } else { return []; } };
>>1882012 Это на всякий случай! >>1882013 function getCoveredInShit (shit, callback) { callback(shit) } function cover(shit) { alert(shit) } getCoveredInShit('you are in shit', cover);
>>1881828 >range Не уверен, правильно ли понял задумку, но тем не менее. function range(min, max, step = 1) { const res = []; const args = [...arguments];
if (args.includes(Infinity) || args.includes(-Infinity)) { return [min, max]; } if (max - min <= 0 || max - min < step) { throw new Error("Data is not correct"); }
for (let i = min; i <= max; i += step) { res.push(i); } return res; }
>>1882251 >инб4 мы вам перезвоним Конечно. Ты как-то странно обрабатываешь бесконечность, вот представь что я хочу сгенерить рейндж от 1337 до бесконечности, навешать lazy мапов и фильтров, а потом еще и теребить пока не получу нужно число.
Есть один веб-сервис, там ажах запрос и табличка с результатами с пагинацией. Я хочу сделать юзерскрипт, чтобы эти результаты скачать все сразу. Пагинация чисто клиент-сайд, всё скачивается сразу. Но там какой-то пиздец наворочено, какое-то dojo, стейты-хуейты. Как туда влезть и найти нужный мне датасет?
>>1882505 А в чем вопрос-то? Нужно кому? Для чего? Если тебе не нужно, то копипасти, хотя лично мне не совсем понятно как в принципе можно писать на реакте и не понимать как работают формы. Связать useState и input это какой-то сложный концепт теперь?
Кто-нибудь может мне объяснить смысл ключевого слова await. Мои доводы в пользу того, что он бесполезен: Предположим есть какой то метод foo который помечен как asink. Для того, что бы его вызвать нужно находится в другом методе asink, например parentFoo(). Если мы заставим parentFoo ждать результата этого метода foo через await, ты мы заставим parentFoo ждать, то-есть поведение метода будет соответствовать синхронному вызову, то-есть метод foo можно сделать синхронным и ничего не поменяется. Можно мне возразить и сказать мол мы может запустить 10 foo() в parentFoo и сидеть ждать когда они выполняться, но насколько я знаю js всегда работает в 1 потоке, а значит распараллеливание не увеличит скорость работы, в таком случае это все ещё можно описать 1 синхронным методом. Мне await видится только для 1 случая, у нас есть какой то asink метод в фреймворкеN, но его реализации без asink у нас нету, а нам нужно выполнить этот метод синхронно, в таком случае приходит на помощь await и мы сидим и ждем когда же там все выполнится.
Есть ли какие-то другие возможности использования await, кроме системных? Или мои рассуждение не верны?
>>1883049 Ответь нормально я же нормально вопрос задал. Почитал про промисы, это просто отложенные задачи, смысл await в том что бы получать коллбек от этих задач?
>>1883053 Смысл await в том чтобы не ебаться с обертками вида new Promise((res,rej)=> success ? res(true) : rej(false)) в местах где нужно асинхронное выполнение кода.
>>1883047 > знаю js всегда работает в 1 потоке ДА, но браузерное АПИ зачастую выполняет код в фоне, затем передаёт результат в очередь основного треда, где дом АПИ и твой код Чтобы распараллелить, нужно использовать (web worker), запихнув их в промисы, затем, возможно, await-ом синхронизировать
>>1883053 Так у тебя в вопросе куча ошибок, как на него ответить? И на MDN и на learn.javascript.ru async/await прекрасно описан с кучей примеров. Если ты не понимаешь о чем там речь, ну значит рановато тебе еще, не до конца понимаешь асинхронное программирование. Учи коллбеки, промисы, разбирайся как делать запросы, а там и до async/await дойдешь. Без хорошего понимания что такое промис (нет, это не «отложенная задача») любые объяснения не имеют смысла.
>>1883081 Мне уже ответили, вполне конкретно что это нужно лишь для того что бы не ебаться с лямбдами которые требует промис, именно этот ответ мне и нужен был, так что теперь я полностью уверен что я прав, сори
>>1883075 Именно так и есть. Если я просто сделаю, например, fetch, программа, пойдет дальше. А если сделаю await fetch, то нужно будет ждать результата.
>>1883082 Ага, там ответ насколько же охуительный, насколько и вопрос.
>>1883083 >Если я просто сделаю, например, fetch, программа, пойдет дальше. А если сделаю await fetch, то нужно будет ждать результата. Еще одна прохладная история. await, оказывается, превращает код в синхронный, breaking news. Я удивляюсь как вы там что-то кодите вообще.
>>1883087 Википедия: Асинхронность (Асинхронизм) (от греч. α — отрицание, συν — вместе, χρονος — время) — не совпадение с чем-либо во времени;
Ты запускаешь асинхронную функцию и вместо того, что бы её отпустить ты сидишь и ждешь когда она выполнится(синхронизируется) то есть ты делаешь код синхронным
>>1883087 >синхронный Делать что-то синхронно - значит делать одновременно. Синхронное плаванье - выполняются одновременное одни и те же выкрутасы в воде.
>>1883100 Синхронность это не про одновременность, а про зависимость одного от другого. Синхронизированный код - это код в которм каждое следующее вычисление в потоке не наступает до окончания вычисления предыдущего. А проебывая предметные области ударяясь в аналогии человек должен съебывать из сферы в которой понятия постоянно контекстно-зависимы и высокоабстрактны. Асинхронный же код это один из видов concurency, где зависимость уже не каждого предыдущего выражения от следующего, а на следующем уровне абстракции - микрозадач, и вычисления производятся в состоянии гонок.
Про одновременное выполнение в информатике - это прараллельность. И то, параллельное выполнение чего-либо в компьютерных технологиях весьма условное, потому как физических исполнителей всегда ограниченное количество, и обычно намного меньше, чем потоков выполнения в очереди. .
>>1883047 Чтобы избегать спагетти кода. У тебя может быть несколько асинк функций на одном уровне, которые ты можешь запускать и не дожидаться их результата, но например внутри этих функций может быть такая же асинхронная логика, требующая .then на каждом шаге. И чтобы твой исходный код не превращался в лапшу, ты можешь его делать плоским в тех местах, где это возможно. А это делается либо с помощью авейт, либо с помощью декомпозицией хендлеров по всему коду. Внезапно - Язык программирования - от и до - это инструмент для человека. Синтаксический сахар, чтобы тебе было его удобно писать, но прежде всего читать.
Подскажите, как перебором большого массива не забивать call stack? Есть массив на 5к элементов, нужно перебрать и вывести на экран список. Как по-уму это сделать?
>>1883122 Если бы асинхронность в js давала прирост производительности(или хотя бы бал честная многопоточность с новыми тредами) то все что ты написал было бы правдой, но то что ты размазываешь выполнение задачи на 10 асинхронных методов, а потом сидишь ждешь результата 10 этих методов, ничем не отличается от вызова 10 этих методов синхронно. Тогда в чем разница? Не в чем, ну разве что все твои асинхронные функции работаю чуточку медленнее. В таком случае я могу говорить о том что await делает код синхронным.
>>1883123 Спасибо ещё раз, это именно то что я и имел в виду, просто вызываем await что бы не переписывать дохера кода который уже объявлен как async
>>1883130 А как ты стек-то умудряешься забить перебором без рекурсии? Используй for или forEach, они сейчас не сильно отличаются по скорости.
Проблемы у тебя будут с «вывести на экран», потому что сгенерить и отрисовать десятки и сотни тысяч DOM-нод это не шутки. Тут виртуальные списки помогут.
>>1883142 С сервера приходит массив с данными о городах. Задача, сделать выпадающий список с этими городами. Пока цикл перебирает массив, он блокирует стак вызовов, пока не закончит перебор. Или 5к элементов - это несущественное количество, что бы замарачиваться об этом?
>>1883137 >ты размазываешь выполнение задачи на 10 асинхронных методов, а потом сидишь ждешь результата 10 этих методов, ничем не отличается от вызова 10 этих методов синхронно Нихуясе не отличается. Ты где такое прочитал, позволь узнать?
Во-первых даже если JS однопоточный, то браузер (или нода) спокойно могут спавнить новые треды, например чтобы отправить http-запрос, прочитать файлы или выполнить какие-то тяжелые операции.
Во-вторых синхронный запрос по определению означает, что пока ты его делаешь никакой другой код не выполнятся, в то время как при выполнении асинхронных запросов ты все еще можешь обрабатывать пользовательский ввод, показывать что-то и вообще никак не блокировать UI.
Из этого же следует, что запросы не будут выполняться параллельно, а только последовательно, что очень сильно увеличит время выполнения задачи.
Ну а то, что асинхронные функции медленнее работают это уж совсем ерунда какая-то.
>>1883146 Для перебора, скорее всего, несущественно, а с отрисовкой, как я уже сказал, могут быть проблемы. Правильным решение был был бы селект с автодополнением, работающий на сервере. Если сами не справляетесь, подключите дадату.
>>1883149 >пока ты его делаешь никакой другой код не выполнятся я запускаю метод -> в нем запускаю 10 асинхронных методов -> жду когда они выполнятся. Все как ты и говоришь пока я сижу и жду код не выполняется
>блокировать UI А теперь вспомним что await ты можешь написать только в async методе, а значит он на ui никак не должен влиять, потому что запускается асинхронно относительно главного потока
>запросы не будут выполняться параллельно, а только последовательно, что очень сильно увеличит время выполнения задачи Количество ресурсов которые ты выделяешь для решения задачи не уменьшились и не увеличились, почему оно должно увеличить время выполнения?
Так же я сразу оговорюсь, что в случае если ты НЕ вызываешь await то это честная асинхронность, результат которой ты не ожидаешь. Для меня дико что люди внутри async вызывают async и await думаю, что это им что то дает, >>1883123 вот так использовать это да, но кроме этого await больше ничего не делает, собсно в этом и был мой вопрос
>>1883137 > Тогда в чем разница? В том, что ты понижаешь latency и повышаешь отзывчивость. А это именно то, что нужно на самом деле. Там, где тебе нужна производительность есть другие технологии - те же настоящие потоки-воркеры, нативные модули/сервисы, васм-числодробилки, вычисления на gpu (webgk и webgpu) и все прочее, что паралеллится не только по процессору, но и по видеокартам.
В твоем бизнес-коде, тебе прежде всего нужна отзывчивость и это именно то, что даёт асинхронность.
Обесценивать это или высказывать на это качество какое-то пренебрежительное - ну и зачем это надо - может только человек, который на самом деле никогда не разрабатывал приложений, которыми действительно пользуются настоящие люди. Либо любитель, либо пейсатель для себя, либо скрипт-кидди.
>>1883213 Я могу вынести обработку массива в отдельный воркер и обрабатывать его там, а асинхронность мне сообщит когда будет готово. Или я могу обрабатывать его чанками в эвент-лупе, не блокируя при этом поток и тем самым ввод.
>>1883250 >Во Vue нужен один и тот же метод в двух компонентах. Кроме копипаста как лучше делать? Метод или функция? Если можешь сделать так, чтобы он не зависел ни от чего кроме аргументов, то выноси в отдельный JS файл.
Подскажите как правильно запилить detailPage, получаю с бэка список постов, рендерю их, далее нужно при клике на элемент списка рендерить страницу с деталями элемента. Делаю onClick на элементе который диспатчит в стейт id элемента списка, далее в detailPage в юзэфекте отправляю api запрос на бэк с этим id, и че дальше? Застрял и пиздец, и вообще правильно ли постоил логику запроса?
>>1883137 >Если бы асинхронность в js давала прирост производительности(или хотя бы бал честная многопоточность с новыми тредами) то все что ты написал было бы правдой, но то что ты размазываешь выполнение задачи на 10 асинхронных методов, а потом сидишь ждешь результата 10 этих методов, ничем не отличается от вызова 10 этих методов синхронно. Ты явно не тот язык изучаешь, пиздуй в пыха-тред.
>>1883270 >далее в detailPage в юзэфекте отправляю api запрос на бэк с этим id, и че дальше? Это уже у бэкера нужно спрашивать. Должен быть эндпоинт с деталями, возвращающий json, который ты потом пихаешь в состояние и там уже размазываешь по рендеру.
>>1883250 Ты в методы можешь ипортированные функции писать. Или тебе именно нужно общее состояние? Тогда только хранить его в близжайшем общем родителе и прокидывать через ивенты.
>>1883281 >у бэкера нужно спрашивать Я сам пока бэкер, пробую этот ваш фулстак, я так понял логика такая же как и при рендере всего списка просто нужно на бэке роуты правильно обрабатывать
>>1883283 На бэке должны быть эндпоинты типа: `/posts` `/posts/create` `/posts/:id` `/posts/:id/delete` Клик по кнопке отправляет `/posts/:id`, бэк возвращает объект с этим айдишником, и этот объект отправляется пропсом в PageDetail.
>>1883284 Вот этот момент и заебывает, при клике на ссылку должен быть отправлен запрос с айди, бэк должен найти обьект по айди вернуть ответ с обьектом , этот обьект должен попасть в стейт, и это все пока происходит рендер элемента с деталями поста, я так понимаю запросы лучше размещать в action creator , и во время рендера дергать данные из стейта?
>>1881839 Еще важная проблема это SEO-роботы, у них там нет браузера, они тупо делают fetch(URL), получают в ответ <html><script src="js"/></html> но сам контент не грузится и оно охуевает, не индексируется нормально, SSR это чинит
>>1883298 Уже давно всё нормально индексируется, главное чтобы ссылки на страницы были в виде <a> тегов с href аттрибутами чтобы боты могли ходить по сайту.
>>1883315 лол, мне один раз один раз на собесе попался двачер, который из-за проигрыша в конкурсе игроделов, вайпал все доски, абу потом кучу прокси и стран перебанил, забыл ник его за давностью лет.
>>1883316 Т. е. ищет неадекват-долбоеб который задает вопросы вида >>1883314 на дваче, но должны откликаться на его поиски исключительно белые и пушистые адекваты? Проиграл в голос.
>>1883310 >Уже давно всё нормально индексируется Разве что у какого-нибудь гугло-фейсбука, но им похуй на SEO. >>1883316 >где искать адекватных программеров на жс? Готов им адекватно платить? Ещё и на ноде лол, эти два синьора могут просто ебовый ценник заломить и ты будешь бибу сосать.
>>1883374 я выше писал про адекватных, так вот я спрашиваю про прошлые проекты, общие теорию про секьюрити, интерес к типизации и прошу написать физбазз в онлайн редакторе, на физбазе половина отсеивается.
>>1883359 >5к USD >>1883381 >нода >интерес к типизации >написать физбазз в онлайн редакторе >общие теорию про секьюрити
Лолблять, тебе нужен мастер на все руки за мелкий прайс, причём не один, а целых два. Могу только посоветовать ковырять историю коммитов в самой ноде и искать там помидоров в поисках работы.
>>1883423 что не так для "сеньор nodejs + typescript и 5к денег" ? Я реально не понимаю, ниже маркета? Сколько тогда по маркету? >общие теорию про секьюрити никого дроча, просто про общие вопросы, чтобы понимать, что мы на одном уровне, так сказать, хотя бы про sql injection, CSRF хотелось бы услышать > Могу только посоветовать ковырять историю коммитов в самой ноде и искать там помидоров в поисках работы. мы таким не нужны, лол у нас веб параша
>>1883428 >что не так для "сеньор nodejs + typescript и 5к денег" Жабоскрипт - в первую очередь фронтовая ниша. Серверный js - это ниша ниши, а вам ещё и синьора подавай. Сколько там ноджс в привычном понимании существует? В лучшем случае 5 лет и при этом нехило перелопатился с колбэков на асинк/эвейт, и даже с этого года оффициально ES6 модули поддерживаются. Так что знания синьора будут устаревшими. >Сколько тогда по маркету? Сколько синьор заломит. >хотя бы про sql injection Так это ж строчки. >CSRF Для этого есть какое-то полное решение? Видел только две реализации, и одна из них просто вставляла `<meta>` с CSRF-хэшем в заголовки страниц и скрытые поля форм. Другая решалась прокидыванием заголовков. Я теперь синьор? >мы таким не нужны, лол Тогда не выёбывайтесь и берите мидлов. Как у вас так получилось, что нужны аж два синьора, да ещё и под ноду?
>>1883536 >Для этого есть какое-то полное решение? Видел только две реализации, и одна из них просто вставляла `<meta>` с CSRF-хэшем в заголовки страниц и скрытые поля форм. Другая решалась прокидыванием заголовков. Я теперь синьор? > Ты, удивишься, но сильно выше, чем средний кандидат.
>>1883840 Проходим в цикле по всем числам от 2 до n включительно, где на каждой итерации каждое число из этой последовательности хранится в переменной. Для каждого числа i проходим циклом по всем числам от 2 до i не включительно, где на каждой итерации каждое число из этой последовательности хранится в переменной j. Проверяем остаток от деления i на j, и если его нет, переходим к следующему числу i. Если остаток от деления i на j есть, то выводим число i пользователю в модальном окне браузера и переходим к следующему числу i.
По задаче нужно сделать так, чтобы из имеющегося массива 'colors' при выводе не повторялись цвета. Для контроля повторения цветов нужно использовать хэш.
Что я делаю не так, что оно всё равно повторяется?
>>1884321 Кастомный сср никому не всрался. Гетсби несколько популярнее конкретно для этих целей в вакууме, если не собираешься вникать в фишки некста - лучше попробуй его Под хеллоуворлды некст своими околофреймворк фишками подходит. Мейнстримная архитектура приложения (которая в прагматичнее куда) плюс женерик компоненты (которые берут на себя тот же роутинг/фетч/енайромент/етц) и дают возможность резко стартануть, и понижают шанс пюрешки в перспективе
>>1884326 >Для контроля повторения цветов нужно использовать хэш Хэштебол? В жсе объекты это ассоциативные массивы Перепроверять дупликаты таким способом имеет смысл только если цвета в таргет-списке могут повторятся, иначе проще просто удалять элементы из списка цветов, как успел написать анон выше https://codesandbox.io/s/quirky-lake-47vdw?file=/src/util.ts
>>1884370 Тащемта он не нужен, если был бы ссылкой. Да вот беда, жиэсинфо полностью скипает html/css и потому они не знают, что можно ссылку по любому айдишнику на странице ставить.
Как решать такую хуету? В useEffect получаю данные с бека, потом при клике на элемент открываю страницу товара которая тоже из юзэфекта запрашивает в бэк, детали товара ломятся с бэка по айди из адресной строки, и все это говно рендерится, но если быстро выйти назад на список товаров , опять зайти в товар и так по нескольким элементам, то рендерятся все элементы по порядку на которые кликали, че за нах?
>>1884555 Ограничить в родительском компоненте рендер одним дочерним элементом. Типа currentItem = useState() и прокидывать его в пропсы нужного детального дочерника. >>1884565 Компонент очка.
>>1884562 Это многозначное слово. Если объект, сущность - то компонент. Если составная часть чего-то (напр. рецепта), то можно и в женском роде. Например "компонента успеха".
>>1884612 А если это объект, который является частью чего-то (типичная ситуация при композиции), то это компонентная компонента или компонентный компонент?
>>1884618 Я имел в виду "объект", который имеет самостоятельную ценность, и рассматривается отдельно. Т.е. в программировании - это всегда "компонент". Можно сказать и по-другому: "компонент" - потому, что "объект" (в первую очередь), а не "часть".
>>1884641 Напердоль страничку с плавающими градиентами и выпуклыми цветастыми кнопками. На собесе кстати маловероятно что помогут знания монги, там скорее всего будет какой-нибудь SQL и сервак на пыхе.
>>1884653 Тебе просто нужно запомнить типовые состояния "активных" элементов. У `<а>` это `:link`, `:visited`, `:focus`, `:hover` и `:active`, причём именно в таком порядке. `<button>` - `:hover`, `:focus`, `:active`. `<input>` - тут сложнее, ибо есть хуева туча псевдоклассов и ещё больший разброс в их поддержке между браузерами, но как минимум нужно оформить `:hover`, `:focus`, `:required`, `:invalid` и `:checked`(для чекбоксов). Раз ты регистрацию реализовал, то чтобы клиенту зарегаться ему как минимум нужно пройти по ссылке `<a>`, перейти на страницу с несколькими `<input>` и нажать `<button type="submit">`. Как раз все базовые активные элементы. Самый простой способ научиться распознавать их - задай первичный и вторичный цвета элементу, для `color` и `background-color` соответственно, и на последней стадии (скорее всего `:active`) - поменяй их местами. А промежуточные стадии будут полутонами. Кнопкам кнопочность задаётся через `border` и `box-shadow: inset`. Прям лгбт не надо, но как минимум должен показать, что умеешь красить кнопки и двигать прямоугольники.
>>1884897 >К сожалению это так К счастью, к счастью это так. Даже не представляю себе, какой бы был пиздец в интернетах, если бы везде был реакт.
Сейчас народ Vue освоит потихоньку, и эти 78% переползут на JS + jQuery + Vue. Оно всё прекрасно сочетается, и можно инкрементально апгрейдить. А реакт забудут, как страшный сон.
>>1884963 Ты сам-то веришь в эту статистику? По ней MooTools используется больше Реакта — в каком году ты видел вакансию где бы он хотя бы упоминался? Или вопрос по нему в треде? Или может бэкбон лучше подрочить? Тоже популярнейшая технология, как я вижу.
>>1884953 >>1885004 Ты можешь привести пруфы того, что реакт используется больше, чем jQuery? Или, хотя-бы, сопоставимо? Или, хотя-бы, в 10 раз меньше? Реальные пруфы, а не хуиту типа статистики npm-пакетов?
Никто не использует jQuery в виде npm-пакетов. Вообще _никто_ и никогда. Это на уровне статистической погрешности, примерно. И, несмотря на это, таки набирается ~ 4 миллиона скачиваний в месяц.
А реакт все используют _только_ в виде npm-пакетов. Вообще _все_, понимаешь? И это "вообще все" составляет ~ 9 миллионов скачиваний в месяц.
Ты понимаешь, о чём говорит эта статистика? О том, что общий объём использования реакта аж в 2 раза выше, чем величина статистической погрешности в оценке использования jQuery. Охуенный результат, есть, чем гордиться, лол.
>>1885062 Так и у тебя статистика уровня "подключили жиквери чтобы вызвать один метод который уже нативно поддерживается - значит весь сайт на жиквери".
>>1885004 По существу тебе дали реальную статистику использования. Если твой манямирок не готов её принять - пожалуйста, вот только другим в голову срать не надо. >>1885184 А на чём весь сайт? На реакте? Как же так вышло что у него бедного доля меньше 1%?
>>1885201 Ну вот теперь включи остатки своего ущербного мозга и попытайся ответить себе, каким образом твой мало используемый реакт отменяет утверждение >>1884875 Вот как со стороны выглядит ситуация: Сначала у долбоеба весь веб на реакте работает, долбоеб подкрепляет свой манямирок сравнением скачиваний на нпм. Теперь он с обосранными штанами говорит, что реакт используют редко, а жквери часто, но на чем веб работает он уже не говорит. Самое смешное, что он делает это на сайте, который полностью работает при помощи того самого "для одного метода" жквери.
>>1885204 >Самое смешное, что он делает это на сайте, который полностью работает при помощи того самого "для одного метода" жквери. Двач - не весь интернет.
>>1885205 Ну хоть с остальной частью поста согласился, великий прогресс для тебя. Теперь можешь со спокойной душой стирать штанишки и начинать учить жквери.
>>1885206 >Ну хоть с остальной частью поста согласился С хуёв ли? Обосрался в одном моменте - обосрался во всём посте. Буду я ещё цитировать всеь пост, ага.
>>1885062 >Ты можешь привести пруфы того, что реакт используется больше, чем jQuery? Или, хотя-бы, сопоставимо? Или, хотя-бы, в 10 раз меньше? Зачем ты у меня просишь пруфы того, что я не утверждал? Я просто скинул стату скачиваний в npm, это ты уже что-то там додумал за меня, возгорелся и яростно споришь хуй пойми с чем.
>Никто не использует jQuery в виде npm-пакетов. >Вообще _никто_ и никогда. >А реакт все используют _только_ в виде npm-пакетов. >Вообще _все_, понимаешь? Единственное что я понимаю — эти утверждения ты высосал из пальца. Они вообще ни на чем не основаны.
Да, и что там с MooTools-то в итоге? Хорошая либа? Рекомендуешь учить? Или ты на неудобную часть поста решил не отвечать?
Посоны, нужен ваш совет. Если кратко, я год дома сидел и пытался кодить (из них полгода выполнял донные заказы на апворке за еду), месяцев 7 назад устроился на первую работу. За 110к позвали ковырять лк на ангуляре. Сейчас в нем уже более-менее хорошо разобрался. Без задней мысли клепаю йоба формы и половину кабинета перелопатил. После НГ хочу уйти в нормальную компанию ТК тут нет никаких перспектив. В связи с этим возникло несколько вопросов. 1.) Возможно ли договориться о собеседовании на выходных? Сейчас я работаю 9-18 и соответственно в рабочее время не получится. Ребята, которые уходили просто брали отпуск на неделю. 2) На какую примерно зп можно рассчитывать? Дело происходит в ДС. 2
>>1885306 1. У остальных тоже рабочее время и они хотят отдыхать на выходных. 2. С опытом в 7 месяцев? Все зависит от подачи, но вообще вряд ли значительно больше текущей.
>>1885306 Ковырял донные заказы на апворке @ За бутрики откликаясь на днорейт как индус @ Пошёл в офис @ Ковыряешь донные заказы на уповрке @ Будучи представляемым йобамидлом
С сегодняшней ситуацией 110к даже более чем для макаки с <3 годами опыта. Из путей развития только шароёбенье по галерам, выбивая себе +10-30% (с призрачными шансами рано или поздно релокейтнутся по галерообмену, что в ближайшие годы точно невозможно), или шароёбится по удалёнкам, если у тебя нормальный английский и пара крупных проектов за плечами
>>1885316 На апворке я получал 500-700 долларов, когда устроился на эту работу 1.5к. Перекат на 2.2-2.5 меня вполне устроит. Мне кажется, это вполне адекватный рост зп
>>1885321 2.5к/ 15$/час это уже психологический барьер для настоящего мидла+ из третьего мира или мелкостартаперного авантюриста на все руки С твоим опытом проскачив на такую должность рискуешь стать костейаланья91
почему после использования getElementsByClassName нельзя использовать getElementById? это логично? const a = document.getElementsByClassName('abc'); const b = a[0].getElementById('def');
>>1885363 Unlike some other element-lookup methods such as Document.querySelector() and Document.querySelectorAll(), getElementById() is only available as a method of the global document object, and not available as a method on all element objects in the DOM.
>>1885355 Ну смотри, если мне 7 месяцев назад, сразу же после первого собеса, предложили 110к и в дальнейшем к моей работе претензий не было, скорее наоборот, в пример всем ставили, значит я тогда столько и стоил. Без опыта коммерческой разработки и без знания ангуляра (дома писал на реакте). Вполне логично, что поскольку я в этом плане прокачался, моя стоимость должна увеличиться ТК профита от меня намного больше. К тому же, за спрос не бьют и в худшем случае мне предложат чуть меньше, чем я запрошу. Даже прибавка в 300-500 долларов это уже приятно.
почему запросы с nodejs сервера через fetch работают нормально, а те же запросы через браузер жалуются на CORS? как решить эту проблему? я пробовал менять заголовок Origin, но по факту там всегда localhost.
какой же тогда заголовок ставит nodejs сервер, раз все работает? не понимаю
>>1885456 >и в чем тогда смысл делать подобную защиту только в них? В том чтобы такие обезьяны как ты, зайдя на какой-нибудь сайт не начали посылать запросы на сервера которые подобные запросы не хотят получать. >почему nodejs исключение? Эту логику никто за тебя не написал. Но ты можешь сам её реализовать обрабатывая заголовки ответа соответствующим образом и начиная кросс-доменные запросы с метода OPTIONS. >как решить эту проблему? Сервер на который ты посылаешь запрос должен иметь в заголовках ответа Access-Control-Allow-Origin у которого в значениях будет сайт с которого делается запрос, либо wildecard (*) означающий что он разрешает делать запросы с любых ресурсов.
>>1885462 >В том чтобы такие обезьяны как ты, зайдя на какой-нибудь сайт не начали посылать запросы на сервера которые подобные запросы не хотят получать. так и что мешает этим обезьянам захостить свой сервер на nodejs и начать посылать эти запросы? в чем суть защиты? >Эту логику никто за тебя не написал. Но ты можешь сам её реализовать обрабатывая заголовки ответа соответствующим образом и начиная кросс-доменные запросы с метода OPTIONS а мне их в моем случае обрабатывать и не надо. я сам делаю запросы на посторонние домены. вопрос был в другом: почему через браузер нельзя отправлять запросы, а через сервер можно? я уже повторяюсь >Сервер на который ты посылаешь запрос должен иметь в заголовках ответа Access-Control-Allow-Origin у которого в значениях будет сайт с которого делается запрос, либо wildecard (*) означающий что он разрешает делать запросы с любых ресурсов. да, но мне-то надо с браузера отправлять запрос (желательно и удобней), а не посылать запрос с браузера на свой сервер, а потом со своего сервера посылать запрос на чужой сервер. опять же, дырявая и бесполезная защита, которая только мешает разработчику.
В том что ты заходишь на сайт X и не можешь послать запрос на сайт Y если сайт Y не хочет получать запросы с сайта X. Это обходится и в браузере, но при помощи расширений, которые устанавливаются с разрешения владельца браузера. Суть защиты в том, что зайдя на 2ch.ru, владелец 2ch.ru не может засунуть скрипт который будет посылать запросы на vk.ru и под видом тебя делать всё что ему взбредет в голову, либо просто получать/отправлять куки и другую информацию которая предназначена для тебя, а не для владельца 2ch.ru
>почему через браузер нельзя отправлять запросы, а через сервер можно?
Скотина тупорылая, как тебе еще объяснить то? Браузер это программа написанная сторонними разработчиками, она обрабатывает и посылает запросы согласно тем правилам, которые внесли эти разработчики в целях безопасности пользователей браузера. Подобную логику обработки и отправки на сервере реализуешь ты самостоятельно, то что ты игнорируешь CORS это твоё дело.
>да, но мне-то надо с браузера отправлять запрос
А чужому серверу не надо чтобы ты со своего сайта отправлял им запросы, очевидно.
>опять же, дырявая и бесполезная защита, которая только мешает разработчику.
Как видишь, не дырявая. Для отправки запросов тебе придётся самостоятельно обманывать чужой сервер используя собственный, ты не сможешь вовлечь в этот обман стороннего пользователя который зашел на твой сайт.
>>1885469 >опять же, дырявая и бесполезная защита, которая только мешает разработчику. Если запрос уйдет на твой сервер, то браузер не приложит к нему куки, которые предназначены для vk.com, например. Так что спиздить сессию ты не сможешь.
>>1885488 Попроси владельца чужого сервера добавить твой сайт в Access-Control-Allow-Origin, либо используй свой сервер в качестве прокси для запросов на чужой сервер.
>>1885492 т.е. если сервер разрешает какому-то сайту посылать себе запросы, то у этого сайта есть доступ к кукам сайта того сервера (если он есть и хранит их)? и наоборот?
>>1885509 Я пять раз перечитал твой вопрос и нихуя не понял. При HTTP-запросе браузер автоматически добавляет в него куки, которые соответствую домену запроса. Из этого вытекает основополагающее правильно безопасности веба — same origin policy, по умолчанию ты можешь посылать запросы только на домен с которого открыта страница. Очевидно, что ты не хочешь чтобы, например, Двач что-то постил в VK от твоего имени. CORS помогает обойти это ограничение ценой некоторой настройки.
>>1885542 >ты можешь посылать запросы только на домен с которого открыта страница.
Ты можешь посылать запрос на любые домены. Чего нельзя делать так это подменять заголовок Origin у запроса который ты посылаешь. CORS создан для того чтобы браузер не слал запросы на сервера, которые этих запросов не ждут. Браузер делает preflight запрос, считывает ответ от сервера и все Access-Control заголовки, исходя из которых либо посылает запрос, либо игнорирует его.
>>1885542 ну мой домен в браузере с которого я выполняю запрос - это localhost. запросы идут на pathofexile.com, pathofexile.com не разрешает выполнять запросы с этого домена. для этого мне остается только выполнять запрос на сервер, который на том же домене (локалхост), выполнять запрос на pathofexile.com там и отсылать результаты запроса обратно клиенту на localhost. для меня это все звучит как бред. ведь мой сервер не находится в списках доверенных доменов у pathofexile.com. короче, я реально тупой видимо, потмоу что я уже 5ую статью читаю про это и не понимаю блядь смысла всего этого говна. не бойтесь я не вебер и не работаю нигде и не пишу сайты, люди из-за меня не пострадают
>>1885556 Суть в том, что на сервере ты можешь отправлять любые заголовки, в том числе любой заголовок Origin, т. е. сделать вид что ты зашел на pathofexile.com, а не отправляешь запросы с своего сайта/сервера. Браузер тебе этот заголовок изменить не даст, также как и pathofexile.com не хочет чтобы с него брали информацию через другие сайты, поэтому тебе нужно либо использовать публичное api, если оно есть, либо обходить защиту pathofexile.com используя сервер в качестве прокси.
>>1885562 я не знаю насколько оно является публичным. если я открываю консоль браузера и вижу все запросы, можно ли считать его публичным? видимо, нет.
>>1885569 Значит ты пытаешься воспользоваться тем, чем авторы запрещают пользоваться вне их сайта. Поэтому тебе придётся обходить их защиту от таких как ты.
>>1885573 у них есть это api что ты скинул, там просто огромная база публичных вещей всех игроков, которые нельзя никак отсортировать или получить список вещей игрока, например, по его никнейму. а еще у них есть trade-раздел, который является по сути рынком, у которого свое апи. но зато там можно найти любой предмет, с любыми заданными параметрами. но про это api они не говорят сами. лично я вообще на реддите нашел этот способ. хер их знает, короче.
>>1885606 но почему они тогда никак не шифруют запрос? почему не используют апи-ключи? почему не выполняют эти запросы у себя на сервере, если хотят скрыть их?
>>1885608 Поэтому что все это неудобно и бессмысленно.
>но почему они тогда никак не шифруют запрос? Зачем? Клиент в любом случае как-то должен будет его расшифровать, а все его сорцы открыты, это легко реверс-инженирить.
>почему не используют апи-ключи? Тоже открытые клиенту?
>почему не выполняют эти запросы у себя на сервере, если хотят скрыть их? Отказаться от SPA и при каждом пуке перезагружать страницу? Ну такое. Рендерить готовые куски html на сервере и вставлять? Ок, но в конечном счете html легко распарсить.
Анон! Есть один сайт, он собирает адрес дома и оценку внешнего вида этого дома, а затем отправляет эти данные в базу данных. Адрес и оценка вводятся пользователем. Ничего кроме адреса, оценки и комментария сайт не собирает. В базе данных хранятся только эти данные. Есть ли какие-то подводные камни? Я хочу этот сайт захостить в интернет, но не нагнут ли меня за нарушение какого-нибудь закона о личных данных или ещё что-нибудь? Поясните кто-нибудь шарящий за интернет законодательство.
Аноны, подскажите по редаксу. Eсть строка для фильтрации, но я не хочу фильтровать всякий раз, когда ввожу символы, а только по нажатию кнопки В этом случает нужно использовать 2 поля в стейте- одно для хранения инпута и другое для фильтрации, куда будет попадать строка из 1 поля, после нажатия клавиши? Нормально или можно это сделать получше?
>>1885469 >опять же, дырявая и бесполезная защита, которая только мешает разработчику. Если она такая дырявая и бесполезная, в чем проблема ее обойти, долбоёб.
>>1885745 >Ты будешь в шоке, но СНГ-странами мир не ограничивается. На западе бек на ноде очень популярен Сомневаюсь, что той же ноды в относительном количестве больше какой-нибудь пыхи даже в швитых. Хотя выборка конечно больше. >мимо senior js/ts fullstack удалёнщик на дядю Джона Не хочешь потравитьпособеседовать вкатывальщика, раз уж ты синьор? Тем более TS на ноде.
>>1885850 Хули собеседовать? Как только заходишь в кабинет для собеседования спрашиваешь кто старший , ныряешь под стол и начинаешь сосать, возьмут 100%
>>1885864 Бэк не монолитен. На бэке есть фронтсервера, которые сегодня дохуя у кого на жс - алиэкспресс, нетфликс, иви, пейпал, и многие другие. У многих еще и прочие микросервисы на ноде.
>>1885786 Во-первых не стоит хранить формы в редаксе. Во-вторых нет, не нормально, какой смысл дублировать поле, если он уж есть в сторе? Просто возьми строку из него, когда будешь запрос отправлять или что у тебя там.
>>1886034 Это нормально. Не нормально считать что синтаксис языка долден быть таким, как ты привык. Это говорит о том, что ты языков дальше свокй сишечки не видел.
>>1886060 А, там перевод строки. Ну, так дело всё-равно не в жс. Это и в го, например, так, и в груви. И ещё где-нибудь, наверное, где нет точек с запятой в конце строки или они необязательны.
>>1886077 >в нормальных языках код стайл не влияет на результат
Ой, как же так вышло, что "ненормальные" Python и JS вдруг стали самыми популярными. Двойные стандарты для нормы? Почему-то всегда казалось, что норма это то чем пользуется большинство, а не маняфантазии байтоеб-сишника.
>>1886088 Ну так зачем ты отступил от него? При твоём говнокоде у тебя бы стабильно возвращался андефайнед и ты бы просто возвращал фабричную функцию, вместо того чтобы плакаться в жс-треде.
>>1886089 миллионы мух не могут ошибаться? вообще питон конечно говно, но он хотя бы не претендует на си синтакс а джс стал популярным потому что исторически стал дефолтным языком в браузере
>>1886093 >миллионы мух не могут ошибаться? Не могут, потому что если бы ошибались, то вымерли бы. И речь не про ошибки, а про "нормальный". Для мух откладывать личинки в говне как раз таки норма, но нет, пришел сишник и начал говорить всем, что нормальные мухи с говном не контактируют.
>потому что исторически стал дефолтным языком в браузере
Т. е. у тебя еще и знаний на уровне "прочитал статью на швабре"? Одна из причин популярности JS - удобная асинхронность без необходимость контролирования доступа к данным. Но откуда это знать такому дурачку как ты, да?
Как организовать код? Меня не радует то, что разные компоненты нужно писать в одном текстовом файле. Как подразделить код чтобы удобно было его читать и расширять. И ещё я не осознаю полную модель своей задумки. Как полностью описать свою идею чтобы потом знать от чего отталкиваться? Как состпвить программу?
Надо x раз выполнить функцию над каким-то значением и вернуть результат. Легально ли создавать массив и заполнять null, чтобы просто вызвать reduce или лучше делать через for? https://pastebin.com/nE0Hearw
>>1886112 >Легально ли создавать массив и заполнять null, чтобы просто вызвать reduce
Нет, конечно. Во-первых, никто кроме тебя не поймёт твой код. Во-вторых, ты используешь reduce не по назначению, что отчасти является причиной первого.
Если хочешь улучшить читаемость, то либо используй отдельные библиотеки-утилиты, помему в lodash есть нужная тебе функция. Либо сам создай функцию-утилиту, которая будет вызывать другую функцию n раз. Что-то вроде пикрила.
>>1886111 Почитай что-нибудь по архитектуре. SOLID, DDD, и т.д. Писания Роберта Мартина (Дяди Боба), например.
Но, надо понимать, что с нуля оно не заходит - до этого надо дорасти. Поэтому, просто - бери и делай. Потом - смотри, как делают другие - код на гитхабе и т.п.
И не занимайся преждевременной оптимизацией - это большой грех, и корень многих зол, как учат нас гуру и отцы. В том числе и в плане архитектурных излишеств. Ньюфаги, как раз, и грешат овердизайном, а мастер делает просто.
>>1886246 Проблема не в отладке, а в том, что всё должно быть на своём месте. Рекурсия - для рекурсивных структур и задач.
В данном случае рекурсия не нужна. Более того - если данных много - будет переполнение стека. Понятно, что тут так не будет, но, теоретически - может быть.
Читая бесконечные нытикотреды вкатывальщиков, о том, как много надо изучать и их все равно не берут на работу, внезапно задался вопросом. Почему у всех стойкое ощущение, что достаточно выучить язык (а точнее даже только его синтаксис) и фреймворки, чтобы научиться программировать?
То есть, они на полном серьезе полагают, что чтобы вкатиться поваром в какой-нибудь рестик, надо научиться пользоваться ножом и кастрюлей. Чтобы стать отделочником, надо уметь обращаться со шпателем. Чтобы слесарем - гаечным ключом. А вот все остальные знания и навыки они как-то сами по себе возникают, по наитию? Или что, блядь?
Я действительно не понимаю. Какого хуя происходит в головах этих людей, которые не то, что не понимают, чем отличаются между собой структуры данных, что такое протоколы, программные интерфейсы, типы хранилищ данных, шаблоны проектирования, сервисы, как устроена коммуникация между всем и всем - не суть важно клиент-серверное это взаимодействие, ipc или тот же мессадж-пассинг между компонентами представления, и всё остальное прочее - но они вообще не задумываются о том, что им это все необходимо знать. У них даже не возникает желания, или банального любопытства.
Они на серьезных щщах полагают, что нацепив фартук и шапочку, они смогут заебенить яйцо пашот или лазанью, достаточно блядь рецепта. Хотя, какого нахуй рецепта - по ходу дела разберёмся. А научившись закручивать гайки, ты само собой, с легкостью заменишь всю сантехнику в доме. Какого хуя происходит в индустрии. Что это за пиздец.
Почему люди, вкатывающиеся в сферу не удосуживаются даже открыть ебаную википедию, и прочесть все связанные страницы по изучаемой тематике. Хотя бы, блядь, сраную, сука, мать её, википедию. Чтобы блядь понимать масштаб необходимого и иметь на руках ключевые слова-направления, по которым читать и изучать, искать информацию. Какого чёрта эти долбоёбы творят.
Нет, я не спрашиваю, почему они не знают ЧТО нужно знать, я спрашиваю, почему они УВЕРЕНЫ, что ЗНАНИЙ СИНТАКСИСА ЯЗЫКА И ФРЕЙМВОРКА достаточно, и блядь, вообще не задаются вопросом - схуяли этого должно быть достаточно. Они что, все ебанутые?
>>1886383 >Почему у всех стойкое ощущение, что достаточно выучить язык (а точнее даже только его синтаксис) и фреймворки, чтобы научиться программировать? Потому что так вкатились нынешние синьоры. Только им и фреймворка не нужно было.
Создал апи для отправки данных на сервер, импортирую функцию в компонент, и передаю в нее данные формы, это похуй, если ответ не ок я как получить эту ошибку в компонент?
>>1886383 >очередной бабах "пачиму вебмакаки не хотят учить теорию категорий и паять микроконтроллеры на ассемблере" >никакой конкретики, только "учи как работает интернет по википедии, вот тебе десяток несвязанных друг с другом случайных тем которые я из головы вытащил, дальше сам" >вместо аргументов дырявая аналогия, расползшаяся на 60% поста Держи в курсе.
>>1886475 Иди читай как работает fetch, перезвонщик мамкин. Не говоря уже про то, что реджектить не-200 ответы - это тотальный антипаттерн и любой http клиент так делающий, должен отправляться в мусорку по умолчанию
>>1886480 >как работает fetch Какой fetch, долбоебина? Где ты там fetch увидел?
>это тотальный антипаттерн и любой http клиент так делающий, должен отправляться в мусорку по умолчанию
Держи вкурсе, вкатун, а то создатели протокола то ведь и не знают, они наверно до сих пор думают, что любой статус не входящий в диапазон 200-299 считается неуспешным.
>>1886490 >Какой fetch, долбоебина? Где ты там fetch увидел? Где "там", дурачок? Я ответил на пост "как ловить ошибки в ответе сервера" без указания на что-либо, и в примере подразумевал самый доступный и распространенный делать запросы к серверу. >создатели протокола то ведь и не знают При чем тут создатели http протокола и тот факт, что ты хочешь обрабатывать рутинные ответы сервера через выбрасывание эксепшенов, смешивая их с реальными рантайм эксепшенами уровня "сервер упал нахуй" или "ошибка синтаксиса"?
>>1886474 Конь блять я функцию использую только на кнопке отправки формы, никаких стейтов нет, файл с апи лежит отдельно, от туда берется только функция
>>1886450 Занимательные ретроспекции, а что на заре интернотов надо было знать? кажется, что таблицы и пару форм было достаточно, чтобы считаться фуллстэк-вэб- синьером на тот период.
>>1886543 Я же пишу что только импортирую и вызываю функцию и передаю аргументы, в самой функции определил что если !res.ok идет обработка, но она в другом файле
>>1886528 >таблицы и пару форм было достаточно >читаться фуллстэк Ну да, а работа с протоколами, базами данных, кэшированием, эффективной обработкой данных - это ж все само собой разумеющееся.
Собственно чел >>1886383 в стартовом посте про это и написал.
>а что на заре интернетов надо было знать? Я не он и начинал чуть позднее, в 2005ом где-то, но суть такова, что помимо - что знать, на заре интернетов остро стоял вопрос как и где это узнать. И сколько это будет стоить. На заре интернтов, интернеты были не теми, как ты их себе представляешь.
>>1886528 Алсо, интерне все помнит и тебе ничто не мешает открыть любое комьюнити и почитать треды за нулевые и даже 90е, что понимать что и как было. А не слушать охуенные истории про - вот пять лет назад достаточно было...
>>1886567 >Ну да Смутно помню пхп в виде шаблонизатора, ни аяксов, мобилок, и прочих проблем выбора. На данный момент пхп/жс раздулись до гигантских масштабов в сравнении с началом нулевых.
>>1886689 >что вот это нужно знать на junior node Это не нужно знать на junior node, если тебя спросили - скорее всего просто послали на хуй setImmediate даже не относится к ES стандартам и реализация в разных рантаймах может отличаться или вообще не быть
>>1886029 Потому что если ты не поставишь ";" после выражения, ЖС поставит ее за тебя сам. И не всегда там, где ты хочешь.
Новая строка после return для ЖС означает конец выражения, Поэтому он ставит там точку с запятой, и выражение как следствие, возвращает undefined.
Если спрятать возвращаемое выражение в скобки, открытые сразу после return, то ЖС будет знать, перенос строки находится посреди выражения, и проигнорирует перенос.
Как вообще происходит разворачивание сайта? Нахуярил cra с клиент-сервером, че делать? На одном ютубе сервер сажают на хероку а клиента на другую платформу, долбаеб минин посадил все в одно, как правильнее?
>>1886825 Хероку на бесплатном тарифе захибернейтит сервер если последний хттп запрос был 15+ мин назад Для фронта можно использовать статик пейж сервинг платформы типа нетлифая
>>1886903 Что самое смешное, ответ "нехуй срать в глобал скоуп" не будет считаться за ответ. А в проде будут стрелочные функции, у которых нет `arguments`. То есть это просто задачка на дроч.
>>1886913 я еле переварил идею что скоуп функции переданной как аргумент почему-то глобальный и тут скоуп массива аргументов функции при втором вызове -_-
хорошо меня такое не спрашивали, надеюсь и не будут
>>1886903 По игрушечным языкам никто никогда никого не дрочит Ты или умеешь делать дермьо сделанным, или нет Лучше потрать время на какую-нибудь жаву или не трать время на хуйню вообще и запили лишний екомерс фронт
>>1881459 (OP) Пограммисты, подскажите. Хочу создать игровой проект один с целью наёбывать гоев на бабки. Так вот, с самим сервером игры и его настройкой проблем не будет, ибо я варюсь в этом год уже. Проблема с сайтом, ибо он очень важная точка, в которой я ваще нихуя не шарю. Подскажите, как мне поступить? Нужен сайт на котором будет оформлен донат, новости и личный кабинет игрока. Я так понимаю самому с нуля учиться всё это делать будет дохуя долго? Я больше боюсь на самом деле разного рода dosa-ddosa, взломов и прочего говна, ибо пока я держал сервер без сайта меня ебали на круглосуточной основе этим. Сколько будет стоить такой сайт на фрилансе? Чтобы выглядел не совсем уёбищно? Может посоветуете что ещё?
>>1886992 100р за сайт? Ну в целом пойдёт. Не думаю что хочу столько вкладывать, бюджетнее ничего не найти? Если нет, то буду тогда сам что-то пытаться делать.
>>1886993 По твоим требованиям > выглядел не совсем уёбищно >боюсь на самом деле разного рода dosa-ddosa, взломов и прочего говна Это самый минимум. Так что, если денег нет, то лучше не влезай в это дерьмо (тебя тупо наебут). В попытках сэкономить больше проебешь (времени, денег и нервов). Либо ищи финансы, либо пили сам, по блату, или как-то еще. inb4: у тебя ничего не выйдет
Такая ситуация, есть одна страница, на которой расположено несколько вкладок и форм. И под ними есть одна для всех кнопка сабмита и ресета, на которые должны ресетаться все формы и данные. Как это все можно организовать, чтобы не держать все стейты в родительском компоненте, потому что выглядит все это пиздецки громоздко. Условно чтобы я в родительском компоненте запустил эвент "сабмит" и дочерние выполнили бы свои функции. Ну или может еще какие варианты есть.
>>1886956 Дизайн и оформление в районе 100к По сайту всё зависит от задач и перспектив развития Статик говновёрстка - до 35к Фронт на йобафреймворке в вакууме - от 50к Бойлерплейт фреймворк с личным кабинетом в вакууме - от 50к К последним двум прибавляй по ~10к за каждую интеграцию к какой-либо third-party штуке (тебе как минимум нужен платёжный\донатный гейт и какой-нибудь клаудфларный антиддос). В случае глубокой интеграции с игровым сервером - к беку накидывай еще минимум 35к
>>1887041 Чо такие дешёвый варианты предлагаешь? Это говно-сайт получится с такими вложениями. Тут минимум миллиончик нужно будет вложить. Всё таки написать авторизацию и ЛК это дело не одного часа. Не говоря о донате.
>>1886956 я бы стал браться за такой заказ от 500 000 рублей, но уверен что ты найдешь и за 3000 рублей, просто потом доработки будешь делать в течении 2 лет и как раз выйдет на 500 000 - 900 000
Я напомню что зарплата среднего фронта 200к, а бекендера около 250к. и это в месяц.
>>1887021 Зачем несколько форм, если один хуй отправляешь всё одной кнопкой? Пихай разные табы в филдсеты и кнопки отправки/резета будут работать без всяких лишних телодвижений, так как они - часть одной формы.
2 000 000 рублей. сроки: 4 месяца Фронт + бек + аналитик + дизайнер + тестировщик + менеджер + копирайтер + различные расходы на сервера хостинг (2000 рублей)
>>1887051 Бойлерплейт на MEAN из личного кабинета + страйп + пара страниц стоит 2-5к$ Кастом солюшон с нормальным дизайном и тематическим оформлением + подключение к third-party + интеграция с игровым сервером будем в районе 25к$
1) Хорошо если ты джун, если мидл, то удаляй его курсы. 2) Недавно узнал что он предлагает свое наставничество за 1 000 000 рублей в год, ржал как конь 3) Он разбирается во всем по чуть-чуть, он джун во всех областях и теоретик