Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Гайс, а как удалять коммиты, или объединять их если они уже зарелизены?
У меня на гитхабе в петпроекте, последние коммиты это редактирование Readme файла, я его редактировал раз 20 и все это в выстроилось в ряд коммитов, которые засирают ветку изменений. Как это можно сплющить до одного коммита? Или удалить как-то их что бы изменения не потерялись в самом ридми?
Я все равно нихуя не понимаю, где у меня косяк с формой. Вот даже статью нашел, там точно так же сделан контроллед инпут. Точно также онЧейндж и вэлью.
>>2011597 Ну да. Только без Controller, а по-обычному: <input className="input" type="text" {...register("input", options.required)} value={state.input} onChange={handleChange} /> {errors.input && <span className="input">{errors.input.message}</span>}
У вас есть проблема с эмуляцией устройства в бразуере, когда на реальном телефоне всё нормально, но если включить эмуляцию на десктопе в браузере, то появляются какие-то странные отступы по краям, какие-то лишние пространства, верстка едет. Но если убрать эмуляцию мобилки и сжать экран вручную, то всё нормально. Как это фиксить? Знаю есть browserstack, который показывает реальные устройства, но это дорого для меня на данный момент. Вот установил себе еще responsively.app, там проблем опять же не наблюдается, но это эмулятор ведь, и он не покажет реальные устройства со всеми их особенностями. Какими инструментами пользуетесь вы?
>>2012353 Я ставил себе для андроида по итогу реально эмулятор, nox например, можно и наверное более подходящий для разработки и в т.ч. для яблок. Хотя обычно хватает браузерных в фоксе и хроме с определенной допустимой погрешностью.
>>2012363 Я вот раньше с телефона и смотрел, в браузере эмулировал, а потом пришёл яблочник и сказал, что всё хуйня, вёрстка поехала. Вот и не знаю как можно всё разом протестить. Ну видимо только browserstack и остается. Там есть фриланс лицензия за 20 баксов
Аноны, как в самом простом случае норм реализовать периодический ajax к серверу? Пример с лерн жаваскрипт //рекурсивный setTimeout let timerId = setTimeout(function tick() { alert('tick'); timerId = setTimeout(tick, 2000); }, 2000);
что меня смущает - не создается ли при такой реализации цепочки из замыканий?
Я привык к инжектящимся сервисам, т.е. у меня источник правды и так везде один.
У сервисов методы и ивенты с какой хочешь сигнатурой, а не одинаковые.
Единственное, что приходит в голову - это когда делаешь какую-нибудь хуйню с единственным стейтом, то в редуксе не надо править никакой код, а только добавлять свой.
>>2012620 Ты на вопрос так и не ответил. Почему я должен юзать редукс, а не отдельный сервис, где у меня свои методы и ивенты, а не диспатч экшнов и регистрация редюсеров?
>>2012488 > что меня смущает - не создается ли при такой реализации цепочки из замыканий? Откуда? Функция создаётся 1 раз, остальные разу исполняется уже созданная функция.
Заказывал кто-нибудь и читал новую? https://www.ozon.ru/product/javascript-polnoe-rukovodstvo-flenagan-devid-206611358/ Прочитал пару глав, вроде бы перевод не совсем ебал её рука. А английскую версию сложно читать, потому что мало того, что язык не родной, так еще новые сущности постигать совсем трудно. Вот только не знаю насколько удобно будет такую огромную книгу в руках вертеть, и не лучше ли будет всё таки электронную навернуть?
сап анчоусы, кто нибудь что-то знает про московску. галеру postuf ? ссылку на хх сами найдете у всех разрабов вакансии с вилкой 300-400к + всякие бонусы, на собесе говорят что будет работа в каких то своих проектах. вопросы на тех собесе были обычные мидловские. зазывают очень усердно и настойчиво. из требований которые я выяснил на собесе: не пить не курить,отсутствие татуировок, не носить длинную бороду, не носить длинные волосы. сам про контору накопал что занимается типо white hat хакингом, но типо не на заказ, а делает контент на основе этого статьи на хабре, тик токи, видосы в инсте + то что там большая текучка и мало кто долго прорабатывает т.е. не больше года-полтора. из за чего становится непонятно откуда у них бабки чтобы платить разрабам такие бабосы. аноны, вы что нибудь знаете о ней, стоит ли туда соваться ?
>>2012929 >не пить не курить,отсутствие татуировок, не носить длинную бороду, не носить длинные волосы Чего нахуй? Ну не пить разве что на рабочем, месте, остальное вообще с чего вдруг высралось?
https://v1.postuf.com/conditions Пиздец ебанный, все моники повернуты к надзирателю с плёткой. У всех на столах таймеры отсчитывающих время рабства. Я не знаю сколько они там платят, но это какой-то пиздец. Наверное еще палками пиздят каждый час, чтобы держали строй
>>2012945 https://v1.postuf.com/equality >Нужно способствовать дисциплине и не допускать злоупотребления правилами, иначе никакого равенства не будет. Не нужно стесняться и думать, что это донос. Это считается доносом только в том случае, если ты и нарушитель не признаете правил и не считаете нужным их соблюдать. Похоже рабовладелец какой-то пизданутый шиз с манией величия. Охуенная там атмосфера в коллективе наверное
>>2012929 Судя по написаному на компам тайм трекеры стоят, уже после этого можно дальше не читать че там. Это архаичный рудимент нулевых, который используют говно конторы. Смотри лучше банковский сектор, в банках щас рост колличества вакансий к прошлому году больше на 50% и зп самые высокие, средняя зп в банках тоже к прошлому году выросла у айтишников. Большая корпортивная культура и не анальные услвлия работы, для вката самое то.
>>2012964 А лол, я их вспомнил, эт они на хабре форсили свой клиент телеги с двойным дном, еще просили дурова ответить, кекус. Поднялись однако, там было два разработчика, щас уже целый стартап с неплохими зарплатами, но начальник поехавший. Хули если бы я свою контору открыл я бы тоже ебанутые требования ввел, всем ходить в розовых поло и пить воду только из бутилированных фаллоиметаторов.
>>2013117 >Он релевантен в 2021 веке? С какой стати он должен был перестать быть релевантным? Для ебанутого преобразования данных ничего лучше еще не придумали.
>>2013285 >базовые ФП утилити без которых код в принципе нельзя писать читабельный >ХЕЛПЕРЫ Вголос с маньки. Как там, циклы for небось пишешь до сих пор?
Аноны, прошу вашей помощи. Пиздец горит сдать задание, а я никак не въеду в регулярки, времени на это нет. Кто может накидать регу для проверки номера по след условию > Mobile phone support format 380 + 50|63|66|67|68|91|92|93|97| 96 + 7 digits. Уверен для сидящих тут профи это на минуту-две.
>>2012447 Изучай стандартную библиотеку ноды, express, потом nest.js + typescript, библиотеки для работы с вебсокетами, базами и очередями, аутентификацию и авторизацию
Хочу начать пет-проект на реакт+нода. Все хочу ебануть в докере. В целом все без докера делал уже и представляю как это работает. Но у докера какой-то ебучий гайд, не могу нормального для дебилов, чтобы на пальцах показали что куда делать.
хуки просто песня. В проекте получилась целая библиотека shared hooks, которые используют context внутри. Запросы к api тоже через hooks с кешированием. Полностью отказались от redux и других state managing libraries. Через props спускаем только данные для dump components
Седня узнал что если на айфоне сохранить, сайт на рпбочий стол и у него есть версия pwa то с рабочего стола закладка открывается не в браузере, а как отдельное приложение, просто ебок задумка. Pwa это будущее
>>2013515 Для вкатывания начинать с оф документации reactjs.org по context api и hooks. Поняв всю мощь комбинации useContext/useState/useRef/useYourOtherCustomHook inside custom hook, можно начинать эксперименты. Тут тебе сразу и свой элегантный аналог DI можно запилить и что душе угодно, ведь получаешь натуральный конструктор
Эта строчка создаёт окно типа toast: window.M.toast({html: text}) Но я не понимаю почему там стоит именно M? Я сначала думал, что M это просто название объекта и можно подставить любое значение, поэтому я заменил M на другую букву, но оно не сработало, что означает, что M имеет особое значение, но в Интернете ровно НОЛЬ упоминаний window.M. Кто-нибудь объяснит?
>>2013538 Тебе по беку не нужно вообще никаких знаний. Даже базовых. Там всё на 99% работает как в реакте. Разве что нужно будет условно чекать window например, чтобы на стороне сервера к нему обращения не было. Но ты всё равно об этом сразу узнаешь, посколько в dev режиме у тебя всё будет в ssr рендерится. Единственный заёб, это стейт менеджмент, нужно разделять стор на клиенте и сервере, чтобы на сервере каждый раз новый стор создавался. Но на гитхабе некста есть примеры того, как это сделать
>>2013564 Покажи лучше весь код, у тебя похоже что-то записывается в объект виндов, и потом чтение происходит. По дефолту никакого поля М у виндова нет, можешь в бразуере чекнуть шиз. И вообще что за ебалу ты там делаешь? Читай учебники лучше
Честно говоря, мне главное то, что оно работает, но я пытаюсь понять суть того почему этот код работает. Ты бы кстати молчал про "Читай учебники", я уверен, что значительно начитанее тебя.
>>2011386 (OP) Неофит на связи. Пишу через js куки время в секундах каждую секунду для того чтобы передать их в пыху. Но каждое обновление откуда-то берется 2 абсолютно разных времени. Писал и алерты и смотрел в значения куки в бразуерах.
>>2013626 >php Зашквар и неуважение -1000соц.кредитов. >Задает вопрос без кода "Бля, рибята у миня сламалася памахити!!" Зашквар и неуважение -1000соц.кредитов. >Неофит Вкатыши не нужны. И уж тем более во фронте.
Есть сайтец, он грузит данные с сервера и рисует табличку. Я пытаюсь написать юзерскрипт с помощью tampermonkey, который ловит момент загрузки ДОМа и парсит одно из полей таблички, возвращая innerHTML. Проблема: Я не могу получить доступ к элементу через querySelector, он всегда возвращает null. Поиск элемента происходит после загрузки страницы вот так: if (document.readyState == "complete" || document.readyState == "loaded" || document.readyState == "interactive") { console.log(document.querySelector(".selector")) } При этом если поставить сюда вместо лога в консоль алерт, то алерт начнет выполняться еще до того, как табличка прогрузилась (там вметсо нее будет спинер вертеться). Как мне выполнить запрос вовремя и содрать с хитрой таблички данные?
А в js можно полазать по исходникам стандартной библиотеки, как в java или си? Только начинаю учить js и пока такого термина, как "стандартная библиотека" вообще не встречал.
>>2013701 MutationObserver или вызывай querySelector пока будет не null, лол >>2013729 Окружение предоставляет «стандартную библиотеку», поэтому открывай исходники браузера/ноды и лазай. Но лучше не лазай, а учи жс
>>2013749 >DOMContentLoaded Вообще не стартует из tampermonkey. Видно, что в девтулзе обработчик висит на событие, и видно, что из скрипта, но оно не стартует.
>>2013512 Хорошо, где взять гайд как стать состоявшимся инженером? >>2013512 Да я о том же, я не девопс, мне не нужно каждую заебульку настраивать. Просто хочу создать отдельное окружение для своего проекта, image или как там его. Сука все же просто в теории. Почему ни одного нормального гайда. Анон, как ты в итоге разобрался в нем?
>>2013786 >как ты в итоге разобрался в нем? Мне нужно было для некста контейнер собрать, у них на гитхабе был пример, оттуда и взял. И уже после этого теперь мне понятно, что я в принципе должен писать в докерфайле. Вообще у них есть примеры неплохие в доках. Проблема моя изначально была в том, что я вообще нахуй не мог понять, что такое докер, и нахуй эти контейнеры нужны. Вообще чем больше я сталкиваюсь с непонятной хуйней, тем больше понимаю, что единственный способ разобраться в чем-то, это: не понимать, не понимать, не понимать, а потом ККААААК ПОНЯТЬ.
>>2014015 Ты конкатенируешь к булеану число, происходит преобразование типов булеан в число, при это фолс становится нулем, тру становится единицей, соответственно при тру у тебя тру становится 1 + еще три единицы итого 4, а при фолсе он становится нулем и еще три единицы - это 3.
>>2014015 Короче в жс динамическая типизация, при попытке сложить два типа они приводятся к одному, в данном случае к числу, по правилам преобразования тру становится единицей, фолс нулем. Читай лерн жабаскрипт мазафака.
>>2014638 Разве рендеринг это не обновление дома? Если изменений не произошло, то реакт ничегр ререндерить не будет в этих компонентах же? А вот что там виртуальный дом шатает, я не знаю при этом
>>2014649 Если не ошибаюсь, то при использовании контекста при изменении данных в контексте запустится ререндер всех потомков контекст провайдера, даже если эти потомки не используют эти данные
Хотел прикрутить тайпскрипт к пет-проекту на вью, и ничего не вышло. Нормально работает только в 80 процентах ситуаций, а в остальных 20 приходится либо ублажать конпелятор, либо лепить ts-ignore. Надо было писать на реакте - он с тайпскриптом работает нормально.
>>2014724 >Вроде в Vue3 уже лучше поддержку завезли Завезли (хоть и все равно не полную), только под третью версию пока еще не адаптировали много библиотек.
Пацаны, typescript большой по объему? Дали задание до конца майских (11.05) выучить язык и уже применять в работе. Пока даж описание его не читал. Там как реакт либа, или целый язык как js? Долго там с ним возиться? Js и react уже знаю
>>2014750 >Дали задание до конца майских (11.05) выучить язык и уже применять в работе. Они ебанутые? Там только конфиг вебпака будешь перепердоливать неделю. А использование тайпскрипта на проекте, в котором его нет, максимум в >>2014754 выльется.
>>2014777 >Че там с вебпаком делать, лоадер прописать лол? Перенести бабелеподобные трансформации, переименовать все файлы, потом во всех этих файлах отловить все критические ошибки тайпскрипта. Ну или хуярить отдельный энтрипоинт для тайпскриптовской компиляции, который хуй пойми как будет взаимодействовать с основным.
>>2014790 Поехавший, миграция на ТС не происходит "переименовать все файлы". Любой js файл является валидным ts файлом. Ты просто начинаешь переименовывать по очереди и добавлять базовые типы, работая над проектом.
>>2014804 >Любой js файл является валидным ts файлом. Найс мантра, вот только js файлы уже прогоняются через бабель, который несовместим с тайпскриптом. Впрочем для конторки уровня "пиши в проекте на тайпскрипте через полторы недели" прогонять код через две транспиляции и так сойдёт.
>>2014819 Через вебпак больше чем 2 транспиляции проходит. Да, сначала тс для транспиляции с тс в джс, потом бабель для рантайм генераторов и подобного, в сложных проектах и больше лоадеров висит в конфиге.
Пизда, как волнение перебороть перед собесом? В реале всегда такой уверенный титан непоколебимый, а тут встал вопрос устройства на новую работку, прочитал что там будет собес в стиле FAANG и у меня чет яички немного вжались. Понимаю что нужно похуистически отнестись к собесу, и отвечать на похуй - что бы было все на расслабоне, я так и планирую. Но томительное ожидание перед собесом повышает градус волнения. Буквально каждую секунду начал ощущать которая приблежает меня к собесу.
>>2014897 Садишься, закрываешь глаза и минут 20 представляешь в самом наихудшем кошмаре, как ты проваливаешь это собеседование. Если ты будешь делать все правильно (т е не будешь давать себе поблажек в этих вымышленных ситуаиях), то к концу времени ты должен заметить: что твой мозгу надоест об этом думать и он будет пытаться смещать внимание на другие проблемы или интересные вещи и что ты стал более спокойным. Ты должен осознать, что ты принял полностью ситуацию, что ты придешь и обосрешься так сильно как никогда раньше и тебе в целом норм.
>>2014917 Точно анончик, спасибо. Как-то раз уже использовал такую технику, представляешь самое худшее что может случиться, много об этом думаешь и вот в реале все не так уж страшно получается. В какой-то книге давно читал этот лайфхак. Спасибо!
Привет аноны, пол года зубрю js но к сожалению упёрся в потолок. Если по началу было как-то интересно всё это, то уже спустя некоторое время - начал замечать за собой насильную зубрёжку, отдых не помогает, а отвлечение только подгорает внутреннее беспокойство, что время уходит. Пробовал себя на разных "бесплатных тестах и задачках" но без объяснения происходящего - вся информация просто вылетает спустя 2-3 минуты. Потому решил записаться на курсы, пусть может "дядя" придаст мне стимул, так как мне проще работать в команде. И вот я нашёл один через гугл, и мне показался он слишком подозрительным, что-то бьёт тревогу и говорит "Лучше туда не лезь". Добрый анон подскажи: 1) Как снова включиться в изучение 2) Как тебе идея с курсами? 3) Как тебе такой курс от mate academy? Прилагаю скриншот прайса, олсо они ещё требуют 4К долларов, если не в "кредит"
>>2011386 (OP) Всем привет. Чуть больше 3х лет работаю формошлепом, хочу углубиться в CS и получить "минимум разработчика", который в теории получают студенты IT - шных направлений. В первую очередь апнуться в классических алгоритмах/структурах данных и паттернах проектирования, так как с этим так или иначе приходится сталкиваться в работе. Кто знает - посоветуйте пожалуйста книги по означенным темам, идеально, если для реализации примеров будет использоваться js/псевдокод, вникать в Паскали - Джавы не хочу. Трехтомники Кнутов на 3000+ страниц так же прошу не предлагать.
Это хардкор материал, но я к тому что самостоятельное изучение и возможные курсы это часть "быть программистом". Поэтому если ты за полгода не понял что происходить, то возможно это просто не твое. Особенно если "насильная зубрежка" есть. У меня 5 лет работы и я не помню чтобы хоть раз насильно что-то учил. Тебе либо интересно понять как работает и как писать код, либо нет.
Redux это функциональный, математический, чистый подход (Update монада). Все остальное лишь попытки накостылить стейт менеджмет для зумеров, чтобы им не было СЛОЖНО.
>>2015588 Я не зумер и мне в целом нравится редакс, но почему в нем нужно везде вручную делать мемоизацию селекторов чтобы не было лишних ререндеров? В мобиксе это встроено из коробки, и в vuex тоже
>>2015588 >Redux это функциональный, математический, чистый подход Набор религиозных мантр типичного фп-шизоида, без единой попытки обосновать их "хорошесть" в данном контексте, да и вообще в любом контексте. >Все остальное лишь попытки накостылить стейт менеджмет для зумеров, чтобы им не было СЛОЖНО. Расскажешь, почему сложный подход лучше простого и почему ты в таком случае пишешь на высокоуровневом языке, а не дрочишь байты на ассемблере, что в сто раз СЛОЖНЕЕ?
>>2015645 >Набор религиозных мантр типичного фп-шизоида, без единой попытки обосновать их "хорошесть" в данном контексте, да и вообще в любом контексте. Что обосновывать? Плюсы те же, что и во всем фп - надежность, экспрессивность, скалируемость и читаемость кода. Лучше объясни хорошесть магический реактивных переменных мобкса.
>Расскажешь, почему сложный подход лучше простого и почему ты в таком случае пишешь на высокоуровневом языке, а не дрочишь байты на ассемблере, что в сто раз СЛОЖНЕЕ? Когда простота ухудшает кодовую базу, ничего хорошего в ней нет тоже. Должен быть баланс. Тут дело как раз в том, что зумеры подсели на иглу ЧТОБЫ ПРОЩЕ И МЕНЬШЕ "БОЙЛЕРПЛЕЙТА", а потом мы имеем портянки из говнокода на реакте.
>>2015660 >Плюсы те же, что и во всем фп - надежность, экспрессивность, скалируемость и читаемость кода Опять набор религиозных безосновательных мантр, да еще и идущих вразрез с реальностью, в которой ФП-языки даже со всем хайпом до сих пор находятся в жопе по использованию. >Когда простота ухудшает кодовую базу, ничего хорошего в ней нет тоже "Когда код ухудшает кодовую базу, ничего хорошего в нем нет". Охуенное откровение, шизло, но твоя изначальная позиция ничего ни про какое ухудшение не говорила, а просто атаковала простоту используемого кода как таковую.
>>2015670 >Опять набор религиозных безосновательных мантр "Мантры" обоснованы теорией категорий и пруфабельностью кода, так что твои гавканья (как и вообще любые наезды на функциональщину) идут мимо.
>а просто атаковала простоту используемого кода как таковую. А ФП код еще проще, если понимать основы Я говорю именно про дебилизацию кода, которая автоматом несет за собой ухудшение его качеств.
>>2015673 Потому что мобикс больше подходит для неоптимизированного реакт кода, где каждый пук вызывает ненужный ререндер. Я не зря упомянул его на 2 месте после Редакса - я думаю для Реакта мобикс это дефолтный выбор для мелкопроектов, не поймите меня неправильно. Я лишь защищаю Редакс как ФП паттерн, на который гавкают зумеры, не понимая зачем он и как его использовать.
>>2015676 А я тебе говорю, что это проблема байндингов Редакса к Реакту и в Реакте как таковом, к самому паттерну это не имеет никакого отношения. Селекторы сами по себе даже не часть Редакса - это просто логическое продолжение его использования. А реселект накостылен вообще, вместо того чтобы нормально сделать через Reader монаду, оттуда и бойлерплейт.
>>2015675 >"Мантры" обоснованы теорией категорий и пруфабельностью кода Ты можешь хоть обпруфабиться себе в штаны, но математически доказать работоспособность программы нельзя. Тот факт, что на бумажке твой код куда-то сходится, ни слова не говорит о работоспособности реально выполняемой программы, это две абсолютно разные категории, и только ФП-шизик может между ними ставить знак равно. >А ФП код еще проще, если понимать основы Объективно нет. Мутабельный цикл понять в сто раз проще, чем редьюс или боже упаси антипаттерн под названием рекурсия. Хоть обосрись со своим "ДА ТИ ПРОСТА ФП НИЗНАЕШЬ, Я КАЖДЫЙ ДЕНЬ РЕКУРСИИ РАЗМАТЫВАЮ КАК ОРЕШКИ", но факт останется фактом: последовательность команд человеческому мозгу воспринять проще.
>>2015691 >но математически доказать работоспособность программы нельзя Ну тебе виднее, как скажешь.
>Объективно Ясно
>Мутабельный цикл понять в сто раз проще Сразу видно нуба без опыта. Мутабельный цикл каждый индус сделает по-разному, делая абсолютно разные операциии внутри него (или что еще хуже, вместе с какими-то сайд эффектами) и тебе придется каждый цикл разбирать как работает. С редьюсом выучив что такое редьюс ты мгновенно поймешь что код делает, потому что низкоуровневая итерация спратана.
>>2015698 >Мутабельный цикл каждый индус сделает по-разному, делая абсолютно разные операциии внутри него > С редьюсом выучив что такое редьюс ты мгновенно поймешь что код делает ФП-шиз, расскажи, какое такое магическое свойство редьюса предотвращает индуса от выполнения всех тех же операций внутри редьюсер-функции, которые он выполнил бы в теле цикла?
>>2015708 А если индус знает слово редьюс, то он достаточно образован, чтобы не делать магических операций в теле функции. Если бы каждого индуса-кодера обучили ФП, качество кода стало бы в разы чище. Меньше маневра сделать так чтоб работало, но наговнокодить.
Но все это неважно, когда-нибудь с опытом ты сам всё поймешь. Пока можно набивать руку и говнокодить императивные портянки, благо спрос есть.
>>2015735 >А если индус знает слово редьюс, то он достаточно образован, чтобы не делать магических операций "Если индус знает о боге, то он достаточно образован, чтобы молиться каждый день, и это доказывает полезность молитвы" >когда-нибудь с опытом ты сам всё поймешь "Когда-нибудь сам поймешь, что бог есть, а пока оставайся в заблуждении"
Ожидаемая "аргументация" от религиозного ФП-шизика.
>>2015735 >А если индус знает слово редьюс, то он достаточно образован, чтобы не делать магических операций в теле функции Тебя спрашивают, чем редьюс лучше цикла, а ты говоришь, что редьюс оказывается нужен не потому что он лучше цикла, а потому он якобы приходит вместе с сокровенным знанием о том, как писать код. Кто ты, если не шизик?
>>2015746 Можно подумать с твоей стороны была какая-то аргументация кроме "ФП-шиза" и "объективно" (лол), я лишь высказываю свою точку зрения основываясь на опыте. Почитай книги по разработке ПО, по ООП, ФП, по архитектуре больших систем, поработай мидлом хотя бы на крупных проектах и будут тебе пруфы и аргументация.
>>2015761 Я сказал чем редьюс лучше цикла (и производные от него как map, filter, fold) - ты скрываешь реализацию и фокусируешься на том что ты хочешь сделать. Обычный цикл нужно каждый раз читать, ведь неизвестно фильтруешь ты там что-то, вызываешь функцию над элементами или вообще запросы к базе данных делаешь. Вот и всё.
Конечно, вкатывальщикам кажется что более читабельный и проще обычный цикл - потому что они не работали над большими проектами или с комплексной бизнес логикой, где за for по рукам могут дать.
>>2015763 Но ведь это ты пришел в тред и начал высыпать набор безосновательных мантр про "функциональность математику чистоту надежность читаемость", тебе эти мантры и нужно доказывать, раз уж заикнулся. Тот факт, что ты абсолютно ничего в их защиту не сказал за 10 постов, кроме "почитай книжки умные и поработай, тогда и поверишь в моего бога, а пока ты недостаточно просвещен", очень многое демонстрирует.
>>2015774 >ты скрываешь реализацию и фокусируешься на том что ты хочешь сделать А в цикле ты на чем фокусируешься, на мамке твоей? >Обычный цикл нужно каждый раз читать, ведь неизвестно фильтруешь ты там что-то А магические редьюс-функции не нужно читать, они отпечатываются прямо в мозгу и ты знаешь, что в них происходит.
>>2015053 >Привет аноны, пол года зубрю js но к сожалению упёрся в потолок. Че там полгода зубрить-то? Кантор за месяц ковыряния в носу прочитывается. Остальное добивается практикой. Вот как я js учил: Играл в игру: Divinity original sin 2\Dark souls 1, когда заебывало, я выключал и читал кантора до тех пор, пока не заебет читать, потом опять играл в игру и так по кругу весь день (спасибо за клиповое зумерское мышление блять). В итоге за 3 недели осилил весь учебник и перешел на фреймворки.
>>2016054 Да, должно быть интересно. Я вот вчера снова второй диван поставил. Думал, буду играть и в перерывах кодить пет. В итоге почти не играл, потому что писать код для оказалось интереснее, особенно когда затыков на ровном месте нет. Хз как чел, который не смог js за полгода осилить, собирается работать. Это же квинтэссенция неинтересности получится, когда не хочется + лень + заебало.
>>2016061 Ну так решение затыка это сразу +1000 к мотивации, не? Я вот по два дня ебусь, потом сюда пощу, меня носом тыкают в то, что я где-то две скобки не поставил, так потом сразу охуенная мотивация появляется кодить и ебашить, возникает удовлетворение от того, что задача решена.
>>2016062 Да, конечно. Но вот бывает проблема в том, что ты сам тупой и не можешь подумать и сделать план решения. Пиздец, вот у меня лично такая хуйня и я еле-еле справляюсь с ней. Проблема не в незнании синтаксиса, а ебаном сдвг.
hooks в реакте всегда должны быть на top level? Т.е. не дефолтные хуки реакта, а вообще любые. Инфа по встроенным в доке есть, но из неё не понятно, относится ли это к использованию любых хуков вообще или только реактовских.
>>2016063 >Проблема не в незнании синтаксиса Синтаксис это хуйня, инструмент. Тут решает логическое и математическое мышление, при решении конкретной задачи.
>>2016089 >И потом такой маняматик хранит переменную в глобальном скоупе Долбоеб, объясни мне, как фундаментальные знания исключают узкие вроде того, что глобальные переменные это плохо?
>>2016087 Кстати, вот насчёт этого. Что-то я не понял почему в глобалке хранить плохо, всё равно же всегда в локалку уходит всё. У меня ни разу не было конфликтов такого вида.
>>2016091 >как фундаментальные знания исключают узкие вроде того, что глобальные переменные это плохо? Без знания синтаксиса ты даже не поймёшь, что запихнул переменную в глобальный скоуп. >>2016099 Так в туду листе и не будет конфликтов. Проблемы с глобальными переменными всплывают намного позже, когда даже разработчик, который эту переменную запихнул, уже не участвует в проекте. Smooshgate - типичный результат засирания глобал скоупа.
>>2016207 >{this.Body()} не работает bodyEl = Children.toArray(children).find((x) => x.type === Body); Или сделай <Card body={<Card.Body />} />, тогда можно будет props.body
>какие аргументы передать функции Никакие, foo и так в bodyEl.props.children
>>2016072 Что ты подразумеваешь под top-level? Типа обязан ли ты всегда дергать хуки только в стековом кадре компонента? Нет, вложенность может быть любой. Вызовы хуков "привязаны" под капотом к инстансу компонента.
>>2016262 Ну т.е. у тебя порядок хуков не меняется ведь в рамках одного компонента. Вот хотел узнать, может ли само создание хука быть условным хоть в каком-то виде? Но судя по всему нет. И даже если он при каких-то условиях не используется, то создан должен быть всегда?
>>2016272 >Вот хотел узнать, может ли само создание хука быть условным хоть в каком-то виде? Просто так писать if (something) { useEffect() } нельзя, потому. Ты можешь либо перенести условие внутрь хука, либо вынести хук в отдельный компонент, то есть something && <MyComponentWithUseEffect/>
>>2016269 Ну это же маркер слота, у функции есть имя и на этом ее миссия выполена. В Body и Title ты можешь сделать `return children`, тогда у тебя не будет пустых функций и не придется делать .props.children в Card
>>2016280 Реакт знает, какой компонент рендерится в данный момент, и когда происходит первый вызов хука, он сохраняет этот хук и его стейт в некий глобальный контейнер с привязкой к компоненту. Когда хук вызывается во второй раз, реакт идет в этот глобальный контейнер и достает оттуда на каждый вызов по очереди все хуки, вызванные для этого компонента в первый раз. Если ты поменяешь очередность вызова хуков, то реакт не сможет однозначно определить, какому хуку принадлежит какой стейт и все сломается нахуй, в useState тудушек попадет useState пользователей и так далее.
>>2016286 Ну вот про маркер слота я понял, так как сперва попытался в Card.Body впихнуть 'Title', но оно заработало не так, как ожидалось.
В целом, задача была перестать передавать огромные пропсы в качестве атрибутов. Было раньше <Card body={ огромный кусок кода } и сейчас можно будет нормально писать.
Без тебя бы не справился, спасибо ещё раз.
>>2016288 В общем, время читать и осознавать хуки настало, иначе дальше пизда.
>>2016276 >И вообще поставь себе eslint с react-hooks/rules-of-hooks правилом и все. Он стоит, но ругается так только на базовые реактовские хуки. На хуки библиотек нет, но вот сдается мне, что так лучше не делать. >>2016275 Да вот видимо так и придется сделать
>>2016296 >Он стоит, но ругается так только на базовые реактовские хуки. Он ругается на все, что начинается с use, плюс есть несколько дополнений для стандартных реактовских хуков(проверка массива зависимостей для useEffect/useMemo, не нужно указывать setState и рефы в массиве зависимостей, потому что он знает что они не изменятся и т.д). А условные рендеры любых хуков выдают ошибку без вариантов.
>>2016268 Зачем ты перебираешь дочерние компоненты? Порядок компонентов - это ответственность того, кто твой компонент использует, как ему нужно, так пусть и рендерит. А если тебе в дочерний компонент нужно передать какой-то стейт, то это делается через контекст, а не через перебирание и переписывание пропсов.
>>2016310 >Чтобы вставить их в правильное место в html Что значит "правильное место"? Если у тебя внутри Card есть какие-то элементы-обертки, внутри которых и должны рендериться Card.Title и Card.Body то по-хорошему эти элементы тоже должны быть частью публичного API, а не скрытой внутри неожиданной магией.
>>2016323 body получается слишком огромным пропсом. Я думал, чтобы объявлять body в переменной и потом передавать в качестве пропса, но вариант с <Card.Body> внутри самой карточки выглядит лучше.
>>2016327 Что значит "слишком огромным"? Передавать объект в пропсах или в children - это одно и то же, но вытащить конкретный нужный тебе объект из пропсов гораздо проще и удобнее, чем перебирать массив children, да еще и с проверкой по текстовому имени элемента.
>>2016332 Например в бади нужно указать форму, плюс контролы к ней. И это уже выглядит достаточно громоздко, чтобы объявлять это отдельно, а не просто записать внутри тега <Card.Body>.
Плюс у меня ещё верстальческое мышление, мне удобнее было бы держать всё, как на пике, а не объявлять где-то отдельные переменные.
В чём вообще разница между объявлением и выражением функции, которые по сути, просто создаются, никуда не передаются, не являются коллбеками?
function func() {}; или const func = function(){}; // стрелочная отличается по другой причине, поэтому тут её не привожу
Нахуй второе нужно вообще?
Единственные ответы, которые мне приходят, в первом случае она всплывает и можно вызывать функцию, до её создания, что по сути, на работу кода никак не влияет, ну напиши функцию сверху и хуй бы с ней. И во втором, функцию нельзя перезаписать типа func = 10. И по сути, лучше по этой причине использовать второй вариант, просто первый введён был раньше?
Принципиальные различия только в этом? Можно всегда пользоваться вторым вариантом? Ууу сука блядь Ну и разумеется, если пользоваться вторым вариантом, то всегда можно и стрелочную вместо неё хуярить, пока тебе this не понадобится, аргументс нахуй не нужны, тогда вопрос уже вообще теряет всякий смысл, потому что они всё равно будут отличаться, но уже по другой причине.
>>2016342 >Нахуй второе нужно вообще? Не нужно, это вопрос стиля, и "объявление именованной функции" без вариантов читается лучше, чем "объявление переменной и запись в нее функции".
>>2016350 >А как же подводная защита от перезаписи конста? Ты охуеешь, но если тебе не нужно переписывать переменную, то не переписывай и надуманная проблема констошизиков решена. Две функции с одинаковым именем ты и так объявить не можешь. >Почему всегда не использовать стрелочную вообще? Читается пизже Спорное заявление, по-моему пизже читается когда ты открыто и без сомнений пишешь мужское function, объявляя всему миру, что ты альфач и только что объявил ФУНКЦИЮ, а не дрочишь втихую как омеган переменные и анонимные стрелочки.
>>2016357 В том, что твоя реализация будет выглядеть как пик 1, а моя как пик 2. Делают они то же самое, но 1) моя проще 2) моя не полагается на проверку текстового имени 3) моя не прячет тот факт, что порядок дочерних элементов на самом деле значения не имеет 4) у моей есть явно объявленное публичное API, а не спрятанные внутри переборы непонятно чего.
>>2016350 Зато дебажится сложнее, функции анонимные в дебагере. Но конечно стрелочная функция удобней и ближе к матанской записи, что удобно в функциональщине.
const add => x => y => x + y;
сравни с
function add(x) { return function(y) { return x + y; } }
>>2016359 Всё дело в том, что я наоборот хочу отказаться от того, что ты предлагаешь. У меня сейчас так и есть проблемы с тем, что атрибуты слишком громоздкие.
>>2016362 >У меня сейчас так и есть проблемы с тем, что атрибуты слишком громоздкие. И ты ее не решаешь, потому что функционально это абсолютно то же самое, только неявно, скрыто и включает больше ненужного кода.
>>2016361 Тогда уж сравни с function add(x, y) { return x+y; }. А если у тебя реально сложная логика, требующая преобразования аргументов и возвращения новых функций, а не выдуманный неиспользуемый нигде пример из одной строчки, то стрелочная залупа будет читаться в сто раз хуже.
>>2016365 Решаю это тем, что теперь оно похоже на хтмл больше, чем на жс. Хотя, конечно, сомнительно. Я вообще просто кнопки хочу красить и блоки двигать, а мне пихают реакт.
Ну и по твоей логике получается, что бутстрап для реакта — говно. Код выше с карточками на пике — БС.
>>2016370 >Ну и по твоей логике получается, что бутстрап для реакта — говно Большинство компонентов в нем перебор children не используют и куда попало их не вставляют, ты всегда должен однозначно структуру объявлять.
>>2016385 Да я все различия и так знаю. Я же сам описал в первом вопросе. А типа если на собесе спросят, какие функции ты используешь по дефолту? Вот хули бы мне не использовать стрелочные везде? Что ты мне сделаешь? КАКИЕ ЛУЧШЕ ИСПОЛЬЗОВАТЬ ВЕЗДЕ ОТВЕЧАЙ МРАЗЬ ЧТО ТЫ ПИШЕШЬ, ТЫ ПИШЕШЬ ФУНКЦИИ? ПОКАЖИ КАК ТЫ ПИШЕШЬ, ХОЧУ ВИДЕТЬ КАК ТЫ ПИШЕШЬ ФУНКЦИИ О ДА СОЗДАЙ ДЛЯ МЕНЯ ЕЩЕ ПАРОЧКУ ФУНКЦИИ ГРЯЗНАЯ СУЧКА
>>2016391 Значит, что если я напишу <Card><Card.Title/><Card.Body/></Card>, то это отрендерится как и написано - сначала Title, после него Body, и ничего лишнего там не возникнет. А если внутри Card идет перебор children, и Title с Body рендерятся в обратном порядке, или между ними вставляется кнопка, или вообще один засовывается внутрь другого, то это расхождение по структуре - написал я одно, а рендерится неожиданно абсолютно другое.
>>2016390 Омеганский ответ джуна: "использую вот такое, но очевидно это вопрос вкуса и зависит от стиля в проекте, если принято писать стрелочные, то буду писать их".
Ответ альфы-сеньора: "пишу вот так, все остальное неправильно, и сейчас я вам объясню почему".
Посоны, поясните по хардкору, сильно я испорчу себе резюме, если буду менять работу каждые полгода? Если кратко, на первую работу устроился в говнокомпанию ТК там платили довольно хорошо (110к на руки, потом апнули до 120). Отработал 7 месяцев и дропнул ТК там были ужасные условия. Постоянный шум, крики и вонища. Месяц искал новую работу на удаленку, устроился на 95к + раз в квартал премия 75% от зп. Нынешняя работа норм, но вот зп мне не нравится. Согласился только потому что годных вакансий для удаленки на ангуляре было вот прям совсем мало. В итоге думаю месяцев 6-7 поковырять ноду и искать работу на ней. Это адекватный вариант, или лучше на нынешнем месте где-то хотя бы на год задержаться?
>>2016628 Вроде большинство так и делают. Но насколько я понимаю, в почете 2-3 года на одном месте, тогда конечно же больше плюсов перед HR.
>>2016633 >рекурсия это антипаттерн даже в ФП-языках Бред. Рекурсия это как раз-таки норм паттерн в ФП языках, те же списки в ФП обычно оформлены как list = head, tail: list(n - 1)
Но верно на счет tail-call оптимизации - в большинстве языков рекурсию нужно с умом применять.
>>2016628 хоть каждый месяц меняй, главное опыт и знания.
В резюме можешь сказать что работал на стартап ИП, работал в нем два года, потом он закрылся, вот ищешь работу. Наличие портфолио с кодом + знания нужные для позиции - все что нужно hr на счет работы можно смело пиздеть, никто это не проверяет.
>>2016673 >Бред. Рекурсия это как раз-таки норм паттерн в ФП языках В любом гайде по любому современному ФП языку тебе на первой же странице с рекурсией будут талдычить, что если перед тобой два решения: рекурсивное и не-рекурсивное, то выбирай то, где рекурсии нет.
Че щас у ректобогов в почете для стилей? ОФК styled components, а если из готовых сборок? Слышал библа Material UI под рякт заточена, так ли она хороша? Лучше чем бутстрап?
раз уж разговор за стили зашел, поясните че это за линки на цвета в браузере? часто замечал на разных сайтах, но не понял как они их делают, я знаю ток что в sass можно делать переменные со стилями, а это че за штука?
>>2016783 Чтобы быть в курсе чего-либо, не нужно с этим работать. Нужно просто интересоваться сферой. Как минимум читать профильные ресурсы каждый день. Если ты этого не делаешь, то твои знания устаревают еще до того, как ты их приобретаешь.
>>2016839 Потому что, что зекач, что группы твоих одноклассников - это токсичные комьюнити, состоящее преимущественно из дилетантов и невежд, кидающихся друг в друга говном. По подобным сообществам в 2к21 году даже релевантный срез мнений уже не составишь, как было в аналогичных загонах в начале века. Именно потому тут каждый второй истинный долбоёб, который лишь ретранслирует то, что где-то прочитал, и вскрывается на раз, стоит его лишь копнуть.
>>2016628 ну я скажу так, если бы я был твоим работодателем или hr, то я взял бы второго, у кого может меньше знаний, но кто не так часто меняет работу. Но это мое личное мнение, я не hr и не работодатель.
Я исхожу из такой логики. Неважно миддл , джун, синьор. Приходит новый человек и его надо обучать под свои нужды. На это в любом случае уходит время и силы. Никто делать это повторно не хочет.
Представь, если тебе постоянно ставили нового человека раз в 2 месяца. Сделай выводы сам.
>>2016899 В крупных конторах процесс найма и онбординга налажен на поток, там тебе и психолухи штатские и класс для обучения и целая программа для быстрого внедрения в команду, плюс методы разработки выстроены таким образом что их может писать каждую неделю любой вася, хуевым легаси такой код все равно не станет, поэтому они не заметят кто пришел а кто ушел, а вот конторки со штатом меньше 10 чел могут хуево переживать текучесть кадров
>>2016899 Хрюше надо получить премию за нового работника и наконец-то закрыть позицию. Тимлиду нужно тоже кого-то на проект посадить в ближайшее время. Что там будет через 7 месяцев мало кого волнует.
>>2016914 Это никакая ни основа, а один конкретный паттерн, и то его надо использовать с пиздецовой осторожностью, потому что написать лютый говнокод, который вместо обычного редьюса пытается сматчить все на свете в одной функции - как раз плюнуть. К вопросу "что использовать, рекурсию или цикл/list comprehensions" он отношение имеет слабое.
>>2016934 Это как раз тот случай, что если тебе нужно пройтись по коллекции, то лучше воспользоваться list comprehensions/соответствующией стандартной функцией ака map-reduce-each, а не лепить рекурсивный паттерн матчинг, который превратится в неподдерживаемый пиздец, как только логика усложнится.
>>2016942 Это всё ровно что сказать: мол, не используйте наследование, тк антипаттерн, предпочти композицию, но ведь от этого наследование не перестанет быть основой ОО.
>>2016961 >Можно, можно как угодно писать Нет, не можно. Если ты говоришь, что что-то - "основа ОО/ФП", а потом вдруг выясняется, что без этого чего-то можно спокойно писать ОО/ФП код, то это никакая не основа.
>>2016969 Молодец, авторитета процитировал не думая, а теперь расскажи мне своими словами, почему программа на джаве, не использующая слово extends ни разу, внезапно перестет быть ОО программой, и становится... чем?
>>2016977 >почему программа на джаве, не использующая слово extends ни разу, внезапно перестет быть ОО программой Потому что перестает соблюдать основный принцип ООП.
> и становится... чем? Объектной программой, а не объектно-ориентированной. Ты читать не научился еще?
>>2016752 > Напишите мне вычисление факториала без рекурсии на js Как нехуй делать: function fact(x) { let result = 1; for (let i = 2; i <= x; i++) { result *= i; } return result; }
>>2016984 >Потому что перестает соблюдать основный принцип ООП. Который ты определил как?.. Авторитет в книжке написал? Почему же тогда, если я эту программу покажу любому программисту, он сразу скажет, что это ООП? >Объектной программой, а не объектно-ориентированной Такой парадигмы и термина не существует, поменьше читай мусорные русские тексты, написанные/переведенные непонятно кем.
>>2016361 "к матанской записи" Долбоеб блять, ты не матан дрочишь на парах на 2м курсе, ты прогаешь Я тебя дурачка уже помню по твоим шизоидным постам из предыдущих тредов - про фп и матан. Думаешь ты у нас дохуя математик бля? Ты веб-макака обычная, математикам ты и в подметки не годишься, не надо себе приписывать то, чем ты в помине не являешься, лишь бы придать элитарности своему занятию
>>2017200 >элитарности своему занятию Обычный культист, который думает, что прогерство надо любить и заниматься этим с пеленок. А все остальные не трупрогеры. Мимо.
Задача: сделать расширение для браузера. Суть: нужную мне функцию сделали платной, данные можно смотреть за определенное число, но сравнивать их с данными за другие числа нельзя, а очень хочется. У сайта есть API, я хочу через него вытащить данные и записать их в файл, добавлять данные в файл при появлении новых записей, и встроить в интерфейс сайта табличку, где я мог бы эти данные сравнивать. Почитав доки по API выяснил: можно вытащить список записей в виде json, по id записи можно вытащить список сегментов в этой записи, там же в каждом сегменте нужные данные для сравнения. В итоге таблица: сегмент, дата, данные сегмента.
Как это сделать? Есть некоторые навыки JS/HTML/CSS/JSON.
>Напиши на ноде простенький бэк, закинь на heroku. А этим способом можно будет табличку в сайт встроить? Мне хочется, скажем так, восстановить функцию, которая стала платной.
Как это реализовать правильно? Если указываю юнион тайп, дальше сосу жёппу с точным типом. Вложенных объектов внутри большого объекта много, но они все подпадают либо под первый, либо под второй тип. Дальше на основе содержащихся в них полей создаются компоненты, в которые передаётся только один из типов, но вот компонент принимает только точный тип, а не union. Каким образом объяснить, что в него пришел конкретный тип? Самое банальное решение добавлять везде as. Но это это кажется срань какая-то. Тут упрощенный пример приведён разумеется, чтобы обозначить саму проблему.
>>2011386 (OP) Сап, начал изучать nest.js, но по нему как-то мало информации, официальная документация какая-то очень краткая. Есть ли какие-то плюс-минус подробные гайды по этому фреймворку или курсы?
>>2015588 >чистый подход (Update монада). Угу, всю грязь в тханки вываливают, зато экшоны ЧИСТЫЕ. Не забудь ещё хуярить по 3+ экшона на каждый ассинхронный пук. >>2015655 За пределами реакта редукс нахуй не нужен. >>2015735 >А если индус знает слово редьюс, то он достаточно образован, чтобы не делать магических операций в теле функции. То-то прямо в доке редукса плачутся, что все такие неправильные мутабельный код постоянно суют в редюсеры.
>>2017259 У пхпшников с их дрисней так вообще лютый каргокульт Жавы, все громадные паттерны пиздят оттуда, уверяя что "это тру", хотя по большей степени все это нахер не нужно. Но им главное заставить самих себя поверить что они ничуть не хуже "белых людей" (жавистов) и что они не обычные веб-макаки а сцуко Инженеры Будущего с кучей хитровыебанных паттернов и DtO
Каким образом можно связать массив компонентов в реакте с массивом данных? Т.е. мне например нужно вывести список компонентов и их названия. Я могу передать массив компонентов через пропсы и вывести список этих компонентов. Но мне так же нужно озаглавить каждый из компонентов. Есть конечно вариант использовать ключ каждого компонента в массиве как заголовок, но звучит как лютые костылееблические костыли. Можно ли как-то добавить данные к реакт компоненту, которые передается в пропсы, а потом их прочитать? Если абстрагироваться от реакта, то нужно что-то вроде обьекта, где первый ключ это название, а второй ключ это реакт компонент, но кажется это довольно хуёво будет, пихать компонент в объект?
сап погромач. анон, накидай советов. рендерю при помощи ваниллы жс элементы (допустим тупо список дивов), и затем надо пройтись по ним и навесить эвенты. и бывает что срабатывает через раз тк браузер еще не успел отрендерить элемент, а я пытаюсь к нему постучаться, из за чего ошибку ловлю что пытаюсь чет мутить с null ээлементов. как фиксить ? setTimeout тыкать ? просто боюсь что если элементов станет больше то и он перестнает работать =/
>>2017661 Я работаю со spring boot, увидел nest.js, мне он показался чем-то похожим и я решил покрутить, повертеть этот фреймворк. Но не знаю с чего начать, потому что доков оч мало, а тот видогайд, что у них на сайте - платный. Щас бы делать гайды на свой фреймвор платными, пиздец
https://www.youtube.com/watch?v=ozvUaikP6cs Сейчас нашел рандомный видос с собеседованием. Там два достопочтенных мужа собеседуют джуна, который похоже жс никогда не учил. И вот чуть ли не на первом же вопросе сразу ОБА интервьюера жидко срут в штаны, поясняя за Object.assign, с умным видом рассказывая, как он круто умеет копировать геттеры, а потом в комментах оказывается, что не могут. Что-то я в ахуе с этих собеседований, когда даже люди, которые проверяют твои знания, этими знаниями не обладают. Пиздец.
>>2017727 Я смотрел все их собесы, там откровенно слабые вопросы. Хочешь нормальных собесов - посмотри на канале арчакова, там реальные хрюши и тех диры собесят с реальных собесов.
Почему array не является типом данных, но функция является? Почему у кантора функция это не тип данных? Почему в ecmascript функция это тип, и typeof вернёт тип function для функции? Вам въебать?
>>2017869 > Почему array не является типом данных, но функция является? Потому что массивы это объекты. Функция "объект" лишь на очень низком уровне, на который всем похуй. А массив по сути и есть объект, просто оптимизированный.
>Почему у кантора функция это не тип данных? Потому что кантор это говнище, которое делает фокус на вещах, который либо не имеют значения, либо не используются вовсе. По ДЖС есть намного лучше книги, например
>Почему в ecmascript функция это тип, и typeof вернёт тип function для функции? А чем она еще должна быть, мамкой твоей? Про низкий уровень даже не начинай, функции это функции, внутренняя реализация не имеет значения.
Осилил доки jest, react-testing-library, сейчас читаю cypress. И чет охуеваю. То есть все тестирование фронта сводится к тому, чтобы "прокликать" по всем компонентам, сделать снапшот до и после, и сравнить их? Охуенно. Охуенно. А как писать в TDD стиле? Я сначала должен написать тесты, "прокликать" по всем компонентам "в уме", а потом уже писать, собственно, сами компоненты? Охуенно. Охуенно. Ни разу не ебля ради ебли на пустом месте, очень нужно и полезно.
>>2017900 Все верно, TDD для UI пишется по-старинке - когда ты можешь просто querySelector и наличие элемента или его текст внутри, клики по кнопкам, переходы на страницы и т.д.
>>2017898 Вот самый ахуй тут в том, что на собесе меня ебут в жопу прототипами, ВАРАМИ блядь, ВАРАМИ, еб вашу мать, КОНСТРУКТОРОМ ФУНКЦИИ, не функцией конструктором, а ИМЕННО КОНСТРУКТОРОМ ФУНКЦИИ, пиздец. Я то конечно знаю как по хардкору за всю хуйню пояснять теперь, после парочки таких собесов, про все эти блядь области видимости их мамаш, про ебанутейшие варианты работы с объектами и прочей хуетой, которую последний раз в коде использовали в 19 веке. Так что зачеркнуть-то можно, а потом придется мычать на собесах как побитая шлюха. Причем про всю вышеперечисленную хуйню меня спрашивали вообще на каждом собесе, ну ладно там прототипы, но конструктор функций, ой блядь
>>2017900 >То есть все тестирование фронта сводится к тому, чтобы "прокликать" по всем компонентам, сделать снапшот до и после, и сравнить их Нет. Тестирование по снапшотам - это антипаттерн и оно имеет смысл только для регрессивных тестов старого не покрытого нормальными тестами функционала. Если ты пишешь функциональные тесты сразу, то писать их нужно без всяких снапшотов, проверяя конкретный функционал, вроде "когда я жму на кнопку, на сервер отправляется такой запрос", "когда с сервера приходит такой ответ, форма отображает вот это". >А как писать в TDD стиле? Я сначала должен написать тесты, "прокликать" по всем компонентам "в уме", а потом уже писать, собственно, сами компоненты? Сначала ты должен написать в виде красного теста одно условие, которое будущий код должен реализовать. Потом написать реализацию для этого одного условия, которая сделает тест зеленым. Повторить до победного конца. И это не ебля на пустом месте, а методология разработки, благодаря которой ты в момент написания кода будешь сразу знать, что весь написанный тобой код делает ровно то, что должен, а не писать огромный неработающий кусок логики, и потом лезть в UI или в дебагер, пытаясь этому куску логики настучать палкой по голове, чтобы он кое-как заработал.
>>2017921 > писать огромный неработающий кусок логики, и потом лезть в UI или в дебагер, пытаясь этому куску логики настучать палкой по голове, чтобы он кое-как заработал. Кек, это пугающе точное описание моего последнего пета.
>>2015053 1. Переписываешь underscore. Без всяких изъебств. Заходишь на сайт либы, смотришь на примерах как работают методы и пишешь свои функции. Так набьешь руку на работе с массивами, объектами, функциями. 2. Переписываешь Jquery. Таким же макаром. Реализуй примеры с сайта по документации средствами нативного JS. Так набьешь руку и поймешь как работать с DOM. 3. Тоже самое с другими библиотеками и фреймворками.
Параллельно пиши всякие пет проекты. Реализовывать пет проекты с нуля долго и неэффективно. Поэтому находишь на гитхабах готовую реализацию чего-либо и пытаешься сделать ее сам. В случае сильных ступоров подсматриваешь исходники. Так ты учишься делать проекты, читать чужой код, учишься эффективно (не решаешь слишком простые задачи с одной стороны и не зависаешь часами над сложной херней с другой).
>>2018444 >>2018447 Еще раз, читай внимательно - это ЛОГИРОВАНИЕ. Это НЕ ошибка. Это ничем не отличается от console.log в твоем коде. Как ты перехватываешь console.log в чужом коде? Ты вообще отбитый нахуй? Тебе скрин выше зачем прикрепили?
>Чтобы не засирало консоль Тебе выше показали какую галочку поставить в девтулзах, чтобы не видеть лог-сообщений работы с сетью.
>>2018450 Да хоть чипирование. Оно красным выскакивает. Как это отрубить? Код полностью мой. Почему я в своем собственном коде любую другую ошибку могу отловить и написать отдельный вывод ошибки, а тут нет?
>Тебе выше показали какую галочку поставить в девтулзах И причем здесь детский сад с галочками.
Если я это приложение куда нибудь выложу, мне тоже людей просить галочки ставить и объяснять какого хуя у меня то и дело ошибки вылазят. Ой простите не ошибки а ЛОГИРОВАНИЕ.
>>2017633 Если элементы однотипные, то через делегацию событий вешай обработчик на контэйнер этих элементов. Нигде пробегаться не нужно и потеть о рендерах.
>React has been doing event delegation automatically since its first release. When a DOM event fires on the document, React figures out which component to call, and then the React event «bubbles» upwards through your components. But behind the scenes, the native event has already bubbled up to the document level, where React installs its event handlers. Правильно ли я понял, что делегировать события в реакте можно, но не нужно? В этом нет смысла? https://github.com/facebook/react/issues/13635 Денчик тоже пояснил, что не нужно.
Несколько на собесах при этом слышал вопросы по делегированию событий в реакте и как это лучше сделать, причем без явного троллинга в сторону того, что оно не нужно.
>>2018611 >Правильно ли я понял, что делегировать события в реакте можно, но не нужно? В этом нет смысла? В рякте ты уже сорт оф делегируешь события, передавая функцию от родителя предкам через пропсы. >Несколько на собесах при этом слышал вопросы по делегированию событий в реакте и как это лучше сделать, причем без явного троллинга в сторону того, что оно не нужно. Потому что собесить тебя будут пердуны, которые писали на классах, а Абрамчик признался, что рякт автоматом делегирует события и обработчики событий на DOM-элементах в браузере - исключительно затычки для сафари, только в конце прошлого года.
Помню что async-функции на самом деле возвращают Промис Как это именно работает? Я в том плане что - как именно функция оборачивается в промис? Хочу это попробовать вручную написать
Аночники, нужен ваш совет. На Udemy акция. За косарь можно взять большие курсы по JS от Ивана Петриченко или Дениса Мещерякова. Ваше мнение стоят ли они внимания ?
Подскажите раку, можно ли с помощью одной кнопки доставать только один объект из массива? Ситуация такая: есть одно модальное окно, содержание в нем меняется в зависимости от клика по конкретному товару. То есть тут все просто (как я понял) - есть много товаров, соответственно через foreach я могут менять содержание окна из массива объектов, это я понял. Но как сделать так, чтобы через клик в модальном окне одной-единственной кнопки "заказать" мне выдавался только один объект из массива?
В общем вопрос такой: как через одну кнопку проходить по каждому элементу массива?
>>2018660 Кок-пок перфоманс, 64кБ хватит на всех. Вкрации, тут условный оператор запускается один раз в момент инициализации. Внутри функции он будет тригериться на каждый вызов, к тому же занимая в памяти больше места под свой аргумент.
>>2018590 Ну это же опять реализация на уровне моего пк. Грусть печаль тоска. Нуежели совсем никак в коде такое не реализовать? Я уже носом землю рою, и решения все еще не нашел. Ощущение что этот момент реально не продумали. Крайне глупо что в жсе нельзя аккуратно проверить наличие файла в сети без ругани в консоль.
>>2019009 >Крайне глупо что в жсе нельзя аккуратно проверить наличие файла в сети без ругани в консоль. Зачем клиентскому скрипту проверять наличие чего-то там за пределами страницы? Подразумевается, что это делает или сервер, возвращающий нужный респонс в эндпоинте, или на стадии билда/тестов. Можно ещё фетчи в воркере проводить, но учитывая, что воркер может в фетч изкаробки, вполне вероятно консольную ошибку браузеру он тоже будет передавать.
>>2019009 Каков пиздец, а красная строка в нетворке тебя не смущает? А 404 в логах сервера? Тебе ещё админ потом позвонит скажет «хуль ты пидор файлы грузишь которых нет»
>>2019063 Ну хотелось бы без сервера просто мини приложение запилить и поделится с группой людей. Ладно я уже понял что это неизбежность. Печаль беда. Надо было в сярпе пилить.
>>2019067 Вот кстати, да смущает. Еслиб смог решить проблему с консолью, это был бы второй шаг. А вообще да можете считать это перфекционсткими заскоками и аллергией на красный цвет.
Хочу отображать подсказку по вводу, когда юзер щелкнет на конкретный input либо начнет там что-то вводить - как именно это лучше делать? Над полем должно появиться некое всплывающее окошко, где будет отображен текст, но которое не будет блочить действия пользователя
Какие лучшие практики по организации веб приложения на жс с множеством входных точек? Т.е. фронтенд, фронтенд-сервер, бекенд-сервер апи, сокет-сервер, разные воркеры и так далее. Изначально я начал работу над проектом разделив все элементы на репозитории по зонам ответственности в решении, полный share nothing. Начал чувствовать большое количество пересечений по контрактам и однотипному коду - однообразное цепляние к всяким бекенд-сервисам например, конфиги. Так-то буквально общей _бизнес-логики_ пока не появилось. Есть части системы которые вообще не имеют почти ничего общего с остальными, их было очень легко выделить и не чувствовать давление от DRY.
Погуглил что да как делают, нашел две альтернативы: 1. Выделение кода в пакеты - пока не попробовал, можно просто в гитлаб вынести пакетом общие типы, интерфейсы и обертки, но так придется постоянно апдейтить зависимость внутри репозиториев что конечно-же небольшая проблема но выглядит неоптимально. 2. Монорепозиторий - собрал всё под один корень и переделал сборку - работает и удобно что весь код решения рядом, но все-равно чувствую осадочек.
И вот с учетом того что по итогу у проектов между собой общая в основном только метаинформация, типо конфигов (даже тот-же еслинт) и типов, некоторых зависимостей, а конкретно логика не повторяется (кроме минимальных оберток) то все равно есть ощущение что share nothing более уместен, даже не смотря на то что это не полностью самостоятельные микросервисы допустим, а части общего решения.
Перфекционизмом это могло быбыть, нсли бы ты разбирался в том, что делаешь и понимал, что вообще происходит. А ты тотальный невежа,который неодупляет смысла происходящего, и хочет, чтобы число пи было целым, просто потому что тебе целые больше нравятся.
>>2015362 >а реакт свой написать на нем с блекджеком и шлюхами Интересно это тяжело? Кто-нибудь пробовал? Имею в виду не создание собственной библиотеки, а реализацию тех или иных фишек на нативном JS.
>>2019200 Гитлаба хватает. В том варианте монорепы что я взял (очень тупо просто ярн воркспейс в корне) при сборке контейнера затягиваются куски т.ч. бампать не нужно, при изменении само пересобирается. М.б. это не так оптимально как публиковать их пакетами и затягивать при сборке конечно, но это нужно дополнительно уточнять - насколько.
Не хочешь пояснить почему ты считаешь вариант с монорепо самым подходящим (независимо от того как происходит сборка, если конечно не относится напрямую к преимуществам каким-либо образом)?
>>2019215 Как минимум версионирование. Получается контейнер должен знать, что пакет брать не из ветки main master, а условной bugfix/piece-of-code, хотя контейнеру должно быть поебать, не его ответственность.
>>2019190 Ой иди нахуй. Это ты нихуя не разобрался. Я же к этому моменту уже все перекопал по вопросу, да и в треде мою уверенность окончательно утвердили, что это сделать в принципе невозможно. И тут приходишь ты и начинаешь пиздеть, что я чего то не знаю. Харкаю в твою напыщеную рожу. Хуже тупых людей которые нихуя не знают, только тупые, которые строят вид что они умники, когда на деле сами в вопросе нихуя не шарят и просто хотят высраться, запутывая вопрашающих ньюфагов.
Не помогает. Я посмотрел, как другие делают корзину (примеры и обучающие видео) - у каждого товара есть кнопка. У меня только одна кнопка в одном модальном окне, содержание которого зависит от объекта массивов. Но когда я пытаюсь простым циклом вывести в консоли объект по каждому клику, он выводит мне все объекты в массиве.
Хочу через одно модальное окно ввести данные в локальное хранилище, а оттуда на отдельную страницу с корзиной. Но как мне сделать так, чтобы по клику отреагировал только один объект, я не понял.
>>2019184 Кодовая база условного сервера не будет пересекаться с вротендом, даже если оба на ЖСе, так что их не имеет смысла в одном контексте держать (да и заебёшься тулинг под свою айдиешечку настраивать, который бы одновременно переваривал интерфейсы ноды и ватагу браузерных апи). Фронт-сервер - это типа отдельный сервер под папки public и templates? Если сервисы не находятся на отдельном хостинге, то их нет смысла пихать как отдельные серверы, а пропукивать амазоновские апишечки может и мейн сервер через воркеров. Репозитории лучше пилить по хостингам, так как они рано или поздно разрастутся всякими мелкими деталями конфигов, нужных для хоста. Ну а какие-то общие конфиги можно хранить в руте монорепы в виде джейсонов. >не чувствовать давление от DRY Так ты о драе вспоминай когда в одном контексте ебучий бойлерплейт всплывает, а не когда в двух контекстах какая-то общая логика начинает появляться. То что она в конкретный момент времени схожа, не значит, что она не поменяется в одном из контекстов. И чем больше контекстов, разнящихся в деталях, тем больше оверхеда добавляет талмудическое следование драю.
>>2019270 А я тебе уже говорил: "пошел нахуй". Уже то что у тебя даже никаких аргументов нет, выдает в тебе тупоролого выпендрежника. Рака яичек тебе и твоей семье
>>2019273 Ну или просто подскажите мне пожалуйста, как сейчас делают корзину на чистом JS (или нечистом, не знаю). Чтобы я понял, как нужно, а как не нужно.
>>2019348 Как я понял, у него там можно и с помощью фор проверять айдишник кликнутого элемента. Просто вкатышь может и не знать фильтр, ну а фор... Крч очередной неосилятор, работаем дальше.
Я знаю: html css scss js react redux react-bootstrap typescript mongo webpack postcss jest react testing library cypress git linux (bash-команды, свободно могу собрать рачик на коленке, почти не подглядывая в мануал) немного mongo и node Планирую выучить (на уровне свободно написать пет, не получая слишком долгих затупов): redux-saga styled components graphQL + apollo node + express Oauth аутентификация в целом (passport.js, например) socket.io next.js любая SQL-бд досмотреть курс по алгоритмам + прочитать книжечку. осилить YDKJS, все книжки. В целом неплохо было бы поковырять: Что-нибудь по безопасности Паттерны проектирования ООП Docker Микросервисы Nginx Естественно, в процессе всей этой хуйни пишутся петы и заливаются в портфолио. После этого я планирую начать искать работу на позицию junior frontend developer с зарплатой от 15ти до 30ти тысяч. Где я проябался, сеньоры, поясните плз.
Сап б. Это не очередная рулеточка или фейковая раздача денег на даблы.
Я пришел предложить анону легальную подработку анону. В воркаче 2,5 человека, поэтому решил создать тред в б.
Суть такова, требуется пара тройка можно больше анонов, способных собирать простые сайты на конструкторе. Оплата фиксированная (3800 рублей за 10-15 страниц сайта), как и перечень того, что входит в стоимость создания сайта.
Поток клиентов уже налажен, от вас лишь потребуется своевременно сдавать работу, в течение 10 дней. График свободный, все как маняфантазировал анон.
Для начала необходимо пройти небольшое тестовое задание.
Вопросы можете задать тут, либо можно писать в тг.
>>2019394 >Я знаю: >typescript >В целом неплохо было бы поковырять: >ООП Я не вижу противоречий. Я использую ТС в реакте для ФП. Знать ООП паттерны в которых применяется ТС != знать ТС.
Норм ли практика передавать пропсу React-компонента (да и любой функции по сути) объект с большим числом свойств, чем у него в интерфейсе TS? Решил делать так, чтобы при prop drilling'е не распаковывать в каждом слое объект, так как каждый компонент все равно ограничен типом/интерфейсом пропсов, rest, наверное недешевый, да и в самом коде будто для глаз лишний. Единственный минус заметил — в девтулзах не так удобно компонент просматривать из-за лишних свойств в объекте пропса
>>2019389 А что ты понимаешь под пет проектами? Я вот тоже наизучал всякого, но понятия не имею что реализовать и главное выложить на всеобщее обозрение. Всякое не сложное говно уже 1000 раз сделано и переделано по всему интернету, а что придумывать сложное хз, я же не мамкин стартапер.
Большинство людей в ступор впадают, когда обычный js видят, мозг отказывается воспринимать информацию такого плана, ибо СЛИШКОМ СЛОЖНО для них (хотя на самом деле достаточно просто ПОДУМАТЬ, но люди ленивы и думать не хотят). Но динамическая типизация от этого хуже не становится, она отсеивает ТУПИЦ.
>>2019720 Лучше конечно хранить каждую без исключения портянку в глобальном стейте с тонной бойлерплейта, чтобы каждая шавка на задворках приложения могла откуда угодно эту портянку вытащить и поменять как шавке вздумается, сыглы.
>>2019720 у меня apollo-client, я как раз таки фрагменты прокидываю: каждый нижний компонент просит меньшего куска данных, а я даю больше, благо типы ограничивают и есть структурная типизация
>>2011386 (OP) А есть ли для работы с js и вообще с веб фронтендом движки или мб плагины, которые позволяют интерфейс строить как например в Андроид студии или в Юнити. То есть не писать <кнопка на пять метров вправо></кнопка> и вот этот весь пиздец с версткой. А просто кинуть объект кнопки на полотно. А функцию уже писать на js. И чтоб html был как xml, то есть для дополнительного задротства. М?
>>2019846 >То есть не писать <кнопка на пять метров вправо></кнопка> и вот этот весь пиздец с версткой. Попробуй выучить CSS. >А просто кинуть объект кнопки на полотно. А функцию уже писать на js. И чтоб html был как xml, то есть для дополнительного задротства. Это ты React описал.
>>2018881 Додик, забрасывай в модалочку один свой объект товара и работай там с ним. У тебя товары и так должны быть уникальны хотя бы по одному признаку, зачем тебе в модалку заказа товара кидать весь список?
Кто занимался достаточно сложными анимациями в CSS, которые должны генерироваться динамически? Я со своим десятилетним опытом клепания игр на канвасе хотел было взяться за старое: целиком в JS высчитывать координаты и просто покадрово (в requestAnimationFrame) обновлять позицию элементов. Но не тут-то было: при таком подходе CSS ощутимо подлагивает уже на нескольких десятках анимаций на фрейм. При этом "нативный" transition показывает гораздо лучший результат. Но это, блин, совершенно другая философия, чем покадрово вычисляемые координаты.
Так что у меня вопрос: есть ли вообще в CSS способ проводить над элементом несколько одновременных трансформаций с разными изингами? Например, я хочу, чтобы по оси X элемент двигался равномерно, а по Y - по квадратичной функции. Это как-нибудь реализуемо средствами CSS?
>>2019893 >Линтер есть? Тесты есть? Нет, ничего этого нет. >Вообще, давай его сюда, я обоссу. Сюда скидываеть не буду, только в ЛС, лол. Мне мало обоссать - мне надо узнать, как оно должно быть на самом деле; желательно конкретным примером. П.С. Говно-проект на vue \ vuetify.
>>2019882 >Хороший код в комментариях не нуждается. Вот только не надо. Попадались кодеры, которым показываешь меньше ста строк кода, а они воют, что код сложно читаемый. Межтем, у самих такое дерьмо замешано, без вилки не разберёшь.
>>2019944 Канвас думаешь просто так придумали? Сотни манипуляций домом в секунду - пизда какое дорогое удовольствие. Обычно анимируют пару элементов всего.
>>2019862 Да есть. Чем раньше начинаешь ходить на собесы, тем быстрее получаешь обратную связь, знакомишься с рынком, работаешь над ошибками. Все равно первые несколько десятков собесов будешь заваливать.
>>2019944 Web Animation API тебе нужны. Это JS апи для манипуляции именно CSS анимациями. Можно делать все. И покадрово генерировать KEYFRAMES в том числе.
>>2020282 >>2020228 http://ru.battleship-game.org/ Ну вот пример, нужных движков нет для подобных игорь? с нуля не охото пейсать всю клиент-серверную лапшу Сылка генерится для коннект а не реферала
>>2020174 >Web Animation API тебе нужны. Посмотрел, что такое. Выглядит как сахарок для уже существующих возможностей. При этом я всё ещё не вижу способа задать элементу экспоненциальное движение по одной оси и линейное по другой. Есть там разные изинги для разных параметров? Или мне делать миллион кейфреймов?
>>2020441 Да пока больше никаких. Просто хочу надо модный стек с реактами и редуксами, а на этой вакансии этого всего нет. С другой стороны смотрю я на вкатунов, которые месяцами вообще никуда вкатиться не могут и думаю мб это не такой плохой вариант.
>>2019944 > Например, я хочу, чтобы по оси X элемент двигался равномерно, а по Y - по квадратичной функции Если сможешь выразить эту функцию через Безье, то без проблем: transition: left 123s linear, top 456s cubic-bezier(1,2,3,4);
>>2019712 Это пиздеж. Я даже на всякий случай вакансии перепроверил. Везде миллиард технологий в стеке и еще "плюс будет ...". Хуй ты куда джуном устроишься, если ты не миддл, лол.
>>2020682 Нет. Я еще ебейший стек не выучил, следовательно, нехуй соваться. Вот закончу алгоритмы, саги, ноду, многотомник YDKNJ, напишу штук 10 петов (как полагается, с беком, с тестами, на ТС), чтобы гитхаб сразу в глаза бросался, вот тогда буду ходить.
>>2020679 Так ты и выучив всю эту ебалу на миддловскую позицию не устроишься. Думаешь там идиоты сидят и схавают твои домашние поделия за коммерческий опыт? Даже не пытайся наебать там никого, себе хуже сделаешь. Ищи более менее джунские вакансии и не выпендривайся.
>>2019882 >Хороший код в комментариях не нуждается. Он САМОКОММЕНТИРУЕМЫЙ. Это применимо не ко всем областям. В том же машобе у меня зачастую по несколько строк комментариев на одну строку кода. Да и в вебе попадаются моменты, когда приходится комментировать некоторые неочевидные вещи.
>>2020921 Не очевидные вещи занимают небольшую часть от общей массы и обычно это высокооптимизированные куски. Нахуй остальной код засирать комментами на корявом рунглише, лучше просто написать простой код.
>>2019738 Все, что приходит в голову. Я обычно реализую что-нибудь, что занимает не больше одного дня (с оговоркой на мои умения). На что-то дольше у меня обычно пропадает интерес.
>>2021309 >Ну как успехи? Лень пробовать. По производительности - мне хватает. А вот с вращением не очень получилось. Транслейт работает like a charm, но вот поворотный контейнер внутри поворотного контейнера иногда выдаёт такие странные штуки, что мне даже стало лень с этим разбираться. В итоге оставил слайдеры по осям и только один "шарнир" для поворота по всем углам. Обойдусь без разных изингов для rotateX, rotateY и rotateZ.
>>2021162 >Кстати, зачем игры на js делать? Есть же всякие юнити-хуюнити. Весь смысл игр на JS в том, что они в другой лиге, нежели игры на десктопе. У тебя обед/начальник отвернулся - ты щёлкаешь по закладке и уже через секунду играешь. Закрыл вкладку - чист перед законом.
>>2021560 >Как изменить, что б сортировать по пересадкам? Так сортировать или фильтровать? Сформируй вопрос нормально блядь, откуда такой вкатываешься?
>>2021582 с type Result круто, спасибо, только хочу, чтобы компилятор ругался, когда в const result не все свойства из const indicators в качестве элементов использованы, как в Record
Есть инфа как в Реакте использовать данные из Url? У меня есть такая ссылка <Link to="/item/1">Товар</Link>, которая очевидно отсылает на страницу /item/1, но я хотел узнать как использовать эту единицу (например записать в переменную и т.д.). Пару недель изучаю Реакт, но никак не могу понять как передать данные между компонентами (пока умею только через localStorage).
>>2021990 > /item/1 А как ты до этого докатился без роутера? > никак не могу понять как передать данные между компонентами Щас вкатыши начнут кукарекать за пропсы, но ты просто прикрути редукс.
>>2021602 >Какую игру думаешь сделать, если не секрет? Пошаговый коффибрейк-роглайк с боёвкой как в Disciples-2 и оригинальной механикой захвата карты. Серьёзно, в двух словах не объяснить, этому пет-проекту семь лет будет осенью (из которых года три активной разработки).
>>2021501 >>2022076 >>2019944 Что за шиза? Любую такую хуйню на канвасе делают, потому что канвас это почти прямой буфер к видеоядру. CSS это думзалупа.
>>2022104 >Любую такую хуйню на канвасе делают Какую - такую? Если у тебя не спелунки, где можно играть джойстиком, а что-то типа ККИ, где есть карты, на которых есть надписи и на которые могут быть наложены эффекты, представленные значками, и каждый значок эффекта должен быть интерактивным. Не, канвас хорош для своих целей, а CSS для своих. У меня вообще three.js раньше юзался в этом проекте, но однажды я потестил его на мобилках и понял, что подлаг от инициализации либы слишком огромный, и он не закэшируется, как 500кб её веса.
Ну и где тот пиздабол, что обещал, что тпед будет перекатываться всегла во время. Какого хуя трел в бамплимите вторые сутки? Какого хуя все предыдущие трелы по несколько дней весят в бамплимите?
Анон, чем собрать в браузере из нескольких svg файлов псевдо 3д модель? Например самое простое, собрать куб по образу пикрелейта? Тут очень важно, что бы все стороны куба брали ресурсы из файлов на диске.
Инб4, нахуя так сложно: я в программе inkscape хочу сделать для некого ящика стороны, но у этих сторон есть замки по краям пикрелейт, в форме прорезей в виде буквы Т, и мне нужно видеть совпадают ли прорези у сторон куба например А и Б.
>>2022220 Хз, главное не быть мудаком, а род деятельности не важен. Я вот прочно окопался на проекте, даже менеджерка слабо представляет все процессы. Можно сказать, что автобусный фактор равен 1.
Ошибки: index.js:1 TypeError: Cannot read property 'options' of undefined at Object.getWeekFirstDay (dateFns.js:86) at getWeekStartDate (dateUtil.js:95) at DateBody (DateBody.js:21) at renderWithHooks (react-dom.development.js:14977) at mountIndeterminateComponent (react-dom.development.js:17803) at beginWork (react-dom.development.js:19041) at HTMLUnknownElement.callCallback (react-dom.development.js:3945) at Object.invokeGuardedCallbackDev (react-dom.development.js:3994) at invokeGuardedCallback (react-dom.development.js:4056) at beginWork$1 (react-dom.development.js:23956) at performUnitOfWork (react-dom.development.js:22768) at workLoopSync (react-dom.development.js:22699) at renderRootSync (react-dom.development.js:22662) at performSyncWorkOnRoot (react-dom.development.js:22285) at react-dom.development.js:11319 at unstable_runWithPriority (scheduler.development.js:646) at runWithPriority$1 (react-dom.development.js:11268) at flushSyncCallbackQueueImpl (react-dom.development.js:11314) at flushSyncCallbackQueue (react-dom.development.js:11301) at discreteUpdates$1 (react-dom.development.js:22412) at discreteUpdates (react-dom.development.js:3756) at dispatchDiscreteEvent (react-dom.development.js:5881) {componentStack: "↵ at DateBody
и: index.js:1 TypeError: Cannot read property 'localize' of undefined at dateFns.js:108 at Array.map (<anonymous>) at Object.getShortMonths (dateFns.js:105) at DateHeader (DateHeader.js:26) at renderWithHooks (react-dom.development.js:14977) at mountIndeterminateComponent (react-dom.development.js:17803) at beginWork (react-dom.development.js:19041) at HTMLUnknownElement.callCallback (react-dom.development.js:3945) at Object.invokeGuardedCallbackDev (react-dom.development.js:3994) at invokeGuardedCallback (react-dom.development.js:4056) at beginWork$1 (react-dom.development.js:23956) at performUnitOfWork (react-dom.development.js:22768) at workLoopSync (react-dom.development.js:22699) at renderRootSync (react-dom.development.js:22662) at performSyncWorkOnRoot (react-dom.development.js:22285) at react-dom.development.js:11319 at unstable_runWithPriority (scheduler.development.js:646) at runWithPriority$1 (react-dom.development.js:11268) at flushSyncCallbackQueueImpl (react-dom.development.js:11314) at flushSyncCallbackQueue (react-dom.development.js:11301) at discreteUpdates$1 (react-dom.development.js:22412) at discreteUpdates (react-dom.development.js:3756) at dispatchDiscreteEvent (react-dom.development.js:5881)
Дарова пацаны Прошу вас, объясните на пальцах, зачем нуден REACT Я учу его пару дней, т.к он самый популярный фреймворк, но я совсем не понимаю зачем нужны танцы с бубном и писанина в 100 строк, если можно просто добавить в HTML то что ты хочешь. Как я понял, реакт нужен для автоматизации, или он как-то с бэком подключается через апи, ну крч вот эти возможности которых нет в ванильном хтмл5. Ещё я не могу понять зачем нужно ставить сайт на локалхост? Не судите строго, я и ES6 не особо понимаю зачем, но JS знаю в общем хорошо, спасибо за совет
>>2022492 >зачем нужны танцы с бубном и писанина в 100 строк, если можно просто добавить в HTML то что ты хочешь. А ты так пробовал? Ты ж взвоешь и попросишь реакт, когда начнешь делать spa или сложный динамический интерфейс.
>>2022492 Чет судя по твоей простыне - у тебя какая-то каша в голове. Реакт это просто библиотека, позволяющая создавать удобные пользовательские компоненты, которыми легко манипулировать. Намного легче, чем писать миллионы строк и отслеживать изменения с помощью ванильного JS.
>>2022517 Так реакт же фреймворк а не библиотека, Jquery например я пробовал и понимаю более менее за чем, а вот реакт, ну удобненько, но все ещё сложно для понимания >>2022499 я же прошу пояснить, а не >spa или сложный динамический интерфейс
>>2022492 Реакт позволяет создавать SPA. Плюс ко всему, у реакта есть внутренний virtualdom, в который сначала вносятся изменения при рендере элементов, потом изменения сравниваются с текущим домом, и в текущий дом вносятся только те изменения, которые отличаются от виртуального, страница целиком не обновляется. Правда я не знаю каким образом реакт обновляет только необходимые элементы и не заставляет бровсер перерисовывать всё целиком.
>>2022532 Реакт можно назвать фреймворком в том смысле, что он довольно-сильно диктует принцип написания кода и вообще подход к разработке. Так что с этой точки зрения, реакт - фреймворк. Но кому вообще не похуй?
>>2022583 Но он ничего не диктует, ты с JSX путаешь, который можно и без рякта пользовать (и рякт без JSX). В самом реакте ты просто прокидываешь функции и жонглируешь скоупом, то есть пишешь типичный жс код.
>>2023179 >У тебя без SPA страницы перезагружаться будут постоянно Они и в спа будут перезагружаться, просто перезагрузка будет идти фетчем и ререндерингом DOMa, к которому прикрепляются костыли в виде мамкой клянусь неглобального состояния и всяких листенеров микропуков. >Ой блядь, ну конвенция в рякте есть? Без конвенций ты и два модуля не напишешь.
>>2022128 > Какую - такую? 60фпс же. > должен быть интерактивным. Енто проблема, енто да. Но решается одним буфером. > подлаг от инициализации либы слишком огромный, и он не закэшируется, как 500кб её веса. Значит ты какую-то хуйню сделол. В идеале на three вообще нет никаких "подлагов", и не 500кб, а 250-300. Three можно вообще уменьшить до 100кб или даже меньше.
>>2023290 Я просто не могу понять для чего нужны SPA с точки зрения бизнеса, который должен выбирать именно их. Пока все, что я читаю об SPA похоже на какое-то наебалово. Их разработка дороже, с индексацией и вообще SEO проблемы. Чтобы избавиться от этих проблем, нужно танцевать с бубном и делать SPA похожим на многостраничник (настраивать роутинг и присобачивать урлы) и тогда тем более не понятно, что мешает сразу сделать многостраничник и продвигать его в поисковике и рекламе.
>>2023362 Ну вот в стародавние времена писали десктопы, а теперь не пишут, обновления там, кроссплатформа, еще что нибудь наверное. СЕО там не надо и продвигают его не через сео. Делать такое серверсайд многие пытались, никто не преуспел. Потом в чат входит жаваскрипт
Так значит GraphQL это просто стандарт? Я много потерял, если прочитал основы на howtographql, не особо вникал в доки на graphql.com, а вместо этого сразу собираюсь изучать доки аполло? Я же только время проебу читая одно и тоже 2 раза, лучше на примере graphql реализации (аполло) сразу вникать что к чему, чем на примере абстрактного стандарта (хотя в доках видел примеры кода на жс)
>>2019389 нахуя тебе весь это винигрет? учи технологии, с которыми планируешь работать первое время на работе, всё остальное наверстывается уже в процессе на реальных задачах тогда и поймёшь в какую технологую лучше углубиться, а какую скипнуть к хуям собачим
>>2023385 Это все просят в требованиях к джуновским вакухам. Велком ту 2к21 пост ковид ворлд, когда кассиры и охранники масссово вкатываютсяя во фронт. Со стеком хтмл ксс жс реакт редукс сейчас только хуй за щеку можно найти.
>>2023362 >Их разработка дороже, с индексацией и вообще SEO проблемы С чего вдруг разработка дороже, шиз? Ты половину бека по сути на фронте крутишь, для СЕО есть SSR, роутинг это у тебя танцы с бубном, а кодить ты вообще как собрался? Ты на нексте пробовал многостраничник делать? Для этого буквально нужно создать папку с файлом, всё. Ты вообще работал со всем этим или с головы всё берешь? Пиздец.
>>2023393 Да в вакансиях просто рандомно хуярять все что можно как кейворды. Там 80% "технологий" это 3-4 часа чтения доки, такого никто по хардкору не требует. Если у тебя есть хорошее знание жс + любой современный фреймворк на хорошем уровне, это уже почти пройденный собес. Какие там охранники код пишут, можешь показать-то? Наслушаются этих охуительных историй. Для рандомного нормиса поставить себе IDE, ноду и страничку в браузере запустить это уже рокет сайенс. Учи блядь нормально жс, напиши сложную приложуху многостраничную, оформи всё нормально и можешь пиздовать на собесы. "сложная" приложуха, это какой-нибудь простейший мувисерчер с логином и возможностью добавления фильмов в избранное, я не шучу, думаешь там без лично написанного фейсбука не возьмут? Меня вот с такой хуетой уже приглашали, хотя у меня просто висело резюме и я сам никому не писал. А дальше будешь срать на собесах, пока не научишься не срать на собесах.
>>2023408 Основной подводный камень в том, что ты играешь в эту игру не против херки или техдира или хуй знает кого, а против таких же вкатышей. Вот придет нас 10 человек, если все со стеком хтмл ксс жс реакт (у всех примерно однаковый скилл), то я хуй знает, почему должны взять именно меня, я скорее всего нахуй пойду. А так у меня туз в рукаве есть, строгая типизация, тесты, сервер с аутентификацией, SSR и алгоритмы. Да и не очень-то хочется слишком много собесов заваливать, когда в мухосранске во время второй волны ковида кол-во вакансий на реактомакаку-джуна срезало нахуй со ~140 до ~20.
>>2023408 >Меня вот с такой хуетой уже приглашали, хотя у меня просто висело резюме и я сам никому не писал. А дальше будешь срать на собесах, пока не научишься не срать на собесах. Ты забыл упомянуть, когда вкатился.
>>2022492 Реакт нужен для создания веб-приложений. Веб-приложения отличаются от обычного сайта тем что подразумевают большую интерактивность и нетривиальное взаимодействие с пользователем. Вэб-приложение это калькулятор, интерактивная гео-карта, чатик, терминал для биржи, мультиплеерная игра. Всё это можно написать и без реакта, но на реакте это сделать проще. Если у тебя простой сайт с формой обратной связи или бложек реакт не нужен.
>>2023422 Преимущество - это знание еще какого-нибудь языка, помимо JS/TS, это знание и понимание базы (алгоритмов и структур данных). Это то, что реально отличает человека, основательно идущего в сферу от поверхностного нормиса. На собесах отсеивают прежде всего поверхностных манек, которые выучили хуйню по роадмапам, а за их пределами не в курсе как веб и кодинг вообще устроены.
>>2023408 >С чего вдруг разработка дороже, шиз? С того, что сделать сайт на PHP без всей твоей фронтодрисни дешевле. Почему кабан должен выбирать твои кручения на фронте? Ты в курсе как много пользователей даже не заходят на сайт, когда видят как долго вся эта хуйня грузится от того, что ты кучу хуеты вывалил на клиент? Посмотри статистику посещаемости крупных порталов. Куча народу до сих пор заходит с допотопных мобил, предлагаешь бизнесу выбрасывать их за борт, потому что у тебя модная еба, в которой половина бэка крутится на фронте?
Помогите понять. Обычно когда объясняется, что такое асинхронность в JS, то говорится об Event loop, очереди синхронного кода, очереди микро и макро задач. И в целом можно представить что весь код JS это очередь. И в паралельности там работают либо созданые вручную воркеры, либо воркеры из под капота типа таймингов.
Исходят из этого, если мне, например, нужно сделать 15 HTTP запросов, то особо нет смысла, делать их синхронно через async/await или асинхронно. что там что там они в итоге попадут в очередь.
Однако на практике асинхронные запросы выполняются быстрей. Я так понимаю, что они всё же работают параллельно? Каждый совершает запрос не дожидаясь ответа, а после получения response уже код выполняется дальше.
>>2023362 > Я просто не могу понять для чего нужны SPA с точки зрения бизнеса Быстрозагружаемые микространчки на свелте. Или интерактивные 60фпс странички на среакте. Или просто красивые продающие штраницы. > похоже на какое-то наебалово. Это называется капитализм, добро пожаловать. > Их разработка дороже, с индексацией и вообще SEO проблемы. Они работают через рекламу. Но никакой индексации или сео-проблем нет на шамом деле, тебе показалось. > что мешает сразу сделать многостраничник и продвигать его в поисковике и рекламе. Мешает отсутствие 60 фпс при онлисервер рендере. А 60фпс вполне себе продают.
>>2023364 Так не делай логику на клиенте, я же тебе написал. Логика на апи-сервере лежит. Бизнес-наебщикам логика на клиенте нужна чтобы сервера разгрузить. На эти СПА приходят миллионы клиентов в день, например, и весьма важно чтобы за сервер платить меньше, а контент по цдн и апи раскидывать.
>>2023652 > Однако на практике асинхронные запросы выполняются быстрей. Они не быстрей. > они всё же работают параллельно? В ЖС нет параллелизма, кроме вебворкеров. > Правильно я мыслю? Не знаю, я не читал.
>>2023640 >на PHP без всей твоей фронтодрисни А что тогда он показывает? Сайт на PHP, если браузер только фронт понимает! >Почему кабан должен выбирать В том то и дело что выбирает кабан то что дешевле сделают, а потом набравшись опыта, то что дешевле обойдется! >твои кручения на фронте? BFF снимает нагрузку на сервер, сервер на миллионы пользователей стоит недешево. >Ты в курсе как много пользователей даже не заходят на сайт, когда видят как долго вся эта хуйня грузится Слышал про 4сек. В Lighthouse PWA на Реакте летает и загружается быстро, стоит только исправить проблемы на которые тебе укажут. > Куча народу до сих пор заходит с допотопных мобил WEB приложухи собираются и транспилируются в старый JS, а также оптимизируются под браузеры которые использует более 1% пользователей. >предлагаешь бизнесу выбрасывать их за борт ТыТруб на PWA, Впараш заглушку ставит на не тех браузерах.
>>2023653 >Но никакой индексации или сео-проблем нет на шамом деле, тебе показалось. Не пизди, из поисковых движков только гугл честное слово дал, что он прогружает клиентские скрипты. Остальные просто забьют на твоё СПА-говнецо.
>>2023805 Годно. Искал хороший курс по ФП и надыбал на этот - автор оказывается автор и редактор двух книг которые я осилил по ФП в JS (Functional Light JS и Mostly Adequate Guide to FP). Так что приятно увидеть вживую.
Сам курс конечно, intermediate уровень (сначала нужно книги прочесть), но очень годный, который можно вполне применять на работе, в конце курса идет написание редакса (который по сути Reader монада) с блекджеком и шлюхами, а у нас на работе как раз Редакс + Ramda
>>2023362 Лучше юзер экспириенс, ты можешь пиздеть что угодно, но по статистике чем быстрее/плавнее сайт, тем выше продажи/retention.
Без SPA возможно делать (Hotwire на Рельсах или LiveView на Фениксе), но пока не популярно.
Если делать через дефолтный ХТМЛ, у тебя будет триллион перезагрузок, юзерам не нравится. Хотя я сам лично люблю стандартный веб, а не лагучее реактодерьмо. Но даже с реактолагами, все равно ощущение "живости" и динамические подгрузки страниц и компонентов улучшают юзер экспериенс.
>>2023822 А с реактоговном можно сделать суезный магазин? И я же правлиьно понимаю, что спа подтягивает данные с сервера, типо как ажакс. Типо вот у тебя главная, кликаешь на раздел, он открывается без березагрузки. Кликаешь на товар, а там актуальные данные подтянутые с сервера, открывшиеся без перезагрузки. Мимо вкатышь, почти ничего не слышал про рякт кроме двачей.
>>2023714 >Держи, почитай! Ничего нового для себя я там не увидел. Возможно я просто слеп, но эти объяснения с consol log и setTimeout я уже и так читал. Дайте простой ответ почему код асинхронный код на пикриле быстрее почти в три раза.
>>2023883 Тому що в первом случае все запросы стартуют синхронно, но ответы приходят болименее параллельно. Во втором - ты руками синхронизируешь запросы.
Пиздец ехидные колобки на вторую страницу укатились, какого хуя, у меня нет времени скроллить двачи! Тайпскриптеры, объясните ситуацию: Делаю "declare var x: number" - х становится глобальной переменной, доступной как сама по себе так и через window.x Делаю "declare const x: number" - x становится глобальной переменной, доступной только сама по себе, попытки получить window.x заканчиваются тем, что нет такого ключа у объекта window. Почему?
>>2024301 TS повторяет (точнее старается повторять) JS. B в JS var, объявленная на верхнем уровне станет доступна на window, а const - нет, т.к. const - block-scoped. Т.е. пусть это и не описано явно в доке TS, но все максимально логично.
О чем вы вообще спорите бля? Асинхронка для конкруентного исполнения блять, думаю это в 2021 для всех очевидно, ведь так? Преимущества асинхронки именно в этом Сам по себе код, написанный через промисы / await не будет быстрее чисто синхронного если там нет конкретного доступа к ресурсам, будет сцуко медленнее потому что нужны ресурсы на переключение контекста
Это уже пруфали на примере синхронных и асинхронных фреймворков того же Пистона, где синхронные оказывались пизже по rps и latency чем асинхронные, однако стоило накидать в код хождений в бд, запись в файлы как синхронные начали отсасывать
>>2023377 Ну в принципе так и думал. Но тут, теперь, другая беда, перестал работать чекбокс, <input type="checkbox" checked={active} data-value={value} onChange={onChange} />
У реакт натива его встроенный stylesheet это стандарт для работы со стилями, или есть что-то получше? Стоит куда-то копать или делать все через stylesheet?
>>2024630 Ты что-то другого ожидал от Яндекса? Главное повыёбываться, как ты можешь засунуть всё в один интерфейс, а не писать читаемый и изменяемый код.
>>2025277 Потому что яп ни при чем, бесконечную точность в процессорный регистр не засунешь. Используй специальные типы данных, если тебе сильно нужно.
Аноны подскажите, есть приложуха 2 летней давности, там вебпак, электрон и куча устаревших зависимостей. npm Istall эту парашу выкачивать отказывается, поставил через --force, все равно нихуя не запускается. Как быть в таких ситуациях ?
>>2025618 Рибейз все твои коммиты в один сожмёт и присвоит им дату рибейза, что позволяет очень легко в мастер ветке отлавливать регрессии и откатываться, если надо.
>>2011386 (OP) Драститя. Делаю проект на реакте, хочу общаться с json-файлом в папке проекта, читать из него и записывать в него. Это вообще возможно, реакт такое поддерживает? В интернете чет ничего внятного не нашел.
Аноны, стоит пробовать себя в стажировке в яндексе? Или лучше сразу на галеру вкатываться?
Я туда попаду с первого раза, я скозал. Ну а вообще не попробуешь не узнаешь, но вот надо ли вот это вот оно все? Я просто слышал, что это зашквар сравнимый с скиллбоксом.
>>2026131 >В интернете чет ничего внятного не нашел. В интернете нет информации на этот счёт. Ты первый кому пришла в голову подобная невероятная идея. Что делать дальше, думай сам. Можешь патентовать.
>>2026131 Ты ебаный дебил и я ебал твою мать. Рект на фронте, json файл в папке проекта. Можешь читать и писать в него с сервера, можешь отправить этот json на фронт и хранить в localStorage\IndexedDB. Серверный файл реактом ты никак не потрогаешь, они вообще не связаны.
>>2011386 (OP) Существует ли инструмент для отрисовки подобных туманностей/градиентных пятен на произвольной карте мира? Не обязательно именно в таком виде, просто нужно показать расположение неких объектов относительно карты Земли.
Пасаны, что по говнокурсам по реакту? Есть нормальные? Я не могу просто читать что то, мне надо параллельно смотреть хуиту, так лучше усваиваю. А по реакту вообще никаких курсов норм не знаю, посоветуйте "нормальных", пожалуйста.
>>2026740 любой. реакт это элементарная библиотека самое сложное и забывающее это верстка и клепание формочек, пропуская их велью обратным кольцом через жопу редакс
>>2026754 Мне нужно сперва допердолить опп и ts, а потом уже лезть в реакт? Или моно пропустить? Я принципы наследования, классов, объектов, прототайпа понял, но я чувству, что один хуй забуду это все ибо мне сейчас нет где применять то. В реакт оно надо это всё?
>>2026772 Тебе вообще не нужно ничего знать про наследование в Реакте в 2021 Сейчас можно писать все на функциональных компонентах. Они шарят функционал через композицию, а не наследование Не веришь мне почитай эту статью с их сайта https://reactjs.org/docs/composition-vs-inheritance.html
>>2026772 Что касается TS - это модная штука, которой пользуются, чтобы упростить работу в команде над крупными проектами Возможно это мастхев в 2021 году Паттерны разработки в Реакте совсем свои. ТАм нет такой хуйни как ООП, Грасп, ГОФ,Dep. injection
>>2026854 В каком смысле можно? Так все сейчас пишут и это стандарт или это уровня можно верстать используя импортант, но за это по рукам бьют?
Я что то охуел малость от реакта. Когда я пробовал вью, все было максимально понятно и просто, но мне не понравилось, что там какая то своя ёбань, когда в реакте ты по сути пишешь js код. Сейчас читаю доки реакта и что то блядь пиздец какой то, яннп и пишу какую то хуиту, а не js код.
>>2026907 В смысле раньше нельзя было, а теперь можно. Никто не хочет горить "нужно" потому что тогда код на классах автоматически превращается в легаси и его требуется переписать, а так как бы и нет. В любом случае ооп тебе пока не нужно