Это копия, сохраненная 29 апреля 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Больше пары строк кода в посте или на скриншоте ведут в Ад.
Для программирования на HTML https://jsfiddle.net/
Для Node.js с консолькой https://repl.it/languages/nodejs
Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: что я хочу получить, что я для этого делаю, что я вместо этого получаю. Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Руководство для вката: https://developer.mozilla.org/
Хуя там серьёзный бизнес, ключ на день. Это наверно проверка на скрипт кидди, настоящий разработчик автоматизирует и обновление ключей!
Во всех версиях браузерах with работает одинаково, мань.
Так это хуевый пример. Тебя не просили "напишите рандомный говнокод с генераторами", тебя просили пример реального применения.
>рандомный говнокод
Так это у тебя говнлкод в одну строчек. Главное, что генераторы могут останавливать выполнение.
await на генераторах, вроде.
Ясно, очередной жирный, бла-бла., Будь любезен, оформи гугль За за учебными материалами.
Хорошо что ты об учебниках задумался. Можешь начать хотя бы с самого простого - перевода слова yeild.
Ой, так же итератор, который генератор, выходит. Хреновый с тебя учитель, как и с меня, впрочем.
На пике тайпскриптёр
Вопрос, а как тогда считать всякую большую хуйню в ФП, если рекурсия стек переполняет?
Фактириал 10000000000000
11
Через асинхронную рекурсию.
Во-первых в ФП есть циклы и мутации
Использовать хвостовую рекурсию, которая разворачивается в цикл. Использовать технику под названием trampoline
>Дайте гайд настройки вебпака для серверной части приложения
На сайте самого вебпака отличная документация с пошаговыми примерами. Можно за вечер разобраться.
А кто тебе сказал, что жс это представитель функционального программирования? Это во-первых. Во-вторых, в случае JS это зависит от браузера, в Сафари например есть tco.
>А кто тебе сказал, что жс
Название треда обозначает контекст обсуждаемого языка программирования, а не твои фантазии.
>Название треда обозначает контекст
И? Вот теперь ты знаешь, что жс это не представитель языка с функциональной парадигмой программирования, радуйся.
>Во-вторых, в случае JS это зависит от браузера, в Сафари например есть tco.
Вот и костылируй свой TCO под сафари-онли.
Представитель.
Не твои маняфантазии определяют отношения чего-либо к тем или иным парадигмам.
нахуя тебе это?
ты бы еще расчет числа ПИ вел на js)))
JS - это про передвижение кнопок и конвертацию массивов
Реакт + Тайпскрипт+ нода + постгрес + докер
Достаточно что бы получать свои 340к
мимо 450к фулстек
>JS - это про передвижение кнопок и конвертацию массивов
>сычуш, вот тебе стороннее API, с него будут приходить таблицы на 1к строк, сделай так чтобы можно было их сортировать, фильтровать, перемещать по экрану, добавлять данные из них в отдельные хранилища, чтобы всё красиво и плавно было, а также работало на мобилках и микроволновках
>ЖЭЭС ЭТА ПРО КНОПКИ И МАССИВЫ пук среньк
>мимо 450к фулстек
Ты то мне и нужен был, пидалю реакт тс нода монго экспресс , делаю регистрацию , валидацию, постинг вроде все крутится, как думаешь стоит куда то кидать резюме? И че еще модно из веб сокетов? Io? И нахера докер если есть живой сервер?
ну да
на 100к можешь претендовать уже как минимум
по сокетам - io
без докера никуда уже лет как 10
изоляций типа = смузи=фича
Жс это встраиваемый язык. А в 2020ом - это заслуженно default language. 6 лет подряд первое место в топе гитхаба.
>id="canvas"
>getElementById("Canvas")
Алсо, перекатись на VSCode, чего ты с блокнотом мучаешься?
Ну перестань. Ошибки это не магия же какая-то. Тут простая цепочка на самом деле:
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. Иии... это таки неверный селектор
пхп топ на беке по рейтингу и активности
>Deno + Rome + Svelte + GraphQL
deno - хуйня , лучше взять TS+NODE
node - альфа версия
svelte - никому не нужная хуйня
GraphQL - двачану
Так кнопки двигать и массивы конвертировать - задачи не из простых.
Опять новых фреймворков высрали. Не удивлюсь если взлетит и придется все переучивать/переписывать.
Кому делать нехуй, но есть опыт, и время - могу предложить идею.
Наверняка, можно взять, короче,
и перепилить всю серверную часть этой вот наноборды:
https://github.com/nanoboard/nanoboard/releases
на pure JavaScript.
Полностью всю, или по большей части,
вынести всё возможное - на клиентскую сторону,
чтобы всё client-side работало, в браузере.
Парсинг, можно было бы реализовать, парся контейнеры, после конвертации PNG в dataURL.
Стеганографию, тоже можно было бы реализовать client-side,
с помощью async-функций или promise.
Базу данных, и контейнеры, можно было бы сохранять, используя FileSystem API,
с возможностью конвертации базы данных в JSON-формат,
с последующим сливом базы в JSON из браузера.
Если чо, то даже каптчу - можно нарезать, и в браузере, client-side юзать:
https://github.com/username1565/nanoboard-javascript-captcha
Всё равно, всё это вместе: серверная часть (локального сервера) + клиентская сторона (скрипты) -
всё это вместе, одна большая локальная - читалка нанопостов.
Почему бы не сделать её клинтской?
Опционально, наверняка, серверную часть, можно было бы на Node.JS перепилить, но это уже на крайняк как-бы, если на клиенте нельзя сделать. Потому что такая зависимость как Node.JS это был бы огромный минус для cliet-side софтины, которую можно таскать в zip-архиве, на флешке.
В общем, гляньте, посмотрите код, может всё-таки не всё можно перепилить, а может и всё. Бггыы.
Кому делать нехуй, но есть опыт, и время - могу предложить идею.
Наверняка, можно взять, короче,
и перепилить всю серверную часть этой вот наноборды:
https://github.com/nanoboard/nanoboard/releases
на pure JavaScript.
Полностью всю, или по большей части,
вынести всё возможное - на клиентскую сторону,
чтобы всё client-side работало, в браузере.
Парсинг, можно было бы реализовать, парся контейнеры, после конвертации PNG в dataURL.
Стеганографию, тоже можно было бы реализовать client-side,
с помощью async-функций или promise.
Базу данных, и контейнеры, можно было бы сохранять, используя FileSystem API,
с возможностью конвертации базы данных в JSON-формат,
с последующим сливом базы в JSON из браузера.
Если чо, то даже каптчу - можно нарезать, и в браузере, client-side юзать:
https://github.com/username1565/nanoboard-javascript-captcha
Всё равно, всё это вместе: серверная часть (локального сервера) + клиентская сторона (скрипты) -
всё это вместе, одна большая локальная - читалка нанопостов.
Почему бы не сделать её клинтской?
Опционально, наверняка, серверную часть, можно было бы на Node.JS перепилить, но это уже на крайняк как-бы, если на клиенте нельзя сделать. Потому что такая зависимость как Node.JS это был бы огромный минус для cliet-side софтины, которую можно таскать в zip-архиве, на флешке.
В общем, гляньте, посмотрите код, может всё-таки не всё можно перепилить, а может и всё. Бггыы.
Ну почитай и узнаешь, дебилоид.
480x480, 0:27
>Напишите аналог функции console.count но вовзращающая число в виде результата, а не выводящая его в консоль
>Напишите ленивые map, reduce, filter, every, some, чтобы для цепочки вызовов этих методов, фактически происходила только одна итерация
>Напишите range(start, end, step) где step может быть нецелым, start и end как положительным так и отрицательным, и бесконечным в том числе
>Напишите класс итерируемой слабой коллекции, напримиер WeakSet, который был бы наследником оригинального WeakSet, имплементировал все его методы, но при этом по элементам множества можно было бы итерироваться.
Server Side Rendering (рус. Компиляция кода на сервере). Нужон для облегчения нагрузки на браузер и компьютер юзера. Контент генерится на сервере и отдается пользователю. Грубо говоря так.
Пиздец нахуй, это же не для джуна даже! Такое я смогу ответить только дня через три, а собес в пятницу, так что я принял в оборот. Давайте следующее :P
-1 балл за неверный ответ.
Он нужен для улучшения UX за счёт быстрой начальной загрузки. На сервере компилируется только начальная страница, далее идёт всё в обычной манере.
Ого, спасибо, буду знать теперь.
Мы вам перезвоним.
Поясняй за отличия var/let/const.
Зачем в реакте нужно прописывать key для списков? Почему не рекомендуется передавать туда индекс?
Как вы будете дебажить тормозящую форму на реакте?
Есть лог-файл в миллиард строк в формате "дата-сообщение", каким образом можно найти сообщение за 1 января 2020, не прочесывая весь файл?
Теперь будут в каждом треде, советую наконец-то выучить современный js и успокоиться.
>генераторы
>современный js
Спасибо, насмешил. Приходи через пару годиков, когда async/await для себя откроешь.
Ну такое улучшение-то. Все равно страница неинтерактивна пока js-бандл не просрется. Больше все-таки для поисковиков и og-данных.
var объявляет переменную с глобальной областью видимости, let имеет блочную область видимость, const - это let, но значение нельзя изменять.
Key для списков прописывается, чтобы реакт при рендере и при удалении каких-либо элементов имел грубо говоря "за что зацепиться". Индекс можно передавать, но лучше передавать какой-нибудь уникальный айди. Не рекомендуется, потому что может поменяться порядок элементов, а элемент с ключем 3, может стать на место 2 - это вызовет сбой компонентов реакта.
Как дебажить тормозящую форму? - я ещё пока не изучал формы как следует. Что значит тормозящую? Плохо работающую или запросы отправляющую долго?
Лог файл открыть в ворде, ctrl+f и ввести дату.
Нахуя?)))))))
https://www.npmjs.com/package/promise-polyfill
Ладно, я честно говоря хуй напишу его в ближайшие два дня, потому что это потребует у меня опять же закапывания в глубь предмета и кучу тестов, так что я принял во внимание, если получится, через недельку пришлю
Тогда она будет видна везде
>var объявляет переменную с глобальной областью видимости
Если объявлена в функции, то будет область действия функция, иначе насрет в глобал.
>Key для списков прописывается, чтобы реакт при рендере и при удалении каких-либо элементов имел грубо говоря "за что зацепиться".
Надо подробнее. Без ключа рекатe бы пришлось сверять каждое свойство каждого элемента, это очень медленно.
>Что значит тормозящую?
Ну представь форму с несколькими табами, 20 хитрыми контролами. Юзер начинает вводить текст в поле Name и после каждого символа сайт пропердывает несколько секунд и как будто вся форма перерисовывается.
>Лог файл открыть в ворде, ctrl+f и ввести дату.
Файл весит террабайт. Ворд будет искать неделю, а нужно сегодня. Нужно описать принцип поиска, без конкретики.
Потому что ": i" не клонило объект, а вставило ссылку.
Как поступить? Делать сеттаймауты и отменять их или через new Date() отслеживать?
Просто таймауты возвращают каждый раз id увеличенный на 1. Дойдёт до ситуации когда id будет 10000000000000000000000000.
>Дойдёт до ситуации когда id будет 10000000000000000000000000.
Это не проблема, главное активных таймеров слишком много не наплодить.
Можно сделать по-разному. Сильно зависит от задачи и того как устроен. Часто проще не отменять таймер (хотя бы потому что setTimer это неудобно и id где-то надо хранить, а промисы не отменяются) а сделать в коллбеке/then какое-то условие, которое проверяется, актуален он или нет (не размонтировался ли компонент, не сменился ли айдишник чего-то и т.п.). На new Date() точно завязываться не надо.
>Ну представь форму с несколькими табами, 20 хитрыми контролами. Юзер начинает вводить текст в поле Name и после каждого символа сайт пропердывает несколько секунд и как будто вся форма перерисовывается.
Так, ну в таком случае я буду смотреть методы, что происходит при вводе символов, мб кто-то до меня создал какой-то метод, который... Хотя нет, буду смотреть lifecycle hooks в первую очередь. ComponentDidUpdate мб. Буду искать разгадку в этом. Наверное при каждом изменении value инпута запускается ререндеринг. Буду копать куда-то туда, наверное. Надо бы повторить эту темку... Пропсы чекну ещё.
>Если объявлена в функции, то будет область действия функция, иначе насрет в глобал.
Блин, спасибо, анон, ты крут. Я как-то даже и не додумывался, честно признаться. Теперь тоже буду знать.
>Файл весит террабайт. Ворд будет искать неделю, а нужно сегодня. Нужно описать принцип поиска, без конкретики.
Блин, честно говоря не знаю даже как и ответить. Гугл сказал: файл лога -> парсер -> logstash -> elastic search -> kibana :D
Ч так понял, что интерфейс бд предоставляет метод, который ищет по значению.
>Пропсы чекну ещё.
Угу, самая распространенная ошибка нуба - пробрасывать каждый раз незабинженые функции в потомков.
>Гугл сказал: файл лога -> парсер -> logstash -> elastic search -> kibana :D
Нахуй гугл, это все конкретные тулзы. Тебе парой слов нужно описать абстрактный алгоритм, представь что доступны 2 функции readLineN и getLineCount и последовательно читать с нуля до getLineCount будешь всю неделю.
>Файл весит террабайт. Ворд будет искать неделю, а нужно сегодня. Нужно описать принцип поиска, без конкретики.
`fs.createRedStream()`, а детали уже зависят от того, как эти данные там хранятся и известно ли нам это.
И разве текстовики в 1ТБ хранить реально? Вроде же файловые системы серверов будут пердеть уже при 524ГБ одним файлом.
Ну пропсы на всякий случай проверю, хз. В процессе расследования причины мб посмотрю что там.
>Нахуй гугл, это все конкретные тулзы. Тебе парой слов нужно описать абстрактный алгоритм, представь что доступны 2 функции readLineN и getLineCount и последовательно читать с нуля до getLineCount будешь всю неделю.
Мне сложно понять просто в чем тут подвох. Я не видел логи на террабайт никогда. Предпологаю, что 1 января находится где-то в первых записях лога, так как мб он каждый год обновляется. В таком случае мотну вверх и посмотрю глазами. Слишком абстрактно, братец.
Все, которые в других браузерах работают, вроде. Писать сюда дохуя строк займет.
Мне нужны зеленые таблетки!
Не. Отложенное выполнение нужно отменять сразу, а не потом
>Слишком абстрактно, братец.
Кстати да, сильно зависит, есть ли переносы строк в файле или нет.
Типичная задачу уровня "угадай шизу собедователя". Про переносы он только во втором посте рассказал, но это не значит, что собеседующий будет ожидать поясняющие вопросы, так как он ожидал мгновенного ответа про структуры данных. Или не ожидал.
>я просто хочу чтобы джун слышал про бинарный поиск
Как я и сказал >>1900.
Забыл добавить, что даже алгоритмический ответ не гарантирует прохода, так как может легко перетечь в вопросы про кишочки и лимиты софта/железа. Максимум шиза конечно, если собесер ожидает знание багов проприетарщины от ждуна.
><button type="submit" onClick={handleSubmit}>
Ты бы избежал этой ёбли, если бы знал HTML. Твой ивент можно полу-ванильным способом решить, даже не зная реакта.
handleSubmit(args) это вызов функции. Можешь исправить на () => handleSubmit(args), это будет работать в твоем простом примере, но в большом проекте может выйти боком.
>console.count
const count = (() => {
const closure = {
count: 0,
};
return function () {
closure.count++;
return closure.count;
};
})();
Если так? Алсо, что означает ленивые?
мимо лох
Понял, спасибо
Это как ленивые программисты, нихуя не делают, пока не припрет. Из того примера, мап не должна применяться к бесконечному списку, потому что дальше ограничена каким-то условием.
Будь добр, помоги а, напиши сюда ответ.
В ленивом map ты можешь остановить выполнение на n-ом элементе, т. е. прописать break и получить результат незаконченного map, в стандартном (не ленивом) map он у тебя будет прогонять callback-функцию до конца массива.
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 [];
}
};
Ты тупой? Где ты видел функцию map которая принимает в качестве второго аргумента число?
И то правда.
Array.prototype.myMap = function (fn) {
if (this.length) {
this[0] = fn(this[0], 0, this);
return this;
} else {
return [];
}
};
function bullshit(shit) {
var dick = ['<=3'];
var shit = function(cock) {
return cock + dick;
}
return shit();
}
Обосралс немного))))))))))))))))))))))
Как правильно заменить символы в строке? Вот есть номер телефона, надо убрать (заменить пустой строкой) все скобки, тире и плюсы
Годнота
Есть ли кто нибудь кто фрилансит на популярных биржах? Стоит на выходных что нибудь ловить по фронту или ковид полностью задавил цены?
На выходных стоит отдыхать, анон
>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;
}
инб4 мы вам перезвоним
>инб4 мы вам перезвоним
Конечно. Ты как-то странно обрабатываешь бесконечность, вот представь что я хочу сгенерить рейндж от 1337 до бесконечности, навешать lazy мапов и фильтров, а потом еще и теребить пока не получу нужно число.
Но там какой-то пиздец наворочено, какое-то dojo, стейты-хуейты.
Как туда влезть и найти нужный мне датасет?
Что в команде используют, то и юзай. Если ты сам себе команда, юзай то, что удобнее.
Это какая-то йоба картография, там проще только часть автоматизировать.
Формошлёпам обязательно к просмотру.
Капец он умный
Че там?
А в чем вопрос-то? Нужно кому? Для чего? Если тебе не нужно, то копипасти, хотя лично мне не совсем понятно как в принципе можно писать на реакте и не понимать как работают формы. Связать useState и input это какой-то сложный концепт теперь?
Я вкатывальщик же.
Нужно ли мне уметь все писать самому или можно просто готовыми решениями пользоваться?
Бля если начальнику норм, то хоть на тильде можешь делать.
Половина этих апи мусор еще тот. Плохо когда css поломан и хаки лепить приходится, такое в сафари довольно часто.
Вы все не нужны. Вы очень вредны для общества. Вот электронщики нужны, а вы - нет.
А еще нужны очкотеры
Не работу а собеседование, ну и там ты конечно выдашь что копипастил форму, а как она работает не знаешь, да?
Зачем ты тогда пользуешься плодами наших трудов? Закрой веб-браузер.
Ну вот пиздуй на собеседование и потом расскажешь Тони Роббинсом тебя посчитали или Путиным.
Кто-нибудь может мне объяснить смысл ключевого слова await. Мои доводы в пользу того, что он бесполезен:
Предположим есть какой то метод foo который помечен как asink.
Для того, что бы его вызвать нужно находится в другом методе asink, например parentFoo(). Если мы заставим parentFoo ждать результата этого метода foo через await, ты мы заставим parentFoo ждать, то-есть поведение метода будет соответствовать синхронному вызову, то-есть метод foo можно сделать синхронным и ничего не поменяется.
Можно мне возразить и сказать мол мы может запустить 10 foo() в parentFoo и сидеть ждать когда они выполняться, но насколько я знаю js всегда работает в 1 потоке, а значит распараллеливание не увеличит скорость работы, в таком случае это все ещё можно описать 1 синхронным методом.
Мне await видится только для 1 случая, у нас есть какой то asink метод в фреймворкеN, но его реализации без asink у нас нету, а нам нужно выполнить этот метод синхронно, в таком случае приходит на помощь await и мы сидим и ждем когда же там все выполнится.
Есть ли какие-то другие возможности использования await, кроме системных? Или мои рассуждение не верны?
>asink
Обзмеился
В твоих рассуждениях куча ошибок, ты просто не понимаешь как async/await работает. Иди читай доку, разбирайся зачем нужны промисы и т.д.
Ответь нормально я же нормально вопрос задал.
Почитал про промисы, это просто отложенные задачи, смысл await в том что бы получать коллбек от этих задач?
Смысл await в том чтобы не ебаться с обертками вида new Promise((res,rej)=> success ? res(true) : rej(false)) в местах где нужно асинхронное выполнение кода.
Если бы оно было синхронным, то ты бы ничего делать не смог до тех пор пока промис не выполнится.
> знаю js всегда работает в 1 потоке
ДА, но браузерное АПИ зачастую выполняет код в фоне, затем передаёт результат в очередь основного треда, где дом АПИ и твой код
Чтобы распараллелить, нужно использовать (web worker), запихнув их в промисы, затем, возможно, await-ом синхронизировать
Так у тебя в вопросе куча ошибок, как на него ответить? И на MDN и на learn.javascript.ru async/await прекрасно описан с кучей примеров. Если ты не понимаешь о чем там речь, ну значит рановато тебе еще, не до конца понимаешь асинхронное программирование. Учи коллбеки, промисы, разбирайся как делать запросы, а там и до async/await дойдешь. Без хорошего понимания что такое промис (нет, это не «отложенная задача») любые объяснения не имеют смысла.
Мне уже ответили, вполне конкретно что это нужно лишь для того что бы не ебаться с лямбдами которые требует промис, именно этот ответ мне и нужен был, так что теперь я полностью уверен что я прав, сори
Именно так и есть. Если я просто сделаю, например, fetch, программа, пойдет дальше. А если сделаю await fetch, то нужно будет ждать результата.
Ага, там ответ насколько же охуительный, насколько и вопрос.
>>3083
>Если я просто сделаю, например, fetch, программа, пойдет дальше. А если сделаю await fetch, то нужно будет ждать результата.
Еще одна прохладная история. await, оказывается, превращает код в синхронный, breaking news. Я удивляюсь как вы там что-то кодите вообще.
Википедия:
Асинхронность (Асинхронизм) (от греч. α — отрицание, συν — вместе, χρονος — время) — не совпадение с чем-либо во времени;
Ты запускаешь асинхронную функцию и вместо того, что бы её отпустить ты сидишь и ждешь когда она выполнится(синхронизируется) то есть ты делаешь код синхронным
Вопросов больше не имею
>синхронный
Делать что-то синхронно - значит делать одновременно. Синхронное плаванье - выполняются одновременное одни и те же выкрутасы в воде.
Синхронность это не про одновременность, а про зависимость одного от другого. Синхронизированный код - это код в которм каждое следующее вычисление в потоке не наступает до окончания вычисления предыдущего. А проебывая предметные области ударяясь в аналогии человек должен съебывать из сферы в которой понятия постоянно контекстно-зависимы и высокоабстрактны. Асинхронный же код это один из видов concurency, где зависимость уже не каждого предыдущего выражения от следующего, а на следующем уровне абстракции - микрозадач, и вычисления производятся в состоянии гонок.
Про одновременное выполнение в информатике - это прараллельность. И то, параллельное выполнение чего-либо в компьютерных технологиях весьма условное, потому как физических исполнителей всегда ограниченное количество, и обычно намного меньше, чем потоков выполнения в очереди.
.
Чтобы избегать спагетти кода. У тебя может быть несколько асинк функций на одном уровне, которые ты можешь запускать и не дожидаться их результата, но например внутри этих функций может быть такая же асинхронная логика, требующая .then на каждом шаге. И чтобы твой исходный код не превращался в лапшу, ты можешь его делать плоским в тех местах, где это возможно. А это делается либо с помощью авейт, либо с помощью декомпозицией хендлеров по всему коду. Внезапно - Язык программирования - от и до - это инструмент для человека. Синтаксический сахар, чтобы тебе было его удобно писать, но прежде всего читать.
Если бы асинхронность в js давала прирост производительности(или хотя бы бал честная многопоточность с новыми тредами) то все что ты написал было бы правдой, но то что ты размазываешь выполнение задачи на 10 асинхронных методов, а потом сидишь ждешь результата 10 этих методов, ничем не отличается от вызова 10 этих методов синхронно. Тогда в чем разница? Не в чем, ну разве что все твои асинхронные функции работаю чуточку медленнее. В таком случае я могу говорить о том что await делает код синхронным.
>>3123
Спасибо ещё раз, это именно то что я и имел в виду, просто вызываем await что бы не переписывать дохера кода который уже объявлен как async
А как ты стек-то умудряешься забить перебором без рекурсии? Используй for или forEach, они сейчас не сильно отличаются по скорости.
Проблемы у тебя будут с «вывести на экран», потому что сгенерить и отрисовать десятки и сотни тысяч DOM-нод это не шутки. Тут виртуальные списки помогут.
Вообще, ты уверен что все это для фронта задача?
С сервера приходит массив с данными о городах. Задача, сделать выпадающий список с этими городами. Пока цикл перебирает массив, он блокирует стак вызовов, пока не закончит перебор. Или 5к элементов - это несущественное количество, что бы замарачиваться об этом?
>ты размазываешь выполнение задачи на 10 асинхронных методов, а потом сидишь ждешь результата 10 этих методов, ничем не отличается от вызова 10 этих методов синхронно
Нихуясе не отличается. Ты где такое прочитал, позволь узнать?
Во-первых даже если JS однопоточный, то браузер (или нода) спокойно могут спавнить новые треды, например чтобы отправить http-запрос, прочитать файлы или выполнить какие-то тяжелые операции.
Во-вторых синхронный запрос по определению означает, что пока ты его делаешь никакой другой код не выполнятся, в то время как при выполнении асинхронных запросов ты все еще можешь обрабатывать пользовательский ввод, показывать что-то и вообще никак не блокировать UI.
Из этого же следует, что запросы не будут выполняться параллельно, а только последовательно, что очень сильно увеличит время выполнения задачи.
Ну а то, что асинхронные функции медленнее работают это уж совсем ерунда какая-то.
Для перебора, скорее всего, несущественно, а с отрисовкой, как я уже сказал, могут быть проблемы. Правильным решение был был бы селект с автодополнением, работающий на сервере. Если сами не справляетесь, подключите дадату.
>пока ты его делаешь никакой другой код не выполнятся
я запускаю метод -> в нем запускаю 10 асинхронных методов -> жду когда они выполнятся.
Все как ты и говоришь пока я сижу и жду код не выполняется
>блокировать UI
А теперь вспомним что await ты можешь написать только в async методе, а значит он на ui никак не должен влиять, потому что запускается асинхронно относительно главного потока
>запросы не будут выполняться параллельно, а только последовательно, что очень сильно увеличит время выполнения задачи
Количество ресурсов которые ты выделяешь для решения задачи не уменьшились и не увеличились, почему оно должно увеличить время выполнения?
Так же я сразу оговорюсь, что в случае если ты НЕ вызываешь await то это честная асинхронность, результат которой ты не ожидаешь. Для меня дико что люди внутри async вызывают async и await думаю, что это им что то дает, >>3123 вот так использовать это да, но кроме этого await больше ничего не делает, собсно в этом и был мой вопрос
Ну нахрен, я сдаюсь.
>кроме этого await больше ничего не делает
Лол, прости. А что он по твоему ещё должен был бы делать. Хотя бы как пример?
> Тогда в чем разница?
В том, что ты понижаешь latency и повышаешь отзывчивость. А это именно то, что нужно на самом деле.
Там, где тебе нужна производительность есть другие технологии - те же настоящие потоки-воркеры, нативные модули/сервисы, васм-числодробилки, вычисления на gpu (webgk и webgpu) и все прочее, что паралеллится не только по процессору, но и по видеокартам.
В твоем бизнес-коде, тебе прежде всего нужна отзывчивость и это именно то, что даёт асинхронность.
Обесценивать это или высказывать на это качество какое-то пренебрежительное - ну и зачем это надо - может только человек, который на самом деле никогда не разрабатывал приложений, которыми действительно пользуются настоящие люди. Либо любитель, либо пейсатель для себя, либо скрипт-кидди.
>то что ты размазываешь выполнение задачи на 10 асинхронных методов
Как IO работает понимаешь вообще?
Это паттерны чтобы с каллюакхеллом не страдать. Всё в одном потоке работает, кроме некотрых апишных методов и вебворкеров
Я не про асинхронность а про await говорил. И уже вроде все решили
И как ты своим авайтом и асинхронностью поможешь с обработкой массива на 50к элементов?
Я могу вынести обработку массива в отдельный воркер и обрабатывать его там, а асинхронность мне сообщит когда будет готово. Или я могу обрабатывать его чанками в эвент-лупе, не блокируя при этом поток и тем самым ввод.
>Во Vue нужен один и тот же метод в двух компонентах. Кроме копипаста как лучше делать?
Метод или функция? Если можешь сделать так, чтобы он не зависел ни от чего кроме аргументов, то выноси в отдельный JS файл.
>Если бы асинхронность в js давала прирост производительности(или хотя бы бал честная многопоточность с новыми тредами) то все что ты написал было бы правдой, но то что ты размазываешь выполнение задачи на 10 асинхронных методов, а потом сидишь ждешь результата 10 этих методов, ничем не отличается от вызова 10 этих методов синхронно.
Ты явно не тот язык изучаешь, пиздуй в пыха-тред.
Делай общий класс и наследуй его двумя компонентами.
>далее в detailPage в юзэфекте отправляю api запрос на бэк с этим id, и че дальше?
Это уже у бэкера нужно спрашивать. Должен быть эндпоинт с деталями, возвращающий json, который ты потом пихаешь в состояние и там уже размазываешь по рендеру.
Ты в методы можешь ипортированные функции писать. Или тебе именно нужно общее состояние? Тогда только хранить его в близжайшем общем родителе и прокидывать через ивенты.
>у бэкера нужно спрашивать
Я сам пока бэкер, пробую этот ваш фулстак, я так понял логика такая же как и при рендере всего списка просто нужно на бэке роуты правильно обрабатывать
На бэке должны быть эндпоинты типа:
`/posts`
`/posts/create`
`/posts/:id`
`/posts/:id/delete`
Клик по кнопке отправляет `/posts/:id`, бэк возвращает объект с этим айдишником, и этот объект отправляется пропсом в PageDetail.
Вот этот момент и заебывает, при клике на ссылку должен быть отправлен запрос с айди, бэк должен найти обьект по айди вернуть ответ с обьектом , этот обьект должен попасть в стейт, и это все пока происходит рендер элемента с деталями поста, я так понимаю запросы лучше размещать в action creator , и во время рендера дергать данные из стейта?
В JS никак, в TS разбивая всё на классы и интерфейсы.
Пиши сотни говнокода, рано или поздно наступать на одни и те же грабли заебёт и будешь придумывать пути их обхода.
Еще важная проблема это SEO-роботы, у них там нет браузера, они тупо делают fetch(URL), получают в ответ <html><script src="js"/></html> но сам контент не грузится и оно охуевает, не индексируется нормально, SSR это чинит
Тащемта лет как замену консту как раз долбоёбы используют. Но с вашей конторкой всё понятно.
https://estimator.dev/#https://2ch.hk
https://estimator.dev/#https://boards.4chan.org/
Макакен дал пососать гейропейцам.
Уже давно всё нормально индексируется, главное чтобы ссылки на страницы были в виде <a> тегов с href аттрибутами чтобы боты могли ходить по сайту.
лол, мне один раз один раз на собесе попался двачер, который из-за проигрыша в конкурсе игроделов, вайпал все доски, абу потом кучу прокси и стран перебанил, забыл ник его за давностью лет.
где искать адекватных программеров на жс?
career.habr.com
нормам социального поведения
По-твоему есть какое-то волшебное место со складом свободных синьоров, лол?
Нанимай HR, ставь зарплату в 300к, через месяц может найдешь кого.
с тобой никто не играл, рак ебанный.
Я сеньор на жиквери, готов стать синером на года за 5к. Только без ебовых собесов плс
я выше писал про адекватных, так вот я спрашиваю про прошлые проекты, общие теорию про секьюрити, интерес к типизации и прошу написать физбазз в онлайн редакторе, на физбазе половина отсеивается.
Нигде, заебетесь искать. В жс только недоджунов толпа.
что не так для "сеньор nodejs + typescript и 5к денег" ? Я реально не понимаю, ниже маркета? Сколько тогда по маркету?
>общие теорию про секьюрити
никого дроча, просто про общие вопросы, чтобы понимать, что мы на одном уровне, так сказать, хотя бы про sql injection, CSRF хотелось бы услышать
> Могу только посоветовать ковырять историю коммитов в самой ноде и искать там помидоров в поисках работы.
мы таким не нужны, лол
у нас веб параша
Тебя на hh.ru забанили или ты просто потроллить пытаешься?
>что не так для "сеньор nodejs + typescript и 5к денег"
Жабоскрипт - в первую очередь фронтовая ниша.
Серверный js - это ниша ниши, а вам ещё и синьора подавай. Сколько там ноджс в привычном понимании существует? В лучшем случае 5 лет и при этом нехило перелопатился с колбэков на асинк/эвейт, и даже с этого года оффициально ES6 модули поддерживаются. Так что знания синьора будут устаревшими.
>Сколько тогда по маркету?
Сколько синьор заломит.
>хотя бы про sql injection
Так это ж строчки.
>CSRF
Для этого есть какое-то полное решение? Видел только две реализации, и одна из них просто вставляла `<meta>` с CSRF-хэшем в заголовки страниц и скрытые поля форм. Другая решалась прокидыванием заголовков. Я теперь синьор?
>мы таким не нужны, лол
Тогда не выёбывайтесь и берите мидлов. Как у вас так получилось, что нужны аж два синьора, да ещё и под ноду?
>Для этого есть какое-то полное решение? Видел только две реализации, и одна из них просто вставляла `<meta>` с CSRF-хэшем в заголовки страниц и скрытые поля форм. Другая решалась прокидыванием заголовков. Я теперь синьор?
>
Ты, удивишься, но сильно выше, чем средний кандидат.
Средний кандидат это вкатыш с лаба1 без коммерческого опыта что ли?
Лично мое мнение - хуйня уродливая, но не полная. Для своих целей сойдет.
не понимаю как работает код в решении на последнюю задачу (вывод простых чисел) в учебнике Кантора в теме циклы (2.13 Loops: while and for).
объясните, пжста!
Ого, круто
Проходим в цикле по всем числам от 2 до n включительно, где на каждой итерации каждое число из этой последовательности хранится в переменной. Для каждого числа i проходим циклом по всем числам от 2 до i не включительно, где на каждой итерации каждое число из этой последовательности хранится в переменной j. Проверяем остаток от деления i на j, и если его нет, переходим к следующему числу i. Если остаток от деления i на j есть, то выводим число i пользователю в модальном окне браузера и переходим к следующему числу i.
спасибо!
https://www.youtube.com/watch?v=N2bXEUSAiTI
>с этой работой справится даже обезьяна
так и есть.
у нас на работе джуна взяли, за 6 месяцев он дорос до синьера.
А зарплату ему повысили?
Каким, каким... Пинаем хуи и боимся hr'ов
что лучше, Next.js или кастомный SSR?
next.js мне кажется говном для Hello World с первого взгляда.
По задаче нужно сделать так, чтобы из имеющегося массива 'colors' при выводе не повторялись цвета. Для контроля повторения цветов нужно использовать хэш.
Что я делаю не так, что оно всё равно повторяется?
Кастомный сср никому не всрался. Гетсби несколько популярнее конкретно для этих целей в вакууме, если не собираешься вникать в фишки некста - лучше попробуй его
Под хеллоуворлды некст своими околофреймворк фишками подходит. Мейнстримная архитектура приложения (которая в прагматичнее куда) плюс женерик компоненты (которые берут на себя тот же роутинг/фетч/енайромент/етц) и дают возможность резко стартануть, и понижают шанс пюрешки в перспективе
После переменной n удаляй всё и пиши:
colorName = colors.splice(n, 1)[ 0 ];
console.log(colorName);
sapper, без вариантов
>Для контроля повторения цветов нужно использовать хэш
Хэштебол?
В жсе объекты это ассоциативные массивы
Перепроверять дупликаты таким способом имеет смысл только если цвета в таргет-списке могут повторятся, иначе проще просто удалять элементы из списка цветов, как успел написать анон выше
https://codesandbox.io/s/quirky-lake-47vdw?file=/src/util.ts
Если нужно по-быстрому высрать прототип - обязательно Next. Если нужно, чтобы не уволили - пили свою реализацию.
забыл копирайт нотис.
https://javascript.info © 2007—2020 Ilya Kantor
Условия использования (https://javascript.info/terms, https://github.com/javascript-tutorial/en.javascript.info/blob/master/LICENSE.md).
Тащемта он не нужен, если был бы ссылкой. Да вот беда, жиэсинфо полностью скипает html/css и потому они не знают, что можно ссылку по любому айдишнику на странице ставить.
Я как создатель компонента могу идентифицировать его в любом роде
Транс-компонент ощущающий себя компонентой
Это многозначное слово.
Если объект, сущность - то компонент.
Если составная часть чего-то (напр. рецепта), то можно и в женском роде.
Например "компонента успеха".
А если это объект, который является частью чего-то (типичная ситуация при композиции), то это компонентная компонента или компонентный компонент?
Я имел в виду "объект", который имеет самостоятельную ценность, и рассматривается отдельно. Т.е. в программировании - это всегда "компонент".
Можно сказать и по-другому: "компонент" - потому, что "объект" (в первую очередь), а не "часть".
Напердоль страничку с плавающими градиентами и выпуклыми цветастыми кнопками. На собесе кстати маловероятно что помогут знания монги, там скорее всего будет какой-нибудь SQL и сервак на пыхе.
Со стилями проблемы, вкус говно, хочу правда напилить что нить в лгбт стиле, у нас эта хуйня актуальна?
Тебе просто нужно запомнить типовые состояния "активных" элементов.
У `<а>` это `: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`.
Прям лгбт не надо, но как минимум должен показать, что умеешь красить кнопки и двигать прямоугольники.
>К сожалению это так
К счастью, к счастью это так.
Даже не представляю себе, какой бы был пиздец в интернетах, если бы везде был реакт.
Сейчас народ Vue освоит потихоньку, и эти 78% переползут на JS + jQuery + Vue. Оно всё прекрасно сочетается, и можно инкрементально апгрейдить.
А реакт забудут, как страшный сон.
Jq мало качают через npm, окей
Нормально всё в твоём манямирке. Вопрос в другом, когда ты из него выходить собираешься? Если вообще собираешься.
Что ты принёс? Топ говна по вонючести?
Ты сам-то веришь в эту статистику? По ней MooTools используется больше Реакта — в каком году ты видел вакансию где бы он хотя бы упоминался? Или вопрос по нему в треде? Или может бэкбон лучше подрочить? Тоже популярнейшая технология, как я вижу.
>ряяя у вас статистика ниправильная вот я щас пайду 100 раз среакт скачаю вот значит 100 сайтов среакт используют!!!
Это ты так троллишь или правда настолько тупой?
WORDPRESS
>>5004
Ты можешь привести пруфы того, что реакт используется больше, чем jQuery? Или, хотя-бы, сопоставимо? Или, хотя-бы, в 10 раз меньше?
Реальные пруфы, а не хуиту типа статистики npm-пакетов?
Никто не использует jQuery в виде npm-пакетов.
Вообще _никто_ и никогда.
Это на уровне статистической погрешности, примерно.
И, несмотря на это, таки набирается ~ 4 миллиона скачиваний в месяц.
А реакт все используют _только_ в виде npm-пакетов.
Вообще _все_, понимаешь?
И это "вообще все" составляет ~ 9 миллионов скачиваний в месяц.
Ты понимаешь, о чём говорит эта статистика?
О том, что общий объём использования реакта аж в 2 раза выше, чем величина статистической погрешности в оценке использования jQuery.
Охуенный результат, есть, чем гордиться, лол.
Так и у тебя статистика уровня "подключили жиквери чтобы вызвать один метод который уже нативно поддерживается - значит весь сайт на жиквери".
>А на чём весь сайт? На реакте? Как же так вышло что у него бедного доля меньше 1%?
Реакт не будут подключать для одного метода.
Ну вот теперь включи остатки своего ущербного мозга и попытайся ответить себе, каким образом твой мало используемый реакт отменяет утверждение >>4875
Вот как со стороны выглядит ситуация:
Сначала у долбоеба весь веб на реакте работает, долбоеб подкрепляет свой манямирок сравнением скачиваний на нпм. Теперь он с обосранными штанами говорит, что реакт используют редко, а жквери часто, но на чем веб работает он уже не говорит. Самое смешное, что он делает это на сайте, который полностью работает при помощи того самого "для одного метода" жквери.
>Самое смешное, что он делает это на сайте, который полностью работает при помощи того самого "для одного метода" жквери.
Двач - не весь интернет.
Ну хоть с остальной частью поста согласился, великий прогресс для тебя. Теперь можешь со спокойной душой стирать штанишки и начинать учить жквери.
>Ну хоть с остальной частью поста согласился
С хуёв ли? Обосрался в одном моменте - обосрался во всём посте. Буду я ещё цитировать всеь пост, ага.
>Ты можешь привести пруфы того, что реакт используется больше, чем jQuery? Или, хотя-бы, сопоставимо? Или, хотя-бы, в 10 раз меньше?
Зачем ты у меня просишь пруфы того, что я не утверждал? Я просто скинул стату скачиваний в npm, это ты уже что-то там додумал за меня, возгорелся и яростно споришь хуй пойми с чем.
>Никто не использует jQuery в виде npm-пакетов.
>Вообще _никто_ и никогда.
>А реакт все используют _только_ в виде npm-пакетов.
>Вообще _все_, понимаешь?
Единственное что я понимаю — эти утверждения ты высосал из пальца. Они вообще ни на чем не основаны.
Да, и что там с MooTools-то в итоге? Хорошая либа? Рекомендуешь учить? Или ты на неудобную часть поста решил не отвечать?
1.) Возможно ли договориться о собеседовании на выходных? Сейчас я работаю 9-18 и соответственно в рабочее время не получится. Ребята, которые уходили просто брали отпуск на неделю.
2) На какую примерно зп можно рассчитывать? Дело происходит в ДС.
2
1. У остальных тоже рабочее время и они хотят отдыхать на выходных.
2. С опытом в 7 месяцев? Все зависит от подачи, но вообще вряд ли значительно больше текущей.
Не. Я специально сюда написал ТК тут хоть какая-то вероятность есть, что ответят люди, которые сами были в подобной ситуации.
Ковырял донные заказы на апворке
@
За бутрики откликаясь на днорейт как индус
@
Пошёл в офис
@
Ковыряешь донные заказы на уповрке
@
Будучи представляемым йобамидлом
С сегодняшней ситуацией 110к даже более чем для макаки с <3 годами опыта. Из путей развития только шароёбенье по галерам, выбивая себе +10-30% (с призрачными шансами рано или поздно релокейтнутся по галерообмену, что в ближайшие годы точно невозможно), или шароёбится по удалёнкам, если у тебя нормальный английский и пара крупных проектов за плечами
На апворке я получал 500-700 долларов, когда устроился на эту работу 1.5к. Перекат на 2.2-2.5 меня вполне устроит. Мне кажется, это вполне адекватный рост зп
2.5к/ 15$/час это уже психологический барьер для настоящего мидла+ из третьего мира или мелкостартаперного авантюриста на все руки
С твоим опытом проскачив на такую должность рискуешь стать костейаланья91
Тут скорее твой 2.5к реквест выглядит как бшный тролинг
С чего ты решил, что выполняешь работы больше, чем на 1.5к?
const a = document.getElementsByClassName('abc');
const b = a[0].getElementById('def');
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.
Ну смотри, если мне 7 месяцев назад, сразу же после первого собеса, предложили 110к и в дальнейшем к моей работе претензий не было, скорее наоборот, в пример всем ставили, значит я тогда столько и стоил. Без опыта коммерческой разработки и без знания ангуляра (дома писал на реакте). Вполне логично, что поскольку я в этом плане прокачался, моя стоимость должна увеличиться ТК профита от меня намного больше. К тому же, за спрос не бьют и в худшем случае мне предложат чуть меньше, чем я запрошу. Даже прибавка в 300-500 долларов это уже приятно.
Используй кьюриселетор
какой же тогда заголовок ставит nodejs сервер, раз все работает? не понимаю
и в чем тогда смысл делать подобную защиту только в них? почему nodejs исключение?
алсо
>как решить эту проблему?
>и в чем тогда смысл делать подобную защиту только в них?
В том чтобы такие обезьяны как ты, зайдя на какой-нибудь сайт не начали посылать запросы на сервера которые подобные запросы не хотят получать.
>почему nodejs исключение?
Эту логику никто за тебя не написал. Но ты можешь сам её реализовать обрабатывая заголовки ответа соответствующим образом и начиная кросс-доменные запросы с метода OPTIONS.
>как решить эту проблему?
Сервер на который ты посылаешь запрос должен иметь в заголовках ответа Access-Control-Allow-Origin у которого в значениях будет сайт с которого делается запрос, либо wildecard (*) означающий что он разрешает делать запросы с любых ресурсов.
>В том чтобы такие обезьяны как ты, зайдя на какой-нибудь сайт не начали посылать запросы на сервера которые подобные запросы не хотят получать.
так и что мешает этим обезьянам захостить свой сервер на nodejs и начать посылать эти запросы? в чем суть защиты?
>Эту логику никто за тебя не написал. Но ты можешь сам её реализовать обрабатывая заголовки ответа соответствующим образом и начиная кросс-доменные запросы с метода OPTIONS
а мне их в моем случае обрабатывать и не надо. я сам делаю запросы на посторонние домены. вопрос был в другом: почему через браузер нельзя отправлять запросы, а через сервер можно? я уже повторяюсь
>Сервер на который ты посылаешь запрос должен иметь в заголовках ответа Access-Control-Allow-Origin у которого в значениях будет сайт с которого делается запрос, либо wildecard (*) означающий что он разрешает делать запросы с любых ресурсов.
да, но мне-то надо с браузера отправлять запрос (желательно и удобней), а не посылать запрос с браузера на свой сервер, а потом со своего сервера посылать запрос на чужой сервер. опять же, дырявая и бесполезная защита, которая только мешает разработчику.
>пук
Я-то в этом итт про тс написал впервые
Конкретно в этом случае выстрелить себе в ногу он бы тебе не дал
Нахуй ставь no-cors
>в чем суть защиты?
В том что ты заходишь на сайт X и не можешь послать запрос на сайт Y если сайт Y не хочет получать запросы с сайта X. Это обходится и в браузере, но при помощи расширений, которые устанавливаются с разрешения владельца браузера.
Суть защиты в том, что зайдя на 2ch.ru, владелец 2ch.ru не может засунуть скрипт который будет посылать запросы на vk.ru и под видом тебя делать всё что ему взбредет в голову, либо просто получать/отправлять куки и другую информацию которая предназначена для тебя, а не для владельца 2ch.ru
>почему через браузер нельзя отправлять запросы, а через сервер можно?
Скотина тупорылая, как тебе еще объяснить то? Браузер это программа написанная сторонними разработчиками, она обрабатывает и посылает запросы согласно тем правилам, которые внесли эти разработчики в целях безопасности пользователей браузера. Подобную логику обработки и отправки на сервере реализуешь ты самостоятельно, то что ты игнорируешь CORS это твоё дело.
>да, но мне-то надо с браузера отправлять запрос
А чужому серверу не надо чтобы ты со своего сайта отправлял им запросы, очевидно.
>опять же, дырявая и бесполезная защита, которая только мешает разработчику.
Как видишь, не дырявая. Для отправки запросов тебе придётся самостоятельно обманывать чужой сервер используя собственный, ты не сможешь вовлечь в этот обман стороннего пользователя который зашел на твой сайт.
тебя мамка что ли гнобила и унижала? че такой негативный, чмох?
>опять же, дырявая и бесполезная защита, которая только мешает разработчику.
Если запрос уйдет на твой сервер, то браузер не приложит к нему куки, которые предназначены для vk.com, например. Так что спиздить сессию ты не сможешь.
Попроси владельца чужого сервера добавить твой сайт в Access-Control-Allow-Origin, либо используй свой сервер в качестве прокси для запросов на чужой сервер.
Прочитать про CORS и реализовать его на своем сервере.
т.е. если сервер разрешает какому-то сайту посылать себе запросы, то у этого сайта есть доступ к кукам сайта того сервера (если он есть и хранит их)? и наоборот?
Куки назначаются для домена. Если куки назначены для одного сайта, а запрос идёт с другого сайта, то куки не будут передаваться.
Я пять раз перечитал твой вопрос и нихуя не понял. При HTTP-запросе браузер автоматически добавляет в него куки, которые соответствую домену запроса. Из этого вытекает основополагающее правильно безопасности веба — same origin policy, по умолчанию ты можешь посылать запросы только на домен с которого открыта страница. Очевидно, что ты не хочешь чтобы, например, Двач что-то постил в VK от твоего имени. CORS помогает обойти это ограничение ценой некоторой настройки.
Ок, похоже это не совсем верный ответ. Будет круто если кто-то шарящий уточнит.
>ты можешь посылать запросы только на домен с которого открыта страница.
Ты можешь посылать запрос на любые домены. Чего нельзя делать так это подменять заголовок Origin у запроса который ты посылаешь.
CORS создан для того чтобы браузер не слал запросы на сервера, которые этих запросов не ждут. Браузер делает preflight запрос, считывает ответ от сервера и все Access-Control заголовки, исходя из которых либо посылает запрос, либо игнорирует его.
ну мой домен в браузере с которого я выполняю запрос - это localhost. запросы идут на pathofexile.com, pathofexile.com не разрешает выполнять запросы с этого домена. для этого мне остается только выполнять запрос на сервер, который на том же домене (локалхост), выполнять запрос на pathofexile.com там и отсылать результаты запроса обратно клиенту на localhost. для меня это все звучит как бред. ведь мой сервер не находится в списках доверенных доменов у pathofexile.com. короче, я реально тупой видимо, потмоу что я уже 5ую статью читаю про это и не понимаю блядь смысла всего этого говна. не бойтесь я не вебер и не работаю нигде и не пишу сайты, люди из-за меня не пострадают
Чому бред? Если у этого сайта нет публичного API, то звучит как рабочее решение. Если есть, то там все должно быть в доках написано.
Суть в том, что на сервере ты можешь отправлять любые заголовки, в том числе любой заголовок Origin, т. е. сделать вид что ты зашел на pathofexile.com, а не отправляешь запросы с своего сайта/сервера.
Браузер тебе этот заголовок изменить не даст, также как и pathofexile.com не хочет чтобы с него брали информацию через другие сайты, поэтому тебе нужно либо использовать публичное api, если оно есть, либо обходить защиту pathofexile.com используя сервер в качестве прокси.
я не знаю насколько оно является публичным. если я открываю консоль браузера и вижу все запросы, можно ли считать его публичным? видимо, нет.
Если к нему есть документация, то публичное, если нет, то приватное.
Значит ты пытаешься воспользоваться тем, чем авторы запрещают пользоваться вне их сайта. Поэтому тебе придётся обходить их защиту от таких как ты.
у них есть это api что ты скинул, там просто огромная база публичных вещей всех игроков, которые нельзя никак отсортировать или получить список вещей игрока, например, по его никнейму.
а еще у них есть trade-раздел, который является по сути рынком, у которого свое апи. но зато там можно найти любой предмет, с любыми заданными параметрами. но про это api они не говорят сами. лично я вообще на реддите нашел этот способ. хер их знает, короче.
Если не говорят, значит он не публичный. Не понимаю в чем собсна проблема сделать прокси через ноду.
но почему они тогда никак не шифруют запрос? почему не используют апи-ключи? почему не выполняют эти запросы у себя на сервере, если хотят скрыть их?
Поэтому что все это неудобно и бессмысленно.
>но почему они тогда никак не шифруют запрос?
Зачем? Клиент в любом случае как-то должен будет его расшифровать, а все его сорцы открыты, это легко реверс-инженирить.
>почему не используют апи-ключи?
Тоже открытые клиенту?
>почему не выполняют эти запросы у себя на сервере, если хотят скрыть их?
Отказаться от SPA и при каждом пуке перезагружать страницу? Ну такое. Рендерить готовые куски html на сервере и вставлять? Ок, но в конечном счете html легко распарсить.
>почему не выполняют эти запросы у себя на сервере
Скотина тупорылая, что им это даст? Им результаты нужно клиенту отдать, а не на сервере у себя сохранить.
>Серверный js - это ниша ниши
Ты будешь в шоке, но СНГ-странами мир не ограничивается. На западе бек на ноде очень популярен
мимо senior js/ts fullstack удалёнщик на дядю Джона
Есть один сайт, он собирает адрес дома и оценку внешнего вида
этого дома, а затем отправляет эти данные в базу данных. Адрес и оценка вводятся пользователем. Ничего кроме адреса, оценки и комментария сайт не собирает. В базе данных хранятся только эти данные.
Есть ли какие-то подводные камни? Я хочу этот сайт захостить в интернет, но не нагнут ли меня за нарушение какого-нибудь закона о личных данных или ещё что-нибудь? Поясните кто-нибудь шарящий за интернет законодательство.
Как правильно выложить этот сайт в интернет, в общий доступ, грубо говоря? Можно ли, например, чтобы сервер располагался в клятой Пиндосии?
тебе в /law
Eсть строка для фильтрации, но я не хочу фильтровать всякий раз, когда ввожу символы, а только по нажатию кнопки
В этом случает нужно использовать 2 поля в стейте- одно для хранения инпута и другое для фильтрации, куда будет попадать строка из 1 поля, после нажатия клавиши?
Нормально или можно это сделать получше?
>опять же, дырявая и бесполезная защита, которая только мешает разработчику.
Если она такая дырявая и бесполезная, в чем проблема ее обойти, долбоёб.
Можно. getElementsByClassName возвращает htmlcollection, у которго айдишники элементов это прямо свойства коллекции.
Я делал через useState
Фильтровать только при Submit формы.
>Ты будешь в шоке, но СНГ-странами мир не ограничивается. На западе бек на ноде очень популярен
Сомневаюсь, что той же ноды в относительном количестве больше какой-нибудь пыхи даже в швитых. Хотя выборка конечно больше.
>мимо senior js/ts fullstack удалёнщик на дядю Джона
Не хочешь потравитьпособеседовать вкатывальщика, раз уж ты синьор? Тем более TS на ноде.
Хули собеседовать? Как только заходишь в кабинет для собеседования спрашиваешь кто старший , ныряешь под стол и начинаешь сосать, возьмут 100%
>количестве больше какой-нибудь пыхи даже в швитых
Нехуя не понял
В пендосии пыха с жсом два самых йобаязыка занимающих 50%+ рынка
>В пендосии пыха с жсом два самых йобаязыка занимающих 50%+ рынка
Но пыха не беке, а жс на фронте, мы говорим про жс на бэке, алё.
Нода на беке живее всех живых, лол
Бэк не монолитен. На бэке есть фронтсервера, которые сегодня дохуя у кого на жс - алиэкспресс, нетфликс, иви, пейпал, и многие другие. У многих еще и прочие микросервисы на ноде.
Во-первых не стоит хранить формы в редаксе. Во-вторых нет, не нормально, какой смысл дублировать поле, если он уж есть в сторе? Просто возьми строку из него, когда будешь запрос отправлять или что у тебя там.
Омежка, иди нахуй отсюда
Языки бывают только двух типов. И никаких "не плохих" в этом множестве типов нет.
взф, я не думал он меня так удивит
с какого эти функции выдают разные значения
function foo1()
{
return {
bar: "hello"
};
}
function foo2()
{
return
{
bar: "hello"
};
}
Для начала пойми что сравниваешь
Это нормально. Не нормально считать что синтаксис языка долден быть таким, как ты привык. Это говорит о том, что ты языков дальше свокй сишечки не видел.
В каком смысле "разные"?
foo1() !== foo2() //???
Так это нормально.
Было бы удивительно, если бы оно было равно.
И дело тут не в JS
А, там перевод строки.
Ну, так дело всё-равно не в жс.
Это и в го, например, так, и в груви.
И ещё где-нибудь, наверное, где нет точек с запятой в конце строки или они необязательны.
При чем тут твой высер про С тогда?
Как будто там скопный блок после ретурна будет чем-то отличаться
В С компилятор тебя заставит поставить ; и если ты поставишь ; после создания объекта, то функция вернёт объект.
Поэтому изучать язык нужно с код стайла, который в JS предписывает начинать новую строку после {, а не до.
в нормальных языках код стайл не влияет на результат
но ведь это же язык где
const a = NaN
a !== a // true
я помню проорал когда прочел что один из самых надёжных методов проверить на нан это сравнить переменную с самой собой
>в нормальных языках код стайл не влияет на результат
Ой, как же так вышло, что "ненормальные" Python и JS вдруг стали самыми популярными. Двойные стандарты для нормы? Почему-то всегда казалось, что норма это то чем пользуется большинство, а не маняфантазии байтоеб-сишника.
Ну так зачем ты отступил от него? При твоём говнокоде у тебя бы стабильно возвращался андефайнед и ты бы просто возвращал фабричную функцию, вместо того чтобы плакаться в жс-треде.
миллионы мух не могут ошибаться?
вообще питон конечно говно, но он хотя бы не претендует на си синтакс
а джс стал популярным потому что исторически стал дефолтным языком в браузере
>миллионы мух не могут ошибаться?
Не могут, потому что если бы ошибались, то вымерли бы. И речь не про ошибки, а про "нормальный". Для мух откладывать личинки в говне как раз таки норма, но нет, пришел сишник и начал говорить всем, что нормальные мухи с говном не контактируют.
>потому что исторически стал дефолтным языком в браузере
Т. е. у тебя еще и знаний на уровне "прочитал статью на швабре"? Одна из причин популярности JS - удобная асинхронность без необходимость контролирования доступа к данным. Но откуда это знать такому дурачку как ты, да?
А чё тогда пердолики не запилили свой V8?
Просто используй Typscript и Angular, все эти вопросы отпадут так, будто и не возникали никогда.
>Легально ли создавать массив и заполнять null, чтобы просто вызвать reduce
Нет, конечно. Во-первых, никто кроме тебя не поймёт твой код. Во-вторых, ты используешь reduce не по назначению, что отчасти является причиной первого.
Если хочешь улучшить читаемость, то либо используй отдельные библиотеки-утилиты, помему в lodash есть нужная тебе функция. Либо сам создай функцию-утилиту, которая будет вызывать другую функцию n раз. Что-то вроде пикрила.
Почитай что-нибудь по архитектуре.
SOLID, DDD, и т.д. Писания Роберта Мартина (Дяди Боба), например.
Но, надо понимать, что с нуля оно не заходит - до этого надо дорасти.
Поэтому, просто - бери и делай. Потом - смотри, как делают другие - код на гитхабе и т.п.
И не занимайся преждевременной оптимизацией - это большой грех, и корень многих зол, как учат нас гуру и отцы. В том числе и в плане архитектурных излишеств. Ньюфаги, как раз, и грешат овердизайном, а мастер делает просто.
Прототипы переопределять для меня не варик, как и другие либы подключать. Решил через рекурсию попробовать, вроде достаточно элегантно.
Кстати, да. Рекурсия тут и на хуй не нужна. Вот просто совсем.
В родительском ещё компоненты.
Какого хрена "не варик"-то? Прям совсем ничего нельзя, только велосипедить?
И да, тройчну про рекурсию. Не используй её, если это возможно, отлаживать замучаешься.
Проблема не в отладке, а в том, что всё должно быть на своём месте. Рекурсия - для рекурсивных структур и задач.
В данном случае рекурсия не нужна.
Более того - если данных много - будет переполнение стека. Понятно, что тут так не будет, но, теоретически - может быть.
Любую, но есть такие задачи, которые при разворачивании в цикл займут в дохуя раз больше строк вложенных циклов, чем их рекурсивные аналоги.
То есть, они на полном серьезе полагают, что чтобы вкатиться поваром в какой-нибудь рестик, надо научиться пользоваться ножом и кастрюлей. Чтобы стать отделочником, надо уметь обращаться со шпателем. Чтобы слесарем - гаечным ключом. А вот все остальные знания и навыки они как-то сами по себе возникают, по наитию? Или что, блядь?
Я действительно не понимаю. Какого хуя происходит в головах этих людей, которые не то, что не понимают, чем отличаются между собой структуры данных, что такое протоколы, программные интерфейсы, типы хранилищ данных, шаблоны проектирования, сервисы, как устроена коммуникация между всем и всем - не суть важно клиент-серверное это взаимодействие, ipc или тот же мессадж-пассинг между компонентами представления, и всё остальное прочее - но они вообще не задумываются о том, что им это все необходимо знать. У них даже не возникает желания, или банального любопытства.
Они на серьезных щщах полагают, что нацепив фартук и шапочку, они смогут заебенить яйцо пашот или лазанью, достаточно блядь рецепта. Хотя, какого нахуй рецепта - по ходу дела разберёмся. А научившись закручивать гайки, ты само собой, с легкостью заменишь всю сантехнику в доме. Какого хуя происходит в индустрии. Что это за пиздец.
Почему люди, вкатывающиеся в сферу не удосуживаются даже открыть ебаную википедию, и прочесть все связанные страницы по изучаемой тематике. Хотя бы, блядь, сраную, сука, мать её, википедию. Чтобы блядь понимать масштаб необходимого и иметь на руках ключевые слова-направления, по которым читать и изучать, искать информацию. Какого чёрта эти долбоёбы творят.
Нет, я не спрашиваю, почему они не знают ЧТО нужно знать, я спрашиваю, почему они УВЕРЕНЫ, что ЗНАНИЙ СИНТАКСИСА ЯЗЫКА И ФРЕЙМВОРКА достаточно, и блядь, вообще не задаются вопросом - схуяли этого должно быть достаточно. Они что, все ебанутые?
То есть, они на полном серьезе полагают, что чтобы вкатиться поваром в какой-нибудь рестик, надо научиться пользоваться ножом и кастрюлей. Чтобы стать отделочником, надо уметь обращаться со шпателем. Чтобы слесарем - гаечным ключом. А вот все остальные знания и навыки они как-то сами по себе возникают, по наитию? Или что, блядь?
Я действительно не понимаю. Какого хуя происходит в головах этих людей, которые не то, что не понимают, чем отличаются между собой структуры данных, что такое протоколы, программные интерфейсы, типы хранилищ данных, шаблоны проектирования, сервисы, как устроена коммуникация между всем и всем - не суть важно клиент-серверное это взаимодействие, ipc или тот же мессадж-пассинг между компонентами представления, и всё остальное прочее - но они вообще не задумываются о том, что им это все необходимо знать. У них даже не возникает желания, или банального любопытства.
Они на серьезных щщах полагают, что нацепив фартук и шапочку, они смогут заебенить яйцо пашот или лазанью, достаточно блядь рецепта. Хотя, какого нахуй рецепта - по ходу дела разберёмся. А научившись закручивать гайки, ты само собой, с легкостью заменишь всю сантехнику в доме. Какого хуя происходит в индустрии. Что это за пиздец.
Почему люди, вкатывающиеся в сферу не удосуживаются даже открыть ебаную википедию, и прочесть все связанные страницы по изучаемой тематике. Хотя бы, блядь, сраную, сука, мать её, википедию. Чтобы блядь понимать масштаб необходимого и иметь на руках ключевые слова-направления, по которым читать и изучать, искать информацию. Какого чёрта эти долбоёбы творят.
Нет, я не спрашиваю, почему они не знают ЧТО нужно знать, я спрашиваю, почему они УВЕРЕНЫ, что ЗНАНИЙ СИНТАКСИСА ЯЗЫКА И ФРЕЙМВОРКА достаточно, и блядь, вообще не задаются вопросом - схуяли этого должно быть достаточно. Они что, все ебанутые?
>Почему у всех стойкое ощущение, что достаточно выучить язык (а точнее даже только его синтаксис) и фреймворки, чтобы научиться программировать?
Потому что так вкатились нынешние синьоры. Только им и фреймворка не нужно было.
Научиться прогать есть следствие теории+практики, практика набивается в боевых условиях, обычно после вката.
>как избавиться от цикла, двач
>напиши дегенератор и вызывай их в for of
10/10, задачки то уже решил со своими дегенераторами или ждёшь момента чтобы вкинуть их в тред?
А вдруг возникнет нужда вызвать не более N раз, но в разный промежуток времени и условиях.
Я перед этим 10 лет почти учился, из которых пять фрилансил, например.
Первый хелло ворлд в 1999ом, первые заработанные деньги в 2004ом, первая оф работа в сфере 2008-9.
Хуя ты слоупок.
>очередной бабах "пачиму вебмакаки не хотят учить теорию категорий и паять микроконтроллеры на ассемблере"
>никакой конкретики, только "учи как работает интернет по википедии, вот тебе десяток несвязанных друг с другом случайных тем которые я из головы вытащил, дальше сам"
>вместо аргументов дырявая аналогия, расползшаяся на 60% поста
Держи в курсе.
request().then(response => response.ok ? setResponseError(response) : setResponseSuccess(response))
Иди читай как работает fetch, перезвонщик мамкин. Не говоря уже про то, что реджектить не-200 ответы - это тотальный антипаттерн и любой http клиент так делающий, должен отправляться в мусорку по умолчанию
Только строки, только хардкор.
>как работает fetch
Какой fetch, долбоебина? Где ты там fetch увидел?
>это тотальный антипаттерн и любой http клиент так делающий, должен отправляться в мусорку по умолчанию
Держи вкурсе, вкатун, а то создатели протокола то ведь и не знают, они наверно до сих пор думают, что любой статус не входящий в диапазон 200-299 считается неуспешным.
>Какой fetch, долбоебина? Где ты там fetch увидел?
Где "там", дурачок? Я ответил на пост "как ловить ошибки в ответе сервера" без указания на что-либо, и в примере подразумевал самый доступный и распространенный делать запросы к серверу.
>создатели протокола то ведь и не знают
При чем тут создатели http протокола и тот факт, что ты хочешь обрабатывать рутинные ответы сервера через выбрасывание эксепшенов, смешивая их с реальными рантайм эксепшенами уровня "сервер упал нахуй" или "ошибка синтаксиса"?
Конь блять я функцию использую только на кнопке отправки формы, никаких стейтов нет, файл с апи лежит отдельно, от туда берется только функция
Занимательные ретроспекции, а что на заре интернотов надо было знать? кажется, что таблицы и пару форм было достаточно, чтобы считаться фуллстэк-вэб- синьером на тот период.
На заре интернетов браузеры срали на какую-то общую реализацию CSS и нужно было костылить под каждый браузер на флоатах.
>ответ на запрос может быть в двух стейтах - ошибочный и успешный, каждый из которых я хочу обработать отдельно
>зачем мне стейт?
Я же пишу что только импортирую и вызываю функцию и передаю аргументы, в самой функции определил что если !res.ok идет обработка, но она в другом файле
А линия жизни на правой руке длинная или короткая? Сложно без этой информации нагадать, почему у тебя на работает код и как должен работать.
>таблицы и пару форм было достаточно
>читаться фуллстэк
Ну да, а работа с протоколами, базами данных, кэшированием, эффективной обработкой данных - это ж все само собой разумеющееся.
Собственно чел >>6383 в стартовом посте про это и написал.
>а что на заре интернетов надо было знать?
Я не он и начинал чуть позднее, в 2005ом где-то, но суть такова, что помимо - что знать, на заре интернетов остро стоял вопрос как и где это узнать. И сколько это будет стоить. На заре интернтов, интернеты были не теми, как ты их себе представляешь.
Алсо, интерне все помнит и тебе ничто не мешает открыть любое комьюнити и почитать треды за нулевые и даже 90е, что понимать что и как было. А не слушать охуенные истории про - вот пять лет назад достаточно было...
>Ну да
Смутно помню пхп в виде шаблонизатора, ни аяксов, мобилок, и прочих проблем выбора. На данный момент пхп/жс раздулись до гигантских масштабов в сравнении с началом нулевых.
что вот это нужно знать на junior node
и в каждой фазе есть свои исключения.
больше всего бомбануло от того что setimmediate в основном потоке может вызваться после setTimeout
а если внутри setTimeout, то вызывается перед setTimeout
>что вот это нужно знать на junior node
Это не нужно знать на junior node, если тебя спросили - скорее всего просто послали на хуй
setImmediate даже не относится к ES стандартам и реализация в разных рантаймах может отличаться или вообще не быть
>Я не могу понять, за 1 год зарплаты на рынке выросли для ИТ или упали?
Если в долларах, то она постоянно падает последние лет 6-7.
У него на картинке даже нарисовано почему.
Потому что если ты не поставишь ";" после выражения, ЖС поставит ее за тебя сам. И не всегда там, где ты хочешь.
Новая строка после return для ЖС означает конец выражения, Поэтому он ставит там точку с запятой, и выражение как следствие, возвращает undefined.
Если спрятать возвращаемое выражение в скобки, открытые сразу после return, то ЖС будет знать, перенос строки находится посреди выражения, и проигнорирует перенос.
Тут подробнее.
https://stackoverflow.com/questions/8528557/why-doesnt-a-javascript-return-statement-work-when-the-return-value-is-on-a-new
Хероку на бесплатном тарифе захибернейтит сервер если последний хттп запрос был 15+ мин назад
Для фронта можно использовать статик пейж сервинг платформы типа нетлифая
Да похуй как, если сайт работает.
блин это почище задачек про два стула
var length = 10;
function fn() {
console.log(this.length);
}
var obj = {
length: 5,
method: function(fn) {
fn();
arguments[0]();
}
};
obj.method(fn, 1);
что это за пиздец я вас спрашиваю -_-
Что самое смешное, ответ "нехуй срать в глобал скоуп" не будет считаться за ответ. А в проде будут стрелочные функции, у которых нет `arguments`. То есть это просто задачка на дроч.
я еле переварил идею что скоуп функции переданной как аргумент почему-то глобальный и тут скоуп массива аргументов функции при втором вызове -_-
хорошо меня такое не спрашивали, надеюсь и не будут
По игрушечным языкам никто никогда никого не дрочит
Ты или умеешь делать дермьо сделанным, или нет
Лучше потрать время на какую-нибудь жаву или не трать время на хуйню вообще и запили лишний екомерс фронт
Пограммисты, подскажите. Хочу создать игровой проект один с целью наёбывать гоев на бабки. Так вот, с самим сервером игры и его настройкой проблем не будет, ибо я варюсь в этом год уже.
Проблема с сайтом, ибо он очень важная точка, в которой я ваще нихуя не шарю.
Подскажите, как мне поступить? Нужен сайт на котором будет оформлен донат, новости и личный кабинет игрока. Я так понимаю самому с нуля учиться всё это делать будет дохуя долго? Я больше боюсь на самом деле разного рода dosa-ddosa, взломов и прочего говна, ибо пока я держал сервер без сайта меня ебали на круглосуточной основе этим.
Сколько будет стоить такой сайт на фрилансе? Чтобы выглядел не совсем уёбищно?
Может посоветуете что ещё?
Ты путаешь скоуп (область видимости функции) и контекст вызова функции. Это разные вещи.
100р за сайт? Ну в целом пойдёт.
Не думаю что хочу столько вкладывать, бюджетнее ничего не найти? Если нет, то буду тогда сам что-то пытаться делать.
По твоим требованиям
> выглядел не совсем уёбищно
>боюсь на самом деле разного рода dosa-ddosa, взломов и прочего говна
Это самый минимум.
Так что, если денег нет, то лучше не влезай в это дерьмо (тебя тупо наебут). В попытках сэкономить больше проебешь (времени, денег и нервов). Либо ищи финансы, либо пили сам, по блату, или как-то еще. inb4: у тебя ничего не выйдет
Да выйдет-выйдет. Когда я вкатывался в сервак мне тоже говорили что гиблая идея, мол заддосят и соснёшь.
Ничо, отбился. И сайт создам.
Ок. По делу есть что сказать ещё?
Дизайн и оформление в районе 100к
По сайту всё зависит от задач и перспектив развития
Статик говновёрстка - до 35к
Фронт на йобафреймворке в вакууме - от 50к
Бойлерплейт фреймворк с личным кабинетом в вакууме - от 50к
К последним двум прибавляй по ~10к за каждую интеграцию к какой-либо third-party штуке (тебе как минимум нужен платёжный\донатный гейт и какой-нибудь клаудфларный антиддос). В случае глубокой интеграции с игровым сервером - к беку накидывай еще минимум 35к
Чо такие дешёвый варианты предлагаешь? Это говно-сайт получится с такими вложениями.
Тут минимум миллиончик нужно будет вложить.
Всё таки написать авторизацию и ЛК это дело не одного часа. Не говоря о донате.
я бы стал браться за такой заказ от 500 000 рублей, но уверен что ты найдешь и за 3000 рублей, просто потом доработки будешь делать в течении 2 лет и как раз выйдет на 500 000 - 900 000
Я напомню что зарплата среднего фронта 200к, а бекендера около 250к. и это в месяц.
Зачем несколько форм, если один хуй отправляешь всё одной кнопкой? Пихай разные табы в филдсеты и кнопки отправки/резета будут работать без всяких лишних телодвижений, так как они - часть одной формы.
2 000 000 рублей.
сроки: 4 месяца
Фронт + бек + аналитик + дизайнер + тестировщик + менеджер + копирайтер + различные расходы на сервера хостинг (2000 рублей)
Бойлерплейт на MEAN из личного кабинета + страйп + пара страниц стоит 2-5к$
Кастом солюшон с нормальным дизайном и тематическим оформлением + подключение к third-party + интеграция с игровым сервером будем в районе 25к$
Напишу вашу хуйню за 30-50к
внеочередной ёпта
а я угадаю эту мелодию с трех нот
>зарплата среднего фронта 200к
Ну это скажем так пиздёжь, вот прямо сейчас в данный момент рынок очень просевший.
мидлы 200к.
сеньеры 240
пруф: https://vc.ru/hr/189368-kakie-problemy-s-naymom-v-it-zhdut-v-2021-godu
Проходить бесплатно на торренте конечно же
Возьми лучше буру
1) Хорошо если ты джун, если мидл, то удаляй его курсы.
2) Недавно узнал что он предлагает свое наставничество за 1 000 000 рублей в год, ржал как конь
3) Он разбирается во всем по чуть-чуть, он джун во всех областях и теоретик
ПЕРЕКАТ >>1887469 (OP)
ПЕРЕКАТ >>1887469 (OP)
ПЕРЕКАТ >>1887469 (OP)
ПЕРЕКАТ >>1887469 (OP)
ПЕРЕКАТ >>1887469 (OP)
ПЕРЕКАТ >>1887469 (OP)
ПЕРЕКАТ >>1887469 (OP)
Это копия, сохраненная 29 апреля 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.