24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Есть массив объектов с массивом объектов, как сделать чтобы при добавлении нового объекта с уже существующим именем свойства их значения объединялись. Пикрил пример проблемы.
>>1930931 Есть объект с списком объектов, как сделать чтобы при добавлении нового объекта с уже существующим именем свойства их значения объединялись. Пикрил пример проблемы.
>>1930937 Не можешь помочь - не пиши, не трать время. Я могу это решить как попало, создав какой-нибудь плохой велосипед. Но вдруг уже есть хорошее решение.
>>1930951 ты даже сука не осознаешь насколько нелепы твои попытки меня уколоть. чего ты пытаешься добиться когда пишешь мне?чтобы последнее слово осталось за тобой или че? закрой свою вонючую пасть ,закрой эту вкладку и забудь про программирование навсегда. ты слишком туп жалкий кусок дерьма выблядок спидозной шлюхи
Учу рельсу, терпеть ненавижу жабаскрипт. Там вроде самая последняя его реализация самая нормальная, да? Если он мне нужен только как бэкэнд-макаке и для повседневного скриптинга, то можно смело забить на старые версии и начинать с ECMAscript 2020, я правильно понимаю?
Каким образом лучше всего проверять размер окна средствами js в реакте? Можно проверять один раз при маунте компонента, но тогда если пользователь повернет телефон или изменит разрешение, то размер не обновится. Как это делается у приличных людей? Вешать event listener с троттлингом?
Подскажите, как защитить сервер на ноде от простейшего дос'а? Например, у меня есть игра на вебсокетах, а кто-нибудь напишет в браузере бесконечный цикл и начнёт слать запросы. Вот от такой кустарной атаки как защититься?
>>1930916 (OP) >Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос Есть Инстаграм, я скачиваю оттуда сторис. Обычно я делаю F12, Ctrl + F и вбиваю в поиск "<video" (вбить "<video class" почему-то не получается, не находит), разворачиваю мышкой этот блок кода, и там уже есть ссылка на видео. Спокойно открываю, скачиваю. Что именно мне нужно выучить чтобы это автоматизировать? Например чтобы рядом с видео появлялась кнопка, нажимая на которую я переходил по ссылке на это видео. Я знаю js на школьном уровне, а-ля "найти повторяющиеся элементы массива". Я знаю что есть куча расширений, плагинов и просто сервисов чтобы скачивать с Инстаграма, не надо об этом писать.
>>1931042 Ивент тригерит обработчики, они добавляются в очередь макрозадач. Как только задача-обработчик начинается выполнятся, так сразу срабатывает действие по умолчанию, если не вызван метод preventDefault
Помогите разобраться, где я обосрался. При попытке скомпилировать проект вебпак вываливает ошибку с первого пика. https://jsfiddle.net/hwcunkqt/ - конфиг вебпака. Он ругается якобы на отсутствие сасс, но дело точно не в этом, я проверял. В самом test.module.scss нихуя страшного нет, только .test { color: pink }
Задача: сделать сайт для детсада. Дешевле и лучше, как всегда
Это блог + лендос будет как я понял. Добавление новостей, галерея мб. Не хочу писать руками, а просто склепать и отдать. И чтоб уже контент менеджер какой-то заливал фотки деток на прогулке после какао, а со мной не связывались по поводу поменяйте нам ссылку внизу экрана
Могу в жс, реакт, и ноду ещё на уровне хэллоуворда Думал о gatsby с готовым шаблоном, но сейчас смотрю в сторону wix
>>1931174 Модуль в этом контексте имеется в виду npm пакет, сасс лоадер - всего-лишь прослойка между сассом и вебпаком, без сасса он работать не будет.
Где хранить самостоятельно написанные файлы типизации для тайпскрипта (.d.ts)? Пока что лежит в той же папке, где и типизируемый файл, но это наверное не очень круто. Куда его лучше положить? Пока есть идея в той же папке создать папку, чтобы было что-то вроде: src:/ components:/ componentZaloopa:/ zaloopa.ts componentZaloopaTypes:/ zaloopa.d.ts
>>1931236 П.С. Таких файлов потом будет много. То есть в папке componentZaloopa будет zaloopaForm.ts, zaloopaSearch.ts, zaloopaButton.ts и т.д. Соответственно будет много .d.ts, которые я планирую складывать в componentsZaloopaTypes:/ Вообще блять, вот такие моменты по структуре проекта нихуя не понятные. Нигде толком ничего не написано, а где-то я даже прочитал, что лучше вообще больше 5ти минут на такое не тратить. Не понятно что лучше делать, чего лучше не делать.
>>1931241 У меня нет папки dist. Билды складываются в build, при этом я знаю, что есть люди, которые билды ложат в dist. Мне типо сделать папку dist и там хранить только .d.ts?
>>1931244 Ты не пони, если ты пишешь на тс, то .d.ts файлы за тебя может и должен генерировать tsc. Поскольку ты пишешь на тс, то тебе самому эти .d.ts нахуй не нужны, а это значит что ты пидор что единственное им применение - отдать их вместе с js билдом внешним пользователям, а самый легкий способ это сделать - положить их рядом с js файлами
>>1931254 Мне d.ts нужны для модулей ксс. Через tsc в проекте ничего не компилируется. За все отвечает бабель. То есть мне тупо успокоиться на том, что у меня будет 20 ксс модулей, рядом с которыми будут лежать 20 .d.ts файлов?
>>1931236 Это зависит от того, будут ли у твоих типов сторонние потребители или нет. Стороннему потребителю в большинстве случаев похуй, что ты там в своём модуле намазал, ему нужны только типы. Соответственно для них нужно пихать все файлы типов в одну отдельную папку. Для разработки же абсолютно похуй, где файлы лежат, ТС все .d.ts файлы, грубо говоря, пихает в глобал скоуп для проверки типов.
>>1931360 >Есть ли в node многопоточность да >Или это только удел жавы и C# ты охуел есть божественный эликсир, его система изолированных процессов даст отсосать жабе с решеткой вместе взятым
>>1931360 Она там есть костыльная, используется редко, в основном многопоточность на ноде заменяют кластеризацией. Т. е. в теории можно достичь примерной производительности шарпа, но на практике шарп даёт пососать. У шарпа асинхронные операции выполнятются несколькими потоками, в ноде асинхронность всегда в рамках одного потока.
>>1931391 Не знаю, детально я только про шарп и жс сказать могу, потому что работаю с ними длительное время, про Го только предположение о том что лучше чем в жс и местами лучше/хуже чем в шарпе. Но лично для меня синтаксис и стиль шарпа показался более удобным чем Го.
Подскажите нормально ли написана данная функция? Есть ли возможность утечек памяти или сильной нагрузки на браузер? Можете стебать за такие вопросы, но прошу ответить
>>1931451 Смысла в вызове clearTimeout(tm) нет, так как он у тебя вызывается из самого таймаута, т. е. когда этот таймаут уже сработал. Само действие лучше делать через requestAnimationFrame.
>>1931539 Это инлайновые классы, чтобы как раз не создавать одноразовые-классы-ради-парадигмы. В 2021 конечно лямбды уже завезли, но тогда скрина не получилось бы
>>1931604 Галопом по Европам. Самая поверхностная инфа на уровне первых частей первой главы Кантора. Но у Кантора углубление во всякие тех.детали, а там "пук, пишем функцию с аллертом, пук, если функцию с аллертом написать внутри класса, то это будет ООП."
>>1931604 for loop на ~8 часу (for of loop на 20+) установка блокнота и нода на ~10 часу видео про рефакторинг в разделе про дом евенты первый рабочий counter app - на последнем часу курса про behind the scenes норм наверно, но на этом все
>>1931672 Если статус ок payload должен писаться в одно поле, если не ок то он должен писаться в error, нихочу из api диспатчить экшены, как то по другому наверное можно?
Два тупых вопроса. Я не могу понять это из документации.
Первый вопрос ,window.matchmedia это сам по себе эвентлистенер? Почему он работает сам по себе даже если я не создаю addEventListener resize в useffect, и туда не засовываю функцию содержащую window.matchmedia? Если он находится в useeffect, как он узнает, что нужно перезапустить проверку при изменении размера окна?
Второй вопрос, почему в реакте addEventListener работает вот в таком виде, а не просит изначально указать window.addEventListener? Если я в useEffect вешаю листенер единственный раз при маунте компонента, он все равно работает и без window. Почему так? Откуда он знает что я обращаюсь к window?
В js есть только объекты. Больше ничего. Есть еще примитивы, но их можно тоже рассматривать в качестве синглтон объектов, потому как они боксятся, а сделаны разумеется для производительности. (тем более что сейчас ничего не мешает у примитивных добавить в цепочку прототипов прокси объект, отлавливащий сообщения, типа присваивания, и реалиховать поведение прототипов как полноценных объектов, но это ни к чему. проще воспринимать их как синглтоны. когда надо, любой примитив можно обернуть в полноценный независимый объект). Так. Короче только объекты. Все объекты делятся на callable и non-callable. Callable это функции, в понимании большинства. Но по факту это все те же объекты, со всеми свойствами что и у других. Все объекты могут принимать всего несколько типов сообщений - get, set и call. При чем call может принимать только callable объект. при попытке послать call сообщение не-callable объекту будет исключение. Сообщение get содержит один параметр, сообщение set два. Сообщение call параметром содержит кортеж аргументов, а так контекст this. Если в объекте (а так же в цепочке прототипов) не назначены слушатели для get и set с определенными параметрами, ищутся слоты с такими именами в объекте и по цепочке. Если находится возвращается то, что в них лежит. Если в них лежит callable объект и ему посылают сообщние call сразу как получили его из слота, то у него будет перегружен контекст (this) на объект из чьего слота его получили. Если только этот объект не был сконструирован стрелочным синтаксисом, иначе контекст перегрузить нельзя. Если после получение callable объекта из слота его сразу не вызвать, а например положить ссылку на него в переменную, то контекст будет сброшен на тот, который был установлен у него в момент его создания (и это не обязательно будет тот же объект из чьего слота его получили). У callable объектов есть scope (область видимости) и контекст (this) в момент посылки им сообщения call (вызова). scope средствами языка перегрузить нельзя, но некоторые окружения позволяют (например в ноде есть модеуль vm), this перегружается у callable объектов сконструированных не-стрелочным синтаксисом Классов нет. Есть конструкторы. Любой конструктор принимает новый созданный объект, которому выставлен определенный прототип (другой объект). Оператор instanceof (someObject instanceof SomeClassName) проверяет лишь есть ли в цепочке прототипов у someObject объект который лежит у SomeClassConstructor в слоте с именем prototype. На сам конструктор ему поебать. Чтобы сменить класс, достаточно сменить цепочку прототипов. Даже если объект был сконструированным определенным конструктором. Так же у объектов есть параметр ограничения доступа, контролирующие его расширяемость или изменяемость (sealed, extensible, frozen). У слотов объекта есть параметры configurable, enumerable, writable. Параметры слотов объекта не влияют на объекты, что в них лежат. Они лишь контролируют доступ к самим слотам. Все. Никаких классов. Никаких интерфейсов. Как отдельных сущностей. По факту все есть объект и все строит из них. наследование реализуется выстраиванием цепочки прототипов. Инкапсуляция только на уровне scope'в (читай замыканий). В остальном все меняется и все динамично, если только специально все не зафризить в момент конструирования. Но обычно этим никто не заморачивается по причине оверхеда и бессмысленности. Разве только фанатики по иммутабельности, н это все из разряда те, кому надо чтобы им по рукам бил компилятор\рантайм\дядя петя. Все "привычные" понятия тянуться в язык для еще более простого вкатывания тех, кто приходит из других языков. Так уж сложилось, что есть куча литературы по привычному, статически классовому ООП, но очень мало по мессадж-пассинг\прототайп-базед\мета-программинг. Все эти притянутые понятия выливают в синтаксический сахар, который не делает ничего полезного, а даже наоборот, еще больше вносит путаницы и от того непонимамания многих вещей в языке. При этом часто этот синтаксический сахар дэже урезан и вспомнинают об этом лишь после (как например проебались с полями в конструкции class и тянут ее теперь только в proposol'ах будущих версий). JS истинно объектный язык. В современный язык притащили много вкусных вещей для метапрограммирования. Нову примитивную сущность Symbol, и Proxy-объекты. С помощью которых можно еще больше и сильнее перегружать и менять поведение в динамике. Другое дело, что почти никто не умеет этим пользоваться и не понимает, что такое объектное программирование на самом деле. Им нужно не объектное, а статически типизированное. А какие именно структуры будут скрываться за этими типами, не собо важно. Важно что это просто структуры и функции, строго привязанные к ним, или иногда менее строго. То, что в Java\C++ это больше структурное программирование, нежели объектное. Объектное программирование не может существовать без динамической среды. Это противоречит самому понятию объекта. А динамическое программирование это слишком сложна и непанятна. И как бы не старались с пеной у рта фанатики кричать про низкий порог входа - низкий он именно что для входа, а не для всего остального. Модификация программ в рантайме всегда было уделом креативно мыслящих людей. Для большинства это слишком сложный уровень высокой абстракции.
>>1931731 >Инкапсуляция только на уровне scope'в Инкапсуляция же про то чтобы методы и данные лежали рядом, а не про видимость данных, можно просто на уровне соглашений, лол
>если только специально все не зафризить Для дев тайма почему бы и нет
Как в функциональном компоненте передать в onclick функцию и аргумент для неё? Тут пишут, что arrow функция каждый раз создает новую функцию. Это конечно всё прекрасно, но тогда я не понимаю как передать в неё еще и аргумент?
>>1931791 Т.е. если у меня есть 10 кнопок, каждая из которых выводит один и тот же useState и выводит содержимое в каком-нибудь элементе на экране. То мне нужно создать 10 разных функций, каждая из которых будет по сути одинаковой, но менять стейт на разное значение?
>>1931827 >Но это все попадает в категории преждевременных оптимизаций. Сначала дождись/добейся плохой производительности, потом профилируй, потом оптимизируй. О, вот про такое я не знал, спасибо
>>1931831 Потренироваться профилировать/оптимизировать можешь уже сейчас кстати, на своих кнопках. Потому что то вариант с десятью функциями эквивалентен просто передачи стрелочной функции в onClick, надо не только лишь создать функции, но и завернуть из в useCallback
>>1931731 Годный пост. В этом и сила джса, что он не обязывает использовать всю подноготную. Сейчас хорошей практикой считается вообще игнорирование this и объектов (в классическом смысле), главная мощь джса это функции как значения, нужно быть глупцом, чтобы не использовать всю мощь замыканий, а хуярить сахарные классы и зисы.
>>1931731 Как обычно у таких филосовских мань дальше раскладывания кубиков на столе дело не идет. За манкипатчиг реальные программисты ногами по печени бьют.
>>1931177 >сделать сайт для детсада >Дешевле >лучше, как всегда >просто склепать и отдать >чтоб уже контент менеджер какой-то заливал Только Вротпресс с натянутым шаблоном!
>Думал о gatsby Контент без ЦМС кто заливать буит? >смотрю в сторону wix Говно буит, но тоже вариант, разве что расходы большие (относительно)
>>1931731 >>Модификация программ в рантайме всегда было уделом креативно мыслящих людей.
Криворуких долбоебов, ты хотел сказать, которых все нормальные программисты гнали ссаными тряпками. Все что ты описал - это конечно круто понимать. Только это не улучшает язык/процесс/продукт, а скорее наоборот. Твоя хвалёная динамичность всего и вся есть не мана небесная, а исторические издержки языка, которые все толковые евангелисты и авторы учебных пособий предпочитают ограничивать в сторону нормального ООП. Потому что никто не хочет стрелять себе в колено (причём в оба сразу), а хотят стремится к предсказуемости и стабильности среды.
Чуваки. Намедни (месяца 3 назад) узнал узнал про Vue Native. Кто нибудь из здешних вообще тыкал его? Как в сравнении с React Native ощущается? Просто из всех видео, которые я смотрел по мобилкам его вообще ни разу не упоминали (обычно упоминали Flatter, React Native, Native Script, Ionic). Может он довольно сырой?
>>1931799 Создай для этой кнопки отдельный компонент и прокидывай ему в пропсы значение состояния и колбэк. Что-то типа: function Button({ text, setText }) {
>>1931866 Зисы в сахарных классах как раз норм, вот за пределами их - это пiзда, потому что IDE не может в зисы, и приходиться гадать, в каком контексте они вызываются.
Когда добавят в джаваскрипт чтобы можно было обращаться к свойствам класса без this.? Почему я должен для каждого свойства писать this. this. this. this. this. this. this. this. this. this. this. this. this. this. this. this. this.?
>>1932157 После того как ты открываешь в консоли объект, он показывает текущее значение а не то состояние когда ты его выводил. На тот момент когда ты пытаешься что-то сделать с массивом его не существует в объекте, и это подтверждается тем что recvdatat.bothp возвращает undefined.
>>1931901 >Только Вротпресс сос мыслом >Контент без ЦМС кто заливать буит? админ панель написать.. >...wix > расходы большие (относительно) Не сильно дороже вордпресса, вроде
>>1932358 В жопоскрипте в принципе и в реакт-окружении в частности, нет ничего, что можно записать в "хуяк-хуяк и готово", только мучительная настройка всего говна с нуля, либо копипаст этих настроек из своих старых проектов. Хуяк-хуяк и готово - это вордпресс.
>>1932361 Ну вот я первый раз в начале той неделе настраивал проект с нуля с вебпаком, с реактом, с тайпскриптом, с линтером со всей хуйней. В общей сложности часа 4 на настройку. И то это потому что вся инфа примерно годичной давности и актуальную инфу под 5й вебпак приходилось по курпицам выискивать. Зато теперь я неплохо разобрался во всех этих конфигах и за полчаса-час смог заново то же самое склепать. Или вообще ctrl+c ctrl+v. Если страницы статичные, то все дело сводится, по сути, к верстке на JSX.
>>1932367 Ну ты же понимаешь, что описанное тобой - это окружение разработки и если тебе его надо настраивать целый час прежде чем приступить к самой разработке причем к разработке только фронта, то ни о каком "хуяк-хуяк и готово" речи идти не может в принципе. За то время, пока ты свои линтеры-хуинтеры настраиваешь, на вордпрессе будет целый сайт готов и задеплоен.
>>1932375 Так тот анон вордпресса же не знает. Вот я тоже не знаю, и даже не представляю с какой стороны подойти. Нужно тратить время на изучения сомнительной технологии. А если уже знаешь реакт, то можно по-быстрому нахуячить. Пусть не за час, как там на вордпрессе шаблонов натыкать, пусть часа за 4. Но все равно, не так уж и долго. Дольше в этом вордпрессе разбираться.
>>1932383 >ты че дурак? Ну а нахуя оно нужно? Я как не посмотрю на вакуху с битриксом\вордпрессом, так там всегда какой-нибудь анал-карнавал за 20к\месяц.
>>1932379 Учитывая, что ему нужно быстро склепать полностью готовое решение и отдать не-программистам, чтобы они ему дальше не ебали мозги, то легче и быстрее реально вордпресс с нуля освоить. Потому что разобраться в кастомном говнокоде на реакте и кастомном сервере на ноде даже у знающего человека займет время. А не-кастомных не бывает, это же жс без каких-либо устоявшихся практик, инфраструктуры и фреймворков, любой незнакомый проект на нем - это ящик пандоры, никогда не знаешь, что за хуйню найдешь внутри.
Сап, есть ли в js готовое быстрое решение для хранения пар значений? Типа Set с возможностью быстрого добавления, удаления, проверки наличия?
Написал свой велосипед, который внутри сделан из Map(v1 => Set (... v2)) В моей задаче это примерно в 2 раза быстрее конвертации пары значений в строку и складывания в обычный Set. Норм решение или говно?
Как можно проверять последнее тригернутое значение в реакте? К примеру у меня есть 10 булеанов, не важно в каком состоянии находится каждый из них, важно кто из них тригернулся в true последним. Как это отследить?
>>1932440 Использовать useEffect для отслеживание состояние переменной это хуевая практика? Типа вешать его как eventListener только для переменной. И если переменная меняется, выполнять уже какую-то функцию
>>1932558 Ну так получится, что у него будет штук 20 useEffect для каждой переменной. Я бы так сделал: переменные хранятся внутри объекта, когда происходит изменение переменной, то объект пересоздается заново со старыми ключами, записывается измененная переменная и ключ last, который содержит название переменной, которая изменила свое значение.
>>1932575 Какую фабрику, ты о чем? Просто функция которая изменяет true на false или наоборот делает так: let variables = {...variables, changedVariable: "new", last: changedVariable}
>>1932579 П.С. Нет, если я обосрался и говно предложил, то ты мне скажи, мне же интересно. Но в любом случае, на мой взгляд, это выглядит лучше чем по хуку для каждой переменной.
Но тогда можно спросить по другому, как вообще можно запилить индикатор скролла страницы до определенного элемента? В данном случае я использовал хук, но это не принципиально.
>>1932616 Там плашка на весь экран нескрываемая Сейчас бы считать BLM борьбой против рассизма, я хуею
>>1932614 Я это api как раз и использую, но через хук. Видимо нахуй нужно послать этот хук, потому что у этой апишки есть свой собственный onchange оказывается
Анончезы как сделать чтобы пользователь мог сам выбирать путь где находятся файлы и этот путь сохранялся? мб кто шарит в этой теме. У меня просто прописано Var directory = "мой путь нейм" и от него исходит все происходящее в коде, а я хочу чтобы юзер сам решал
>>1932569 >Ну так получится, что у него будет штук 20 useEffect для каждой переменной. Лень проверять правильно или нет let oldA = false; let oldB = false; const Triger = () => { const [a, setA] = useState(false); const [b, setB] = useState(false); useEffect(() => { if (a && a !== oldA) { console.log("a", a); } if (b && b !== oldB) { console.log("b", b); } oldA = a; oldB = b; }, [a, b]);
>>1932873 Пиздец ты чмоха, еще больше зависимостей навешай, вместо использования нативных возможностей языка которые уже поддерживаются в 95% браузерах
Диванных экспертов полон тред. То что при помощи rxjs делается за пару строк, обычным функционалом делается за несколько десятков нечитаемых строк состоящих из циклов.
>>1932874 Там внутри нативные возможности и используются, просто без необходимости городить компактный хук, который проще использовать и читается лучше другими людьми
А что это за новый прикол появился, что на всех сайтах просят разрешение, чтобы работать с cookie? С этим какая-то проблема есть с безопасностью или они как-то по особому cookie используют? Надо ли мне в теории добавлять такую хуйню, если я просто токен сессии пользователя в куках храню?
>>1932924 GDPR Твою фирму может отшпилить ЕС, если окажется, что она собирала данные о его гражданах без их ведома (и она не в конце списка виновных в этом). Ну или ушлый юрист может маляву написать. Для своего пета можешь забить хуй, но большинство айти крутится в англосфере и, соответственно, ЕС вполне имеет влияние на неамериканские компании.
>>1933097 Нахуй мне односраничник с формой для отправки мыла в портфолио? Даже туду выглядит перспективней. Вот если бы он мне заплатил, то это был бы не просто односраничник с формой для мыла, а КОММЕРЧЕСКИ УСПЕШНЫЙ проект. Такое уже не стыдно и показывать.
>Может у тебя компонент юзает значения, которые им еще не получены? Или эти profiles берутся локально? Если я правильно понял, то для пропса достаточно задать пустой массив \ объект как шаблон, а затем заполнить его. Впринципе, всё - пропс виден дочерним компонентам.
Работал с nodejs года два, так вышло что за все время почти не юзал Express. Сейчас ищу новую работу, везде хотят express, естественно я написал в резюме что знаю его. В принципе много чего знаю кроме него, пока что вот почитал обзоры, базовые вопросы по нему , как думаете меня спалят? Или другой вопрос, как подготовится к собесу по експресс за 2 дня?
>>1933198 Ну собери блять хелловорлдный сервер на экспрессе. Тем более что в ноде опыт есть и экспресс служит для уменьшения бойлерплейта, которое ты оценишь.
>>1933215 Там тонкости в основном в хуеве туче npm пакетов, ты это за 2 дня не познаешь. Разработка на ноде один хуй мистицизм, если собеседующему надо будет тебя завернуть, то он это сделает даже если ты с экспрессом с первой версии работал.
>>1933232 Так от пакетоблядей надо самому сразу же подрываться и убегать... Если тебя на собесе спрашивают не за архитектуру и пайплайн, то сразу видно, что это говноконтора с тасками "чтобы было сделано уже вчера".
>>1933267 О, какие на пример бывают вопросы по архитектуре? Я вроде как достаточно опытен в этом, но не могу придумать как сформулировать какой то вопрос по этому, разве что только по выполнению какого то практического задания понять.
>>1933267 Так мы говорим конкретно про знание экспресса, и как его будут проверять. А там без ёбли с пакетами никак. Могут например показать код инициализации сервера со строчкой`var bodyParser = require("body-parser")` и спросят, что в нём не так. Хотя подозреваю под знанием express подразумевается не обмякать при виде кода экспрессовского приложения, а не какие-то кишочки пакетов.
>>1933282 Думаешь там что-то сложное должно быть? Может быть простое, чтобы показать что ты можешь писать нормально. Касательно ноды и экспреса, можно спросить, как избавится от импорта всего в каждый модуль. При этом не прибегая к разным пакетам с реализацией DI. Как это облегчит тестирование и почему. Можно спросить для чего нужен мониторинг приложения на ноде, как ты его реализуешь.
>>1933313 Т. е используя фабрику из модуля, который ничего не импортирует, ты отделяешь бизнес логику от конфигурации. Конфигурация может быть реальной или созданой моками для тестирования
Сделал так. Но вотчер в конечном дочернем компоненте (ctrl) не реагирует на обновление массива bothp в родительском компоненте, хотя должен: даже вывод в консоль profiles не отображается.
Объясните за intersectionObserver кратко, кому не сложно, по возможности с примерами. с предложением посмотреть видео на ятубчеке и почитать гайды, идите к мамке /spoiler]
>Проблема этого синтаксиса в том, что при каждом рендере LoggingButton создаётся новый колбэк. Чаще всего это не страшно. Однако, если этот колбэк попадает как проп в дочерние компоненты, эти компоненты могут быть отрендерены снова. Мы рекомендуем делать привязку в конструкторе или использовать синтаксис полей классов, чтобы избежать проблем с производительностью.
Алсо, я просто тоже натыкался на то, что советуют не передавать коллбэки
>When we declare callback as onClick={this.fetchUsers} every render call will pass the same onClick reference to the button. >At the time, when we use onClick={() => this.fetchUsers()} each render call will init new function () => this.fetchUsers() and will pass it to the button onClick prop. It means, that nextProp.onClick and prop.onClick won't be equal and even if we use a PureComponent instead of button it will be re-rendered. Это точно касается классовых компонентов. Неизвестно как это работает в функциональных компонентах, но мне кажется таким же образом
Есть такой вопрос. Если есть возможность писать функции вне компонента - то стоит их писать вне компонента или пихуй и писать внутри их? По идее после каждого рендера они заново создаются, если не мемоизируешь их (хотя даже так они наверно заново создаются), а если функция будет вне компонента, то отрисовка должна быстрее происходить. Ну мне так кажется
>>1933602 Любое "быстрее-медленее" должно подкрепляться и основываться только на измерениях и бенчмарках. Если ты говоришь "мне кажется" и начинаешь теоретизировать про оптимизацию, то все эти рассуждения отправляются в помойку по умолчанию как маняфантазии и основывать на них какой-то код нельзя. Код пишут в первую очередь чтобы он выполнял поставленную задачу, во вторую чтобы он читался и только после этого , если ты вдруг увидишь некие конкретные просадки в производительности, то можно задуматься об оптимизации. Так что пиши свои онклики где хочешь или где читается лучше.
>>1933595 >Это точно касается классовых компонентов. Неизвестно как это работает в функциональных компонентах, но мне кажется таким же образом Так же работает.
Очевидно что создавать функции на пустом месте не нужно, но если надо забиндить какие-то параметры, то особенных альтернатив и нет.
>>1933614 Понял. Попробую завтра пример какой нибудь накидать. Может получится посчитать. Просто в гугле не видел информации о подобном, вот и заинтересовался
>>1933602 >Если есть возможность писать функции вне компонента - то стоит их писать вне компонента В целом, да, если им не нужны переменные из замыкания.
>По идее после каждого рендера они заново создаются, если не мемоизируешь их (хотя даже так они наверно заново создаются) В обоих случаях заново создаются.
>отрисовка должна быстрее происходить Нет. Отрисовка происходит 60 раз в секунду на большинстве мониторов. Чтобы она стала происходить быстрее нужно сначала добиться того чтобы Реакт начал дропать кадры. Это во-первых не так-то просто, во-вторых узкое место скорее всего будет в работе с DOM, а не в создании функций.
Единственный случае когда это реально может на что-то повлиять, это если компонент ререндерится каждый кадр, а функций очень много. Тогда теоретически может начать грустить GC. Но даже в такой ситуации надо это измерить сначала.
Можно ли в nextjs хранить какой-то глоабальный стейт в компоненте app, чтобы он передавал состояние в другие страницы? Проще говоря, можно ли использовать его как стейт менеджер, если не хочется использовать какие-то внешние стейт менеджеры? Или в этом смысле все остается так же как в случае с обычным реактом, либо контексты, либо пропсдриллить, либо стейтменеджер использовать?
>>1933595 Тут проблема не в классас/функциях, а в том, что безымянные функции создают новый инстанс при каждом вызове. А в ванилле ивент листенер с безымянным колбэком не убрать через `removeEventListener()`.
>>1933335 Если ты вкатун и хочешь прочитать учебник, то читай дальше. Конкретно эта глава на том этапа на котором она стоит сложновата для вкатуна, но потом если захочешь вернуться к ней, она уже не будет тебе казаться чем-то экстра сложным.
>>1933668 спасибо, да кантор хуевенько объясняет некоторые моменты из es6, приходится обмазываться ютубом владилена залупинина, тот объясняет как боженька
>>1933695 Бля какие же дегенераты вкатуны нынче. часовые видео он смотреть не может. А лекции в универах может тоже нахуй не нужны? просто взял методичку у пошел домой самообучаться. как ты можешь понять что-то из кроткого и лаконичного дока, который написан разработчиком для разработчиков?
>>1933710 бля такие смешные вы тут. сретесь с каким бубмном лучше плясать, когда большинство тут никогда не имело дело с проектами, на которых может быть видна разница
>>1933653 Смотря для чего, если хочешь сделать одностраничник, то бери Angular, если тебе нужна крутая CRM с серьезным фронтом, то бери jQuery, главное ничего не перепутай
С введением хуков в реакте, остается ли какой-то смысл в использовании классовых компонентов? Есть ситуации, при которых без классовых компонентов не обойтись?
>>1933715 И? Каким боком это на твой высер про лекции влияет? Тебя попросили текстовый материал, а не его пересказ дегенератов с ютуба, а ты начал кукарекать про лекции в универе и их пользу. Вот тебе и говорят - польза от них стремится к нулю. Особенно в рашковузах с их нулевым общением с аудиторией.
>>1933719 На ютубе так-то не только инфоцыгане и хайпожеры контент создают. Есть годные лекции по архитектуре софта. Этого не найти в доках, а книги это еще дольше
>>1933695 А что, есть видео материалы для вката в ноду? Кроме индийцев которые час пишут http.createServer( (req, res) => { - если гет то отдать индекс.жс - если пост то запостить пейлоад в консоль });
>>1933708 >А лекции в универах может тоже нахуй не нужны? просто взял методичку у пошел домой самообучаться. Найс подрыв студентишки. Не поверишь, но не нужны. Ссуть вузов - выпускать верных государственности клерикалов и лекции выступают в роли НЛП для этого. >как ты можешь понять что-то из кроткого и лаконичного дока, который написан разработчиком для разработчиков? Да типичные видосики по лаконичности не длиннее текстовых гайдов, если убрать всякие мэканья и причмокивания.
>>1933708 Лекции нужны, если у тебя хороший лектор, который не читает по бумажке, а работает с аудиторией, смотрит, что им скучно, что им непонятно, и принимает для этого какие-то действия. Но к 99% лекторов в российских вузах это не относится, и уж тем более не относится к бубнежу на ютубе.
>>1933800 Ну если у тебя есть задача по обяазательной очистке тысячи строк, которая будет производится в симуляции мобильного устройства, то наверное 40 лишних миллисекунд это пиздец какая большая разница, ага.
>>1933800 Ну если у тебя есть задача по обяазательной очистке тысячи строк, которая будет производится в симуляции мобильного устройства, то наверное 40 лишних миллисекунд это пиздец какая большая разница, ага.
Если в реакте однонаправленный поток данных, то как функция переданная в пропсы, может менять стейт родительского компонента? То, что можно передать саму функцию это я еще понимаю, и то что вниз можно передать любой стейт тоже. А как Функция потом "добирается" до стейта наверху? Это то, что называется замыканием, или нет? Сильно не бейте только, сам понимаю что тупость спрашиваю скорее всего
>>1933806 Однонаправленный потому что всё идёт через стейт менеджер, сначала передаешь в стейт, потом стейт передает по цепочке дальше. Напрямую от дочернего к родительскому ты передать не можешь
>>1933806 Ты ничего не передаёшь вниз или вверх. Передавая колбэк в пропсы ты просто передаёшь ссылку на колбэк, а дочерние компоненты вставляют в него нужные аргументы.
Аноны, поясните за Svelte свелта. Написал пару петов на нем, но вакансий почти нет. Есть ли шансы на нем работать? Может стоит чуть подождать и вакансии полетят вверх?
>>1934084 Не бухти, БОГАТЫЙ ГАРИС уже обкашливает все нужные вопросики с английской королевой. Тогда бабло для вакансий просто потечёт рекой, надо просто потерпеть и не раскачивать лодку.
Подскажите долбоёбу, как переписать then который ничего не принимает аргументом, на async/await. У меня после ресолва переменная, которая ждёт результата промиса, в итоге получает undefined. Проверять её на undefined и потом писать код, который я бы написал в then? Какой-то бред.
>>1934164 Можешь кинуть какой-нибудь пример, который ты реализовываешь на .then()? Я бы тогда переписал тебе его на async/await и на примере бы ты понял в чем отличие.
Сап двощь, есть ли какие-то либы на подобии react-query или useSWR, только блять не для реакта а агностик фреймворк. В идеале хотелось бы получить чето типа такого: https://pastebin.com/k4frYQu7 Понимаю что такое можно и руками в принципе написать, на нет и суда нет как гритбся
>>1934294 чтобы вкатится нужна не мотивация а ежедневный организованный процесс, если ты на мотивации потратишь целый день, а потом неделю будешь в доту гонять то грош цена твоим усилиям. нужно каждый мать его день хотя бы часа по 3, лучше больше но без фанатизма а то выгоришь, уделять обучению и через полгодика будет какой-никакой результат.
>>1934396 >книгу Вот это кстати признак вкатуна, которого объебали инфоцыгане. На самом деле в том, что ты вкатишься - ничего почетного не будет. Ты вкатишься в днищепрограммирование и будешь работать там пол жизни, если повезет. Большинство будет работать всю жизнь в таком - а это стремная офисная работа. Инфоцыгане вам там небось золотых гор наобещали, лол.
Как же тяжело сука. Планировал сегодня покодеть, в итоге весь день читаю статьи о тонкостях и нюансах языка\фрейма\паттерна\залупы. Каждый раз когда в голове возникает мысль, "о, а теперь кодить!", я думаю "так, еще вот это прочитаю, и точно кодить". Это такая форма прокрастинации? Мне кажется, что если я не изучу нюанс №84927483274892, то у меня получится говнокод\я нахуярю кода без понимания, как это работает и т.д. За день блять не написал ни строчки.
>>1934493 И еще это ебаное ощущение пустоты. Будто бы я ничего не знаю, ничего не умею, ничего не могу, хотя это объективно не так, я все-таки на что-то способен, но мне кажется, что еще столько всего предстоит изучить, что пиздец просто
>>1934497 Так в этом вся суть гей-либерализации. Если не будешь испытывать чувство пустоты, то не побежишь заРАБатывать многа денег, чтобы заполнить эту пустоту новым хайповым продуктом. Соответственно ценность капитала как источника силы упадёт, а это непозволительный исход для Федерального Резерва, ссуть которого - приумножать капитал ассимптотически.
>>1934722 А какого, собственно, члена? Почему в первом случае он не возвращает тру, а возвращает букву. 2 равно 1 ИЛИ 2 ----- ТРУ. ДА, 2 РАВНО 2. Логично же, не? Почему во втором случае тру, я могу себе представить. Типо прошла проверка, вернулось тру, все, дальше можно не выполнять. А почему при скобках блять фолс?
>>1934726 >Почему в первом случае он не возвращает тру, а возвращает букву Потому что это false || "e" >Почему во втором случае тру, я могу себе представить Потому что это true || "e" >А почему при скобках блять фолс? Потому что это "e" === "o"
>>1934733 >Потому что это "e" === "o" Блять, а каким это образом? Как выражение верни ПЕРВОЕ ТРУ из (ТРУ или ТРУ) превратилось в "e" === "o"? Я неправильно воспринимаю ||?
>>1934722 У тебя условие читается как элемент массива равен Х ИЛИ строка. Логические операторы возвращают результаты сравнения выражений, а не что ты там думаешь. Сперва высчитывается значение сравнения, если результат ложный, переходит ко второму значению, которое всегда истинно, и его возвращает.
>>1934741 >>1934743 Блять, все я понял. Я так затупил пиздос. А есть способ сократить вот это бесконечное повторение (arr.toLowerCase() === "o") || (arr.toLowerCase() === "e")? Если мне, допустим, нужно проверить 600 китайских иероглифов, я же не буду 600 раз писать (arr.toLowerCase() === "o"). Без регулярных выражений, бтв.
>>1934745 >Без регулярных выражений, бтв. Что-то уровня "как дрочить вприсядку не присядая". Альтернатива регуляркам - отдельная функция, которую будешь вызывать с возвратом сравнения аргументов.
>>1934772 Бля, а вот это круто получилось. Только я не понял, в строке, где ты новый метод в прототип строки пихаешь this там к чему относится? Какое у него значение будет?
>>1934778 this будет относится к тому у чего ты этот метод вызываешь, в данном случае, так как это прототип строки, то будет равен строке, если это строка из одного символа, то будет один символ.
>>1934806 Засунуть в одну строку 5 логических переключателей - это то же самое, что переименовать все переменные до одной буквы и называть это "сокращенной записью". Нечитаемой, минифицированной, глупой(если ты писал это руками, а не прогнал через минификатор) - может быть, но не сокращенной.
>>1934827 Что ты сказать то хочешь? Что твоя императивная параша будет лаконичней божественной, декларативной? Нет, этого не будет за рамками твоих маняфантазий. Раз уж твой мозг неспособен воспринимать тернарные операторы, то вот эту версию даже даун вроде тебя должен понять.
>>1934888 >засунул абсолютно ту же самую логику в нечитаемую однострочную функцию >ты нипанимаешь эта лучши патаму чта дикларативна и тирнарный апиратор это не плохо читаемое иф елсе, ета фп!!! Особенно серанул с is* функций, которые возвращают не-булевое значение.
>>1934894 Во-первых это не мой код, во-вторых суть в этом и заключается - ты сделал то же самое, что и в том посте, только в сто раз более нечитаемом виде, и почему-то гордишься этим. Засунуть в одну строку рекурсию и три вложенных друг в друга тернарных оператора - это книжное определение говнокода.
>>1934897 >это самая короткая запись >макнули головой в унитаз за пиздеж и показали два варианта которые как минимум в 2 раза короче >ДА Я НИПАНИМАЮ ШТО ТАМ НАПИСАНО РЕКУРСИЯ ЕТА СЛОЖНА ТАК НИСЧИТОВА ЯСКОЗАЛ
>>1934902 Ты не сделал код короче, ты его (плохо) минифицировал. Но почему-то минифицировал руками, а не специальным инструментом, и почему-то скинул свою минификацию в тред как пример написания кода.
Получается фронт взаимодействует с беком только посредством запросов типо json или устаревшего xml? тоесть каждый раз когда получаешь какие то данные, то браузер заходит на сайт https://example.com/api/huinya и возвращается данные json оттуда? или еще какие варианты есть? как например скрытые данные передать? типо количество денег на счету, чтоб только ты мог пройти по ссылке, а не кто то другой кроме захода на сайт.ком/апи есть какие нибудь варианты?
>>1935051 Ты так и не сказал контекст этой задачи: сервер или клиент. С сервера ты хуй получишь доступ к файловой системе клиента. А клиентский код может общаться с файловой системой только через браузерные апишечки типа FileReader, да и она тоже пути не сообщает: > It cannot be used to read a file by pathname from a file system.
Как отрендерить таблицу \ кнопку \ текстовое поле, когда данные для него станут доступны?
Цепочка такая: по нажатию кнопки подгружаются данные и передаются в дочерний компонент через пропс -> выбираем значение в v-select'e -> на основе выбранного значения селекта заполняется вся мишура.
Бяда в том, что изначально данных нет. Читал, что пропсам можно задать дефолтное значение, но там такая мешанина - я не разобрался.
>>1935054 Клиент. Мне надо чтобы скрипт брал файлы из указаной папки на компе юзера, это не upload, просто это взаимодействие, может можно как-то сделать чтобы пользователь нажимал на какой нибудь текстовый документ который в коде прописан и чтобы он путь передавался? Везде пишут что из-за безопасности нельзя, но я видел что такое возможно. У меня путь изначально прописан что у любого на компе он будет на диске /C. Но мнн нужно чтобы можно было изменить как вот в установщике программ/игр, чтобы выбираешь путь и он в строку прописывается
>>1935115 >Везде пишут что из-за безопасности нельзя, но я видел что такое возможно. Где ты это видел? Без доступа к файловой системе не будет и путей. >Но мнн нужно чтобы можно было изменить как вот в установщике программ/игр, чтобы выбираешь путь и он в строку прописывается Установщики программ устанавливаются прямо в систему, сторонние скрипты же запускаются в браузере.
>>1935248 >Зачем ты даешь советы если сам не шаришь От тебя я тоже советов не вижу. >что можно, а что нельзя и не следишь за развитием веб апи? W3 внезапно передумали и решили прямо в спеке дать рутовый доступ к машине клиента, а все вендоры побежали это реализовывать?
Подключил material ui, обмазался styled components, в итоге код превратился в ебаную кашу, а ведь это еще сраный туду, в более менее крупных проектах наверное пиздец?
>>1935276 В крупных проектах разделяют вёрстку и работу с JS фреймворком. Задача работающего с фреймворком интегрировать вёрстку которую он получил от верстальщиков.
>>1935246 >File system access api >>1935248 Нихуя ты советчик, сейчас бы экспериментальные апишечки таскать в прод, как будто без этого ёбли с совместимостью не хватает. Не говоря уже о том, что эта апишечка не даёт доступ в рут, так что никаких абсолютных путей не достать.
>>1935297 Удобно если тебе нужно 1 раз сделать и забыть, а так тебе либо нужно будет обертки свои городить, которые делают так как тебе нужно, либо менять свой сайт так чтобы материал уи работал без косяков.
>>1935409 Ну дебил, бургер должен сворачиваться при нажатии на любую область вне этого бургера, а он у тебя статичным остается даже при клике на один из пунктов меню этого бургера.
>>1935408 Не похоже не обфускацию, скорее на какую-то оптимизацию-транспиляцию. Я просто не в курсе, что там сейчас в жс в ходу. Может кто узнает такую хуйню.
Сап, учу реакт, не могу понять, как из этой функции получился такой результат на экране, что попадает в desc, что при сравнении в 1 раз он получает возвращение к старту, а при остальном нет?
>>1935415 >Ну дебил, бургер должен сворачиваться при нажатии на любую область вне этого бургера, Это ты сам придумал. Бургер - меню, а любое меню должно закрываться по конкретному действию пользователя. >а он у тебя статичным остается даже при клике на один из пунктов меню этого бургера. В бургер пихают ссылки, которые ведут на другие страницы, то есть идёт перезагрузка.
Но всё равно добавил кнопки закрытия и автозакрытие при клике на пункты. Ссылка та же.
>>1935447 >Выглядит, как будто просто впихивалось в одну строчку. Нет. Не в строчку, а в выражение. В приведенном сниппете одно единственное выражение в теле функции. Для чего так писалось - это бессмысленный вопрос, в отрыве от контекста. Это мог быть сниппет, чтобы показать логику кому-то. У человека может быть такой кодстайл и она максимально избегает использования instruction statement и отдает предпочтение expression statement.
>При кодогенерации в этом виден смысл, а руками? Не понимаю твоего бугурта. Этот кусок кода легко читается и понимается, при условии, что ты знаешь язык.
>>1935505 Это живой код с сайта, рендерит ответку от апи. Я тоже её качаю и приходится посматривать, что они там делают. Нихуя не легко читается, хотя отдельные элементы все простые и понятные.
>>1935629 WeakMap и WeakSet - ритуальные понятия, которые ты должен знать, чтобы пройти собес, потому что о них спросят. Никто их в проде не использует, так как неитерируемые коллекции нахуй не нужны. Map и Set - подвиды объекта и массива соотвественно.
>>1935705 задавший вопрос даун - потому что вопрос даунский пздц ответившие дауны потому что пытаются дауну ответить на даунский вопрос я даун потому что трем даунам пытаюсь объяснить что они дауны соснули все!
>>1935715 пирожка тоже нет, точнее он тоже ничего и все вокруг него и внутри него конечно же тоже ничего, потому что нет ничего кроме ничего потому что только ему чтобы быть достаточно небыть. от така хуйня малята
>>1935710 >Клик вне меню это и есть конкретное действие пользователя. Юзер только кликами и взаимодействует со страницей. Охуенное у тебя конечно "конкретное" действие. Как ты мисклик детектишь с такой охуенной логикой? >модальные окна Да ты же говнодел. Модалы разве что только для аутентификации более менее подходят, потому что в большинстве случаев формы автозаполняются и пользователю только нужно кликнуть кнопку "отправить". Пихать в модалы формы с текстом, которые ещё нужно вручную заполнять - просто максимум уебанство. Настройки модала не требуют. Если это список чекбоксов, то достаточно обычного всплывающего меню. Если же там куча настроек с субсекциями - то это идёт в отдельный адрес, так как пользователю нахуй не всралось читать простыни настроек на той же странице, где он слушеает музыку/читает статью/смотрит порево/гоняет в донатную дрочильню.
>>1935778 Вим сам по себе душная хуета, клавиши и формат управления кодом еще одно дело, на сама по себе как ide это махровый пиздец. Я сижу в вебшторме с клавишами вима, потому что мышка это от дьявола, и клавишами легче управлять и быстрее. Но вот остальые возможности современных ide в виме это пиздец. Вот бы все можно было управлять только клавиатурой. Но хуй там. Разве что пикрил с трекболоом или тачпадом, но не пробовал.
>>1933695 >Есть текстовые материалы для вката в бэкенд на ноде? ДА, и представляешь, они ещё так круто называются... КНИГИ! И ВАУ, их даже можно перелистывать. Прикол, да?
>>1937102 Это сделано специально, чтобы на server-side стороне не выкинуло ошибку из-за отсутствия window. Почему не innerHeight: window ? window.innerHeight : null ? Так красивее. Зачем нужны нуллы? Чтобы было единообразие возвращаемого результата.
Больше пары строк кода в посте или на скриншоте ведут в ад.
Для программирования на HTML https://jsfiddle.net
Для Node.js с консолькой https://repl.it/languages/nodejs
Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Руководство для вката: https://developer.mozilla.org