Аноны, хочу получить советов мудрых, высераю пару предложений и код на скриншоте, а получаю смехуёчки. Как быть?
Если рассчитываешь получить дельный ответ, формулируй правильно вопрос:
У меня есть проблема\задача (А) %текст-ошибки или задача%. Я пытался решить ее так %кусок-кода-опционально% (Б), у меня не вышло %текст-ошибки%. Я погуглил, почитал документацию и попробовал сделать так %кусок-кода-%(В), но получаю ошибку (Г).
Сделай песочницу по ссылкам выше для ясности и удобства. Если никогда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
>>1577380 Грубо, очень хочется вкатится и сильная мотивация но после прочтения одной огромной темы почему то так всегда и чисто физически не могу дальше продолжать читать
>>1577382 Ну я тебе говорю, программирование не для тебя, причём тут мотивация, мотивации недостаточно, ты просто упираешься в свои физиологические возможности, твой мозг не приспособлен для интеллектуальной работы, вот и всё. Найди попроще дело.
>>1577404 Зависит от города. В моем миллионике с мувисерчером, файлообменником, канбаном, расширением для гугла (временный пароль и почта), парой сверстанных макетов не берут НИКУДА нахуй.
>>1577410 Так может проблема не в проектах, а как ты себя подаешь? если ты не можешь работать в команде и не умеешь общаться с людьми, то ты закономерно пойдешь нахуй
>>1577423 Хотя, я таки заглянул. Там даже автор ответа написал
Option 1 isn't faster, but if we pretend it is then the answer is that it depends. Option 1 certainly won't scale as well as option 2, but that doesn't mean option 1 might not be faster for small enough arrays (although I doubt it). Either way, this is premature optimization. If your code is running slow, and you profile your code and identify this part as the bottleneck, then you should worry about it.
я не знаю, есть ли будущее у ноды? ЖС как серверный язык? Вот веслаю почти год, а ощущение, что ну не подходит ЖС под бекенд. Кто-нибудь сталкивался с такими мыслями?
Ананасы, кто шарит? Как в js рантайм выполняет async функции, которые не делают никакого IO? По идее, когда их await'ят, они должны возвращать уже фулфиллнутый промис. Но тогда никакой разницы нет с синхронной функцией. Но у кучи людей в коде вижу, что они non-io задачи гоняют через асинхронщину. В чём смысл? Это они чего-то не догоняют или я?
Как думаете можно ли красный и желтый блок, как на пикче, через div сверстать? А то у меня пропасть здесь образуется. Думаю в фотошоп зайти уже и сделать там, а вместо дива img добавить
>>1577616 ДА ОН ПИДАРАС ЕБАНЫЙ!!!! ЧТО ЗА НЕСПРАВЕДЛИВОСТЬ, ЛЮДИ!!!! ТАКОЙ БАРАН БЛЯТЬ ПОДАЕТ СВОИ СУКА ЗАЯВКИ И ЕМУ ТЕСТОВОЕ ДАЮТ. МНЕ ОТКАЗОМ НЕ ВСЕГДА ОТВЕЧАЮТ - ВСЕ ЗАЯВКИ ПРОСТО НА РАССМОТРЕНИИ ВИСЯТ И В АРХИВ ЛЕТЯТ. КАКОГО ХУЯ, ЛЮДИ?????????
>>1577634 У моих заявок ссылка на гитхаб. Я посмотрю как ты запоешь, когда в твоем городе не будет работы, а в других местах набирают любого как уже выяснилось не любого дебила, который знает что HTML это язык гипертекстовой разметки.
Как писать на реакт не через npx create-react-app? Нужно учить бабель и вебпак? Стоит ли это того? Просто глаза мозолят три миллиона папок в node_modules.
>>1577512 Да я про то, что блокировать поток из js может только блокирующий IO. Если у нас нет IO, то выходит, что и не блокируется никто. А потому и профита от асинхронных функций не будет, если они не стучат на сервер, не читают файл и тд. Ну это как я вижу. В тырнете почему-то совсем по этому вопросу ничего нагуглить не могу, потому и спрашиваю.
Как можно выйти из рекурсии в данном случае? Goto, конечно же, не хочется применять, ведь если кто увидит, начнёт за это гнобить. Break; не работает с условием.
>>1577477 Это все задумывалось для избавления от т.н. callback hell, когда одна асинхронная функция вызывает другую, которая вызывает третью, и так далее. Никаких профитов, кроме уменьшения вложенности функций, не дает. Дебажить цепочку из async/await ничем не легче, чем цепочку обычных колбэков, только табов меньше.
>>1577845 Гнобить будут за setTimeout со строкой, а goto в JS нет. Для выхода из рекурсии помести вызов в условии, когда оно не выполнится - выйдешь из рекурсии.
>>1577872 Эх, я совсем неправильно выразился, но да ладно, ты подтолкнул вопрос ближе к делу. Вот есть io-bound задачи. Рантайм для них знает, что какая-то операция может заблокировать. И если ему сказано, то он делает неблокирующую операцию и идёт выполнять остальные задачи, если текующая ещё не выполнена. А в cpu-bound по идее ты никак и не можешь узнать, что возникнет блокировка. Вот этот момент мне и интересен. Пока await'ится cpu-bound промис и он заблокировал основной поток, будут ли вообще выполняться другие задачи?
>>1577946 Обычно для шарпа (в 90% случаях ) учат JS/CSS/HTML, я думал вопрос к этому, что не знаешь фронта, но работаешь на шарпе. Вакансий не было в компании для фронтовиков.
>>1577950 > Как долго на шарпе работал и как в него вкатился? Я стажёром пару месяцев проработал. Стажёр - не совсем вкатился, но ладно. Вкратце - год изучал шарп и технологии asp.net ,web api.
>>1577947 >и он заблокировал основной поток Это ты правильно понял, ничего другого не будет выполняться Тут надо примеры смотреть, которые ты видел. Например, длинный cpu-bound можно разделить на части и выполнять понемношк последовательно в разных тасках, а промис резолвить когда все готово. Тогда у тебя и браузер доволен и пользователи целы.
>>1578070 Две ссылки с разными именами указывают на один объект. Какое имя собрался узнавать? Что-то мне подсказывает, что твою задачу можно решить с помощью словаря/хеш-таблицы
>>1577984 >Как бы ты переписал этот код? Я другой анон, но отвечу.
Тут проще выкинуть и заново написать. Все очень плохо, реально. Начни с того, что перестать пихать все в this и уж тем более блять в window. Где ты этот паттерн вообще увидел? Это нужно раз в год в специфических ситуациях. Храни все в this.state, обновляй его только через setState, не пиши в стейт из пропсов. Короче, вагон антипаттернов и плохого кода. Посмотри какой-нибудь курс по реакту или там доку почитай.
По красоте делать еще дольше — нужно заменить классы на функции, впилить хуки, убрать setTimeout в пользу setInterval, подчищать его на анмаунте, учесть что компонент может быть размонтирован в момент вызова setState и т.д.
let read_file = fs.createReadStream('./new/Стража!Стража!.txt');
read_file.on('readable', ()=>{ let data = read_file.read(); if(data === null){ return } console.log(data); //хочу в первом же вызове события readable снять это событие с данного потока: read_file.removeListener('readable', ()=>{ console.log('Снял событие readable'); });
//однако это не работает. В консоль выводится весь файл.
//Но если использовать read_file.removeAllListener() - то получается как я хотел - выодится только один буфер. И дальше поток подвисает. });
Кто знает - почему так? Событие readable испускается когда очередной буфер данных доступен для чтенения. Не пойму в этот момент поток подвисает ожидая пока выполнится колбэк? Или продолжает читать данные? У И. Кантора есть такие строки - " Пока мы не вызовем stream.read(), он дальше читать не будет." - соответственно и событие 'readable' эммитироваться не должно.
>>1578399 Нет, мне не нужно было onse. Суть не в том что бы вызвать readable один раз, суть в удалении обработчка на любой итерации. Пять раз сработал - на шестом снял. Впрочем я разобрался уже.
Аноны, можно ли передавать local state детям, если я уверен что изменение этого стэйта будет синхронным среди детей?
Так же мне не раз в треде писали, что я либо не знаком/ не пользуюсь call-back. Я не раз читал что есть call-back функции, но видимо я не ловлю какую-то важную суть. Можете придумать какое-нибудь тривиальное задание для меня, чтобы я сам себя проверил на знание call-back.
>>1578513 У тебя даже вопрос сформулирован как-то по-нубски. Ты уверен, что понимаешь, как у JS работает интерпретатор? Почитай про это и вопросы о том, зачем нужны колбеки, отпадут сами.
>>1578520 >>вообще, покажи пример задачи, где ты передаёшь local state детям, а то не оч понятно.
Есть мувисерчер. Цель - сделать синхронизацию стэйта понравившихся фильмов (нажали на кнопку нравится ) со всеми разделами мувисерчера (поиск по фильмам, популярные фильмы, конкретный фильм и собственно сама компонента избранное). 1) Я знаю, что нормальные люди делают это через Redux, но как только я отказываюсь от life-cycle компонент я сразу впадаю вступор (где что должно быть).
2) Я знаю, что можно аккуратно передавать детям функции, которые меняют стэйт родителя. Но выходит крайне убого.
>>1578551 Я тут даже посоветовать ничего не смогу. Шесть лет писал на JS html5-игры (фронтэнд и бэкэнд), но имею крайне смутное представление, как функционируют сайты, где больше одной страницы, кек.
>>1578518 Пойду читать, возможно в этом и есть проблема.
По поводу call-back. Вот это стало последней каплей, чтобы усомниться в своих знаниях (пикрелейтед). Мне сказали, что я не пользуюсь call-backами тут, хотя я не понимаю, что здесь можно call-backать.(речь про addFavouriteFilm)
>>1578575 Да уж, язык надо подучить. > this.addFavouriteFilm = this.addFavouriteFilm.bind(this) в конструкторе? Серьёзно? Мне даже тяжело представить, зачем это может пригодиться. Ты где-то сохраняешь метод addFavouriteFilm экземпляра MainRoute, и затем вызываешь его?
>>1578581 Я не понимаю смысла такой практики. Биндить this не нужно, если только ты не собираешься вызывать метод не через запись экземпляр.имяМетода() А где так вызывают?
>>1578777 >Ты долбоеб? Нахуй его передавать, если он уже привязан? Нахуй ты высрался в этом треде? Не шаришь, не открывай ебло. Пиздос ты олень, я же предлагал свою запись именно ВЗАМЕН биндинга.
>>1577320 >>1577355 Создаешь новый класс, у него определяешь приватный массив objects с массивами и метод addNew вида addNew(newobj){ if (objects.filter(e.e.id == newobj.id) return objects.push(newobj); }
>>1579003 И что в этом непонятного, долбоеб? На сервере у тебя будет массив вида: [ [{id:1, name:"my-app-001"}], [{id:2,name:"my-app-002"}] ]
Парсишь запрос на api, и отправляешь следующее: let response = []; for (let i = params.range["start"]; i < params.range["max"]; i++) { if (myServerArray) response.push(myServerArray); } return response;
>>1579069 Кстати, про параметр "max" у меня херня написана - я почему-то подумал про длину массива данных, хотя к айдишникам объектов она отношения может не иметь.
Вообще, задача-то простая, но может быть решена кучей способов. Возможно, они и хотят посмотреть, как ты сделаешь, чтобы быстрее искать объекты с нужными айдишниками, например.
>>1579093 Ты мне предлагаешь за тебя всё тестовое написать, дегенерат? Посмотри как реализованы API, которые находятся в открытом доступе. Хотя можешь не смотреть, очевидно, что такого тупицу дальше тестовго не пустят.
VSCode или WebStorm короче? Вроде оба пиздатые, но понять не могу на чем остановиться. Что VSCode лагает на огромном кол-ве дополнений, что WebStrom тормозит из коробки (но 90% всех дополнений имеет уже из коробки). Короче блять, не холивар конечно, но ваши доводы послушать интересно.
Директорию node_modules заигнорь в .gitingnore файле, у меня ниче не лагает в проекте на ларавеле, где под сотню херни в нод_модулях и ещё пол сотни в вендоре. Комп - кипятильник с 8Гб памяти.
>>1579286 >Ничё что вебсторм платный? Нормальные работы оплачивают. Ну для персонального использования стоит он всего $6 в месяц. А если вы ждуны без работы и денег, то наверное студентота и можно нахаляву его получить. Блять, крякать или раз в 30 дней директорию удалять в конце концов можно.
Сори за нубский вопрос, но как убрать косые черты в марке? Я уже специально воспользовался другим методом ставить кавычки, а они все равно появляются, что за хрень?
>>1579301 >>или раз в 30 дней директорию удалять в конце концов можно. Там даже директорию не нужно удалять. Просто удаляй и ставь новый триал. Я даже персональные настрйоки не удаляю - и они сохраняются.
>>1579345 Да блять, он стоит такие гроши специально, чтобы не заниматься вот такой вот хуетой и тратить время на удаление и установку (хоть это и занимает минуту).
Как создать в тайпскрипте дженерик, который бы принимал тип объекта и добавлял бы ко всем его значениям | null, чтобы каждому значению можно было null присвоить. Так не работает:
type MakeNullable<T> = { [P in keyof T]: T[P] | null };
Позвали на собеседование. В требованиях помимо всяких среактов алгориты и паттерны проектирования. Про алгоритмы отвечать из книжки "Грокаем алгоритмы"? А паттерны - это модуль, синглтон, декоратор?
Что стоит учить для разработки сайтов и веб-приложений(frontend) чтоб зря не пребывать время?
- нативный JS - TS - React - Vue - работа с webpack/Babel/ESLint - Gut
Чем можно дополнить? И где посоветуете нормально выучить гит? Сейчас работаю фронтом, но пока на верстке, параллельно учу разработку. Не могу научиться работать с гитом, как учились вы?
В гите умею самые базовые вещи: коммит, пуш, clone(из вебшторма) Остальное просто не понимаю. Закрыл уже кучу тасков на этих трех командах, дальше не продвигался
И что скажете насчёт тестов? Стоит тратить время на какой-нибудь Jest или бесполезная фигня?
>>1580055 Коммерческая тоже разная бывает. Есть разработка сайтов "на заказ", где ты берешь вордпресс или 1с-битрикс, что-то ваяешь и отдаешь на пользование, или разработка для корпораций, которым нужно расширяемое и поддерживаемое веб-приложение, поэтому они нанимают команду разработчиков и пилят его годами на реакте.
>>1580042 >React, Vue Выбери что-то одно, другое разве что в ознакомительных целях потыкай Redux/vuex в зависимости от выбора сверху SSR, тесты >Не могу научиться работать с гитом, как учились вы пришел на работу, сказали как делать жизненно необходимые вещи, остальное гуглил по мере надобности
>>1580059 У нас аутсорс-контора, практически все битрикс/wp. После копания в этом говне я точно знаю, что хотел бы заниматься поддерживаемыми продуктами компаний, разработкой с нуля, возможно с NodeJS >>1580069 Я уже освоил реакт, правда из проектов только туду и блог, одним словом - хрень, на работе пока нет нормальных проектов на реакте, пока сам не знаю что запилить интересное. Про вью слышал и видел синтаксис, понравилось. Кажется, реакт - не мое.
>>1580076 Тогда тебе надо прошерстить вакансии в ДС на предмет требований. Обычно джентельменский набор фронтэнд разработчика - это React, Redux/Mobx, Typescript, Webpack, Node, Jest, Puppeteer/Cypress. Про такую мелочевку, как Docker и Git вообще молчу. Если тебе ничего кроме add, commit, push не надо, то скорее всего в репе ты работаешь один, поэтому забей.
Вопрос про react-router-dom. У меня все страницы находятся в BrowserRouter, но на одной из страниц находится вложенный HashRouter. Если в компоненте, который внутри HashRouter есть Link или NavLink, и их ссылке нужно как-то перейти на страницу из BrowserRouter (например главная страница сайта), то единственный вариант - это указывать полный путь с адресом сайта, да? Иначе все ссылки обрабатываются внутри HashRouter.
>>1580203 >У меня все страницы находятся в BrowserRouter, но на одной из страниц находится вложенный HashRouter Наркоман? Я даже в теории не могу представить, зачем это может понадобиться.
Объясните ньюфагу почему он создает сетку через хтмл когда у него нарисована в картинге? Разве не проще вместо сетки просто использовать числа от 01 до 66?
В сервис контейнере ларавела, который работает как депенденси инжектор, можно настроить создание любого класса в единственном экземпляре, т.е. как синглтон. Уверен, в любом другом нормальном инжекторе это тоже стандартная функция.
>>1580384 Хороший фреймворк. Правда медленный. И порог вхождения выше, чем у всяких реактов. И весь хайп он проебал ещё в 2017, поэтому комьюнити небольшое и вакансий немного. Но все рано фреймворк очень приятный с правильными идеями лежащими в основе. На практике применяется когда нужно пилить массивный UI, где потребление ресурсов не критично, а от ангуляра тошнит и хочется чего-то в духе RoR.
Здоров, посоны. Бьюсь с проблемой уже неделю, а суть такова. Нужно набрать данных из одной базы, обработать их и сложить в другую. Все было заебись до тех пор пока я не подумал о том, что нода же однопоточная и было бы неплохо распараллелить это дело чтобы быстрее было. Так вот, воспользовался я пакетом BullMQ, это что-то вроде RabbitMQ, но нужен как раз для создания очереди работ, которые воркеры сами бы брали и обрабатывали. Работает пакет этот через Redis. По итогу отрабатывает как положено, быстрее чем в однопотоке, но есть одно НО. Каждый раз когда я запускаю обработку с одинаковыми входными данными, количество выходных данных всегда разное. То 45000 сохранится, то 65000. Это пиздец, я считаю. Никаких ошибок в ходе выполнения нет, все работы в редисе в статусе completed. Хуй знает что за дела вообще. Что можете сказать по этому поводу, котоны?
Привет, оранжевый.Кто тут в React'е разбирается, подскажите пожалуйста пару деталей, для более ясного представления приведу пример. Один из самых популярных примеров приложения на React это Todo-app. Представим вот этот самый Todo-app, и добавим сюда простенькое хранение заметок на сервере в базе данных.
Я вижу два варианта получения данных, но не понимаю какой правильный(или оба правильные?): 1. На чистом React. В самом компоненте, при помощи componentDidMount или useEffect отправлять запрос через fetch/xhr/axios, а ответ записывать в state. А на основании state отображать или лоадер, или массив компонентов-"заметок".
2. Добавить redux, react-redux и какой-нибудь middleware. Создать store, объявить там isLoading, isLoaded, data, isError. Написать ещё 4 action generator: fecth, request, response, error, и обрабатывать запрос как сайд-эффект в redux-saga или fetch в redux-thunk. А на страничке отображать лоадер на основании store.getState() или props с connect()().
>>1580506 >1. На чистом React. В самом компоненте, при помощи componentDidMount или useEffect Не декларативно и нужно проверять размаунтился компонент или нет, перед тем как дергать setState.
>2. Добавить redux, react-redux и какой-нибудь middleware. Тру вей, но слегка заебно писать бойлерплейт. Впрочем, все это абстрагируется.
>Как правильно в общем? Любой из вариантов ок.
>Или как лучше? Для простых задач я бы посоветовал react-async или его самописный аналог. Что-то вроде такого:
>>1580619 Насколько я понимаю, при попытке параллельной доступе к базе SQL думает, что для некоторых транзакций ты получаешь неактуальные данные, и блокирует запись в базу. Изменение уровня изоляции снимет это ограничение.
>>1580299 >Наркоман? Я даже в теории не могу представить, зачем это может понадобиться. Для того, чтобы было удобно использовать hash-links, например для табов на одной странице.
>>1580641 Попробовал все четыре уровня изоляции транзакций, также пробовал без транзакций вовсе - все результаты разные. Может тут играет роль не запись в базу, а чтение? Все воркеры, получается, одновременно считывают из базы данные с разными оффсетами только. Кстати, база источник - PostgreSQL, база назначение - MariaDB.
Аноны, посоветуйте что-нибудь посмотреть / почитать про redux для даунов. Я понимаю для чего он нужен и более-менее как нужно им пользоваться, но у меня все равно есть некоторые пробелы, которые не дают мне спокойно жить.
>>1580920 >Посоветуйте идею пета на реакте имидборду конечно же, ну или клон твиттера (только на бэке ленту активности сам не пиши, это блядский ад, а какой-нибудь GetStream потом заюзай)
Есть какой-нибудь туториал, где подробно расписывается паттерн обработки ошибок получения данных с API для Реакта? Типа ошибки соединения, ретраи, ошибки 401, 404 и т.д. Если все это просто обрабатывать в трай-кетче при маунте компонента, а потом писать тернарные условия в рендере, получается полная каша
>>1581022 Тебе не надо обрабатывать эти ошибки, кроме 200ых, которые приходят с самого АПИ. 200ые ошибки указанны в доках к кому ты коннектишься, либо они сами тебе присылают что не так. А для всех остальных делаешь заглушку "ой что-то пошло не так". Если у них упал сервер, то тебе холодно или горячо от этого?
>>1581088 > обработки ошибок получения данных с API для Реакта реакт отправляет запрос к API, в запросе данные, которые сервер посчитал кривыми, сервер возвращает 400 ошибку. Её надо обработать на клиенте, иначе крашнется реактовское приложение.
Потихоньку вкатываюсь в TypeScript. Как правильно узнавать, какой тип указывать? Вот в данном случае как указать тип у value и items? Если убрать фигурные скобки, тогда тип WrappedComponent (из подсказки) ставится, но не работает (начинает ругаться на value={value})
Поясните за ангуляр и реакт чисто в двух словах что такое. И что такое сас. Не в смысле сасно, а сас. Может, сасс пишется, я только слышал. Так-то я JS знаю, но нужны ещё актуальные фреймворки.
>>1581369 > this Что об этом вообще можно учить? Отличия call от apply? this в стрелочных функциях? this при вызове через new? Даже не знаю, на чём тут можно погореть.
Хех, помню, меня на собеседовании спросили, что означает и зачем нужна такая строчка внутри функции: > let args = [ ].slice.call(arguments) А я ответил, что это быдлокод, и надо писать Array.prototype вместо [ ], дабы не создавать лишний массив.
>>1581457 Ну я когда-то с челиками писал на хтмл5 игру для айфона, и чтобы не фризил сборщик мусора, мы даже i, j в циклах глобальные использовали. А тут подметать целый массив.
>>1581464 Целевая оптимизация — дело хорошее и нужное.
А позиция "это быдлокод, раз делает лишнюю работу", когда вся "лишняя работа" вместе взятая занимает 1% времени исполнения программы — контрпродуктивна.
Вот это вот хуйня let btn = document.querySelectorAll('.div1');
btn.forEach(function(item, i, map){ item.style.backgroundColor = 'red'; }); работает когда элементов класса div1 более 1 штуки в html а когда ее 1 то он блять возвращает псевдомассив который почему то typeof называет обьектом а мой код не может пропечатать ибо forEach может перебирать nodeList но не псевдокласс или обьект Такаааая залупаа я рот ебал этого языка
>>1581538 Яваскрипт конечно конченый, но не здесь. querySelectorAll возвращает NodeList а не массив и от количества элементов это не зависит. >typeof называет обьектом Иди Флэнэгана читать мудила
Аноны кто шарит в Redux нужна помощь. У меня есть React-компонент. Он может обновить Store. Когда я внутри комонента я вызываю метод обновления хранилища и сразу после этого console.log(this.props.state) у меня показывает старый this.props.state, хотя потом props'ы обновляются и комонент перерисовываеться. Другими словами, у меня есть задержкк между обновлением хранилища и обновлением пропсов компонента. С чем это связано? Обновление пропсов это ассинхронный процесс что ли, или почему такая зедаржка?
Хотел сделать так, что бы вводился текст и в нем менялась каждая буква на заданную мной, сделал так. var str = prompt ('напишите текст', ''); var newString = str.replace(/а/g,"ы"); alert(newString); Меняется буква а на ы, всё ок делаю так var str = prompt ('напишите текст', ''); var newString = str.replace(/а/g,"ы"); var newString = str.replace(/б/g,"н"); alert(newString); Пишу предложения с буквами а и б - менятся только буква а. Программировать учусь только, подскажите что читать или хотя бы наводку
>>1581756 >var newString = str.replace(/а/g,"ы"); >var newString = str.replace(/б/g,"н"); Во-первых, ты зачем var пишешь повторно? Ты уже объявил переменную newString. Во-вторых, ты понимаешь, что у тебя сама-то str не меняется? Ты будто пишешь newString = "абвгд".replace(/а/g,"ы"); newString = "абвгд".replace(/б/g,"н");
Аноны, подскажите. Я умею в бек на пхп, и немного на ноде. Решил изучить реакт немного. Сегодня полдня пердолился с документацией. Тудушечку запилил. Все это делалось на react create app. И вот подниму я сервер на ноде с экспрессом, а как состыковать то это с бандлом сформированным react create app? Чет попробовал просто отдать по маршруту '/' - нихуя не загрузилось. Где почитать подробно?
Я себе это так представлю - я собираю бандл реакта. Разворачиваю сервер на экспрессе. Допустим, в паблик пихаю скрипты самого реакта, и скрипт моего приложения. Потом по запросу "/" я отдаю хтмл страничку с <div id='root'></d>, и с тегами скрипт указывающими на мое реакт-приложение. Все это дела на клиенте разворачивается, и уже в реакт приложении аяксы к АПИ моего сервера. Т.е. сервак изначально отдает онли первую хтмл станицу, и скрипты реката и приложения на нем. И как же кросс-доменные запросы? JS с клиента без проблем отправляется онли на свой бекенд, сессии там, куки. Зачем два сервера?
Где толков почитать? А то я прям вижу смузи-моря после как соберу из двух моих поделий Франки
>>1581836 Разворачивай сначала вручную, будешь понимать что вообще происходит. В будущем это пригодится, кода придется донастраивать create-react-app самостоятельно.
>>1581877 Можешь, если не в напряг объяснить варианты взаимодействия реакт и бэкенда.
Изначально я видел это как то классически - бэк отдает одну страницу, в ней root и подгружающиеся скрипты - во всем этом строится приложение, которое уже взаимодействет с бэкендом. Проблема что я вижу - бандл может много весить - и первая загрузка сайта будет долгой.
Но в реальности сейчас у меня какой то коктейль в голове, SPA смешалось в кучу с изоморфными приложениями, и отдельным сервером для реакт приложения.
В сущности моя задача - простенькая. Я на реакт с помощью react create app сделал простенькое приложение которое должно отправлять на сервер запрос, и получать в ответ данные + картинку. И я не понимаю куда мне пихать собранный бандл, и нахуйя мне отдельный сервер статики для всего этого счастья, если статики и нет никакой.
А если я просто хочу отдельные компоненты на реакт вставлять в свои классические шаблоны отдающиеся с сервера? Нахрен мне сервер статики?
- нативный JS - TS - React - Vue - это нахуй не нужно, удаляй сразу - работа с webpack/Babel/ESLint - да, но в 99% случаях на твоей работе уже будет все настроено , врящд ли тебя возьмут поднимать фронт с колен и возглавлять первые проекты
>>1581877 Зачем статику отдавать с бэка? Бэк это тупо апи, он они про какую статику знать не должен и вообще может хоститься на другом урле.
>И привет nginx в докере. Во-первых в чем проблема nginx в докере? Во-вторых, как я уже написал, есть куча сервисов которые сами все развернут без докера и даже фоллбек на index.html сделают.
>>1581887 Так твой JS-бандл и index.html и есть статика. Это просто файлы, они не меняются. Хости их на Github Pages и все. В доке CRA даже целый раздел про это есть.
>А если я просто хочу отдельные компоненты на реакт вставлять в свои классические шаблоны отдающиеся с сервера? То билди бандл в папку со статикой и подгружай JS в своих шаблонах. Но это наркомания какая-то, React сам по себе прекрасный шаблонизатор.
>>1581908 >>Так твой JS-бандл и index.html и есть статика. Это просто файлы, они не меняются И зачем мне этот отдельный сервер тогда? Я и своим отдать могу.У меня целая нода с кучей АПИ. В чем сакральный смысл отдельного сервера статики? Непонимат. Видимо слишком дохуя инфы за день.
Короче буду пока как в доке указано - пилить небольшие компоненты на реакт для своих обычных шаблонов, пока просветление не придет.
>>1581906 Есть у нас юзеры. У юзеров есть например аватарки. Они хранятся либо на бэк сервере, либо на удаленном файловом хранилище, но речь сейчас не про него. К файлам бэк должен иметь прямой доступ, а отдавать через ноду не комильфо, поэтому статику относящуюся к бэку отдаем nginx. На самом деле все решается очень просто. Если работаем на одном домене, точкой входа для всего у нас является nginx - он проксирует все запросы куда нужно. Uri начинающиеся с /api через proxy_pass отправляем на бэк, /static - в папку статик-файлов бэка, все остальное идет на фронт и отдаст index.html, который подтянет скрипты/стили и отрендерит твое react/vue/angular приложение, которое в зависимости от текущего url отрендерит нужные компоненты и подтянет нужные данные с бэка и дотянет если нужно какую нибудь статику, не относящуюся к приложению (те же самые аватарки) А докер позволяет просто не ебаться с настройкой сервера, в заранее у тебя на компьютере все сконфигурировать, а потом просто на боевом сервер просто запустить собранный контейнер.
>>1581933 >К файлам бэк должен иметь прямой доступ Это неверно. Бэк должен хранить только урлы, сами файлы лучше держать на S3, например.
Остальное в целом верно, но я не понимаю почему ты мне это рассказываешь.
Мой посыл в том, что фронт и бэк это совершенно разные сервисы, которые ничего друг про друга знать не должны и уж тем более файлы фронта не должны лежать в контейнере бэка.
>>1581925 Потому что фронты и бэк это два разных независимых друг от друга приложения и хранить их вместе немного странно. Если они у тебя уже связаны — ну штош, отдавай нодой тогда.
>>1581937 Ну ты прав и да, я немного лукавлю. Контейнеры для бэка, фронта являются отдельными, иногда рядом еще контейнер с прокси, который клеит все вместе через docker-compose. В контейнере должен лежать только исполняемый код, все остальное (файлы пользователей, бд) вне контейнера. Бэк лишь обрабатывает и отправляет полученные файлы куда надо и записывает информацию о том, где их потом искать. По поводу s3, у нас например, необходимость хранить информацию на собственном сервере для соблюдения закона о защите персональных данных, поэтому все хранится рядом. Хотя скоро придется искать облачное хранилище под все это у какого нибудь мейла/яндекса. А рассказываю я это просто так, чтобы чувак выше может что-то для себя новое узнал.
>>1581954 >вот что удобно: getData() addData({foo:1}) updateData({foo:2}) Ничто тебе не мешает сделать 3 таких эндпоинта, и чтобы у всех был условный POST
>>1581956 Не канон. Эндпоинты не должны по хорошему являться действиями (глаголами). На практике приходится делать такое, но не надо такое делать для работы с данными. getData addData updateData это уже что-то вроде RPC, а не Rest
>>1581965 > PUT/user/1/type/54/name/342342 Обновить объект name c id 342342, который принадлежит type с id 54, пользователя с id 1. Мы видим что от чего зависит. Если ты можешь выкинуть какую то часть, то она и не нужно вовсе. Если у тебя у name уникальный ключ на всю систему, то можешь просто сделать эндпоинд вида /name/342342 Например у нас есть Компании (id уникальный на всю систему), у которых есть тикеты (номер уникальный внутри компании), а у тикетов есть отчеты (номер уникальный внутри компании). Чтобы получить отчет то будет такой url: /company/1/tickets/100/report/100500 Но поскольку у нас уникальный номер отчета внутри компании, мы можем начать строить url от компании: /company/1/report/100500 Единственное, что мы теряем тут, это понимание того, что отчет относится к тикетам. Если у нас есть отчеты к другим сущностям (к каким нибудь task, events) и они являются разными по своей структуре, то тогда нужна полная вложенность.
>>1582068 Могу подтвердить, спрашивают и про this и как его проебать, и про bind call apply, и про bind.bind.bind, а также partial application через bind, и про strict mode иногда тоже
>>1581376 >>1582068 >>1582084 Ну тогда расскажите об этом, а мы почитаем. Не копипастом на джслёрн, а своими словами, как на собеседовании бы и ответили. А то выглядит как "я знаю об этом, но тебе не расскажу, мучайся и страдай сам, я здесь только чтоб потешить какой я умный"
>>1582090 Так тред то и создан для того чтоб джс в нем обсуждать. Я не говорю что мне кто-то должен, мне действительно интересно, как просто и лаконично об этом бы рассказали люди с опытом
Пидорасы, но есть ещё большие пидорасы – мобильщики сидящие на том же бэкенде. Они почему-то не могут у себя парсить и нормализовать данные и постоянно ноют что приходит число, а надо строку, у них ТИПИЗАЦИЯ и ОНИ НЕ МОГУТ у себя ничего сделать, бэк должен под них подстраиваться. Сука, и ведь подстраивается, а потом и мы транспорт переписываем.
>>1582088 Rule of thumb: в sloppy при байнде значений nullable типов this ссылается на глобал/window, а в стрикте - принимает значение как есть; в sloppy при байнде примитивных значений this ссылается на boxed вариант переданного значения, в стрикте "как есть".
>>1582108 На самом деле тут мы в такой жопе а не мобильщики. Наш фронт тоже проходит через ещё более анальный аналог аппстора-гуглмаркета, ещё более тормозной и ебанутый. Проталкивать новую версию месяц – рутинное явление, а пользователи обновляться ещё полгода будут.
Кто в индустрии SPA? На сколько сейчас SPA стали трендом? Обычные классические MPA уже вообще никому не нужны и не интересны, все заказывают себе SPAшки, перекатываются на них?
Там есть блок в котором нужно локально babel установить, и выполнить команду "npx babel --watch src --out-dir . --presets react-app/prod" - это работает, но только когда папка src в корне, и преобразованные файлы из src кидает в корень сайта. А как в этой команде сделать так что бы готовый файл кидало в public/js/?
Опять выхожу на связь и борюсь с TypeScript. Сейчас использую redux-auth-wrapper, по примеру из документации обернул компонет, и все время получаю ошибку Type '{}' is missing the following properties from type 'Readonly<Readonly<InjectedAuthProps>>': isAuthenticated, isAuthenticatingts (2739) см. пикрил
Какие бы подсказанные типы не подставлял - ошибка, и только с any работает. Что вообще хочет этот TypeScript?
1) Планирую стать фронтенд макакой. Друг сказал что лучше всего для начала изучить хтмл и цсс хотя бы на базовом уровне. Посоветовал для начала вкатиться сюда вот https://htmlacademy.ru/ и купить базовый курс за 300 рубчинских и двинуться дальше. Вопрос: это лучший из возможных ресурсов для обучения верстке или есть что то предпочтительнее? 2) По поводу значимости вышки мне так ничего и не ясно. В процессе получения вышка по технической специальности, инженер в области нефти и газа но я так понимаю это полная хуйня и работодатель надо мной только посмеется? понимаю вопросы тут обсосались уже не раз и не два и не три, но не задать его я не могу :)
>>1582281 Мертвая ниша где твое трудоустройство целиком и полностью зависит от наличия родственных связей. Работа предполагает нахождение в говне и моче по колено первый год, а потом итровцем нужно делать то же самое, только лопатой уже махать не приходится. А еще в любой момент даже мастера с зп в 120к это в моих пердях то могут отправить на УЧЕНИЯ ПО ЛОКАЛИЗАЦИИ АВАРИЙ и он будет пару дней кормить жопой комаров и срать в кустах.
>>1582219 > Но в сообщении же написано что он от тебя хочет Ну я понимаю, если я указываю const AccountLink: React.ComponentClass<InjectedAuthProps, any> то TypeScript хочет вместо <AccountLink />, чтобы я писал <AccountLink isAuthenticated={true} />
однако, если вместо InjectedAuthProps ставить any, то пакедж redux-auth-wrapper и так передает значения в эти пропсы, для этого он и нужен
Вопрос только, как правильно все указать, чтобы не оставлять тип any
>>1582311 > Нельзя. Исходники трогать запрещено законами физики. Тогда форкнуть и исправить :) Вообще я хуею: чел написал пакедж на тайпскрипте, а использование этого пакеджа на тайпскрипте превращается в придумывание костылей
Как искать выбивать ЗП, если не уверен в себе? Опыт 3 месяца, сижу на 2 годичном легаси говне, редакс + реакт, все делаю без проблем, получаю 70, вертки нет Тип который был до меня, съебался в другую фирму за 200к, а блять за ним дохуя кода поправляю, он писал как уебок, чувствую себя недооцененным, но с другой стороны опыта у меня пока нет. До чистого фронта был фриланс на пхп и чистый гитхаб
>>1581963 >можно юзать один POST и радоваться жизни > >POST getUser({id:1}) >POST getUsers() >POST deleteUser({id:1}) >POST updateUser({id:1, data:{foo:1}}) Пиздец.
>>1582410 Так а хули толку, если я поправляю код за 3 летними? Я понимаю, что у меня нет опыта в тонкой настройке вебпака, в написании тестов, в тс, но блять, 3 года в этом говне вариться? Я не долбоеб. Вообще нихуя сложного в реакте нет. Сложное есть в архитектуре, сделать правильные HOC чтобы максимально переиспользовать код. Сейчас в проекте так много копирования, это пиздец бесит. Начал ерланг осваивать в свободное время.
>>1582526 Мне кажется, что-то серьёзное на вебгл разрабатывать ещё рано: со стороны микрософта и эппла время от времени до сих пор раздаются кукареки о небезопасности этой технологии. И в чём-то они правы - прямой доступ к видеокарте для веб-странички как-то слишком. Так что будет обидно, если ты вложишься в проект на вебгл, а производители браузеров его возьмут и отключат по умолчанию, как когда-то случилось с ламповыми java-апплетами.
>>1582563 Я не говорю о проектах, прям основанных на webgl, хотя бы просто рюшечки. Фоны, прогрессбары, реакция на мыш — такое всякое. Это ж копейки, не?
>>1582567 Я не знаю, как сейчас, но раньше (лет пять назад) само наличие вебгл'а на странице заставляло мой браузер на секунду ЗАДУМАТЬСЯ. В общем, это тяжёлая херь, а не 2д-канвас, который загружается со скоростью дива.
>>1582570 Так ДАААА, даже такая хуёвина может считать очень-очень быстро, и современный въэбдев вообще это никак не использует. И я уж не говорю о мамкиных майнерах, накупивших всяких 2080TI, которые тоже есть ЦА для некоторых сервисов. Стриминговых, например.
Проблема только в творческом. Придумать, как это использовать, и дизайнеры тут не помогут, они слишком тупые. Фронтендеры должны стремиться к creative developменту, и рассказывать лиду, что вона ещё как можно.
>>1582593 Бизнесу эти свистоперделки нафиг не нужны. Бизнесу нужно, чтобы работало на телефонах и на всех браузерах, а это ты сделать заебешься. К тому же есть вебассемблай, где подобное тоже можно нарендерить, и скорее всего эффективнее будет за счет низкоуровневых языков.
>>1582465 Просто класс сервис, в котором некоторые кейсы уже забиты, например прием блоб файла, заголовки для него и тп По сути это надо было, чтобы обрабатывать ошибки в одном месте, а у себя в компонентах логику ошибок уже не трогать.
>>1582288 Олушок, функция внутри visibleonlyforauthenticated - react-компонент. Hoc пытается в него передать свойства, а ты их игнорируешь, на что тебе тайпскрипт и указал
>>1582593 Проблема в том что сейчас главный приоритет это чтоб твой сайт удобно работал на любом мобильном говне. А эти ваши вебгл-рюшечки отсекают добрую половину пользователей.
Есть проблема, с которой давно борюсь а толку ноль - в конкретном репозитории не работает автодополнение в visual studio code. Не работает оно в каждой папке, в которую я устанавливаю редакс. При запуске vs можно одну строку успеть написать с автодополнением, но потом оно отключается, более того перестает работать во всех папках. Если я переключу язык редактора на другой, кроме жс или его + реакт - всё работает. Если взять и удалить папку node_modules - всё работает, ведь редакс перестает шкварить репозиторий. Гугл никакой помощи не предоставил, похожих проблем я не нашел. Jsconfig.json не помогает. Отключал все расширения - не помогает. Переустанавливал vs полностью - не помогает. Еще и винду недавно обновил - толку ноль. Это что, только у меня такая проблема? Вы можете создать реакт проект с редаксом и у вас всё работает? Почему у меня не работает? Возможно и вероятно, что я криворукий ублюдок - но почему только у меня такая проблема? Есть идеи решения, кроме как переход на другой редактор кода как будто там всё заработает
надо знать что есть в языке что бы решать задачи. в JS много легаси подходов, которые проповедуют в курсах. выучишь их - и будешь писать так в 2020. сложно переучится будет, так что нужен годный курс.
Господа, а скажите,поясните по пакету myslq для ноды: в доке такие слова: 1.Каждый метод, который вы вызываете для соединения, ставится в очередь и выполняется по порядку.
Это значит что запрос к бд синхронен? Ниже следующий запрос блокирует I/O ?
connection.connect();
connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) { if (error) throw error; console.log('The solution is: ', results[0].solution); });
>>1582878 Тогда как программисты играют в шахматы, жопаскриптеры играют в доту и с, неконтролируемо стекающей слюной у рта, твердят, что это шахматы 21-го века.
>>1582885 Это не стереотипы, а реальность. Программист должен постоянно развиваться, даже играя. Днём ты пишешь код за зарплату, к концу дня ты читаешь книги по программированию, освежаешь знания по алгоритмам и различным паттернам. А вечером ты отдыхаешь, играя в шахматы, развивая пространственное и алгоритмическое мышление.
>>1582896 Проиграл. У тебя синдром маня-илитки. Щас в ойти кто только не въезжает, грузчики вчерашние блядь. Сейчас программирование на 90% это ремесло. Единственное что есть - порог входа высокий, и порог не по isq, а тупо по вьебу в это дерьмо времени
>>1582904 Так это не программисты, а чернь - жопаскриптеры или просто жулики, которые не проходят дальше испытательного срока. Такие еще любят говорить, что математика не нужна, потом находят сумму чисел от 1 до n в цикле, лол.
Сидеть после работы и ботанить - это дурь для 20-28 летних, у которых гормоны бурлят в крови и им нужно куда-то выплеснуть энергию. Кто-то готов стены ебать. Кто-то за вечер по книжке прочитывает. У кого куда энергия утилизируется.
После работы нормальный программист занимается своей семьёй, уделяет внимание жене, уделяет внимание ребёнку, уделяет внимание бытовым проблемам, уделяет внимание 1-2 своим небольшим хобби. У кого-то это может быть опенсурс проектик. У кого-то спорт. У кого-то творчество. Хреново, на самом деле, если человек очень сильно зациклен, я считаю что программисту лучше всего иметь хобби не связанное с программированием.
Учится и прокачивает скилы программист на работе. Для этого фирма его отправляет за счет фирмы учится, за счет фирмы на конференции, за счет фирмы покупает ему курсы-хуюрсы.
Очень жалко, если в вашей фирме этого нет. Лично по моему опыту и опыту моих родителей инженеров, даже последний ИП-шник и то всё время шлёт своих сотрудников в поездки и командировки учится, узнавать новое, чтобы внедрять полученные знания на работе.
А если ты будешь дома читать алгоритмы вместо жены, ребёнка и бытовухи, то просрёшь свою личную жизнь и словишь такой дипресняк, такие проблемы и такой пиздец, что твоя производительность труда не просто снизится, ты можешь вообще поехать крышей или спиться. Это происходит сплошь и рядом.
>>1582926 >А если ты будешь дома читать алгоритмы вместо жены, ребёнка и бытовухи, то просрёшь свою личную жизнь Так алгоритмы дома читают именно потому, что личной жизни нет и не предвидится, лол. А потом, да, депрессия, запой, увольнение и самовыпил.
>>1582955 Какие тут абстракции? Всё сугубо практично: в институте учился и не успел отхватить няшу-стесняшу. Теперь тебе под 30, на тебя смотрят только 25+ б/у тёлки. Всё, любви в этой жизни уже не будет, лучше изучить фреймворк.
Любовь отнимается у человека не от возраста, а от тяжести грехов, которыми он нагрузил свою душу. Можно стараться жить праведно и если преуспеть в этом, Бог может восстановить то чувство любви, которое человек потерял. Так что если Бог есть, то не всё потеряно.
>>1582960 Ты тупо рефлексируешь что в детстве эмоции были ярче. Я конечно несправедливо обобщаю, но любой здравомыслящий человек поинмает что пустые эмоции без рациональной основы, насколько бы их много не было, не имеют никакой ценности.
Это всё очень субъективно, потому изначально я и не ныл что в посте написана чушь. Наоборот, я просто сказал что в посте написана очень скудная, то есть очень простая и легко достигаемая абстракция.
>>1582971 > ь очень простая и легко достигаемая абстракция. Типа, чувак, найти нормальную бабу в 30 можно, это блять совершенно легко, нужно просто не ныть на говнофорумах, а стараться. А вот построить ебаную ракету на марс уже не так просто.
Что использовать для просмотра того как сайт выглядит на мобилках? Гугл какое-то помойное говно. Во-первых: я выбираю телефон 360х720 - он мне рисует какую-то хуйню. Во-вторых: например, шрифт 16px на пк и мобиле выглядит одинакого, но гугл не эмулирует экран мобилки, а просто ограничивает размер окна, поэтому шрифт в 16px занимает все место.
Аноны, извините что немного не по теме. При клике на данный объект должно открываться окно загрузки файла. Следовательно, это должен быть label. Проблема в том, что у него есть тень вокруг и внутренний отступ от неё(эффект жирной рамки). При наведении должно затемняться изображение внутри. Как это можно сделать? Пробовал через img внутри и ::after с тёмным фоном для него, но не помогло.
>>1583099 ? Я вообще не кодер, но хотел бы написать тулзу для одной игрушки и подучить джс. И знаю что у вас всё кодят на электроне, когда я последний раз смотрел году там в 2018. А сейчас что?
>>1582926 На самом деле личная и социальная жизнь пиздец как важна. У меня кент есть, и достаточно успешен, и социоблядь та еще. Брат его старший тоже человек - петросян, бывший квнщик, и бабло пожирнее смузи-сеньора рубит. Я им, будучи титаном-одиночества по доброму заидую. У них есть и работа, и семьи/дети, и социальная движуха.
ОХУЕТЬ!!! Решил проблему незаливающегося проекта на гитхаб пагес тем что поменял путь к файлу с "/хуй" на "хуй". КАКОГО ХУЯ ЭТО НЕ РАВНОЦЕННО??? И как тогда в процессе работы указывать пути к файлу???
>>1583162 В человеческом мире "/" означает самую корневую директорию. Если ты хочешь от текущей папки указывать, то надо через "./". А вообще, поизучай человеческие ОС, много узнаешь полезного, в том числе и для веб разработки.
>>1583164 Помогло, спасибо все равно ебаный сборщик выводит их через "/". А хули там изучать, игор нет, чтобы открыть папку без проблем нужно открывать гугл
>>1583213 > Показывает нужду и ухудшает позицию на переговорах. Не делай так. Ну это же шутка... > Алсо, не надо коммитить в проект .vscode Случайно туда попал > открывать ссылки через window.open А как? > Ну и без мобильной версии как-то уж совсем позорно в 2к20. А что у тебя за телефон? У меня в файрфоксе на всех работало.
>>1583216 >Ну это же шутка... Подозреваю, что нет.
>А как? <a>
>А что у тебя за телефон? У меня в файрфоксе на всех работало. Это сафари. Ты молодец, конечно, поставил брейкпоинт на 400 и все. А на 401 верстка по пизде идет. Сайт должен хорошо выглядеть на любых разрешениях, а не только на в каком-то определенном промежутке.
Алсо, если уменьшить высоту окна, то эффект тоже веселый.
>>1583224 > Подозреваю, что нет. ) > поставил брейкпоинт на 400 и все. А на 401 верстка по пизде идет. Нужно увеличить до 401 или есть нормальные способы? Я по другому не умею...
>>1582676 > Олушок, функция внутри visibleonlyforauthenticated - react-компонент. Hoc пытается в него передать свойства, а ты их игнорируешь, на что тебе тайпскрипт и указал Так в том-то и дело, что эти два свойства не нужно вручную задавать, этим занимается redux-auth-wrapper. Если я явно укажу isAuthenticated={true} и передам в компонент, то смысла в redux-auth-wrapper нет
Аноны, смотрю чужой мувисерчер, чтобы осознать для себя некоторые вещи, но ей богу не понимаю : Почему он прокидывает эту функцию в пропсы и из пропсов её запускает? Почему нельзя было просто её заимпортить и сразу же вызывать? Возможно у меня вмятина вместо головы и если я не прав, то опишите как можно проще.
Почему в Реакте необходимо изменять стейт через setState? Из-за того, что прямое изменение ломает работу реакта или из-за того, что реакт не рендерит элемент, в котором используется стейт?
Я прочитал на хабре, что Реакт нужен только если у вас супер динамичный сайт, нужны состояния, все меняется, переливается и вообще если вы написали скоростной фэйсбук. А в ином случае Реакт не нужен.
А что использовать для маленьких малюсеньких сайтов? Жиквери? Или на чистом жс херачить? Или в бутстрапе есть готовые жс-ные заготовки?
>>1583455 Сейчас все потихоньку стремится к супер динамичности. Это неизбежно. Да были и остаются маленькие сайты и их делают на один раз без поддержки, но годы идут.
>>1583455 А чем реакт плох для просто так? Полдня потеребил доку - и хуяк ты пишешь простые , но удобные компоненты. Заебись, мне нравится. Две эти либы весят хуй да нихуя. >>Или на чистом жс херачить? При сложной логике на чистом JS даже с классами какие то лютые портянки получаются.
В фэйсбуке внезапно не SPA, у них вообще вроде шаблоны php отдает. Так что задрочи нативный JS и причащайся к реакт.
>>1583483 > Полдня потеребил доку > Ещё полдня на доку по бабелю, вебпаку > Ещё день на редакс, рх-мобх-хуех > Три дня на тайпскрипт > и хуяк ты пишешь простые , но удобные компоненты Когда говорят реакт никогда не имеют в виду реакт (jsx шаблонизатор, виртуалдом и хуки), за кадром всегда стоит целая религия с сектами однопоточной направленности данных, декларативности и кучи других парадигм (все единственно верные).
>>1582848 В общем решил проблему - там расширение typescript nightly что-то такое одно надо установить и всё магическим образом начинает работать. Оказалось, что это свежая проблема и в реакте и в вуе хрен ли у вас её не было? Все ж мувик делают
>>1583455 Напомню, что Реакт это не только хороший фреймворк, но и неплохой шаблонизатор. Так что при помощи некста или гетсби на нем и статику довольно удобно собирать.
>>1583786 Я хуй знает как щас вкатываться с ноля, тем более во фронтред-жс. Был недавно в одной организации. У них ваканасия на JS. Я вообще бек на пхп пишу, а у них там nodaи реакт, я ею интересуюсь. Тестовое - написать что то типа мини блога - создаешь статью с текстом и картинкой, и эта статья сразу отображается в блоге. Морда- на рекат, бекендбек естественно тоже относится к тестовому нода + экспреес, база любая, ну и обязательная ORM. С бэком у меня в сущности не возникло проблем. А вот реакт пришлось поизучать. Так что нубарей со знанием нативного JS если и берут - то тупо по удаче.
Бомбит от этих ваших "рынок перегрет". Индустрии нужно переписать всё то многостраничное легаси говно, которое было написано за последние 10 лет на SPA стек, информатизировать все отрасли, а потом всё это поддерживать или перепиливать на ещё что-нибудь. Чё там у вас перегрето? Программистов жестко не хватает, чтобы всё это закодить. У нас на Госуслугах и в Сбербанке формы ФОРМЫ ФОРМЫ КАРЛ криво работают, а вы говорите что рынок перегрет. Да тут работы ояебу сколько. В 2к20 до сих пор нормально не работает квартплата через интернет. А они говорят что рынок перегрет, ну охуеть теперь.
>>1583897 Вкатывальщик, ты крышей ебанулся? >>Индустрии нужно переписать Какой блядь индустрии? Есть бизнес, есть дяди/тети которым им владеют. Нужно будет бизнесу - все будут хуярить на пхп 4-й версии вообще без JS. На SPA он все блядь собрался перености. А Фэйсбук чет на SPA не переезжает, и реакт юзает как либу для компонентов. Я хуею с кукаретников.
>>1583965 >>Потому что фейсбук - это как одноклассники Фэйсбук создали реакт жи. >>Бизнесу нужно удобное, современное и прибыльное. Ах лол, проиграл с теоретика. Представляю как ты решаешь за дядю, который без твоих откровений сумел таки уже заработать на какой нибудь S-класс с черной икрой. Конечно он метнется все на SPA пиреписывать.
В реакт приложении(пишу, используя хуки) есть компонент List который рендерит детей - Form и Item. Через форму мы добавляем Итем в Лист, и сейчас я хочу сделать редактирование - тыкнуть мышкой на один из итемов, данные из него вставятся в форму, мы их как-то изменим в форме, нажем добавить, но вместо добавления новой записи, изменится выбранная. Апи уже написано, осталось сделать логику во фронте.
Как мне расширить использование формы добавления до редактирования? Пока что мысли такие: при клике на итем, у нас переменная forUpdate в List компоненте меняется на тру,(по дефолту стоит фолз). Далее мы должны как-то передать измененное значение переменной компоненту Форм(но ведь он при инициализации получил уже true?) . Нагуглил componentWillRecieveProps, но не могу понять как реализовать это с хуками. Хелп плиз
>>Если он увидит что индустрия движется в эту сторону... Зашел я на офф. сайт корпораци Xerox, вижу классическое меню, футер и всю хуйню. Теперь расскажи зачем им SPA? Или Xerox не корпорация? >>1584022 Ну разве что в хипстерсих маня мечтах.
Это просто когнитивное искажение, если что то ценишь - считаешь что и другие обязательно будут это ценить. Самые тупые к критике просто не готовы.
Реакт в больших приложениях будут использовать несомненно. Но вот перетаскивать на SPA? Нахуя?
Сам я только вкатываюсь в реакт. На сколько я уже понял, потомок родителю ничего не должен передавать на прямую. Потомок должен вызвать обработчик события, при этом этот обработчик должен быть методом родителя. Таким образом в родителя попадут данные от потомка - через аргумент переданный в обработчик события.
>>1584063 Да, уже смог сделать. А теперь мне надо через пропсы как-то передать эти данные другому потомку. Типа у нас было так:
let dataForUpdate = {}; <Form data={dataForUpdate} />
Потом мы нажали на кнопку, данные записались в dataForUpdate, и теперь в Form, нам нужно как-бы заново получить значение этих пропсов. А у меня пока что только старые пропсы с пустым объектом.
Аноны, поясните мне за одну деталь в Реакте. Когда делаем классовую компоненту, то мы стейт можем просто объявить, а можем это сделать в конструкторе. В чём разница между этими подходами? Как делать правильнее?
>>1584032 >Зашел я на офф. сайт корпораци Xerox, вижу классическое меню, футер и всю хуйню. Теперь расскажи зачем им SPA? Или Xerox не корпорация? > Ты еблан? Что такое СПА? На СПА не может быть футера и хэдера?
>>1584079 Перенес в стейт. Теперь при нажатии на кнопку, у нас данные записываются в стейт родителя, но в потомке пропсы(которые берутся из этого стейта) - остаются прежними.
Первые 2 строки - стейт и пропсы компонента Form во время инициализации. Следующие 2 - измененный стейт родителя и неизмененные пропсы потомка. Как сделать чтоб пропсы тоже менялись?
>>1584029 >Далее мы должны как-то передать измененное значение переменной компоненту Форм(но ведь он при инициализации получил уже true?) Через пропсы? В чем конкретно проблема?
>>1584173 А можешь куда-нибудь код залить? по идее при изменении стейта у тебя должен перерендериться родительский компонент и соответственно новые пропсы передадутся потомку.
>>1584177 Просто удали эту строку и используй переданные пропсы. Зачем создавать на их основе какой-то новый стейт? Разумеется, пропсы попадают туда в качестве дефолтного значения только в первый раз и потом не обновляются.
>>1584182 >>1584178 Да уж, хз зачем я в потомке стейт делал на основе пропсов, убрал и все ок стало. Вот что значит 15 часов подряд 3 дня из кода не вылезать.
>>1584650 Ты блять программист или кто? Если программизд, то с такой хуйней как роскомпараша справишься. Хрр тьфу.
А теперь вопрос: у меня сервер в какой то момент хуйню шлет вместо джсона, поймать её нереально но есть один трюк и мне нужно понять: SyntaxError: Unexpected token : in JSON at position 3 Третья позиция это как у нормальных людей с нуля или с единицы?
Почему не обновляется стейт? Мне нужно чекнуть, есть ли в стейте незаполненные поля, и если есть, записать в них предыдущие значения из props.dataForEdit. Делаю копию стейта, пробегаюсь по ней, дозаполняю пустые свойства, вызываю setConsumerData(data); но после этого стейт не меняется (остаются пустые свойства, как и были)
Спасибо, что-то не хочется слать свой трафик через VPN дяди, который весь его дампит себе на диски и парсит
> Он же зойшифрован
Зашифрован программой от того же самого дяди
> У меня же https
Ну да, на 1000 сайтах у тебя https, а на 1001-ом пидорас программист передал данные по http и ты въебал свой пароль или другие данные
Да это и не нужно, потому что программа дяди просто пиздит у тебя прямо с диска\из памяти твой закрытый ключ и весь твой https идет по пизде, ты же не дампишь весь её трафик и не анализируешь его и у неё не открытые исходники
Как правильно переопределять методы, которые наследуются от родителя? Вот допустим у меня есть класс Animal со свойством name и методом info(), который просто в консоль этот name выходит. Я делаю класс Dog, который наследуется от Animal и имеет своё свойства breed. Я хочу сделать так, чтобы info() у Dog выводил name и breed. Самый очевидный вариант, это просто переопределить info() у Dog так, как мне нужно. Но по факту мне просто слегка нужно изменить изначальный код. Можно ли как-то с помощью super.method() изменить внутренний код?
>>1584929 Так ведь тогда произойдёт вызов родительского метода, а я именно хочу изменить его работу. Вот например вот здесь: https://jsfiddle.net/efp8mkbq/ У меня метод start в ExtendedClock отличается от start в Clock только тем, что там settimeout принимает параметр. Вот если я хочу поменять только эту строчку, то изменить её через super никак нельзя?
>>1585055 Я в песочнице там ебусь, поэтому не могу увидеть ничего кроме ошибки парсинга. Сейчас просто смотрю все в текстовом режиме и ищу тот самый обосрамс, а мне памяти нехватает в полмегабайта.
>>1584084 просто раньше нельзя было вроде как без конструктора. он то и сейчас вызывается при создании экземпляра класса, но неявно. такая же хуйня как и с биндом методов.
А вообще в 99% случаев хватит и функционального компонента с хуками так что смотри в эту сторону
>>1583443 эта функция - экшн. просто объект с полями type и payload или типа того. попробуй у себя в коде вызвать экшн который ты заимпортил. емнип обвалится с ошибкой типо expression is not callable
Можно в реакт+редакс сделать фетч по загрузке страницы, а не на каждый рендер? Можно ли вынести функцию которая вызывает диспатч в отдельный файл и передавать диспатч в качестве аргумента?
Заебали, каждый второй пост про Реакт. При том что он в 90% случаев нахуй не нужен. Одни долбоебы следующие как стадо за модой. Пора уже тред переименовывать, раз нормальных людей не осталось.
>>1585385 Доля постов про реакт говорит лишь о том, что по реакту возникает больше вопросов, чем по ванилле, но не о том, что реакт используется в каждом втором проекте.
>>1585384 >Можно в реакт+редакс сделать фетч по загрузке страницы, а не на каждый рендер? Вообще-то НУЖНО, render должен быть чистой функцией, а для сайд-эффектов есть хуки.
>Можно ли вынести функцию которая вызывает диспатч в отдельный файл и передавать диспатч в качестве аргумента? Што? Зачем? Диспатч вообще не нужно трогать, пусть редакс сам к нему все биндит.
>>1585401 Ну вот юзэффект вызывается на каждый рендер, юзстейт вызывает рендер при смене состояния. Мне нужно типо window.onload получить один раз информацию и записать в состояние её. Выносить в отдельный файл эту функцию я хочу потому что вне компонента window.onload работает, но тогда я не могу получить доступ к состоянию компонента.
>>1585413 >Ну вот юзэффект вызывается на каждый рендер Ну ебать, ты документацию-то почитай. Или Реакт юзаешь по принципу «пробуй все комбинации разной хуйни пока что-то не сработает»?
>Выносить в отдельный файл эту функцию я хочу потому что вне компонента window.onload работает, но тогда я не могу получить доступ к состоянию компонента. Ты ерундой какой-то занимаешься.
>>1585446 Да нахуй мне тебе демку кидать, если ты по скринам нихуя не понял, инвалид. Я домой пришел, сейчас буду смотреть гайды от нормальных людей на ютубе
Аноны, хочу записаться на Яндекс Практикум Веб Разработка. Отрицательных отзывов не смог нагуглить, но смог найти куча негатива по Geekbrains. Собственно, есть тут кто-нибудь кто знает об этом. Иду туда не с нулевыми знаниями. Есть базовые знания Питона, JS, CSS и немного React + Redux, но и среди всего этого есть свои пробелы + порой некому задать вопрос. И я понимаю, что чудес не бывает и чтобы трудоустроиться нужно приложить много усилий.
>>1585798 Да, не умеет. В JS культ асинхронщины, поэтому нет более изящного решения, чем это: function f(i) { console.log(i); setTimeout(f, 100, i + 1); } setTimeout(f, 100, 0);
>>1585817 Ну чет как то совсем печально выходит. Притом это примитивный пример. А в реале я не представляю как весь пиздец в функции с таймаутами пихать.
>>1585820 Ну я тип обрадывался, что в твоем примере основной код не надо в функцию пихать, а по итогу он от меня все равно требует пихать. Ну и нахуй тогда оно нужно?
Сука, я сдаюсь - походу действительно придется всю свою гигантскую портянку оборочавать в асинхроную функцию, тупо чтобы эти сраный эвейтиы работали. Это пиздец как тупо выглядит. Если кто увидит - назовет меня ебалаем.
Подумай ещё над архитектурой своей программы. Посмотри как вообще выглядят программы на современном JS в ноде. Программа, грубо говоря, состоит из асинхронных обработчиков всяких событий. И вся логика распихана по ним. Это позволяет нанять 100 макак, дать каждому написать по 1 хендлеру и через 24 часа твой проект будет готов и бабло будет на счете. Смекаешь?
>>1586138 Никто не хочет останавливать код, в том посте ясно поставили задачу - задать определенный интервал после которого выполнение кода продолжится. И функция-генератор не останавливает код, она просто выходит из него с возможностью вернуться.
>>1577313 (OP) столкнулся в ноде с проблемой навигации по коду
в visual studio code есть инструмент "Go to definition" который вызывается через клавишу Ф12, этот инструмент работает до тех пор, если в модуле есть ссылка на другой модуль через require()
проблема в том, что если я например нахожусь в модуле router.js который подгружен например в app.js, я не могу из router.js попасть обратно в app.js
как это решить? это довольно сильно усложняет разработку большого проекта, так как я не могу например просто так из model.js перейти в router.js и затем в app.js - это лишь работает в обратном направлении app.js -> router.js -> model.js
>>1586438 расскажи что спрашивали на собеседовании или может ты делал какое-нибудь тестовое задание (если можешь, то сбрось, перед этим замазав все от деанона).
Было ли у тебя портфолио? Ну и добавь, что-нибудь от себя, если считаешь это нужным.
>>1586727 Базовые свойства неравномерны, от костылей хотя бы практическая польза есть, хоть и кратковременная единственная польза, интересная тырпрайзу. Получается рякт лучше угловика, потому что он хотя бы не говно, а угловик с жыдквери оба лучше вуя, потому что они хотя бы костыльные.
Анончики, я понимаю что это простая задача, но подскажите, я просто даже не знаю что искать
Нужно на JQuery сделать так, чтобы при нажатии на одну из кнопок, к ней добавлялся стайл color:red, а при нажатии на другую, он удалялся и появлялся на нажатой кнопке, пример кода
>>1586834 Во-первых button или btn. Во-вторых флоатами уже никто не пользуется, гугли флексбокс или гриды. В-третьих сделай это на JS. Если ты не понимаешь, как это делается на JS , то не лезь в JQuery.
Гугли document.getElementsByClassName, onClick. Создай отдельный класс ред с бэкраундом рэд и добавляй его в атрибут класс. Добейся, чтобы у тебя бэкграунд главного класса все равно перекрашивался. Прочитай про приоритеты применения стилей. Сможешь сделать это, поймешь как сделать реверс эффект
>>1586904 >Флетбоксы пока не признаю, надёжнее флоаты, пока есть старые браузеры, да и не хочу переписывать весь дизайн Какие? Ты IE9 все еще поддерживаешь?
>>1586541 Был тест на знание жс Тестовое было на создание меню с вложенностью любого уровня и редактированием пунктов меню на лету, по сути обычный круд с рекурсией из за вложенности. Верстку не делал, взял material ui, главное функционал. Опыта не было, портфолио тоже. На собеседованиях спрашивали готов ли жрать говно и копаться в легаси на жиквери, твердо и четко сказал нет, сижу на проектах на реакте, которые уже тоже легаси, за 2 года много чего поменялось.
>>1587394 Не заметил что у тебя *.js пизда тебе, ставь вебшторм, можешь попробовать в jsconfig.json поиграть. Но универсальный совет - используй TS уже, особенно если у тебя большой проект
Аноны, я уже изъебался над JQuery, есть вот такой вот запрос $.getJSON('2ch.json', function() {console.log('хуй соси')}) Этот пидорас 2ch.json отдаёт статус 204, то есть ебучий консоль лог нихуя не выводится, как я понял он выполнится только при успешном запросе 200, как блять заставить выполниться консоль лог, если этот ебучий статус равен 204, .fail() тут нихуя тоже не делает, а .done() и .always() выполняют его при любом статусе, я думал я как самый умный смогу проверить статус таким способом $.getJSON('2ch.json').status Но JQuery послал меня нахуй и в пизду Короче мне надо чтобы при статусе 200 нихуя не было, а при статусе 204 он выполнял консоль лог, подскажите пожалуйста где я объебалсяв JQuery
>>1587513 Ну тогда пиздуй на https://javascript.info/ и учи азы, раз ты не понял. Или ты собрался с каждым пуком в тред бегать и срать в нём своим jquery?
Бывает так, что статус ответа от сервера = 204, из-за чего просто ничего не происходит, как заставить это говно выполнить нужный мне скрипт, если прилетел статус ответа = 204, обязательно только передачей в function( data, textStatus, jqXHR )? Нет способа короче?
Господа, доброго времени суток. Я пришел сюда с очень тупыми вопросами. В общем, учусь сейчас на 2 курсе айти специальности, в универе преподают ссано+срано, поэтому решил заняться самообучением. Покурил сравнение языков и все такое, пришел к выводу, что для меня интереснее всего веб разработка - сайты и веб приложения. Более-менее сносно выучил уже HTML и CSS, вот пару недель назад взялся за JavaScript. Учу по кантору, вроде все норм идет.
Теперь суть проблемы. Чем больше углубляюсь в тему, тем больше начинаю замечать неприятные вещи. Очень многие люди говорят, что веб разработка вроде как считается чуть ли не самым дном программирования, а работают в этой сфере только тупые макаки по крайне низким для программирования в целом зарплатам типа 20-30к. Так ли это? Если я получу вышку и буду знать HTML+CSS+JS+Angular, на какую зп я смогу рассчитывать в дс2? Возможно, мне стоит перекатиться в какой-нибудь другой язык, пока не поздно? Очень волнуюсь из-за всего этого, так как мало пока в теме понимаю, надеюсь, аноны, вы мне ответите. Заранее спасибо.
>>1587811 С этих 20-30к можно вырасти достаточно быстро. Впрочем тебе с корочкой наверно можно будет сразу на полноценного джуна нырять с 50к+. А насчёт зп - чекни дс2 хедхантер по ангуляру и узначешь примерный уровень зп. Но на рякте скорее всего больше вакансий будет.
>>1587813 Как насчет сходить на хх и посмотреть зарплаты ангуляр миддлов и сеньоров? Или для тебя рынок труда считается меньшим авторитетом, чем мнение какие-то рандомных людей?
>>1587816 Спасибо за ответ. Я пока конкретный фреймворк не выбрал, так что, может,буду учить реакт или вью. В любом случае, пока что чистый жс учу. Вырасти можно достаточно быстро, а до каких примерно зарплат? Скажем, я устроился на 30к ну пожалуйста, ну хотя бы 40, отработал год, дальше на что можно претендовать?
>>1587820 >>1587829 Да я и хедхантер, и авито работу, и даже апворк на всякий случай уже вдоль и поперек излазил и представляю, какая там ситуация, НО в том-то и дело, что как-то это расходится с тем, что люди вокруг говорят, поэтому я и пришел сюда, где мне ответит кто-нибудь с реальным опытом нахождения в индустрии.
>>1587824 Ты имеешь в виду, что надо знать дополнительно всякие штуки типа SCSS, webpack, Git, XML и т.д. или что-то другое совершенно? Какой нужен стак фронтендеру, чтобы прилично зарабатывать? Время учиться у меня пока есть, желание тоже.
>>1587883 > дальше на что можно претендовать Зависит от города и компаний в немесли не рассматривать переезд Тебе за одни и те же навыки могут предложить как 30, так и 80, это сложно предугадать. Я пол года проработал за 30 -> надоело работать за копейки -> прыгнул на 50. По наблюдениям за хх, в моей мухосрани ~80 за год опыта на рекате платят
>>1587883 >Скажем, я устроился на 30к ну пожалуйста, ну хотя бы 40, отработал год, дальше на что можно претендовать? Нет таких вакансий. Ты или устраиваешься на 50-80к (в ДС) как перспективный джун который сходу может что-то делать, либо идешь нахуй. Дальше, если ты не овощ, зарплата будет расти где-то на 30к в год. Где-то до 250к. Потом сложнее.
>Какой нужен стак фронтендеру, чтобы прилично зарабатывать? Реакт и окружение.
>например евпопке ФРГ с HTML+CSS+JS+Angula ты больше 2к € мес не прыгнешь Это, кстати, чушь полная, в Германии 18к минималка, а 24к это уровень работника мака. Разработчики получают 60-80 минимум.
>>1587946 А зачем работал за копейки, если сразу мог 50 получать вместо 30? Или это из-за того, что опыта не было?
>>1587947 Ну я не овощ, учу каждый день в свободное время часа по 3-4. Англ знаю заебись. Единственное, что опыта нет и хз, где его получать - на том же хх без опыта предлагают зарплаты типа 25к. Живу в дс2, в дс1 не хочу перекатываться, не нравится город. К реакту присмотрюсь, часто его в требованиях тоже встречал.
Спасибо всем анонам за инфу и мнения. Ещё хочу немного вернуться к своему первоначальному вопросу, то есть, получается так. Вебдев не говно, достойный раздел программирования и по зарплатам не проигрывает (ну или не сильно проигрывает) остальным? Стоит продолжать учить JS и сопутствующие вещи, так как перспектива в этом есть? С вышкой и норм знаниями по теме на 20-30к в дс2 сидеть не придется?
>>1588143 Платят не меньше, работы полно для толковых спецов. И тебе разве не похуй, как к этому относятся псевдоилитарные байтоебы из НИИ в забрызганных супами вязаных свитерах? Ты деньги пришел зарабатывать, вроде как.
>>1588143 Да хуйня из-под коня твой вебдев. Веб макаки среди программистов это мусор лоу уровня и зарплаты у них соответствующие. 40к твой потолок будет, 50 с вышкой лол. Лучше забей на это говно и дрочи математику и прогай архитектуры. Студентота блять.
>>1588151 Мне на отношение к этому кого-либо наплевать, я действительно хочу зарабатывать и готов работать. Просто я сюда потому и написал, что начал волноваться, из-за того, что много от кого слышу, что денег в этой сфере уже нет. Но вы меня успокоили, спасибо.
Хотя вот пример того, что я часто слышу, прямо золотой пример, пиздец: >>1588153
>>1588143 >Вебдев не говно, достойный раздел программирования и по зарплатам не проигрывает (ну или не сильно проигрывает) остальным? Всё современное программированние - сорта говна. За фронтэнд просто платят лучше.
>>1588448 > Всё современное программированние - сорта говна А старинное? Когда писали процедурные простыни кода, гвоздями прибитые к одной архитектуре?
>>1588157 >много от кого слышу, что денег в этой сфере уже нет. Это скорее всего байтоёбы пиздят, ковыряясь в каком-нибудь 1с говне или прочем вендор-локе. Деньги в сферу привозят заморские бояре, а местные кабанчики продают рабов местных этим боярам. Так что деньги закончатся только если Федеральный Резерв полностью наебнётся. У тебя проблем не будет с первой работой, так как профильная вышка и студент - любимая комба для хрюш. Впрочем маразма в виде собеседований не убавится, так что не сильно расстраивайся если первые собесы будут кринжовыми. Главное вышку не дропай, а когда выйдешь на зп мидла - подумывай, как завести трактор.
>>1588459 Зп мидла - это начиная с какой по дс2? А трактор да, хотелось бы, к тому же ангельский уже знаю норм. В Канаду куда-нибудь... Но это мечты, я слабо верю, что смогу свалить заграницу.
>>1588637 >Тогда как на jq выбрать первый элемент из всех дочерних? Сука блядь мудака ебаный, не используй jq для обозначения jQuery, jq это консольная программа для парсинга JSON.
Двачик, привет, я js-react самоучка, собираюсь в ближайшее время начинать ходить на собеседования, чтобы устроится frontend/react junior'ом, нужны идеи сайтов для портфолио. Уже сделал сайт с прогнозом погоды, какой-то Todo-app и сверстал какой-то рандомный макет. Что добавить, чтобы совсем зелёным не выглядеть на собеседовании?. И реквестирую анонов которые недавно устраивались по моему направлению, как оно там?
Объясните идиоту, почему этот код работает правильно? https://jsfiddle.net/zjqe0f7c/ Почему у нас head правильно запоминает и отслеживает все изменения, если мы постоянно меняем dummy? Я понимаю, что делает алгоритм, но не понимаю, почему на ЖС он работает именно в таком виде.
>>1588726 я в школе ебланил, хуёво сдал экзамены, а идти на какую-то компьютерную безопасность, или смежные специальности не хотелось. Пошёл в шарагу на поит
>>1588702 Я не знаю, как выбрать 1 див. Чтобы узнать — надо сделать console.log($('.test div')[0]) и посмотреть, что там есть. Если ничего нет, значит надо сделать console.log($('.test div')) и посмотреть, что там есть.
>>1588668 >И реквестирую анонов которые недавно устраивались по моему направлению, как оно там? Сам из ДС, сейчас рассылаю резюме почти на всё подряд. Ни разу даже на собес не позвали. Видимо что-то не так с портфолио, что не зовут. Мб есть гайды по тому, как правильно их оформить?
>>1588733 Потому что в переменную сохраняется ссылка на объект. Представь, что объект это коробка. Тогда переменная будет только ярлык на этой коробке. let label = {isBox: true} При первых присвоениях там на первой коробке висят два ярлыка. Дальше внутри цикла ярлык dummy пошли переклеивать на другие коробки (объкты). Это никак не влияет на первую коробку и на оставшийся head на ней.
>>1588732 Например, 70% работодателей в этой стране и 90% работодателей за рубежом? Ну это так, мелочи. Ты не парься. Свои 20к без вышки ты заработаешь, так что все заебись.
Тебя шапка сразу просит сделать песочницу. Метод со скобками должен работать. Но у тебя он не работает и мы не ебём почему. И если тебе надо "ещё как нибудь" иди и сам копайся в документации.
>>1588847 Очень понравился. Я аж ответил. А тебе ответ не понравился? Чем?
>>1588864 Я блядь в час ночи выясняю, как в Жиквери по индексу элемент получить в 2020. ХЕЛЛОУ ДАРКНЕСС МАЙ ОЛД ФРЕНД По индексу вернётся уже не Жикверя $('.test div')[0] --> HTMLElement надо из этого снова объект Жиквери делать $($('.test div')[0]) Проще пользоваться get методом конечно же.
>>1588742 Анон, не переживай, запомни самое главное - ты все учил и делал сам, а это многое значит в наше время. Продолжай дальше искать и через какое-то время ты обретешь свою удачу. Главное не опускай руки и всегда думай об это >>ты все учил и делал сам, а это многое значит в наше время
>>1588924 >с мидлом то все ясно, но что ожидать от синьерских вакансий? Софт скиллы пиздобольство. Умение продать кнопку как неебаться новую теху, в которую заказчик должен влошиться. Умение разгружать крудошлёпство на подчинённых макак.
Решил научиться связывать фронт с бэком, делаю rest-api туду на реакте. Проблема в следующем:
В Fiebase есть запись, в ней хранятся объекты todo. Я получаю их с axios в виде объекта. Теперь вопрос:
Как их выводить на странице? Так как это объект с объектами внутри, map не работает. В планах было так: в TodoList.tsx вызываю метод класса Firebase.ts, который возвращает массив с todo-объектами и разворачиваю его с помощью map. Как сделать правильно?
Код из 2 и 3 скринов неактуальный, пока не придумал верного решения
>>1589161 Есть примеры с рендерингом через этот метод? >>1589192 Так это ФП, я вынес методы для работы с БД в класс, чтоб переиспользовать в разных местах
Посоны, есть 5 json запросов на 5 разных серверов, столкнулся с тем что каждый из них отвечает с разной задержкой, от чего результаты постоянно приходят рандомно, как лучше чтобы минимум кода заставить отрабатывать их результаты в нужном порядке?
Использую для получения результата jquery, отсюда вопрос сколько времени ждёт .done(function(){}) прежде чем начнёт выполнять функцию, что будет если один из серверов будет недоступен? Ведь если сделать очерёдность выполения с помощью if, то при недоступности 1 из серверов, результаты следующего не будут выполнены, а если добавить ещё и else то код растёт в геометрической прогрессии, надеюсь понятно объяснил
И как получить доступ к переменным созданным внутри анонимной функции в .done(function(){}), создавать переменные с помощью const? Не у кого спросить чтобы понять кроме вас посоны, а найти ответ среди тонны информации иногда просто нереально
>>1589216 >Использую для получения результата jquery Зря. Так-то 2к20 на дворе.
>jquery, отсюда вопрос сколько времени ждёт .done(function(){}) прежде чем начнёт выполнять функцию, что будет если один из серверов будет недоступен? Не знал, что, у jquery нет документации.
>И как получить доступ к переменным созданным внутри анонимной функции в .done(function(){}) ???
Используй fetch или обертку над ним (axios, etc.). Если нужно последовательно, то .then, если параллельно, то Promise.all.
>>1589227 >>1589230 Ну смотрите, сделаю я с помощью Promise последовательно, а что будет если например 3 сервер неработает, разве код не зависнет на получении данных с 3 сервера? Ну или если даже пропустит его из-за долгого ожидания, а вдруг после этого 3 сервер пришёл ответ, что тогда, короче я завис, у меня по умолчанию выводятся поля от всех серверов, и после обращения к серверам те что не ответили, должны скрыть свои поля, а те что ответили заполнить их, а тут получается что 3 сервер поздно ответил и код сочёл что он недоступен и удалил его поле, а сервер то на самом деле жив, просто задержался, надеюсь понятно разъяснил, снова
>Зря. Так-то 2к20 на дворе. А что в 2020 модно? Мне казалось jquery это всегда актуально, особенно если движок сайта сам его подключает по дефолту
>>1589245 Мне кажется, если он жквери пользуется, это обычный кабанчик, который хочет свой сайт в интернете продвинуть, а на программирование ему срать. Поэтому учить он ничего не будет.
>>1589236 >что будет если например 3 сервер неработает, разве код не зависнет на получении данных с 3 сервера? Ну так поставь таймаут реквесту.
>Ну или если даже пропустит его из-за долгого ожидания Это как вообще?
>должны скрыть свои поля, а те что ответили заполнить их Ок сделай такую логику, в чем проблема?
>получается что 3 сервер поздно ответил и код сочёл что он недоступен и удалил его поле, а сервер то на самом деле жив, просто задержался Ну а клиенту-то откуда знать что там с сервером происходит? Ты определился бы для начала какую логику вообще хочешь реализовать.
Как синхронно зафетчить? Что тут не так? async function getById(id) { event = await fetch(`URL`).then(res => res.json()); return event; } Эта асинхронная фнукция вызывается внутри синхронной, хочу свой объект, а получаю висящий промис.
>>1589245 Кстати да, забыл добавить, мне это нужно для сайтика, так что не пойму почему jq плохо, ведь это тоже самое что и ванила, только код в разы короче
>>1589270 >Ванильный JS В 2019 писали что я долбаёб из-за того что улетаю по ваниле и использовать jq, типа это проще, а теперь уже долбаёб из-за того что ушёл с ванилы
Я просто хотел сделать по минимализму, не хочу городить тонну кода с кучей условий чтобы результаты обрабатывались и выводились в нужной мне последовательности, а ебучие api возвращают результаты с ебучим рандомом
Пиздец, полчаса ебался пытаясь присвоить новое значение константе. Консоль выдавала какую-то хуйню блять вместо указания на ошибку. Ебал я в рот эти константы нахуй, и дебилов которые тут пишут "вседа нада канстаты стоби харосий код"
$.getJSON("demo.json", function( result ) { console.log( result ); }).done(function() { alert( "success" ); })
Я думал то что в .done() выполнится только после полного выполнения кода в самом запросе getJSON, но он выполняется сразу же как сервер отдаст ответ, так какую переменную подставить вместо .done() или что дописать, чтобы алерт выполнился только после полного выполнения кода в самом запросе, в данном примере только после выполения консоль лога, .always() и .then() тоже пробовал, не помогло, код выполняется раньше, чем то что в самом getJSON
>>1589509 Блин, ну попробуй туда дохуя консоль логов засунуть, или что-то что выполняется асинхронно, но не моментально, а с задержкой, тогда сперва исполнится алерт, а потом консоль лог, у меня там вместо консоль лога куча кода работающего с DOM, и вот пока этот код отрабатывает, алёрт уже выполняется, из-за чего происходит ошибка
>>1589512 Так я тебе, долбоебу, еще вчера написал. Пиздуй на javascript.info и учи азы. Нет, ты продолжаешь душить своими тупыми вопросами и своим ненужным jquery.
>>1589508 Если ты хочешь чтобы код в done выполнился после setTimeout, то JS так не работает. Иди читай по event loop и про то как работает setTimeout.
А вообще это какой-то адский тупак делать асинхронную логику на коллебках, когда есть православный промисы и async/await.
>>1589527 Мне нужно просто чтобы код 3 выполнился только после выполения кода 2, а тот чтобы выполнился только после кода 1, вот пример подробнее, setTimeout я просто хотел сделать задержку для примера, неудачный был пример
Сейчас из-за разного времени ответа сервера или из-за количества кода, очерёдность вывода может быть рандомной, консоль лог здесь просто для примера, как правильно раставить код чтобы он выполнялся поочерёдно, но данные с серверов грузились одновременно, чтобы не создавать задержки, синхронное выполнение тоже не подойдёт, так как приостановит загрузку страницы
>>1589582 >This jQuery XHR object, or "jqXHR," returned by $.getJSON() implements the Promise interface, giving it all the properties, methods, and behavior of a Promise
Посоны я уже решил эту задачу, результат показывать мне стыдно, но там в конце огромная куча скобок, вложил все действия друг в друга, зато работает как надо, спасибо jqмать твою ебал
>>1589641 Анон, я просто не задрот в этой хуйне, мне большинство терминов просто ни о чём не говорит, больше понимаю на примерах и без использования новых стандартов экмаскрипт, когда я учился, констант и стрелочных функций ещё просто не былоно спасибо
В 2019 говорили что ванила для даунов, делай всё на jq, в 2020 говорят jq для даунов, делай всё на ваниле В 2010 говорили что я школьник, в 2020 называют меня дедом Блять, время, сука, ты куда
Посоветуйте Облачную Self Hosted IDE. Чтобы арендовать вдс, поставить настроить все, и потом в браузере с любого устройства по домену подключаться и логиниться.
Неужели индустрия в 2020ом году еще не развилась до этой стадии. У нас тут игры скоро будут в браузерах запускать и стримить на клиент, а вы до сих пор кодите и засираете свою рабочую машину вместо того чтобы один раз создать удаленное рабочее окружение и не беспокоится ни о чем.
VSCode: электроноговно, отдельный браузер для одного приложения, интерпретируемая скриптопараша, умудряется ахуенно жрать ресурсы и тормозить как ебанутая на топовых железках при большом количестве файлов в проекте. Блокнот с плагинами вместо IDE
WebStorm: получше но java. Jvm говно жрет так же, но уже скомпилированный байткод работает гораздо быстрее. Полноценное IDE. Плюс полноценный коммерческий продукт с нормальной тех поддержкой и всей этой хуйней.
Visual Studio: С++, двоичный код просто летает на железке минуя уебищные абстракции в лице уебищной виртуальной машины. Ресурсов жрет поменьше одностраничного PWA-говноприложения. Коммерческий продукт причем не от каких-то левых пидорасов которые шкерятся в Чехии, а от софтверного гиганта индустрии, самой ебать ее в рот Microsoft. Из этого выходит недостаток что полностью анально вендерлокнута на продукты компании. Плюс вставляет телеметрию в бинарники.
>>1589699 Хочу вкатиться в жабу, но с какого-то хуя от бэкендера требует знания html/css/javascript и еще react. Что за хуйня? Я на веб разработчика фронтовика устраиваться пришел что ли?
>>1589703 >требует знания html/css/javascript и еще react. Хрюши пишут все знакомые слова в вакансию скорее всего. Ну и на базовом уровне html/css/js учатся за пару дней
>>1589704 Зачем если у меня bf4 на ультрах в 60 кадров в мультиплеере? Зачем обновлять железо, если проблема в низкопроизводительном софте и нежелании софтверных гигантов с многомиллиардными бюджетами и лучшими профессионалами индустрии сделать нормальный рабочий продукт? Где WebAssembly блять? В 2013ОМ СУКА в огнелисе запускали демку UNREAL ENGINE 3 НАХУЙ, и она нормально работала и СПУСТЯ 7 ЕБАННЫХ ЛЕТ НИХУЯ НЕ ИЗМЕНИЛОСЬ. Что не так в этой индустрии?
Ничего не понимаю...И это современные веб-разработчики... Говно какое-то, хипстеры. Блядь, Индустрия, им дала WebAssembly. Пиши, пиши код на крестах и запускай в браузере! Блядь, не хочу, хочу чтобы всю мою оперативку сожрало скриптовое js говно! Что такое? Это производительность? На топовом i7 это производительность?! Суки... Мудачьё...веб макаки! Стикеры на FagBook'и нацепили! Тормозное электроноговно, причмокивая, жрут!.. Фронтедеры, блядь, ёбаные...
>>1589738 А почему тогда Notepad++ или Sublime Text на каком-нибудь ебанном i3 спокойно летают, а это электроноговно вовсю тормозит и жрет больше 100mb ram?
>>1589728 Я к тому что схуяле спустя 7 лет веб до сих пор пишут на js, а не на том же каком-нибудь c# c blazor, и при этом современные страницы по внешнему виду нихуя не отличающееся от говна из 2014го сейчас жрут больше и тормозят сильнее?
>>1589790 Что-то маргинальное, никогда не слышал и не видел чтобы кто-то в них работал. Наверняка проблемы начнутся уже на этапе поиска плагина для преттиера или TS.
>>1589797 Нет, это когда ты компилируешь исходник на плюсах или расте в специального вида бинарник и скармливаешь его виртуальной машине в браузере, а машину запускаешь через жс.
Анон, такой вопрос. Вот есть у меня например фронт на реакте. Если я сделаю ГЕТ запрос на сервер, то я получу ответ. И если я сделаю ПОСТ запрос, я тоже получу ответ. Так вот если я прописал эти запросы руками где то в реакт аппе, то когда нужно делать ГЕТ запрос, а когда ПОСТ? Ведь результат тот же. Есть ли вообще смысл делать разные запросы? То есть например мне надо получить дату с бд. Я делаю пост запрос и жду пока прийдет ответ, тогда рендерю это всё. Можно ли здесь (и всех подобных случаях) делать только пост запросы? Почему?
>>1589965 Пасиба ебать Я им задал конкретный вопрос, а меня и дальше гуглить посылают. Как будто я этого не делал. В час смысл вообще тогда у кого то что то спрашивать, если все равно пошлют гуглить?
>>1590008 Ну вот все и было хорошо пока веб использовался для того для чего и предназначался, для обмена html страницами. А потом эти долбаебы решили что давайте замутим полноценные веб-приложеия, spa, pwa, huiwa, и все пошло по пизде.
Все веб-программисты понимают что GovnoScript это ужаснейшая ошибка истории и трагедия всей индустрии, также думает его создатель. Но отказываться от него пока никто в наебизнесе не планирует. Да и кодерам похуй на индустрию в целом, они здесь за баблом а не идеей. Пока деньги платят, готовы делать любое говно в кратчайшие сроки, и похуй что у большинства пользователя на хороших машинах лагает, ПУСКАЙ ОБНОВЯТСЯ.
Поддерживая все это мракобесие вы полностью заслуживаете такую дерьмовую реальность. Продавайте дальше свою жопу за деньги в попытках гнаться за фантомным успехом.
>>1590030 > Ну вот все и было хорошо пока веб использовался для того для чего и предназначался, для обмена html страницами. А потом эти долбаебы решили что давайте замутим полноценные веб-приложеия, spa, pwa, huiwa, и все пошло по пизде.
> Все веб-программисты понимают что GovnoScript это ужаснейшая ошибка истории и трагедия всей индустрии, также думает его создатель. Но отказываться от него пока никто в наебизнесе не планирует. Да и кодерам похуй на индустрию в целом, они здесь за баблом а не идеей. Пока деньги платят, готовы делать любое говно в кратчайшие сроки, и похуй что у большинства пользователя на хороших машинах лагает, ПУСКАЙ ОБНОВЯТСЯ.
> Поддерживая все это мракобесие вы полностью заслуживаете такую дерьмовую реальность. Продавайте дальше свою жопу за деньги в попытках гнаться за фантомным успехом.
>>1589979 Есть смысл спрашивать о чем-то нестандартном. Если на твой вопрос есть миллион ответов в гугле, то спрашивать на дваче\форуме\ирл и правда бессмысленно
>>1590145 Во, у меня есть нестандартный вопрос. Пришли мне значит несколько задач с одной из вакансий и для правильного ответа надо бы знать jquery, который я не знаю и о котором ни слова в вакансии не было. Внимание вопрос - подразумевается, что я погуглю, разберусь и отвечу правильно или всё, я слился? Задачи обязательны.
Аноны, у меня вопрос: Я написал бэк на ноде, ORM сиквелайз. Как реализовано - подключение к базе находится в модуле orm_model.js, из этого модуля я экспортирую модели таблиц tables. Я правильно понимаю - при старте сервера выполняется модуль orm_model.js, создаются требуемые объекты таблиц, и они грубо говоря "зависают" в области видимости. И каждый раз когда из разных контроллеров (в которые импортирована эта модель таблицы) - я обращаюсь к одному и тому же объекту таблицы?
>>1590152 >для правильного ответа надо бы знать jquery Ты уверен? это же просто обертки над стандартным функционалом, ты все можешь на чистом жсе сделать. >погуглю, разберусь и отвечу правильно или всё, я слился? Ну и конечно погугли, jquery отчасти потому и хейтят, что в него вкатиться может любой даун
>>1590235 > Ты уверен? Да. Там надо сказать, что сделает уже написанный скрипт на jquery. Просто если допустить, что мне на собеседовании дадут задания с жквери, то я скорее всего не отвечу, без хорошего знания синтаксиса жквери. Не то что бы остальные вопросы я щелкал как орешки - там такие нюансы, с которыми я не сталкивался или сталкивался и не считал нужным запоминать. Так что лучше действительно перед поиском работы зажрочить типовые вопросы.
Напишите программу, которая запрашивает у пользователя число, пока оно не станет меньше или равно 100. Когда это будет сделано, улучшите его так, чтобы число составляло от 50 до 100
Пробовал через цикл вайл, но не знаю как выводить промт снова когда он уже объявлен в переменной
Сделал кароч, просто никто из вас не додумался показать как объявлять переменную с промт. Ну и я ещё вбил себе в голову что надо возвращаться к значению переменной с промт объявленной в первый раз а не создавать новое
let number = prompt(); while (number > 100 || number < 50) { number = prompt("Число слишком большое или маленькое"); }
А какие задачи чаще всего решаются в продакшане на Реакте? Какой функционал чаще всего реализовывают? Работающие аноны, расскажите плиз, что чаще всего делаете.
>>1590517 ты ебнулся? твои слова: >На жс уже давно ввели приватные поля классов. Нет, не ввели. Экспериментальные функции != введенные. Точно так же еще не ввели в стандарт a?.b?.c?, оператор ??, и т.д.
>>1590752 > всмысле не нужен, const в 99% используется в коде, а let очень редко Ну а если конст заменить на лет абсолютно во всех случаях - что-то сломается? Допустим одинаковых наименований нет.
>>1590754 Их ввели, но тестируют. Не введённые это те, которые ты не можешь использовать. Приватные поля ты прямо сейчас можешь использовать в хроме, например.
>>1590797 Пруфы чего? Того, что если массив постоянно используется, то желательно, чтобы этот массив всегда оставался массивом, а не равнялся null или текстовой переменной? Если тебе нужны пруфы этого, то пришло время для тебя пройти учебный материал сайта javascript.info
>>1590836 Ну и? const не даст присвоить переменной не нужное значение, мутации это не про способы объявления. Если тебе нужен иммутабельный объект, то для тебя создали Object.freeze.
Товарищи, подскажите, пожалуйста. Есть 4 картинки, нужно по клику на стрелку выбрать следующую после "selected-image" картинку. То есть у меня как бы в массиве есть 4 картинки. Как средствами jQuery получить следующую после "selected-image"? На пикриле результатом должно быть $('.t')[2]
Надо решить задачу разными способами - часть элементов массива в нем объекты с парой свойств удалить, часть изменить. Первое решение - перебрал циклом фор оф массив и сделал всё, что надо, сформировал новый массив, вернул, всё как надо получилось. Теперь нужно отличное от прошлого решение - как думаете, если я через forEach сделаю, это уже будет другое решение? По сути внутри форича будут конструкции, как в первом решении. Чего-то принципиально отличающегося мне в голову пока не приходит.
НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД!
Для программирования на ХТМЛ https://codepen.io/pen/
Для Ноды с консолькой https://repl.it/languages/nodejs
Для фреймворков https://codesandbox.io/
Залить, задеплоить страничку, сервер, контейнер https://zeit.co/now
Аноны, хочу получить советов мудрых, высераю пару предложений и код на скриншоте, а получаю смехуёчки. Как быть?
Если рассчитываешь получить дельный ответ, формулируй правильно вопрос:
У меня есть проблема\задача (А) %текст-ошибки или задача%. Я пытался решить ее так %кусок-кода-опционально% (Б), у меня не вышло %текст-ошибки%. Я погуглил, почитал документацию и попробовал сделать так %кусок-кода-%(В), но получаю ошибку (Г).
Сделай песочницу по ссылкам выше для ясности и удобства. Если никогда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.