Предыдущий: >>1552228 (OP)НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД!Для программирования на ХТМЛ https://codepen.io/pen/Для Ноды с консолькой https://repl.it/languages/nodejsДля фреймворков https://codesandbox.io/Залить, задеплоить страничку, сервер, контейнер https://zeit.co/nowАноны, хочу получить советов мудрых, высераю пару предложений и код на скриншоте, а получаю смехуёчки. Как быть?Если рассчитываешь получить дельный ответ, формулируй правильно вопрос:У меня есть проблема\задача (А) %текст-ошибки или задача%. Я пытался решить ее так %кусок-кода-опционально% (Б), у меня не вышло %текст-ошибки%. Я погуглил, почитал документацию и попробовал сделать так %кусок-кода-%(В), но получаю ошибку (Г).Сделай песочницу по ссылкам выше для ясности и удобства. Если никогда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
>>1562521>как за две недели подготовить себя к собесу на позицию джуна?Если совсем нулевой, то никак.
>>1562521Какой у тебя бэкграунд? Насколько знаешь ванилу, что по либам/фреймам/пет проектам?В общем случае learn.javascript от корки до корки + гугл "вопросы javascript собеседования" (вместо JS может быть React, SQL и тд, в зависимости от позиции).В целом вопросы на собесах обычно очень типовые, могут посадить код писать на бумажке или на компе. Если это твой первый собес, у меня для тебя не самые хорошие новости, но шансы есть всегда.
>>1562547Не, не нулевой.>>1562556Из проектов доделываю мувисёрчер на ваниле и на Реакте писал туду и минипроект для универа.Да, собес первый
>>1562564Ну тогда в общем-то всё, как я и написал выше. Если вакансия фронта, то в разной степени соотношения будут спрашивать ванилу, вёрстку и что-то из того, что используется на проекте, может быть и "общее" вроде React/Redux/Saga. Могут что-то про вебпак и бабель. Смотри на ютубе видосы про собесы на JS. Ну и самое главное: собес - это совсем не то же самое, когда сидишь дома уютно перед своим компом. Нервы будут, и не факт, что ты идеально будешь выдавать даже то, что на самом деле знаешь.
>>1562925Консоль то ты где открывал? На сайте codepen? Если да, то неудивительно почему результат такой.
>>15627341) ты, надеюсь, в курсе, что у тебя функция и её исполнение тут вообще лишние.2) это особенности работы консоли, тк лог ничего не возвращает
Хочу хорошо изучить браузер: девтулзы, пейнт, лэйаут, ивентлупы-залупы. Можете посоветовать какие-то годные курсы/ресурсы для изучения этого всего?
>>1563284Все, хочу процессы построения страницы понять и все, что происходит у браузеров под капотом. DOM, CSSOM, как хтмлька рендерится, вот это всё. Мудаки из гугла понаписали кучу гайдов на эту тему на основу старой девтулзы, затем изменили её до неузнаваемости и забили хуй. Хотелось бы найти что-то вроде гугловских гайдов с web fundamentials, но с современной девтулзой.
Хуйню какую-то обсуждаете.Вот настоящая проблема: 1. есть говно мамонта в виде хуево написанного приложения на angular 1.6. 2. Поверхностные знания в angular и js в целом Цель: вкрутить модный typescript и продолжение разработки этого приложения без адских мук. Мои мысли. Первым шагом прикручу сборку через webpack, чтобы можно было подключить babeljs к обработке кода. Какие подводные? Был у кого-то подобный опыт?
>>1563466Как typescript и babel связаны? Тайпскрипт имеет свой собственный компилятор. Это будет либо awesome-typescript-loader либо ts-loader. Они делают тоже самое, что и babel. Для поддержки типов древнего ангуляра ставишь npm пакет @types/angularДальше ты сам в этом приключение. Тебя ждут темные земли, куда мой народ больше не ходит. Там было пролито много нашей крови и слез. Теперь наш путь ведет нас в Валинор. Я могу лишь пожелать вам, смертным, силы и терпения.hasLayout, presto, windows safari - all those moments will be lost in time like tears in rain.
>>1563479hasLayout это и есть про ie6-7.Это свойство в свое время было даже выпилено из официальной документации МС что бы скрыть весь тот пиздец, который творился в их коде. И сейчас упоминания о нем можно найти только в архивах мамонта. По версии МС такого скрытого свойства никогда не существовало.Методом обратной разработки и анализа была составлена следующая картина: когда стали выходить новые стандарты индусам была дана задача в кратчайшие сроки написать новый парсер вместо того говна, что тянулось еще со времен мозаика. Однако, судя по всему, все сроки были проебаны, потому они нашли очень кардинальное решение - они втулили в шестого ослика сразу два парсера - старый и новый, который не успели дописать к срокам. свойство же hasLayout определяло, какой из движков будет отрисовывать элемент на странице. Естественно, что это все на практике вылилось в лютейший пиздец и фикс багов ие6 мог занимать по времени столько же, сколько изначальное написание верстки/скриптов. А все потому, что явно его задать было невозможно, никакой документации по нему не было. Потому все определялось методом проб и ошибок и фиксилось откровенными хаками.
Кто из вас вкатывался в поддержку опенсорсных проектов? Как вкатывались? Как ощущения? Помогает качнуть скилл?
Аноны, мучаюсь уже несколько часов и не могу понять в чем проблема. Есть пикрелейтед 1 и 2. Я абсолютно не понимаю : почему у меня работает только класс контейнер? Т.е. все остальные классы он просто игнорирует, даже если я захочу бэкграунд перекрасить в красный.
>>1563563className - свойство dom узлов. Остальные элементы у тебя там это реактовские компоненты, они просто принимают пропс className и ничего с ним не делают, так как ты для этого никакой логики не написал.
>>1563564спасибо огромное. Удивительно, но я думал, что className зарезервированное слово и прописать этот атрибут компоненте равносильно, что прописать его обертке этой компоненты
>>1563564PS Какой вариант лучше использовать 1ый и 2ой пикрелейтед , или 3ий или есть более верный вариант?
>>1562734> var> functionЕсли ты не зеленый, то забудь про эту хуйню и пиши как нормальный человек на ES6.
>>1563583Нахуя ты это делаешь? Просто пиши ебучие классы строкой, между className={s.container} и className="container" нет абсолютно никакой разницы, только лишняя ебля в первом случае.
>>1563669return0Интерпретируется как:return;0;Если ты отказываешься от ; , то автоматически соглашаешься ебать себе мозг звучиванием всех случаев автоматической расстановки ;
>>1562152 (OP)призываю в тред опытного помидора @ юзаю Promise.all(stats); как на пикрелейте, сейчас в директории находится овер 20к файлов, т.е. если я правильно понимаю, для этих 20к файлов создаётся 20к промисов? сомневаюсь что это норм подход, так как через время там будет 40-50к файлов, это не сломает Promise.all? У Promise.all есть вообще какой-то лимит на кол-во промисов?
>>1563669// консоль выдаст ошибку "Uncaught TypeError: 1 is not a function":const huj = 1(() => {})()// всё ок:const huj = 1;(() => {})()
>>1563739Ещё такое естьconst op = 'pidor'['h', 'u', 'i'].forEach(gavno => console.log(gavno))Но я ни разу в жизни не использовал ничего из этих примеров
>>1563741Никто так специально писать, конечно, не будет, но поведение немного неожиданное. Если опечатаешься и не заметишь, то пиздец.
>>1563739Можно просто кодблок ебануть лолconst hui = 1{}(() => { console.log('чё бля') })()// чё бляЯ бы очень сильно охуел, еслиб такое увидел в коде
>>1563750The key to understanding design patterns such as IIFE is to realize that prior to ES6, JavaScript only featured function scope (thus lacking block scope), passing values by reference inside closures.[8] This is no longer the case, as the ES6 version of JavaScript implements block scoping using the new let and const keywords.Нах?
>>1563726У тебя stats массив объектов, а не промисов, никакой promise.all использовать не нужно, просто возвращай stats.
>>1563726>т.е. если я правильно понимаю, для этих 20к файлов создаётся 20к промисов? Да.>там будет 40-50к файлов, это не сломает Promise.all?Нет.>У Promise.all есть вообще какой-то лимит на кол-во промисов? Лимит там как и у любого массива - на сколько памяти хватит.
>>1563795> Promise.all is the best way to aggregate a group of promises to a single promise. This is one of the ways of achieving concurrency in JavaScript.>achieving concurrency in JavaScript>concurrencyхм, меня смущает, что эти 20к промисов обрабатываются параллельно, а там сервер, который в это время должен раздавать контент @ если там потом будет овер 50к параллельных тредов, то вангую сервер может покрашится
>>1563799Тогда проблема явно не в Promise.all, а в том, что ты за каким-то хуем даешь пользователю сервера возможность читать 50к файлов прямо с диска в каждом запросе, вместо того чтобы закешировать их или использовать БД как нормальный человек.
>>1563782если сделать как ты предлагаешь, то console.log(stats) покажет пикрелейт, там нужно юзать promise.all
>>1563803>даешь пользователю сервера возможность читать 50к файлов прямо с диска в каждом запросе,лол не, это не пользователь делает, а таймер с этого скрина >>1563771смотри там строку 54
>>1563799Ты путаешь concurrency и parallelism. Всё это в ноде делается под капотом и ограничено количествами ядер процессора, т. е. нода не будет создавать 50к параллельных тредов, а будет поочередно их выполнять в n потоках где n это количество ядер процессора.
>>1563671я пользуюсь css module, есть какой-то их особый стиль записи или просто не надо ими пользоваться?
>>1563844https://blog.risingstack.com/node-hero-async-programming-in-node-js/>Also, as we have already learned in the first chapter, Node.js is single-threaded - from a developer's point of view. It means that you don't have to deal with threads and synchronizing them, Node.jsabstracts this complexity away.Понял, чепуш? С точки зрения разработчика, который пишет код, она однопоточная, потому что у тебя нет инструментов для управления этими потоками. И вот для закрепления:https://itnext.io/multi-threading-and-multi-process-in-node-js-ffa5bb5cde98>Node.js is a single threaded language which in background uses multiple threads to execute asynchronous code.
>>1563875Я тебя не оскорблял. Как нода может создавать n потоков, если количество потоков ограничено процессором ?
>>1563856>потому что у тебя нет инструментов для управления этими потокамиТак то есть. С версии 10.5.0 появились воркеры.
>>1563875>Учи английскийдвачую, после прочтения оригинальной статьи на энгельском, глянул релейт для фана https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Promiseс-Водка, что за бредятина, кек такое в присутствии иностранцев лучше не говорить вслух
>>1563828>зачем IIFE в 2020 году использовать?очевидно же, что для асинхронной рекурсии как на скрине тут >>1563771
>>1563726Тут мои догадки и никак эти слова не подкрепленны. Весь тред пишет про потоки. Я лично не знаю, что там творится в ноде и как это оптимизируется, но я уверен, что если у тебя есть возможность раздробить файлы и упорядочить их (на основании зависимостей) , то запускай хоть 10 нод. Нода это ближайший язык к клиенту и он предполагает, что если ты делаешь софт, то чтобы клиенту хватало ресурсов на свои перделки и это все при том что нода достаточно прожорливый язык.
>>1563878Также как и в любом коде, который использует многопоточность - проверяешь сколько у процессора ядер и в зависимости от этого запускаешь n потоков. И количество потоков не ограничено процессором, но безопаснее всего использовать столько, сколько у процессора ядер, для того чтобы избежать оверхеда который сведёт на нет все плюсы многопоточности. В нормальных ЯП ты можешь и 1000 потоков создать на одноядерном процессоре, вот только получишь от этого уменьшение производительности, а не прирост.
>>1563927Раз это делается под капотом, значит выбран самый оптимальный вариант, т. е. у тебя не будет создано больше потоков, чем есть ядер на процессоре который запускает ноду.
>>1563965там сервер раздаёт сайт, и каждый час чистит файлы @ в момент чистки файлов может не хватить потоков на две эти задачи, ферштейн?я что то сомневаюсь, что в ноде есть такой механизм, который расставляет приоритеты для потоков, типо какие потоки нужно оставить для раздачи сайта с запросами в бд и рендером шаблонов, и какие для других нужд, типо скрипта для чистки каталога с файлами
>>1563974Тебе просто нужно почитать про многопоточность и асинхронность. Нет смысла пытаться объяснить тебе это на пальцах в двух постах, ты продолжаешь срать своими представлениями, основанными на фантазиях из манямирка.
>>1563990кек ну ты и олень, тебе ясно тут описали проблему >>1563974, нахуй ты это всё высрал сейчас?
>>1564016Как ты определил проблему, если не имеешь ни малейшего представления о многопоточности и асинхронности? А также о том, как это реализовано в инструменте который ты используешь. Вот и выходит, что не проблему ты описал, а догадки своего манямирка.
>>1564018>если не имеешь ни малейшего представления о многопоточности и асинхронностия читнул этого Анона >>1563856 и тут https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop
>>1563887>воркерыОни и в ванильной жс есть. В обоих местах - крайне лимитированная хуйня, причем и воркеры, и эвент луп нельзя блокировать, т.е. не поддерживаются хотя бы объекты синхронизации.>>1564193>Нода - однопоточный калПолностью солидарен.
>>1564228>эвент луп нельзя блокироватьА надо? Надо глупой мартышке боевую гранату давать, потому, что ей игрушечная не нравится?
>>1564267>А надо?В мире розовых пони не надо. На практике легко прострелить себе ногу херово написанным колбеком/await и огрести блокировку.
>>1563695>Если ты отказываешься от ; , то автоматически соглашаешься ебать себе мозг звучиванием всех случаев автоматической расстановки ;Возможно, лет 10 назад. Но сейчас ты уже в здравом уме не сможешь написать так, чтобы что-то сломать. Твой пример - в 99 случаях сверх редкая опечатка, чем кто-то в здравом уме такое решит написать. Я уверен, что некоторые олдовые мидлы могут даже не подозревать, что можно так написать. Ну а вот это const huj = 1;(() => {})() тень прошлого. Самовызывающиеся функции описывают в книжках, курсах, но увидеть их можно лишь в очень старом коде. И это причина, почему их до сих пор описывают в книгах. Но никто ими уже не пользуется. + Тебя даже в этом треде за это обоссут.
>>1563583Мне не нравится идея передачи стилей как пропсов. Каждый компонент должен сам отвечать за свою стилизацию. А внесение стилей на уровне тем должно реализовываться отдельно - класс на body, темы material ui или темы styled component, whatever. Но ни в коем случае не передавать стили между компонентами - это рушит принцип атомарности и автономности. Любой твой компонент должен с минимальными изменениями быть переставлен на новый проект, если таковое потребуется.
>>1563669Бля, возможно ты прав, но я с этой хуйни не могу слезть как с наркоты. Привычка выработанная годами. памагите.
>>1563770Вот этот прав. IIFE всегда было чисто костылем. В современных реалиях в них нет никакого смысла.Хотя там есть такая хуита, что код в IIFE будет выполнен до всплытия (hoist). Но мне сложно представить, когда это может быть полезным, учитывая, что общая тенденция развития JS идет в сторону отказ от использования "преимуществ" всплытия (let, const, arrow functions).
>>1564320Да, ты прав. Я не подумал об этом >Любой твой компонент должен с минимальными изменениями быть переставлен на новый проект, если таковое потребуется.Но я все же уточню про >Каждый компонент должен сам отвечать за свою стилизациюЕсли у нас есть грид и мы хотим объяснить компонентам, как они должны располагаться. Мы должны их положение прописывать обертке внутри этого компонента ( return( <div className="...">...<div>)) или мы все же имеем право обернуть компоненту в <div> на том уровне где создается грид и там все описать? Я это уточняю, потому что как-то выглядит некрасиво, когда в одном ксс ты определяешь как гриды себя ведут, а в других ксс определяешь их классы. Я так понимаю оно все при сборке превратится в один css , но возможно это сложнее читать/исправлять
>>1564349PS >>внутри этого компонентавнутри каждого компонента (которые являются дочерними элементами грид компоненты)
>>1564349Ну можешь тогда использовать именованные ячейки гриды и передавать в компоненты это имя. Наверно это приемлемо.https://developer.mozilla.org/ru/docs/Web/CSS/CSS_Grid_Layout/Грид-области
>>1564270>легко прострелить себе ногу херово написанным колбекомЗначит надо всякой мартышке давать больше возможностей прострелить себе ногу, но с уже нормально написанными колбэками и испорченным грязными ручонками эвент лупом?По-моему от розовых поней пишешь именно ты.
import React, { Component } from ‘react’Антон поясни как это работает пожалуйста. В исходниках реакта из файла импортится по умолчанию только сам объект реакт, там нету отдельного именованного экспорта Component. Это Бабель так делает, что я могу вытаскивать свойства объекта, как будто бы они тоже экспортятся?
>>1564382>Это БабельМне кажется это вебпак. Собери свой проект в дев режиме и посмотри, во что превращаются все импорты\экспортыМодули в функции, возвращающие объекты. Импорты в использование специальной функции, которая соответственно вернет ранее возвращенный объект из специального словаря. Так что ты просто деконструктишь объект а может и нет, я хуй знает
>>1564267>>1564376>ряяяя вокруг одни мартышки мартышки, ряяяяя хочу вместо языка программирования гулаг с как можно большим количеством ограничений, в этот-то раз это точно решит все проблемыМерзость.
>>1564382>Это Бабель так делает, что я могу вытаскивать свойства объекта, как будто бы они тоже экспортятся? Так работает module.exports. А если точнее, то это костыль для совместимости es6-импортов с commonjs экспортами, добро пожаловать в мир костыльного жопаскрипта.
>>1564382Поведение описанное стандартом EcmaScripts modules.export default Huitaexport additionalHuitaexport huitaHelperimport Huita, { additionalHuita, huitaHelper }Huita - дефолтный экспорт либы{...} - опциональные экспорты либыСам реакт, впрочем, по моему упакован не в esm, а в commonJS или AMD, так что компиляцию из них в esm тебе будет делать либо бебел, либо typescript лоадер. Но любой другой модуль так же имеет понятие дефолтного экспорта и опциональных экспортов.
>>1564568В исхолниках реакта анон выше кинул скрин. Есть толькоexport default ReactИ больше ничего из файла не экспортитсяТам нету export { Component }
>>1564382>>1564568>>1564582В общем глянул что там в npm react. там сразу два пакета - для comonJS и UMD (если есть UMD, зачем тогда commonJS?).CommonJS имеет одну точку выхода, опциональные экспорты походу действительно просто как поля к нему прицепляются. Бебел походу все поля объекта экспорта транспилит в опциональные экспорты ESM (ебать дикость).Короче, 2020 год, а у нас основные либы до сих пор упакованы в формат мамонта.Странно, почему там и UMD и CMJ, потому-что UMD это какбе универсальная обертка и для CMJ и для AMD.
>>1564582Вот нормальное пояснение.https://dev.to/exacs/node-js-12-supports-es-modules-do-you-know-the-difference-between-commonjs-and-es2015-modules-hg9В commonJS реально module.exports это дефолтный экспорт, а все его поля становятся опциональными экспортами. А за всеми трансформациями между форматами пакетов стоит ваш сборщик.
И да, я подчеркну, что в 2020 в JS у нас до сих пор 4 (ЧЕТЫРЕ) различных форматов пакетов.1. commonJS - древняя залупа2. AMD - еще одна древняя залупа3. UMD - древняя залупа, которая попыталась примерить все другие древние залупы (а если запустить в чистом окружение браузера, то оно вообще весь пакет высрет в глобал window)4. ESM - ответ на крик "так жить нельзя". Большинство разработчиков перешли на него (когда ты пишешь import/export - ты используешь ESM). Но 90% либ все еще упаковано в древние залупы и что бы их подключать в свой новенький проект на ESM тебе необходимы транспилеры.Так и живем.Анон, если будешь делать свою либу - пакуй в ESM и в UMD. Это покроет все юзкейсы, даже прямо в браузер можно будет грузить без каких либо сборщиков.
>>1564592Почему в официальных доках они сами используют такой костыльный импорт, а не делают просто такimport react from ‘react’const {Component } = reactОни совсем конченые там? Хотя бы объяснили что у них нету экспорта Component по умолчанию.
>>1564606>Анон, если будешь делать свою либу - пакуй в ESM и в UMDАга, и сделать свою либу неимпортируемой по умолчанию в окружение ноды без бабеля. Охуенный совет. Главный дистрибутив для уважающей себя либы делается в cjs, а все остальное говно только бонусом.
>>1564627Ты упоротый? UMD поддерживает commonJS.А во вторых - пошел ты нахуй, потому-что node 12+ официально поддерживает ESM.
>>1564633>node 12+ официально поддерживает ESM.По умолчанию не поддерживает, это нужно указывать отдельно через type module. Ну и осталось дождаться, пока все перейдут на 12 ноду, оставив остальные версии позади, и пока не сделают type module дефолтным, так что лет через пять приходи с охуительными советами.
>>1564644Не важно. CommonJS агрегатор все равно сожрет UMD пакет как если бы он был commonJS.Древние пакетные менеджеры создают отдельный скоуп, в котором создают объект аля module. После этого они запускают в нем нужный файл. Этот файл должен записать в объект module поле export. В AMD примерно такой же принцип.UMD же просто делает проверку на то, какие объекты присутствуют в исполняемом скоупе. Если он находит module - он срет в него. если он находит define - он срет в него. Если он не находит ни того, ни того - он срет в глобал.Вот начал UMD пакета, к слову:(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = global || self, global.huita= factory());}(this, (function () { 'use strict';....Каждый пакетный менеджер в итоге получит то, что он ожидает получить.
>>1564652Это говно по сути нужно только для поддержки AMD и браузеров, а браузерные импорты это смешно, никто слава богу ими в здравом уме не пользуется и пользоваться не будет. Если ты пишешь js-либу, то в 99% случаев цель у тебя только одна - это окружения ноды, поэтому выбор идет между cjs и ESM дистрибутивом, из которых очевидно выбирается cjs.
>>1564674>из которых очевидно выбирается cjs. Ничего одно не выбирается. Обычно там 2 или даже 3 формата пакетов заливают в npm. Тот же реакт устанавливается в cjs и в umd версиях. Но обычно сейчас либы идут с esm и cjs/umd.Это если кому интересно, почему node_modules так много весит. Момент, когда cjs/amd/umd окончательно умрут будет моментом, когда папки node_modules уменьшаться в два раза. Потому, анон, всеми силами приближай победу ESM.
>>1564685>Тот же реакт устанавливается в cjs и в umd версияхКакая из этих версий у реакта по умолчанию используется, не подскажешь?
Какой же сложный язык JS. Столько всего неявного, столько магии, столько фич. До сих пор в ахуе после "сложных" плюсов. Одни вышеупомянутые импорты чего стоят. А я думал, что понимал их. И раз он такой ебически сложный, почему все так советуют начинать программировать с него?
>>1564692Хочешь сказать, что один из пакетов просто по фану туда заливают, что бы npm пакет в два раза больше весил?Это делается для того, что бы любой цугундер-сборщик или окружение само решало, что оно хочет получить и тащило соответствующий пакет.
>>1564702JS урезанный, никто с него не рекомендует начинать. Начинать надо с языков со строгой статической типизацией и полноценными классами.
>>1564702Многие уродские вещи в JS вызваны тем, что его изначально делали как язык рисования снежинок на страничках девочек 13 лет, а потом ВНЕЗАПНО его стали использовать как коммерческий язык для написания от серверов до десктопных приложений. В него стали лихорадочно и быстро втуливать все недостающие вещи под новые задачи, при этом куча старого говна по прежнему отказывается умирать.На самом деле самый болезненный период уже пройдет. Это было где-то в 13-16х годах. Сейчас более-менее все стало устаканиваться. Тот же стандартизированный ESM заменит собой нестандартные пакеты в ближайшие пару лет.>>1564709This.
>>1564708Его засовывают туда потому, что реакт - популярная библиотека и им не сложно добавить одну строчку в свой компайлер, чтобы угодить 1% пользователей. "В два раза больше весит" это смешной аргумент, если либа у тебя на сервере/компьютере, то этот лишний мегабайт не имеет никакого значения в 2020 году, а если в готовом билде, то лишнего мегабайта просто нет. А суть агрумента в том, что по умолчанию они(и абсолютно любая либа, какую найдешь) предоставляют cjs модуль, а не umd, хотя казалось бы по твоим заверениям, umd - это тот же cjs, только с бонусами на самом деле нет.
>>1564702Сам JS очень простой язык с минимумом синтаксиса, а сложность обычно заключается в том, чтобы разобраться со всеми костылями, которые его окружают, уровня прикрученной сбоку модульной системы в самом жсе модули добавили только совсем недавно, бабеля, плагинов для бабеля, вебпака и прочей хуйни.
>>1564709> никто с него не рекомендует начинатьВсё же рекомендуют, потому что он якобы простой, и чтобы новичок не испугался. Так думают многие и пишут свои топ-5-языков-для-новичков с JS на первом месте. Хотя сам я так не считаю.>>1564714> стали лихорадочно и быстро втуливать все недостающие вещиИ из-за этого язык выглядит очень неоднородно, потому что его делало дохуя народу с разными взглядами на то, как нужно делать языки.> самый болезненный период уже пройдетЭто хорошо. А то я заебался натыкаться на статьи, написанные год назад, но уже неактуальные.>>1564743Классический браузерный JS действительно прост, даже пресловутые преобразования типов логичные, хоть и не очевидные. Но вот постоянно меняющаяся экосистема ноды очень огорчает.
Аноны, подскажите.Написал скрипт и решил вынести часть функций в отдельные файлы. Когда вынес делаю стандартный импорт, то ловлю такую ошибку: Cannot use import statement outside a module.Гугл посоветовал поставить бабель, но они ничем не помог. Как фиксить?
script.js:4 Uncaught TypeError: Cannot read property 'classList' of null at script.js:4Абсолютно не могу понять в чём ошибка, аноны, спасите. скорее всего ошибка очень глупая, у меня из-за этого очень полыхает на самого себя
>>1564888Блять, вот я так изнал. Помнил, что где-то к селекторам точка не нужна, вот и не писалСпасибо большое
>>1564709Надо начинать с того, что тебе близко, чем ты собираешься заниматься, и яп, который лучше подходит для твоих задач. Вот эти мантры "надо обязательно начинать с..." - бред.
>>1562152 (OP)могу делать красивые и функциональные сайтики на python+flask. пришло время начать работать с javascript. что мне прочитать, что быстро начать работать с этим языком. хочу использовать в основном на фронтенде, хочется сделать пару сайтиков на ноде+экспрессе, чтобы можно было написать в резюме что я с ними работал. могу спойно читать и слушать на английском. по джеэс огромная куча ресурсов и я не знаю, где начать.
>>1565107https://javascript.infohttps://developer.mozilla.org/en-US/docs/Web/JavaScriptпотом учишь реакт и редаксhttps://reactjs.org/docs/getting-started.htmlhttps://redux.js.org/introduction/getting-startedМожешь смело после этого писать в резюме fullstack.
>>1564881Только не вздумай кому-нибудь это показывать. И бросай эту некрофилию, выучи ес5/6 и садись за фреймворк. То что ты делаешь щас в js, это не стоит твоего внимания.
>>1565107популярная связка django+react+postgress, редакс опционально в зависимости от твоего проекта. И если ты все же прекрутишь sql к проекту, а в стэйте будет хранится что-то кроме закрытое окно или прочитанное сообщение, то ебало знатно скорчат
>>1562152 (OP)Анон, что это за мода такая ублюдочная?!!Заходишь на сайт, там, на пол окна вылазит предупреждение о том, что тебе закинут куки. И закрыть его нельзя, блядь, только принять можно... Как блочить подобную хуйню?
>>1565131С подключением.В ЕС приняли закон, который обязывает все сайты, где юзаются куки, говорить об этом. Как бороться? Установить специальные расширения. /s/ тебе в помощь.
>>1565127>а в стэйте будет хранится что-то кроме закрытое окно или прочитанное сообщение, то ебало знатно скорчатА где тогда хранить данные, полученные с запросов?
>>1565139>Как бороться?Надо по рукам давать быдлокодерам, рисующим эти медленные баннеры,лезущие на пол экрана меееедлееееенннннннооооо медленно, блядь.Нельзя что-ли как-то ненавязчиво предупредить внизу и всё?И да, а что если юзер не хочет принимать куки? Хоть бы кнопку цепляли, не хочу печеньку, хочу пироженку.
>>1565140>>данныеТы должен четко представлять, что есть данные. Фронтенд залупа - не данные, а булевые значения. API запрос возвращает данные. Затем ты вспоминаешь, что существуют ограничения API запросов. Банально у яндекс карт - определенный пул в месяц, у API фильмов не более 30 запросов в минуту. Некоторые API по дефолту платные. Ты вот так подносишь палец к подбородку и думаешь, а может мне это куда-то складировать и потом вместо того чтобы в очередной раз делать API запрос, я буду обращаться к своей постоянно пополняемой базе. Таким образом, со временем API запросы начинают заменяться на чистые SQL запросы.Ну а вдруг информация в фильме изменится, а у меня так и будет висеть старая константная информация из моей базы. Повешу-ка я кнопку на сайте - устарела информация и ограничу на 1 запрос в сутки. Если у тебя в стэйте хранятся хоть какие-то данные, то ты пожрал гавна. Фронт должен рисовать картинку на основании данных, но он не должен их генерировать. Поэтому не надо путать фронт-енд задания с реальной практикой.
Учу javascript с нуля. Конечная цель — хочу собрать PWA приложение. Оно простое, про заметки. То бишь написал текст, сохранил, фильтры навесил. Подскажите, что помимо дефолта HTML/CSS/JS может понадобится, без чего моя цель неосуществима?
Думал фронтенд это то, чем я буду в основном заниматься.По детству учил HTML, CSS.На данный момент учусь в университете на CS и понимаю, какая же срань - фронтенд. И как меня заебала чертова верстка.Теперь и не знаю, то ли в Spring/.NET перемещаться, то ли вообще в мобилки уйти.
>>1565274>Таким образом, со временем API запросы начинают заменяться на чистые SQL запросы.Что за хуйню я сейчас прочиталКакие чистые sql запросы, ты просто заменяешь внешнее апи на запросы к апи своего сервера. Как это вообще соотносится со стейтом реката?
>>1565271> Надо по рукам давать быдлокодерам, рисующим эти медленные баннеры,лезущие на пол экрана меееедлееееенннннннооооо медленно, блядь.Там не то что давать по рукам надо, их отрубать нужно нахуй. Перегрузят свои сайы скриптами, а затем делают такие вот медленные анимации, чтобы тормоза меньше людей замечало. Туда же "У нас есть мобильное приложение", "Включите уведомления", "Подпишитесь на рассылку", "Зарегистрируйтесь, чтобы увидеть больше информации". Пидоры.> Нельзя что-ли как-то ненавязчиво предупредить внизу и всё?Можно, конечно. Тут уже мода на долбоебизм сказывается, мешающая так делать.> И да, а что если юзер не хочет принимать куки? Хоть бы кнопку цепляли, не хочу печеньку, хочу пироженку.Закон предлагает предупреждать об использовании кук, но не спрашивать, согласен ли пользователь. Тупо, да.
>>1565336Это не быдлокодеры, это манагеры с десигнерами и с кабанчиком в тз написали что все это должно быть и в максимально сжатые сраки сроки.
>>1565131Я стилусом https://addons.mozilla.org/ru/firefox/addon/styl-us/?src=search режу, как говорится - раз и навсегда.
>>1563669Вот блядь, из-за таких лентяев и приходится свой няшный старый браузер менять,на какое-то говно китайское, без исходника, переполняющее буфер от одной gif-ки,и ложащее винду с синим экраном после засирания файла подкачки,на говно, вроде того же 360 Extreme Explorer для Windows XP,зато поддерживающее УДОБНЫЙ ДЛЯ БЫДЛОКОДИНГА ES6,без поддержки которого, блядь, двач не открывается.Сидит, блядь, мудель, придумал сам себе что>" ';' - говно"и ещё и носит, заражает других былдокодеров-шкальнеков.А потом даже дрыном им в головы не забить, что надо поставить ёбанную ";"в какой-нибудь>for (Выражение; Выражение; Выражение ) Операторчтобы throw-exceptions в консоли не срали, и скрипт не останавливали.На, просвещайся: https://habr.com/ru/post/111563/
>>1565452>>1565504Вот уж воистину люди готовы защищать самую иррациональную бесполезную хуйню только из-за привычки. И их даже не ебет, что есть миллион языков в сто раз более приятных по синтаксису, чем жопаскрипт, где каким-то образом обходятся без сраной точки с запятой, и каким-то магическим образом избегают ошибок, все равно будут копротивляться за свое бесполезное говно до последнего.
>>1565511Дурачок, в жс точка с запятой не обязательна. Я тебе больше с позиции крестоеба говорю. Взять тот же питон: тебе не приходится СТРАДАТЬ и ставить точку с запятой, но приходится ловить ошибки интерпретатора если у тебя чуть отступ съехал. Да и это естественная идея - отделять отдельные команды чем-нибудь. Так и компиляторам/интерпретаторам проще, и читаемость кода повышается. Ты же точки, чтобы разделить предложения, ставишь?
>>1565446Манагеры и дезигнеры не пишут код и не могут нести никакой ответственности за его качество. Если ты написал забагованное говно, то это всегда только твоя вина и ничья другая. Кукареки "мне дали мало времени" - это смешно, потому что в итоге всегда выясняется, что либо а) быдлокодер сам поставил себе такой дедлайн б) быдлокодеру не хватило яйчишек сказать менеджеру, что времени не хватит и что нужно урезать требуемый функционал/продлевать дедлайн, если хотите уложиться в срок, вместо этого он просто покивал головкой и убежал в свой закуток подальше от социальных взаимодействийУ менеджера нет никакой возможности оценить сложность требуемого кода, нет возможности оценить время написания кода, и т.д, все эти оценки лежат только на тебе и доносить их до менеджера должен ты, а не наоборот. Взрослей и принимай ответственность
>>1565537Любой менеджер идет к программистам за сроками для написания кода, сам он не квалифицирован и физически не может их проставить. Он может проставить примерные сроки для проекта в целом, сроки для выхода на рынок и т.д, но вопрос "сколько займет написать такую хуйню" всегда задается только программистам, никому другому он задаваться не может в принципе. И если в ответ на твои "три недели" он отвечает "а может за две? у нас проект горит", а ты начинаешь мяться и в итоге соглашаешься ПОПРОБОВАТЬ сделать за две недели и делаешь забагованное дерьмо, то никакой вины менеджера тут нет.
>>1565541Хуя ты жирный.> сам он не квалифицирован и физически не может их проставитьЭто реально так на говно галерах? Я рад, что там не работал. На большинстве проектов где я работал, сроки выставлял либо техдир, либо ПМ который обладает тех. навыками на уровне оценки сложности.Зачем нужны ПМы, совсем ничего не понимающие в погромирование? Я искренне сочувствую людям, которым приходится с такими работать.
>>1565603>ПМ который обладает тех. навыками на уровне оценки сложности.Единственный способ обладать такими навыками - это писать код в этот конкретный проект на постоянной основе.
>>1565625Ты не понимаешь, что тебе говорят? Единственные люди, которые могут обладать хоть сколько-то актуальным знанием о том, как долго займет добавление определенного функционала в проект - это программисты, пишущие код в этот конкретный проект. Никакое образование, никакой опыт "в целом" тебе этого знания не даст и дать не может.
>>1565511>есть миллион языков в сто раз более приятных по синтаксису, чем жопаскриптХотя бы пять назовешь?
Насколько нужно знать ванилу, если цель дойти до фреймворка и написать что то на нем? Больше пробелов в ES6 фичах (асинки, промисы), т.к ванильный знаю достаточно, даже делал туду в ООП. Я думаю что дрочить все сразу плюшки не имеет смысла без практики, а практикой будет взять какой нибудь вью и сделать что то на нем, правильно ведь? Если что js у меня второй язык после пхп
>>1565336Сверхразум, ты? За всё это отвратное поведение, которое ты описываешь, ответственны менеджеры, дизайнеры, продакты и прочие писари тз. Разрабы просто реализуют то, что им говорят.
>>1565636Я бы сначала доки почитал, попутно делая тестовую хуйню по ходу разделов из доков. А потом уже делал бы что-то.
>>1565629А потом увольняют тебя, а не программиста. Потому-что найти говно ПМа без профильного образования в CS проще, чем найти нового сеньора-помидора. Про закладывание дополнительного времени для безопасности ты слышал, кстати? Или на отечественных галерах только ковбой-кодинг?
>>1565511Следует иметь а виду, что JS в первую очередь язык с си-подобным синтаксисом, а не с удобным. Со всеми вытекающими.
>>1565712А ведь изначально Эйхор хотел запилить что-то в духе упрощенного Scheme. Если бы не java, обмазывались бы сейчас скобочками и чистым ФП.
>>1565654При чём тут разрабы, если им сказали такое сделать?>>1565707Работа есть, ты плохо ищешь. Или тебе надо чтобы было 100-1000 вакансий? Устроишься всё равно на одну. Да и заграницей больше работы на этих языках, дополнительный стимул уехать.
>>1565800Заебали эту хуйню нести. Если речь про обычный ФП-язык, который используется на практике(кложа, эрланг, эликсир), то нихуя сложного и инопланетного там нет, специфические фичи осваиваются за неделю.
>>1565810> нихуя сложногоЕсли это действительно было так, это всё по популярности было на уровне сабжа или джавы. Но нет. Потому что никто не может осилить.
>>1565870>key принимает уникальное значение с сервера.А в консоле тебе ведают об обратном. Есть вероятность, что это реакт пиздит, но, скорее всего, это ты где-то в глаза ебешься. Отдебаж что ты в ключи вставляешь, скорее всего у тебя где-то они повторяются или какой-то элемент без ключа идет.
Аноны, как по нормальному ванильный JS-код на модули разбить?Разбил на модули, делаю все экспорты, а когда всё запускаю, то ловлю ошибку Cannot use import statement outside a module.Что не так?
Аноны, я пользуюсь реактовским .module.css, но VSCode не видит их во время авто заполнения импорта. Какой плагин нужно поставить или где нужно написать, чтобы он начал сканировать .module.css. Я пытался гуглить, но почему-то не нашел ни одного вопроса по этому поводу.
Братцы, хочу вкатиться в мобильную разработку. Чисто под свои нужды, сам я не профессиональньный погромист, хоть и кодю с 2000го года практически каждый день.Присмотрелся к комбинации из native script + svetle.Какие подводные камни? Что мне нужно будет выучить и в какой последовательности? С жс знаком постольку-поскольку, раньше для моих нужд плюсов с питоном хватало.
>>1566092>svetleВ чем прекол этого модного и молодежного реймворка? Сколько раз встречал его описание, так и не понял нахуя он нужен
>>1566143Мне он понравился тем, что толком не понимая жс и прочих плясок вокруг ноды нпм гульпов хуюльпов всяких сасс я туда-сюда понимаю как эта хуета работает.Чисто порогом вхождения, короче. Ну и листинги короче чем то, что я увидел на реакте и ангуляра, а мне много писать лень, после питона-то с >импорт вунндервафыекомбайне >вундерваффекомбайне.ду()
>>1566143Очередная ловушка про "очень просто и не надо знать js". Angular, react, vue - в свое время про них всех говорили так же.Так как вышел не так давно, так что люди будут спотыкаться об не обкатанные подводные камни. Будут сталкиваться с ограниченностью экосистемы, буду велосипедить. Через год-два оно все равно разрастется по апи до реакта/вуэ или даже до ангуляра разжиреет.
>>1566156Та какие велосипеды, я хочу круд для склада и амоцрм написать чтобы видеть что мои кладовщики когда отгружаютЯ это и на кажется калькуляторе или упаковке из-под пива мог бы написать, но поскольку делать мне один хуй нечего решил вот хуйней пострадать
>>1566092Не надо svetle, лучше уж react native возьми. Это очень молодой фреймворк, на каком-нибудь реакте уже миллион таких приложений написали и решили все проблемы у вкатывальщиков. Банально база знаний для других фреймворков больше
https://www.meshcommander.com/meshcommander>MeshCommander is the ultimate open source Intel® AMT management console. In an effort to make Intel® AMT easier, support many platforms and over the Internet usages, MeshCommander is entirely built in JavaScript. You can now manage your Intel® AMT computers from within a browser or as a standalone tool.>MeshCommander is entirely built in JavaScript.
>>1566226Двачую. Белые люди пишут мобильные приложения под гейос на свифте, а под ведро на котлине. Посоветовал флаттер как меньшее из зол.
>>1565522Ты такую лютую хуергу написал что это просто пиздец даже. Ты не то что в айти никогда не работал, а похоже что не работал вообще нигде и никогда.
>>1565603>Это реально так на говно галерах?Нет, это только в его маняфантазиях и в студяих на три человека в чьей-то квартире.>На большинстве проектов где я работал, сроки выставлял либо техдир, либо ПМ который обладает тех. навыками на уровне оценки сложности.Так оно и в большинстве случаев и есть. То просто залетный кукаретик.
>>1566052Не работал с раектом, но проблема в VScode как я понял. И даже твоего вопроса не понял. Давай скринами
>>1565603Какую же ты хуйню написал.Во-первых, оценить весь скоуп сразу может только господь бог нахуй. Человек же, каким бы неибаца спецом он не был, при таких оценках имеет все шансы ошибиться на 300%. Пиздец, им дали аджайл, интерации, грумминг, скрам покер и другие средства гибкой разработки, нет не хочу, хочу чтоб какой-то хуй сам наверху все порешал и спустил команде, которая в эту, взятую из чьего-то мутного опыта цифру по памяти, должна попадать. Это при том что >70% всех подводных камней, противоречивых требований, недостающей информации и прочей хуиты выявляется только на стадии разработки.Понятно, что в некоторых конторах, типа НАСА или Боинг, всякие гибкие методики не годятся, и нужен классический вотерфол, но там блять задача будет пол года проходить 7 кругов аналитиков, архитекторов и прочих уебков , пока дойдёт до разработки, а не типа один авторитетный хуй бздонул и все, отдали в работу. То что ты описал - это самая тупорылая, уебищная, бессистемная хуита уровня »Рога и Копыта» и надеюсь те редкие раковники, что до сих пор так работают, вымрут нахуй, а их дебильный менеджмент весь отправится работать в макдак.
>>1566277Аж трясёт нахуй.В прошлой конторе, из которой я недавно съебал, один такой дохуя менеджер с 10 летним стажем разработчика единолично дал оценку клиенту на весь проект и обосрался в 2.5 раза, что потом сам признал. Но ему то что, признал и дальше и поздовал пердеть в кресле, а пацаны месяцами овертаймили чтоб попасть в дедлайн, потом половина перегорела и уволилась нахуй
>>1566311>>1566310Сраный vscode не может сделать нормальный скрин. В общем, суть в том, что я расширяю Array своим методом getById и ничего не выходит. Где я обосрался?
>>1566310https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work
>>1566264Да, дело не в реакте. Когда я пишу импорт файлов .module.css, то VSCode их игнорирует наличие в папке. Обычно он подсказывает в виде всплывающего окошка. .module.css это legacy стиль написания css для реакта.
>>1566317>2020>../../../../Стыдно должно быть. https://github.com/tleunen/babel-plugin-module-resolver
>>1565551>Убрал две ;>но поставил три.>>1565538А теперь подумай и скажи, в каких браузерах этот говнокод не заведётся?
>>1566459Не ебу, что это за язык, но на JS можно написать интерпретатор, который хоть C++ схавает. Вопрос лишь в огромном оверхеде на парсинг.
>>1562152 (OP)Знаю основы html и css, плюс немного жабаскрипт + jquery. Сделал один сайт-презентацию.На какую зп я смогу рассчитывать на фрилансе или в офисе?анон 24 лвл
Аноны, поясните за промисы:В какой момент промис становится асинхронным? Если создаю промис и его сразу же резолвлю, то он выполняется в общем порядке. Получается, что промис это тот же коллбэк только с более удобным синтаксисом?
>>1566470Он в любом случае будет выполняться асинхронно, потому что компилятор не может определить, как скоро твой промис изменит своё состояние. Поэтому их нужно использовать только там, где ты либо выполняешь какую-то долгую работу на стороне своего кода, либо когда обращаешься к стороннему ресурсу (сетевые запросы, жесткий диск).
>>1566470Объект промиса создастся синхронно.Функция которую ты в него передал выполнится синхронно.then/await у него пойдёт асинхронно, даже если коллбэки ты дёрнешь синхронно.
>>1566509И? Любой язык нужно компилировать в байт-код, разница лишь в том, сделаешь ли ты это заранее или "на лету".
>>1566519https://ru.wikipedia.org/wiki/ИнтерпретаторИнтерпретатор (англ. interpreter ıntə:'prıtə[1], от лат. interpretator - толкователь[2]) — программа (разновидность транслятора), выполняющая интерпретацию[3].Интерпретация — построчный анализ, обработка и выполнение исходного кода программы или запроса (в отличие от компиляции, где весь текст программы, перед запуском, анализируется и транслируется в машинный или байт-код, без её выполнения) [4][5][6].
>>1566561Что ты мне то это суешь? Или тебе так легче запоминается? В случае с JS как раз идёт интерпретация, а не компиляция. При этом для того чтобы выполнить исходный код, в любом случае нужно скомпилировать его в байт-код. Интерпретация это совокупность операций, одной из которых является компиляция.
>>1566565Если жс был интерпритатором, то бы скрипт частично выполнялся при наличии синтаксических ошибок, т.к построчно или по одной инструкции. Но жс код превращается в AST, а затем в байткод. Интерпритаторов практически не осталось. Bash например
>>1566565Добавлю.Промышленные компиляторы поддерживают несколько языков и стандартов, поэтому поэтому в них компиляция имеет промежуточную фазу похожую на байткод
>>1566567JIT компиляция это развитие интерпретации. Поэтому если ты говоришь о JS, то и то и другое будет верным, даже не смотря на редкость использования. Не понятно только зачем нужно было разводить этот срач на ровном месте.
>>1566567В определении на Википедии можно написать что угодно, хоть "интерпретатор - это программа, написанная тем, кто ебётся в жопу". На английском википедии вот не сказано, что исполнение обязательно должно быть построчным:https://en.wikipedia.org/wiki/Interpreter_(computing)Так что хуйня вся эта терминология с определениями. Пока не примут соответствующий RFC, пусть компилятор хоть микроволновкой называют, менее правыми они не будут.
>>1566569Причем здесь жит? У тебя сейчас везде байткод даже в cpu так как нужна обратная совместимость
>>1566572При том, что это метод компиляции JS-кода. Специально использовал слово "компиляция", потому что это к любому языку относится, но нет, жопаскрипт макака настолько тупая, что даже не знает об этом и думает, что его жопаскрипт приводится в действие какой-то магией, лол.
>>1566573Так это ты тупая обезьянка, которая все свела к дихотомии: интерпретируемый - значит как древний тормозной бейсик, компилируемый - это как быстрый C. Говорил бы по нормальному: высокоуровневый или нет, кросплатформенный или нет.
Почему нет отдельного JS треда для программистов? Я имею ввиду ноду. Не хочется сидеть с вами, говноедами. Хочу общаться с программистами
>>1566579Здесь почти все фронтендеры-вкатывальщики, так что это мало кому интересно. Попробуй создать, может и взлетит.
>>1566577У кого значит? У тебя и таких же долбоебов как ты? Java, С# тоже компилируемые языки, но не такие же быстрые как C, потому что используют JIT-компиляцию. >Говорил бы по нормальному: высокоуровневый или нет, кросплатформенный или нет.>код компилируется высокоуровнивается хмм, это какой-то особоый язык жопаскрипт-макак?
Довольно простая практическая задачка для ждуна:Есть такая функция: const multiple = (x,y,z) => x y zМы можем вызвать её обычным способом: multiple(1,2,3) // 6Мы можем создать каррирующую версию функции выше:const multiple = x => y => z => x y zmultiple(1)(2)(3) // 6Задача такая: написать функцию curry, которая может каррировать любую функцию, принимаемую на вход.const curriedMultiple = curry(multiple);curriedMultiple(1)(2)(3); // 6функция может принимать аргументы для передачи в каррирующую функцию:const curriedMultiple = curry(multiple, 1, 2);curriedMultiple(3); //6Вы можете передать более чем 1 аргумент в каждую каррирующую функцию:const curriedMultiple = curry(multiple);curriedMultiple(1, 2)(3); //6Или можете не передавать аргументы вовсе:const curriedMultiple = curry(multiple);curriedMultiple(1)()()()()(2)(3); //6const curriedMultiple = curry(multiple);curry(curriedMultiple)(1)(2)(3); //6curry(curry(curry(curriedMultiple)(1)))(2)(3); //6Функция каррирования не сохраняет внутренний стейт:const curriedMultiple = curry(multiple)(1);curriedMultiple(2)(3); //6curriedMultiple(2)(4); //7Избыточные аргументы должны быть проигнорированы:const curriedMultiple = curry(multiple);curry(curriedMultiple)(1)(2)(3, 4, 5); //6И ещё кое-что: не используйте, пожалуйста, функции call, apply и bind.
>>1566588Описанных мною условий достаточно, я всё внятно написал.Задачку можно решить в https://jsfiddle.net/ или аналогичной ей песочнице.
Ах, да: абу съел часть разметки, символ звёздочки не поставился. нувыпоняли, что multiple просто умножает переданные аргументы.
>>1566587>>1566589>>1566591А когда тебя возьмут, свои рабочие задачи тоже сюда будешь кидать?Берёшь такой arguments и реализуешь
>>1566587Я же тебе решение писал для multiply, ты даже спасибо не сказал. Всё еще не понял как такое решать и опять приполз?
>>1566594Меня уже взяли. Эту задачку я уже решал, она показалась мне интересной и я её решил показать вам. Она элементарна, каждый ждун должен уметь решать подобного рода задачи.Ещё могу написать задачку про бесконечно каррирующую функцию или про рекурсивную функцию Nat, но вы решите сначала эту.
>>1566595Я в этот тред раз в год захожу. Давай, решай, а не болтай языком, ждун. Раньше ещё сидел в МВП, но тот тред заполонили мальчики, косящие под девочек.
>>1566579Я думал создать отдельно backend тред, но говноеды, которые бэкенд пишут на ноде, там будут не нужны
>>1566587>элементарная задача для ждунов>реализовать на хуй никому не нужный шаблон, который ты хуй когда применишь на практике ещё и без привязки контекстаРофланебало, это получается сейчас фронтенд-джуну нужно идеально знать ванильный жс, реакт, редакс, advanced верстку, да ещё и разбираться в мертвых шаблонах типа каррировния, которые если и используют, то уже с готовыми пресетами в либах. Орунах, это же сеньор-помидор, только без опыта.Это действительно решается просто, рекурсивно возвращаешь вызов функции с args и длинной args в качестве параметров, но на хуй это не нужно знать джуну. Я бы понял, если б такую хуйню спрашивали у тырпрайз-макак, от которых требуют 2.5 технологии, да ещё КАКИХ. Мне в последнее время кажется, что аучиться правильное конфигурировать вебпак под конкретный проект сложнее, чем выучить спринг или осознать ооп
>>1566608Существуют еще какието ЯП которые развиваются кроме ЖС?Может на старом говне мамонта джаве писать?Может на пиздоне у которого свой особый путь и вечная судьба быть на вторых ролях?Может на го, который не пришей пизде рукав так и не стал язык-классикой с прочным фундаментом?Может на пхп битриксе?Может на руби который сдох?
>>1566633>старом говне мамонтаК жсу идеально подходит> у которого свой особый путь и вечная судьба быть на вторых ролях?Тоже идеально подходит к жсу, особый говнопуть и вечная судьба быть прокладкой для браузера>который не пришей пизде рукав так и не стал язык-классикой с прочным фундаментом?Ну ты понял.
>>1566626>это получается сейчас фронтенд-джуну нужно идеально знать ванильный жс, реакт, редакс, advanced верстку, Я всё это знал, когда был джуном. Ну, только вёрстка хромала, а в остальном на тот момент пару мувичёрчеров было, переписывал их на реакт/ангуляр со всем соопутствующим зоопарком типа редакс и саги для реакта/IoC(DI) + RxJS для ангуляра >а ещё и разбираться в мертвых шаблонах типа каррировния, которые если и используют, то уже с готовыми пресетами в либах.В ФП языках это используется повсеместно. Я вообще сторонник того, что лучший способ обучения - это реализация того, что тебе непонятно самому и что ты сообственно изучаешь. Вот тогда тебе более практичная задача https://www.codewars.com/kata/advanced-events/train/javascript - требуется написать свой ивент с подпиской/отпиской и emit'ом.>Это действительно решается просто, рекурсивно возвращаешь вызов функции с args и длинной args в качестве параметровНу, в принципе верно. Вот эта задача на codewars - попробуй её решить там.https://www.codewars.com/kata/yack-yet-another-currying-kata/train/javascript
>>1566664Я считаю что это не то что много, а просто дохуя, ибо 90% джунов готовы работать бесплатно ради опыта. 30ка это зарплата крепкого мидла в Казани например, хз что у тебя за мухосрань такая где столько кассиры получают
>>1566692>Я считаю что это не то что много, а просто дохуя, ибо 90% джунов готовы работать бесплатно ради опыта.Очень толсто.
>>1566692>90% джунов готовы работать бесплатно ради опытаНе видел такого нигде - все минимум 30к требуют. А те, кто меньше - то лучше этих вообще не брать. Такого понапишут, что потом сам вздёрнешься.Невозможно стать хорошим специалистом, не имея уважения к своему делу - работая бесплатно. Этот факт давно уже все знают, кроме тебя.
>>1566725>А те, кто меньше - то лучше этих вообще не брать. Такого понапишут, что потом сам вздёрнешься.>Невозможно стать хорошим специалистом, не имея уважения к своему делу - работая бесплатноПричём тут уважение?
Есть желание вкатиться в фронт, но нет желания заниматься рутинными задачами. Вёрстка, как правило, для меня является рутиной. Те, кто уже вкатились, расскажите, как много вам приходится заниматься вёрсткой (да и вообще скучными вещами)? У меня хорошее профильное образование, учусь последний год, но со сферой так и не могу определиться, т.к. плохо понимаю, чем занимаются джуны-мидлы-сеньоры в разных областях it. Просто интересно, много ли сейчас интересных задач есть на фронте для людей, которые любят в логику, программирование, но не очень любят иметь дело с чем-то уж очень рутинным?И если не фронт, то куда лучше двигаться с такими хотелками?
>>1566817>И если не фронт, то куда лучше двигаться с такими хотелками?В бэк. Фронт это всегда история про интерфейсы, количество вёрстки сильно зависит от проекта, его стадии и задачи. Обычно работаешь уже с какой-нибудь либой, в которой уже есть все нужные тебе компоненты и вся вёрстка сводиться к чему-нибудь типо - col-6 col-sm-4
>>1566641>К жсу идеально подходитДа жс старый и кривой, только вот всякие майкрософты и прочие гиганты башляют в него бабосики и создают всякие тайпсрипты и кучу всяких удобоваримых улучшалок, чего не делается ни с одним другим языком.>особый говнопутьЕсли кто-то шагает впереди всех, то это не особый говнопуть, это путь первопроходца, за которым все пытаются дотянуться.>Ну ты понял.Нет не понял.К слову сказать пхп, не стоит спорить, весьма популярный язык с кучей фреймворков и цмс. Разрабы пыхи перед выходом 7.4 так и написали что у них не так дохуя бабосов как например у жс, поэтому вынуждены отставать. Что гвоорить про другие, менее популярные языки
>>1566875>В бэк.Там тоже порой верстать приходится. Как минимум вёрстку знать и применять надо уметь.Ну и помимо самого программирования всякого говна тоже навалом, вплоть до админского.>>1566963>у них не так дохуя бабосов как например у жсТакие вещи много бабосов не требуют. Просто пхп это серверсайд, а там всё аккуратнее делать надо, иначе у тебя не то что вёрстка поедет, а сам сервер ляжет. Поэтому и медленнее вводят новшества.
Господа, я понимаю что это не CSS тред, но я задам вопрос здесь, так как я уверен что для вас он тривиальный. Обычно я делал это через отступы и я знаю как это сделать через гридыОднако, я не знаю как это сделать через обычный CSS или флекс бокс.У меня есть контейнер от грида (синего цвета), есть h2 заголовок, который ml 15% и есть линки. Я хочу, чтобы ширина h2 соответствовала размеру содержимого, а вся остаточная ширина (- ml 15% и - ширина h2) являлась шириной для линков. Другими словами, хочу получить всю возможную ширину для красного контейнера. PSВот что получается, если задать width: 100% контейнеру с линками.
А можно в css var инициализировать ширину блока на основании ее размера содержимого. Условно я не знаю ее размер на момент декларации.
>>1567096Да. Сначала сравниваются типы, и если они разные, то false. Если одинаковые, то уже сравниваются значения.
>>1567009>Такие вещи много бабосов не требуют. Просто пхп это серверсайд, а там всё аккуратнее делать надо, иначе у тебя не то что вёрстка поедет, а сам сервер ляжет. Поэтому и медленнее вводят новшества.Я тебе говорю что это разраб пхп сказал, а ты ему говоришь что он не прав. Ну хз
>>1567009> пхп это серверсайд, а там всё аккуратнее делать надоПхп - это последний язык для бека, про который так можно сказать. Обновляешь такой версию пхп - и у тебя в лучшем случае сайт заработает с варнингами, что такие-то функции устарели, а в худшем вообще не заработает, потому что их удалили нахуй.
Привет!В nodejs-скрипте ставлю пакет с помощью кода:childProcess.execSync('npm i '+module)И тут же подключаю его с помощью require, но ловлю ошибку, что пакет не найден, хотя пакет ставится в node_modules и при следующем запуске скрипта пакет нормально подключается. почему так?
>>1566963>Если кто-то шагает впереди всехЕбанутый, дядя? Куда жопоскрипт шагает и что там придумали такого, чего в программировании не было 50 лет назад? Если ты лично свою первую монаду увидел именно в жопаскрипте, то это не значит, что он куда-то там шагает.
Взял тестовое на ждуна и охуел. Надо сделать аудиоплеер на чистом жс с дополнительным функционалом. В гугле информация оче скудная, готовых решений на гитхабе нет. Придется тыкаться в web audio api аки слепой котенок.Как же хочется написать еще один муисерчер, крад или лаповую тудушечбку...
>>1567295любой js фрэймворк и jQ это чистый js.В гугле куча плагинов написанных на jQ. Берешь один из них и переписываешь на legacy. Но я посоветовал забить. Если у тебя там в потрфолио несколько готовых проектов и предлагают какую-то дичь. То такое. На твоем месте я бы вообще панель саундклауда или ютуба прикрутил бы с видосом пошел нахуй пидарас. А вообще кидай тз, может ты в дебри уходишь
>>1567252>чего в программировании не было 50 лет назад?Например не было ЯП на котором можно писать все.Например у той же джавы нет ни одной IDE единственное платное говно от идеи не в счет.Тайпскрипта не было нигде. Не было постоянно подерживаемых линтеров всяких, а не хуйни необновляемой. Не было бабилей способных транспайлить скрипт в ранние версии. Не было ни одного языка который был бы говняным по своей структуре, но изза этого все начали считать не его структуру говняной, а говняным MVC и ООП в целом. И т.д. можно бесконечно продолжать. ЖС - единственный ЯП. Все остальное дохлое или мертворожденное говно мамонта. И если изобретут новый язык то это будет продолжение ЖС, а не чтото новое
>>1567295https://www.w3schools.com/tags/ref_av_dom.aspЕсли посмотреть что делают методы, всякие пропертисы и эвенты, то там есть примеры их использования и объяснение что они делают.
>>1567295Алсо, подумай о паттернах. Там где есть интерфейс с кнопками, там почти наверняка есть паттерн Команда, чтобы не хардкодить код в кнопке. Вот пример:https://www.youtube.com/watch?v=GQzfF5EMD7o
>>1562152 (OP)Чтобы подключить jquery достаточно только одного файла - jquery-3.4.1.min.js, а jquery-3.4.1.js можно выкинуть нахуй?
>>1566633> Может на старом говне мамонта джаве писатьЛол, то, что Джава старая, не делает её плохим языком. Да и к тому же ни у одного языка и близко нет настолько развитой экосистемы. На ноде самый популярный фреймворк для бэка сейчас NestJS, вот только с тем же Спрингом он и близко не стоит по количеству всяких плюшек, которые сильно упрощают жизнь (хотя он и усиленно пытается косплеить Спринг).
>>1567390>то, что Джава старая, не делает её плохим языкомДелает.А спринг - говно для индусов, с совершенно ебанутым взглядом на веб, который был устаревшим ещё в день релиза этого говна.
>>1567399>express/koaТы на этом дерьме вообще пробовал что-то писать? Это не современные фреймворки, а низкоуровневый скелет, на который нужно накидывать кучу либ и собственного кода, чтобы он стал хоть немного юзабельным. Единственное, что там можно написать - это хеллоуворлды, даже простейшую рест-залупу заебешься пилить и выйдет лютое неподдерживаемое говнище в итоге.
>>1567390>то, что Джава старая, не делает её плохим языкомДелает, у неё даже логотип какое-то душное говно из мобилок нулевых
>>1567434Тогда и ЖС тоже говно.Java:>First appeared May 23, 1995; 24 years agoJavascript:>First appeared December 4, 1995; 24 years ago
>>1567454Не очень понимаю, чем тебе не нравится хх - крупнейший сайт же.Ну можешь еще career.habr.com посмотреть, там только разработка.
>>1566469Вы рофлите всем тредом? Я когда устраивался на бэк ждуном за 30к, я все это что описал анон знал + имел опыт работы с vue. Но у меня блять рука не поднялась сказать что я могу во фронт.Ахуеть как збс что мне приходится конкурировать с вами
>>1567486>Я когда устраивался на бэк ждуном за 30кАнон ты на ноде вкатывался в бек ? что по стеку посоветуешь ? я так понимаю, это базы данных, какой нибудь нод фрейворк и пет в виде чата ?
>>1567148>это разраб пхп сказалКакой именно и где? Пока что слышно только как бабка на лавочке сплетничает.>ты ему говоришь что он не правТы у нас за разрабов ПХП что ли? Я тебе говорю.>>1567158>последний язык для бека, про который так можно сказать>Обновляешь такой версию пхп - и у тебя в лучшем случае сайт заработает с варнингамиЗачем ты на 0 поделил в одном посте?Заявил, что в ПХП не важно предварительное тестирование функционала вновой версии, и тут же что от кривого обновления у тебя бекенд может упасть. Что ты доказать хотел этим?
Господа офицеры, через месяц собираюсь начинать ходить по собеседованиям на фронт джуна, оцените стек изученного:1.html- устройство страницы- тэги- свойства- dom- bom- event's2.css- основы или как тут написать, хуй знает- блочная вёртска(когда div'ами всё делаешь)- адаптивная вёрстка- отзывчивая вёрстка- медиа-запросы- flexbox- cssgrid- scss/sass препроцессор3. javascript- Основы естественно, и всякие тонкости типа контекста, замыканий, this'a и всяких bind/call/aplly, асинхронные функции, промисы, прототипное наследование, fetch и xmlhttprequest запросы.- ES6 со всеми приколами, шаблонные строки, стрелочные функции, генераторы, оператор ...spread4. react- основные концепты по официальной документации: virtual-dom, классовые и функциональные компоненты, стейтлес и стейтфул компоненты, состояния и пропсы, контекст, жизненный цикл компонентов, jsx(лол)- из продвинутой документации: композиция, propTypes, хуки, компоненты высшего порядка5. redux - концепция флюкс- концепция редакса- react-redux как библиотека для связи, хули ейи кроме этого знаю всякую мелочь, типа использования гита в проекте, использование вебпака для сборки проекта с нуля, всякие по мелочи библиотеки, которые в документах реакта и редакса попадались, типа react-router и redux-thunk или redux-saga. Вопрос вот в чём, что мне быстро добирать в стек с учётом того, что у меня месяц-полтора на подготовку к собесу и, надеюсь, своей первой РАБоте4.
>>1567522чем>адаптивная вёрстка отличается от >отзывчивая вёрсткаи >меда-запросыНахуй ты указываешь вот это все, просто пиши html/css/js, React/redux>месяц-полтора на подготовку к собесуЗавтра устраиваться иди, какие полтора месяца подготовки
>>1567521> Заявил, что в ПХП не важно предварительное тестирование функционала вновой версииЭто другой анон был.Пора уже ввести здесь регистрацию с привязкой номера, чтобы такой путаницы не было.
Анончики, подскажите:у меня есть элемент, на котором висят два обработчика и при определённом действии я удаляю этот элемент. Нужно ли мне как-то дополнительно удалять эти обработчики или достаточно просто удалить элемент?
>>1567573Утечка памяти может быть в старых браузерах.https://stackoverflow.com/questions/6033821/do-i-need-to-remove-event-listeners-before-removing-elements
>>1562152 (OP)Как сделать чтобы запретить открывать ссылку в новой вкладке (не спрашивайте меня зачем) ? т.е человек может перейти по ссылке только напрямую щелкнув по ней левой кнопкой мыши.У меня пока самая банальная идея это запретить правый щелчок, но наверняка есть возможность открывать пустую вкладку, когда щелкается правая мышка и выбирается "Открыть в новой вкладке"
>>1567536отзывчивая, это когда шаблон условно "резиновый", сжимается и растягивается, без проёбов.адаптивный, это когда есть несколько макетов, под основные разрешения экранов, условные >1280px, 600px и 480pxПо крайней мере я это так понял, может и не прав, я самоучка
>>1567614Ещё запретить клик колёсиком, Ctrl+клик и хуеву тучу других способов, зависящих ещё и от браузера.Ты ведь понимаешь, что это обходится на раз-два?
>>1567614Хотя я придумал, как сделать подобное, но это довольно костыльно и я не уверен, что это будет работать.На самой странице, переход по которой должен быть только из твоей доменной области - добавить такой кодif(document.referrer !== location.origin) { window.close() }Но энивей страницу можно будет выкачать
>>1567614Никак.Сделай ссылку не ссылкой, а кодом (e.onclick = () => location.href = ''). За это тебя обоссут половина пользователей, поисковые алгоритмы, все слегка альтернативные браузеры (нет, я не про файрфокс), всякая аналитика и тот кто будет после тебя иметь дело с кодом, но большинство пользователей не догадается как открыть не кликом.
>>1567557>Это другой анон был.Что, один пост 2 разных анона писали?>>1567158Там написано в первом предложении, что ПХП это последний язык для бека, в котором нужно аккуратно обновления вводить. А во втором, что от кривых обновлений как минимум варнинги сыпятся, а то и хуже. Предложения противоречат друг-другу. Подозреваю, что у кого-то проблемы с логикой а это беда для программиста.Вообще подозреваю, что разрабы ПХП уже наломали дров и набили шишек с этими своими обновлениями и теперь не торопятся с новыми фичами. А некоторые уже думаю решать проблему радикально и пилить язык P+ или как-то так где будет выпилено всё легаси и костыли, но будет куча новых фич. Правда пока одни разговоры идут.
>>1567654А, вот ты о чём, я криво выразился. Имелось в виду, что пхп сделан через жопу, поэтому слово "аккуратнее" к нему неприменимо. "Аккуратнее" было бы взять что-нибудь другое.Впрочем, хз, что там с ним сейчас, но я до сих пор натыкаюсь на сайтики, где на самом верху два-три варнинга. Хотя бы выключали их, что ли.
>>1567522Список ничего не говорит, к сожалению. В принципе всё по делу, но вопрос, на каком уровне ты всё это реально знаешь, без домашнего компа, без бумажки и закладок в браузере.
>>1567664>что пхп сделан через жопу>натыкаюсь на сайтикиТак я и на ЖС говна понаписать могу. Теперь и его через жопу сделанным назовёшь?В общем понятно с тобой всё.
>>1567522Сколько в целом веб изучаешь?Хотя если все рили хорошо знаешь, то стек нормальный, можешь хоть завтра пиздошить как выше писали
>>1567671>Список ничего не говорит, к сожалению. Двачую. В список обычно всё подряд запихивают.Говорит только опыт работы и портфолио.
Есть аноны, которые пользовались omdb api?Он в ответ на запрос всегда присылает общее кол-во результатов и инфу о первых десяти фильмах. Как получить информацию о следующих десяти?
>>1567671я не уверен что прямо все нюансы помню наизусть, но в любом случае уверено ориентируюсь, и даже если у меня вылетит правильное название какого-то метода, то мне не составит труда за пару минут с любой машины найти справку в официальных документах
>>1567735а что я могу сделать для портфолио, как джун без коммерческого опыта? Какие-то не продакшн проекты, на которых я тренировался? Или лучше сделать парочку вылизанных во всех аспектах, на случай кодревью
>>1567522Проекты есть? Сколько?Списком этим подтереться можешь - будут смотреть твой код на твоих проектах. И если у тебя там копипаста одна с туториалов, то ты фактически ничего не знаешь.
>>1567780Лол, ты даже не понял сравнения? Тот индус португалец бомбит от переписывания костылей обёрнутых в костыли для придания хоть какого-то единообразия коду. Сейчас в одном проекте на ноде намешаны синхронщина, промисы, асинки/авэйты и говногод с глобальными переменными без use strict.
>>1567781Кто ж ноду без тайпскрипта в 2к20 использует? Конечно говно выйдет - на ванилле-то. JS не для бекенда писан изначально.
>>1567786Те, кто пишут бек. Без нормального ООП у тебя всё что выше тупого эхо-бота для телеги незамедлительно начнёт превращаться в лапшу со сливками поноса.
Привет, есть тут кто-нибудь кто разбирается в firebase? Вот сделал я пару записей, условноdatabase().ref('/users/').push({uid: 1,name: 'Vasya'});database().ref('/users/').push({uid: 2,name: 'Sanya'});И у меня в бд теперь есть объекты о двух условных пользователях, Васе и Сане, но они лежат по адресу /users/[рандомно-сгенерированая-хуйня-от-firebase]/{uid, name}А как мне апдейтить дату теперь, или удалять, для пользователя с uid = 1? Как вот эту рандомную хуйню добавить в ref() при обращении? Я понимаю только как найти объект, типа:database().ref('/users'/).on('child_added', snapshot => {snapshot.val().uid === 1 ? alert(true) : alert(false) });А как мне для этого объекта поменять поле имя, например? Нихуя не понимаю
>>1567790Вот очередной чувак, который копировал сниппеты даже не пытаясь заглянуть в документацию. Точно как пэхапэшники, над которыми раньше смеялись.
>>1567792Точно. Копипастят только пхпшники, а другие ведь не могут - у них технической возможности нет. Всё руками переписывают, даже с других сайтов.сегодняшние жаваскриптеры суть - вчерашние пхпшники, лалка
>>1562152 (OP)Что в ZOZO брать в качестве веб-сервера на ноде, express, meteor, koa или ещё что-то прямо сейчас набирающее популярность? Пишу небольшое приложение для read/write в эластик (аля поисковик).
>>1564270>На практике легко прострелить себе ногу херово написанным колбеком/await и огрести блокировкМаня, у тебя один поток, твоя блокировка с "херово написанным коллбэком" будет заметна сразу после первого запуска скрипта.
>>1567889Уважаемый, когда нам потребуется мнение макак, которые не писали больше 10 строк кода, мы вас спросим.
>>1567899Очередной маня-тралль с детской попыткой подъебать и развести срач.Наверное ты себя очень умным считаешь.
>>1567786Все.>>1567788Типизация и ООП никак не связаны.>>1567885Это джава, она образец оверинжинеринга в угоду корпоративным энтерпрайз тимворк разработкам.
>>1567921При чем тогда тайпскрипт и "нормальное ООП"? ООП на основе классов есть давно и в нативном жс.
>>1567922Ты бы википедию хотя бы почитал перед тем как что-то доказывать. Ты даже не понимаешь о чём идёт речь.
Я у мамы сеньор, думаю попробовать уйти от фронта и погрузиться в язык (да, каким бы уебанским он не был).На фронте не интересны вёртска и войны фреймворков, на бэке не интересны бд, ресты-хуесты – всё рутина.В идеале хочу наверное заниматься ванилой на острие стандартов, хоть в TC39 пошёл бы заседать. Скорее всего ищу где нужно писать фреймворки-библиотеки-инструменты – нравится вертеть AST и разбираться в работе интерпретатора.Каким вообще компаниям и сферам такое может понабится?
>>1568004>Каким вообще компаниям и сферам такое может понабится?Универститетам>хоть в TC39 пошёл бы заседатьТам все работают на дядю или по конференциям есздиют и еблом торгуют.
Призываю тайпскрипт-богов в этот тред. Как сделать так, чтобы код работал, используя в тернарке isSelected переменную isMultiple? Если isMultiple заменить на Array.isArray(value) в тернарке, то код скомпилится, но это будет отстойно, ведь я сделаю одну и ту же проверку два раза. Почему оно вообще так работает?https://www.typescriptlang.org/play/?target=7#code/MYewdgzgLgBAZmGBeGAKAbgQwDYFcCmAXDNAE4CWYA5jAD4lQXUDaAugDQwgAOU54EYmUpU2ASmQA+GAG8AsACgYymKEixyEALK5sfbtnzIYAQVKlMATwB0msxcsYcBMYsUquvfpGtwQpAFFMYAALVB4+cClZdw8VAHp4mEBWEEBBEEBuEEAOEBhAJhBAHhA0wCEQQD4QGE0dPXIDI0B+EGLAFhBUwsAGEBzMwsAZEFNzK1sIeysnPHwxThKYYsAJEEzARhBALhBswF4QZJgZwGEQeuTCmGzC1Jg6wE4QAsLOQHEQccLMmpgsYYYmUVZYuJhEmDziwDYQRdKsmFSm3SzU65xKM0A0iAwQACIM0ZsUWulSmdktDkoB2EAOqOSBUWizWgDkQMraXT6QwvOJqaDEgDK+EMwCg+AAJsZyqSquSlK84gB+GAAQgFdwIvkozKG0TuyCQKAi3lc3J5KmIIqMsrlXnAAG4KQBfRV6oA
>>1567747C прошлого места работы, например.>>1567753>без коммерческого опыта? Это плохо, тогда придётся сначала работать за жрат.
Товарищи, вопрос. Есть одна карусель, при наведении на элемент карусели (mouseover), должен показаться следующий слайд.Сейчас мой код имеет вид:$('#slide').on('mouseover', function() {....myslider.trigger('next.owl.carousel');})Но при таком подходе при наведении на один слайд начинается очень быстрая прокрутка всех слайдов. Как установить задержку для отработки события после триггера? Чтобы навел мышь на слайд, сработало событие, а следующее срабатывание было возможно только через 3 секунды. (Дабы избавиться от быстрой прокрутки всех слайдов при наведении на один)
>>1568027Попробуй обработчик события mouseover в ф-ю throttle обернуть. В лодаше можешь взять эту ф-ю или npm пакетом скачать.
>>1567927Какой же ты тупой. Выйти и зайди заново в класс и расскажи заново без историй про википедию. Завтра придешь с родителями.
>>1568027Сделай вращалку карусели и напиши в ней логику срабатывания вращения.Например https://jsfiddle.net/z63epjwy/7/Если будешь наводить на ЛОЛ, то у тебе к КЕК будет добавляться строка, но не чаще чем раз в 5 секунд.Думаю идею ты понил.
>>1568058Веди себя прилично, увидят что ничего не знаешь, так хоть вменяемым и обучаемым себя покажешь.
>>1568019https://www.typescriptlang.org/play/?target=7&ssl=1&ssc=1&pln=26&pc=2#code/PTAEnwQQBEEDhBB4QRWEEqS9AMIIbhBqHYQVgxEGtKAC4CeADgKagDmArgIYBOAJgDSiBcIIHwggQiBeSBpEECcIO0AiIKg49ogcRB4gQRAO0doH4QLoCYQPpEDyIPB6hAvCCopa-cNABBRo3okAdAEsAzpeskAsACgQoQKgggZhAuUDlYATl0UDVQPlh2aT5QLn0grg5IVEBJEFRdCK4sWC5ANhBTeCjoZQEg0HoAOxJQAB8q2oBtAF1QQBYQQJqSNs8AYwB7asciUH7aUcGAWwBJZysbUABeUAAKegAuJrrGnraASm36UCcdtpWAPgtFuycXGw2DzwHh0dAAM2qV9YA3egANrQKNtRox7NVqA1QGCIdQ2uxBmQiPY3qCiODIYcrqAAN6eUCE8ZvMZOACytABKLIAKoqwedwWrjW-yBFGeHgJRKRKLetg+g0YAFF6P0ABZrHmo77La74jxExWgbzyTARBByeLkynU2mgVQdTWoNTQHiAGRAbq4HEzHqzgQd2PEuIAJEGggEYQRQGEpuwDCIB1soQeHJ9VwhAgeLF4lJlKA7VRYVjWlylcqwPkioE1XJ-egjGbI1w3RU0m7eBhArIUFh9Yh4Ah9PofYA5EFOjgpVPsNIoLwVKdToEAuCDwdBmrBaFS8LiwH2gOKBAAqAGUvaB09lVPotObZ07DKA4PBshwJFx4ABaJ08fQu+D6aAlDigQCyINEfcmld5YKg5HJoGofbYoCACgg6BaF6ATPvEyiQFwmqBAARoMgy0jUgGAEggUQSNAgCiIEE6A+tIqBaLhjYZvuciqCOWDqHmUS2Potjvoq3ikJQNAMCw7DcJoZhyCkaSZNkai5OmxSlOUgGAIQghaamot7XuwDLWgyoA+gU8BMUS3haGooG6HIYGsVQdBMGwBiBKJgSGMo0ByLRcjCUI6zBIB0EHpAByMb2KYgJphLeGhmihhEqAwKg+h6Gs+glFwsj6Ba2H8C60BCAcoCACgEnDflI27KLW9aNi2kQJvC7SVvA1b0I4mx+f2LKAsCVSODCGJwoc-IQsw9UAjirIrMsqxSsMHJ9qmtUBZ04XXrAnD8bo014QRWSgPh0jOiU0GwfEagCFgAhqLRSn3LcWUFB0ZhpFgrDjWA6iINh8AdKu0B3l+I6mEIXmjUMIyko4i4ULS-REBQzA-BMUxzDaJDdfatWKgA-KAACEyNxh11RdX1sqxoC-WDci0ojaNRLbHG+OgEN1QANzvgAvhydNAAВроде все объяснил.не TS-бог, могу и ошибаться
>>1568019Еще можно самому явно приводить аля (value as string[]).findНо лучше делать через гарды как у >>1568078 куна.Я не уверен на счет ручных приведений как допустимой практики. В обычной тернарке это может быть более оправданным, чем написание тайпгарда, но вообще ручные приведения потенциально опасны и можно таким образом успешно обмануть и компилятор и себя.
Решил включить замерялку FPS в девтулзе, почему у меня большую часть времени очень мало фпс, 1-5, когда ничего особо не кликаю и у меня не лагает? В играх, например, если ничего не делаешь и смотришьв стену, то всегда много фпс, а в браузере мало. Чем фпс в браузере отличается от того, что в играх?
>>1568114http://www.typescriptlang.org/play/index.html?target=99#code/GYVwdgxgLglg9mABMMAKAbgQwDYgKYBciAzlAE4xgDmiAPieZVQNoC6ANInAA6wLFFSFamwCUiAN4AoRLMQy5EflERg4ZALY4YALzwATAGo58iALyIAgmTKYAngDoYxa7bsYTecQH5EWXHiIRMz++KxSCrI8fGDEDsDqAKKYEAAWqNHwSGYAfJKRcrJKsSrOAMp42HjQBuaq6lrYugbGAfGU+h7Y5nn+5mYWmQiiBQC+I6NAA
>>1568147Ребенок, не позорься, еще годик в ридонли посиди и вопросы позадавай, потом может быть сможешь высказывать мнение, имеющее хоть какую-то ценность.
>>1568151Это говорит человек, который предлагает вместо реата учить вью\ангуляр, потому что реакт это БИБЛИОТЕКА
>>1568138Пиздец, этот тред по своей тупости пробил дно. Казалось бы, куда уж дальше, ан нет, можно вбросить тупой срач о терминологии, оказывается.
>>1568174Нельзя позволять, чтобы в лучшем треде программача говорили глупости. Будем сраться до последнего, пока за шизиком не придут санитары.
В коде есть функция для расчета погрешности азимута, есть переменная, которая держит последнюю посчитанную погрешность и span, в которой она записывается после того, как посчитать. Как их все назвать по разному? У меня получается 3 bearingError, это же хуйня.
>>1568187Очень аморфно, на самом деле.Вообще:Фреймворк - нечто фундаментальное, на основе чего ты выстраиваешь все решение. Фреймворк выставляет рамки и диктует направления.Библиотека - нечто прикладное, что ты можешь легко подключить или заменить. Библиотека делает только свою задачу и не навязывает тебе никаких других решений.Но по этому определению реакт можно отнести и к фреймворку. Но с другой стороны, реакт не имеет встроенного роутора, стора и подобных решений, которые есть в том же ангуляре.Ангуляр же своими разработчиками вообще позиционируется как платформа для разработки, подразумевая, что они за тебя вообще постарались решить практически все и тебе осталось там только писать хелоу ворлды (на самом деле нет).
>>1568187>>1568231Вообще не парься. Определение фреймворк-библиотека-платформа это что-то из разряда вопросов философии/политоты. Очень часто что-то называют фреймворком, библиотекой или платформой из скорее маркетинговых соображений, нежели из за реальной скрупулезной номенклатуры.Тот же реакт можно и фреймворк считать, но его авторы позиционируют его как библиотеку настаивая на том, что он очень базовый сам по себе и ничего тебе не диктует. На самом деле вокруг реакта есть четко оформленная экосистема и в итоге выбор реакта создаст тебе столько же рамок и задаст направления, как если бы ты выбрал ангуляр (хотя и значительно меньше, но все же).
>>1568241>Определение фреймворк-библиотека-платформа это что-то из разряда вопросов философии/политотыТолько в манямирке неполовозрелых фронтендеров.У взрослых дядь библиотека — это набор функций, фреймворк — это набор функций (см. libcurl) + использующих их функций, а также паттернов написания кода с использованием этих функций (см. Rails). Вот платформа, да, не имеет ничего общего с точной терминологией.
>>1568253Почему Реакт не фреймворк тогда? Он диктует тебе набор последующих решений своей экосистемы и он диктует тебе flux архитектуру от который ты вынужден потом строить все свое приложение.
>>1568134Браузер ничего не перерисовывает, на странице ничего не меняется, новых фреймов нет.Игры часто физику или мир просчитывают в том же ивевентлупе что графику. И вообще там другой фпс считается, игра тоже может оптимизировать себя и ничего не считать, но видеокарта всё-равно будет ебашить.
>>1568262Хуй знает, я редукс вообще нахуй выпилил из приложения, оставил только аполло - так заебись стало.
>>1568262Да потому что хуйня это всё. У лингвистов есть аналогичныф срач "Язык vs диалект". Много петушни, мало толку.Называй так, как называют авторы, не ошибёшься. Но факт знания, что это именно библиотека, а не фреймворк, в ходе разработки не пригодится точно.
>>1568271А как мне понять, что у меня хуевый фпс? Вроде как фпс должен быть не ниже 60, но в реальности у меня почти постоянно фпс ниже 60, но ничего не лагает при этом.
>>1568297Срач хоть и петушиный, но у меня не один раз на собесах спрашивали, что такое реакт, ожидая, что я скажу, что это фреймворк, чтобы потом обоссать меня с ног до головы. Но анон не дурак.
>>1568301ФПС чего? Очевидно ты ничего не рисуешь.Дроч на фпс это не про веб если ты не на канвасе рисуешь что-то.
>>1567911> Типизация и ООП никак не связаны.Труъ-ооп, по заветам Кея, как раз таки должно реализовываться в языках с динамической типизацией. Все эти ваши джавошарпы настолько же далеки от ООП, насколько далеко от ФП реакт. Дебилам просто протолкнули очередную модную хуетень под соусом чего-то большего, чем просто очередной уровень абстракции, а они и рады. Схавали за обе щеки, так сказать.
>>1568318>Труъ-ооп, по заветам Кея, как раз таки должно реализовываться в языках с динамической типизацией.руби?
>>1568187Библиотека не диктует тебе, как нужно организовывать бизнес логику, она просто дает набор функций для реализации какой-либо задачи. В реактоприложении ты можешь легко вынести 90% любой логики компонента(10% - это дроч со стейтом, но и его хуками теперь можно изолировать кое-как) в любой удобный формат и использовать реакт только для того чтобы писать шаблон в dom, что и есть та самая единственная задача, которую реакт помогает решить как библиотека.
>>1568328Но при этом ООП они реализуют как по определению. Ты наверное вообще охуеешь, если узнаешь, что ФП и ООП друг друга никоим образом не исключают и обе парадигмы можно использовать вместе.
>>1568331ну так захуярь из кода, который ты не хочешь показывать, внешний апи и дёргай его из кода, на который тебе похуй.
>>1568338Если у человека есть прямой доступ к сурс-коду и желание разобраться, что этот код делает, то он разберется не то что в индусском говне, а даже в бинарнике. Так что не советуй хуйню ньюфагам, единственный способ "спрятать" код от клиента - это вынести этот код на сервер, больше никаких.
Хочу написать бота для этйо поеботы https://orteil.dashnet.org/cookieclicker/Хотел найти инфу про хуки в js - не нашел. Куда искать? Что почитать на эту тему?
>>1568332>что ФП и ООП друг друга никоим образом не исключают и обе парадигмы можно использовать вместе.
>>1568359Там перехватывать можно события браузера? Это же вроде просто набор команд для управления вводом клавомыши. А мне надо еще и печеньки ловить, которые в случайном месте появляются.
>>1568308OpenJS Foundation, в которую объединились JS Foundation и Node.js Foundation. Потом на бумаге все решения заверяют в Ecma International как часть стандарта ECMAScript.Вот тут можно публичные обсуждения и стадии разных предложений посмотреть.https://github.com/tc39
>>1568320Тоже не тру. Внезапно, ближе всего к тому самому смоллтоку именно жс. А долбоебы типа вот этого, >>1567788, боготворящие убогую концепцию классошлепства вместо программирования, являются настоящими макаками. Я, кстати, конкретно охуел, когда узнал, что макаками называют формошлепов. Нет, блять, макаки -- ООП-дебилы, которым по кайфу пихать свое убогое говно абсолютно везде и всегда. Они не знакомы с понятиями функтора и сигнатуры - на хуй нужна матеша, если можно обмазаться наследованием и анальными ограничениями строгой типизации. На хуй нужен хот реплейсмент, если можно просто наебашить побольше кода?Но ещё больше я охуел, когда узнал, что эти макаки противопоставляют ОПП и ФП. Серьезно? Хотя, чего ожидать от выпускников мещанских университетов, которые дальше своей родной галеры никогда не высовывались. Это ж надо, рассуждать о парадигмах, которыми ты ни разу в жизни не воспользовался.Предлагаю заклеймить ооп-выродков раком айти и ссаными макаками, гнобить и унижать их при каждом удобном случае.
>>1568358async function sleep(ms) {return new Promise(res=>setTimeout(res, ms));}for (let i = 0; i != 100; i++) {await sleep(5);document.getElementById("bigCookie").click();}
>>1568318Страуструп угнал этот термин и его ООП в коммерческой разработке стало более популярным. Объективная реальность.Неадекват это любой, кто не понимает такое положение дел и петушится про то, что НАСТОЯЩЕЕ ООП ЭТО ТОЛЬКО ПРО КЛАССЫ/ПРОТОТИПЫ по заветам Страуструпа или ТОЛЬКО ПРО АКТОРЫ ПО ЗАВЕТАМ Кея.Определение ООП это одна из тупейших спец-олимпиад в мире погромирования. За такое пора уже в биореактор отправлять.
>>1568381Потому-что в ~2016 все начали неистово умолять писателей жс фреймворков и новых фич в языке немного астанавиться и они реально немного астанавились.Вот тут можешь оценить масштаб нытья того периода.https://habr.com/ru/post/312022/
>>1568384>я дурачок и не могу выделить единственную уникальную фичу ООП парадигмы, а значит это спецолимпиадаДержи в курсе.
>>1568392>Потому-что в ~2016 все начали неистово умолять писателей жс фреймворков и новых фич в языке немного астанавиться и они реально немного астанавились.Нихуя они не остановились. Кто хочет - тот пишет. А ты не обязан изучать каждый пук твоего любомого разработчика.
>>1568384> Страуструп угнал этот термин и его ООП в коммерческой разработке стало более популярным. Объективная реальность.> Неадекват это любой, кто не понимает такое положение дел и петушится про то, что НАСТОЯЩЕЕ ООП ЭТО ТОЛЬКО ПРО КЛАССЫ/ПРОТОТИПЫ по заветам Страуструпа или ТОЛЬКО ПРО АКТОРЫ ПО ЗАВЕТАМ Кея.Миллионы мух не могут ошибаться? То, что сейчас называют ООП, стало популярно лишь из-за общего уровня снижения математической подготовки разработчиков, которых нужно загонять в строгие рамки, дабы избежать тонн говнокода. Это объективно плохо.Благо современные инструменты стараются делать, как минимум, мультипарадигменными.
>>1568399Да. Если брать всю экосистему жс, то там фич будет больше, чем во всех перечисленных тобой языках вместе взятых. И их экосистемах.
>>1568395Речь идет о том, что человек который доебывается до сраусиного определения ООП слегка долбоеб, потому-что так уже случилось и ничего с этим поделать нельзя. Ты реально на работе тоже будешь доебываться колег из за того, что под ООП в переписке будут подразумивать страусинное ООП?
>>1568405По определению страусинного ООП - да.В JS ООП как в языке Self, в котором взяли за основу страусинное, но потом слегка свернули в сторону.
>>1568405>>1568414Уже почти пришли к страусиному на самом деле.Остались только приватные проперти и они в стейдж 2 или 3.А ваще в жс всё объект, даже функция, даже аллах. Объектно-ориентирование некуда.
>>1568403>так уж случилосьЕсли завтра так уж случиться и у тебя появится геморрой, ты не пойдешь в больницу?>>1568405Если ты про ООП а-ля «наебашим классов, обмажемся полиморфизмом и будем НАСЛЕДОВАТЬ» - да, инструменты для такой разработки в жс менее мощные, чем в джавошарпах.>>1568411> те написать что то может сложнее,чем на жаве?> полкчается нода с жс-галимое прототипирование?Почитай тред. Я только что объяснял, почему то, что ты подразумеваешь под ООП - хуетень.
>>1568416Не совсем. Потому-что классы в жс это сахарная обертка над прототипами. Под капотом там все равно остается прототипное наследование.
Размышления о "настоящем ООП" это все равно что размышления о настоящем говне. Может ли вот этот катяшок считаться настоящим Говном с большой буквы или он слишком мал для этого? Что на счет поноса - нужна ли для него отдельная категория. И так далее и так далее. Охуеть как глубоко и увлекательно.
>>1568424Осторожнее, ты на двачах. Сейчас еще реальные ценители говна прибегут и засрут весь тред срачем о том, какой формы должно быть настоящее говно.
>>1568416> А ваще в жс всё объект, даже функция, даже аллах. Объектно-ориентирование некуда.Ещё один человек, который не понимает, что функции первого - не признак страуструпского говна, а наоборот.
>>1568416Далеко не всё. Примитивные значения - не объект. Операторы - не объект. Ключевые слова - не объект.>>1568421Неверная мантра. Это не просто "сахарная обёртка". Есть довольно существенные отличия "класса" от обычных прототипов.
>>1568472Нет никакого примут.Да и никакого 2020 тоже нет, это условное спекулятивное обозначение.Те фичи который сейчас называют es2020 (glolbalThis, ??) уже формально часть стандарта, но не высечены пером, это вот-вот в январе должно случиться.Если в феврале что-нибудь ещё приедет в стейдж 4 это тоже будет называться es2020.
>>1568446>Неверная мантра. Это не просто "сахарная обёртка". Есть довольно существенные отличия "класса" от обычных прототипов.Поясняй давай, что имел в виду. Классы в JS - сахар, обычные объекты, строго говоря, классов в привычном понимании относительно других языков в JS вообще нет.
>>1568505>Поясняй давай, что имел в виду. Классы в JS - сахар, обычные объектыПонятие "класс" и ему соответсвующие термины в контексте JS действительно ввелись ради упрощения освоения языка другим программистам, придешдших с классовых ООП языков. Но я имел ввиду не это. Например, функцию можно сразу как бы заранее использовать, перед тем, как реализовать и благодаря механизму "поднятия" интерпретатор JS не выбросит никакой ошибки, в отличии от класса: https://jsfiddle.net/3Lzgoh1y/ Ещё одно известное мне отличие - в классах нельзя объявлять методы с помощью стрелочной функции(без бабеля). Ну и вообще классы имееют иную структуру для AST. >строго говоря, классов в привычном понимании относительно других языков в JS вообще нет.Ну типа да, но вместо классов есть прототипы. Вообще, JS выбрал протипы из-за своей недальновидности - раньше и браузеры были медленее и непредсказуемые, а реализация поведения через прототипы была намного проще.
шалом, программисты, у меня тут вопросик появился, он мне кажется совсем идиотским, но я что-то подвис. В общем я тут практикуюсь в реакте-редаксе, делаю свою версию популярного из примеров приложения todo-app прикрутив всё это дело к firebase. Хранится у меня массив этих todo'шек в базе, при загрузки странички я диспатчу ээкшен который включает сагу, и этот массив загружается и отображается на страничке. То есть я вынес асинхронный экшон в редак-сагу, тут всё понятно, грубо говоря это запрос get. Но на самой страничке я сделал два обработчика прямо в jsx, без вынесения в сагу, там у меня точно такое же асинхронное действие, даже сложнее, я сначала загружаю с базы данных, потом перебираю то что получил, и ещё раз обращаюсь к конкретной записи для удаления. По идеи это тоже асинхронное действие, но никаких проблем в выполнении это не вызывает. Вопрос: где именно я долбаёб и почему?
>>1568569>я сначала загружаю с базы данных, потом перебираю то что получил, и ещё раз обращаюсь к конкретной записи для удаления. Так это у тебя простое поведение. В самой документации саг же сказано, что он необходим для сложной асинхронной логики и для обработки сайд-эффектов. Для элементарных действий вроде выгрузки каких-то данных с АПИ можешь прямо в компоненте всё это делать. Если что-то посложнее и ты чувствуешь, что это может где-то переиспользоваться - лучше вынести в сагу.
Переформулирую >>1568558У меня есть спан, на который я навешиваю два обработчика https://jsfiddle.net/ofvjkb1L/Первый срабатывает только один раз, после этого одиночные клики он не распознаёт.
>>1568574а как-же "Action-функции обязательно должны быть чистыми"? Разве не для любой асинхронищины используют мидлвары?
>>1568572я обращаюсь к firebase realtime database нативными функциями из пакета firebase внутри обычной функции-обработчика, которая висит на компоненте.Мой диссонанс в том, что это работает. Читая документацию я чётко усвоил что любой асинхронный код надо выносить в мидлвары, и теперь я не понимаю нихуя
>>1568577Должны, но я говорил не про редакс, а про реакт. Это редакс по дефолту не поддерживает асинк флоу и поэтому используют миддлвары. Я например для каких-нибудь статичных страниц могу вытянуть данные прямо в хуке useEffect и ничего страшного у меня не происходит. Если поведение чуть-более сложнее, чем просто взять, отфильтровать и засетить в стейт - тогда использую сагу.
>>1568586>Мой диссонанс в том, что это работает. Читая документацию я чётко усвоил что любой асинхронный код надо выносить в мидлвары, и теперь я не понимаю нихуяА почему это не должно работать? Реакт !== Редакс. В реакте можно делать асинхронные вещи. И сайд эффекты иметь можно.
>>1568595>>1568598> Аноним 09/01/20 Чтв 21:09:15 №1568598 530 я, кажется, понял, почему я долбаёб. Получается я могу оставить всё как есть. Будет один мидлвар, который загружает к хранилище массив этих заметок при монтировании странички. А удаление и редактирование записей будет без вынесения в экшены и связей с редаксом, просто кодом на компоненте. Благодарю
>>1568621Вот укороченная версияhttps://jsfiddle.net/r3c8xsu9/1/При первом клике на спан вылетает алерт, но последующие клики он не ловит.
>>1568558У тебя первый обработчик всегда будет перекрывать второй. Вешать на один элемент и click и dblclick - очень плохо.
>>1568750Меня вариант с undefined вполне устраивает, т.к. эти обработчики висят на элементе поиска, который может использоваться неоднократно. >>1568775Такое задание
Будет ли ухудшаться производительность, если ставить одно и то же цсс свойство дом узлу? Например, если по клику на кнопку делать так: btn.onclick = () => btn.style.width = '250px', браузер будет перерисовывать кнопку каждый раз, когда я на неё кликну или он поймет, что кнопка и так 250 пикселей, а значит её не надо перерисовывать?
>>1569007Зависит от алгоритмов браузера.Скорее всего будет пересчёт, не будет перекомпоновки и перерисовки.
>>1569007Существуют даже хаки связанные с обращением к свойствам элементам, что бы тригернуть пересчет их рендера.Вот такая вот хуйня void elem.offsetWidth; (вместо offsetWidth любое другое подобное свойство может быть) может заставить браузер пересчитать состояние анимации на элементе. Я таким образом чинил баг в какой-то из версий хрома (с анимациями там что-то постоянно ломают, так как последний год они принялись очень активно такие вещи оптимизировать в плане производительности, но как бекфайр - в некоторых очень сложных конструкциях анимации начинали сильно глючить).Но вообще, я думаю, что это не покрыто какими-то стандартами (пруф ми вронг, если кто прошарен) и нет никаких гарантий, что такое поведение будет постоянным на протяжение будущих обновлений.
>>1568605Нет, если используешь редакс, выноси всю асихронную логику в него. Хз как саги, я это делал через thunk
>>1569163Вкатился на реакт без опыта на мидл вакансию на 70к за 2 месяца, дефицит кадров пиздец. До этого год фрилансил на битриксе
>>1569171Ну иди поработай пхп погромистом. Набей опыта, а потом укатывайся в удаленку - там вообще пофиг в какой мухосрани ты живешь, лишь бы интернет был.
>>1569173Но вообще можешь повисеть в поисках удаленки на реакт на джуна. К концу января должен рынок активизироваться. Проблема удаленки только в том, что туда чаще ищут опытных девов. Но в теории и джуна могут куда-то взять. Ищи везде, где только можно, включая канал в телеге.
>>1569173И сделай какой-то свой сайт, где бы ты выкладывал какие-то крутые штуки, которые ты накодил - это кайнд оф заменитель опыта работы.
>>1569171Томск, хотя недавно видел в обсуждении на хабре, что в Томске завышены зп в ИТ в силу конкуренции
Аноны, ищу работу в ДС на hh (фронт джуниор/стажер). Откликаюсь на frontend и постоянно приходит вот этот результат пикрелейтед. Как это расценивать? Им лень ставить отказ или все таки есть шанс, что позовут?Портфолио нет, доделываю потихоньку мувисерчер. В анкете есть даже мое фото + пишу сопроводительные письма. Поясните, что делаю не так на основании вашего опыта.
>>1569176> И сделай какой-то свой сайтНа похапе?Щас максимум могу на питоне и жсе хуету какую-нибудь сварганить.Без фреймворков естественно слишком сложнаДумаю мб nodejs попробовать
>>1569190А что такое? Без них вообще никак? Я просто для обучения принципиально ничего не хочу использовать. хз насколько правильный такой подход
>>1569179Завышенные они во всей индустрии.Джунов в Томске жопой жуй и каждый год новые из универов выпадают, а сеньоров нет, все съёбывают. Работы для сеньоров тоже почти нет впрочем.
Господи, как же заебали бесконечные туториалы с применением ебаных фреймворков.Я захотел разобраться с вэб-сокетами. В node есть нативный модуль net.Socket. Который есть "интерфейс", и который обеспечивает взаимодействие между разными компами по TCP/IP. Что в общем понятно.Но вот вэб-сокет, это уже протокол поверх все того же TCP/IP. После обмена GET запросами клиент и сервер устанавливают соединение по TCP/IP - как реализовано это соединение?вэб-сокет это протокол которые реализует в конечном итоге сокеты? Как это работает ?Я хочу на node запилить что то на сокетах нативно, без сторонних фреймворков. Что бы разобраться.
>>1569298п.с.Я пролистал каталоги репозитория soket.io - и не нашел там никакого стороннего кода на c++. Значит этот фреймворк использует нативные возможности ноды и в частности модуля net.Socket
>>1569163Зачем? Оставайся в жопе.>>1569165При всем дефиците, мидлом за 2 месяца стать нельзя. То есть твоя должность вполне может так называться, но скиллы у тебя будут джуна в лучшем случае.>>1569182Они посмотрели. Может, позовут. Зачем это как-то ещё расценивать? Отказы обычно лепят либо сразу, либо отклик улетает в архив вместе с вакансией. Телефон твой в резюме есть? Вотсап/телега работают?Сделай нормальный гитхаб, хотя бы с пет-проектами, лучше, если стек будет совпадать с тем, на что откликаешься. Сопровод некоторым важен, но чаще значения не имеет. Откликайся сильно больше, чем делаешь сейчас, через силу.
>>1567463>Доплачивать нужно будет за возНу вообще-то платные стажировки это довольно распространённая практика.
>>1569320>>Телефон твой в резюме есть? Есть>>Вотсап/телега работают?Есть>>Сделай нормальный гитхабВот делаю мувисерчер потихоньку. Очень хотелось бы сделать с бэком и sql. Но я смотрю на это все и понимаю, что возможно оно того не стоит + лучше наверное 2 проекта сделать, чем 1 фуллстак. + если в JS более менее уверен, то в многих CSS вещах не уверен, это и дополнительно заставляет задуматься о надобности этого бэка.
>>1569298>>156931810 секунд в гугле:https://github.com/socketio/socket.io-protocolhttps://socket.io/docs/
Привет! Я тот анон, что делал тестовый крад на реакте перед нг задание оказалось немного сложнее -- нужно было ещё и интегрировать бекенд, но я справился. Сдал его ещё на каникулах, вчера написала хр, мол, тестовое норм, завтра интвервью по скайпу. Сегодня мне позвонили, сначала спрашивали о семейном положении, когда я буду готов выйти и тд. Потом, другой человек задавал технические вопросы онли по реакту. И тут я, вероятно, проебался. Вопросов было штук 8-10, я совсем не ответил на два -- что такое редакс и на хуй он нужен все что я о нем знаю -- он как-то меняет поведение состояния, лол и о том, что такое контекст не сталкивался с ним делая тестовое и упустил из виду. Готовился я, к слову, по большей части к вопросам по ванильному жс.Закономерно мне сказали, что напишут на следующей неделе, сообщат зп и тд, лол.Ну, с первого раза, наверное, мало у кого получается, так что я хоть и расстроен, но не прям чтобы сильно. Ну и меня это очень сильно бустануло - после тестового я всего за 3 вечера написал простенький мувисерчер и тудушку. В общем, хочу поблагодарить анонов, которые помогали мне - вы крутые!
>>1569399Код как бы подчеркивает деградацию колеров. Им дали Promise, дали Async - но коллбеки все равно хуячат.
>>1569441>что за `fn:`?Имя параметра, за которым следует тип>что за `= empty`?Значение по умолчанию.>что за `:Promise<void>`?Тип возвращаемого значения.И да, не пользоваться typescript в 2020 = сидеть на обочине
>>1569269Вот поэтому там дохуя вакансий для джунов. Хотя наверное в силу вышки требования пожестче, чем там, где такой конкуренции нет.Сеньерам не то что в Томске, им в рашке делать нехуй.
>>1569320>При всем дефиците, мидлом за 2 месяца стать нельзя. То есть твоя должность вполне может так называться, но скиллы у тебя будут джуна в лучшем случае.>Речь про трудоустройство, а не скилы.
>>1569405Я до работы редакс не трогал, с бойлерплейтом разобрался за день, больше вопросов нет. Посмотри у буры ролик по редаксу и все поймешь. Там нихуя сложного
>>1569392И как ни странно нихуя мне не дало. Час уже сижу в доке ковыряюсь. Так и не нашел пока ответа - в Socket.io именно TCP уровень реализован на сокетах.Как я понимаю варианта два - либо с помощью нодовских net.Socket, либо где то среди зависимостей есть пакет с бинарником на C++, на котором написана своя реализация протокола вэб-сокет. Но в этом я сомневаюсь.
>>1569481Поддерживается практически всеми популярными библиотеками и предотвращает кучу интеграционных ошибок между модулями.
>>1569481https://2019.stateofjs.com/javascript-flavors/https://insights.stackoverflow.com/survey/2019#most-loved-dreaded-and-wantedhttps://levelup.gitconnected.com/a-recap-of-frontend-development-in-2019-1e7d07966d6c
Аноны, пишу мувисерчер на реакте с легаси классами. Столкнулся с такой проблемой, что мне надо сделать кнопку, которая будет добавлять фильм в избранное из разных компонент. Как вы уже поняли я пользуюсь local state и я отлично понимаю, что подключение redux решило бы все мои проблемы, но я хочу сделать это на легаси. Ничего лучше чем поднять стэйт на верх и передавать функцию через пропсы, которая будет добавлять в стэйт фильмы, я не придумал. Но все бы ничего, но это выглядит крайнего убого (скорей всего именно в моем случае). Взгляните пикрелейтед. Получается что у меня есть компонента MainRoute, которая вообще отвечает просто за роуты и в ней внезапно начинает появляться какой-то favouriteBar. Я уверен, что ни один разработчик этого не ожидает и это какой-то гавнокод.
>>1570068>Аноны, пишу мувисерчер на реакте с легаси классами. Почему не хуки?А вообще - раздели компоненты на компоненты-контейнеры, которые содержут логику и компоненты представления, которые эту логику рендерят.
>>1569465>>что за `= empty`?>Значение по умолчанию.Но в JS нет примитива empty, это переменная что ли?>>что за `:Promise<void>`?>Тип возвращаемого значения.Promise, допустим, тип а <void> после него что такое?
>>1569519попробуй это: https://davidwalsh.name/websocket>Socket.IO simplifies the WebSocket API and unifies the APIs of its fallback transports>Let's take a look at the HTML5 WebSocket API: its use on the client side, server side, and an outstanding wrapper API called Socket.IOкак я понял, Socket.IO обёртка вокруг WebSocket API
>>1570114>>обёртка вокруг WebSocket APIДа, но у nodejs нет нативной поддержки вэб-сокетов. Только "классические" TCP сокеты.Вот и гадаю я как реализованы вэб-сокеты в nodejs. На основе родного модуля ноды net.Socket. Или как то еще.Надежду написать свою, самую примитивную реализацию вэб-сокета на нативной ноде я пока потерял.
>>1570068Почему ты называешь классы легаси? Они еще не депрекейтнуты. Это редакс потихоньку сползает в легаси, если уж на то пошло.>я отлично понимаю, что подключение redux решило бы все мои проблемыНу так разберись как он работает и сделай так же.
>>1570068React Context api.>>1570075>Почему не хуки?Слабо документируемое овверейтед говно и не нужно.>>1570207Все еще модно, на самом деле. К сожалению.Можно заменить на MobX или все на контексте делать (но контекст не заменяет собой полноценный стор).>>1570217Советы уровня двачей
>>1570230>Слабо документируемое овверейтед говно и не нужно.Отсталый. Всё там нормально описано. Просто ты отсталый и не разобрался в них. А там ещё асинк рендер подвозят, который многие давно долго ждали - ты тоже скажешь, что "гамно, ни нужна, я сказал!!1"?
>>1570230>Слабо документируемое овверейтед говно и не нужно.Ват? Там прекрасная документация. Так и скажи что не разобрался.
Можно ли сделать как-нибудь, чтобы при открытии локального файла с диска подменялся адрес в адресной строке браузера?
>>1570272Охуенно. А как? Можешь пример привести, ну или погуглить за меня, потому что я нихуя не нашел.
>>1570282Описать сложно, но тебе нужно капать в сторону расширения браузера. Браузеру можно предоставить доступ к чтению файловой системе(как и к адресной поисковой строке) и поставить хук на тот момент, когда файл открывается
Аноны, объясните почему на этапе 3 внезапно в стэйте появляется мой объект, хотя я еще ничего не вернул setState. На этапе 1 и 2 он пустой
>>1570319почему гавнокод, я не нарушаю идеи setState. Функция возвращает абсолютно новый стэйт, не мутируя старый.
>>1570319Ну кстати ты прав. Открывает кто-то метод добавления фильма в избранное и читает:Создадим функцию "создать новый объект", которая принимает "предыдущее состояние" и "новый объект".Шта? Чё за новый объект? Чё за старое состояние?Нипанятна. Ниясна. Нипанятна (с) Гоблин.
>>1570323я согласен, что имена подобранны не верно, но с точки зрения типов, нет никаких ошибок. json - это объект, новый объект который нужно добавить в стэйт. setState ожидает новый стэйт, не мутированный, а абсолютно новый объект
>>1570323Ага, при этом newObj какого-то хуя отдаёт свой id, по которому потом добавляет себя в хуй знает куда. И метод названный createNewObj, почему-то возвращает newState. Просто полнейший пиздец, даже сложно понять, насколько тупоголовым нужно быть чтобы этого не видеть. Про Object.assign вместо спред оператора вообще молчу, особенно смешно это смотрится, когда в следующей строчке видишь деструктуризацию.
>>1570316Я думаю потому что метод console.log не ждет когда твой объект выведется в консоль, а сразу возвращает управление и начинает выполняться return. А так как ты в него передал ссылку на объект, то пока консоль возьмёт объект по этой ссылке ты уже его вернешь и там будет твоё новое состояние. Чисто моё предположение. Если бы это был PHP можно было бы вкорячить после console.log нечто вроде sleep и посмотреть на реакцию.Попробуй вывести не this.state, а JSON.stringify(this.state)
>>1570316Бесмыслено в консоль смотреть после того, как все уже отработает - там будет последнее состояние объекта в рантайме, а не то, что было в точке вызова. Добавь точку прерывания и смотри....console.log(this.state)debuggerreturn newState}
А, ясно-понятноhttps://stackoverflow.com/questions/34504682/js-does-object-assign-create-deep-copy-or-shallow-copy
>>1570379Я не за компом сейчас.Разницу между вышеперечисленным я знаю, но с той проблемой, как ОПа на моей памяти не сталкивался и object.assign тут ни причём, потоком управления реакта он никак не может управлять.У ОПА скорее всего в том, что он вызывает функцию на месте. а не передаёт её в качестве коллбэка.
>>1570373Можешь прочитать про разницу между шалоу и дип копиейhttps://stackoverflow.com/questions/184710/what-is-the-difference-between-a-deep-copy-and-a-shallow-copy
>>1570384Бля, вот уж кого-кого, а меня учить жиэсу не стоит, побольше вас знаю, уж поверьте, тут у него в другом проблема, я выше написал
Я решил свою проблему. Весь косяк был в том, что я передавал весь стэйт, а не часть стэйта. И как результат интересующий меня объект копировался по ссылке. Так как он же пустой находился в инициализации стэйта, то он мутировал.
>>1570382>>1570390Реакту уже много лет, а самоуверенные макаки как не могли в иммутабельность, так и не могут до сих пор.
>>1570396Да блять, у тебя всё равно неправильно, ты вызываешь функцию на месте, эта функция совершенно лишняя, почему бы не сделать такaddFavouriteFilm({id) {this.setState(state => ({favouriteFilm: id }))}?
>>1570403addFavouriteFilm({id) {this.setState(state => ({...this.state, favouite: ...this.state.favourite, favouriteFilm: id }))}пофиксил, не заметил, что тебе в favourite нужно засетить>>1570403>пук, всренькпо делу ты так ничего и не сказал
>>1570407addFavouriteFilm({id) {this.setState(state => ({...state, favouite: ....state.favourite, favouriteFilm: id }))}ещё раз пофиксил)
>>1570404>>1570407>>1570408Потому что ты, макак, даже не смог понять структуру его стейта.favourite отображает id на дескрипрор фильма, а твой говнокод вообще дексриптор не содержит и favourite не модифицирует. Как таких дебилов земля носит? Выучил, что в setState можно передавать updater вместо объекта, и срет этим во все посты.
>>1570411Да мне не особо нужно было понимать его структуру, у него там говнокод лютый, >favouriteFilm(json), даже сигнатура хуже некуда, нейминг никудышный>Выучил, что в setState можно передавать updater вместо объекта, и срет этим во все посты.Мань, я знаю про иммутабельность лучше, чем ты, уж поверь. Я уверен, что ты даже не знаешь, как просто можно обновить значение d в такой структуре данных, без мутации самого объектаconst obj = { a: { b: { c: {d: 4}}}}так что закрой еблет)
А вообще, зачем я с вами спорю, если никто из вас не знает, что такое коллбэк и никто об этом чуваку не сказал, а ведь setstate работает асинхронно и в этом был весь косяк, а не то, что там object.assign копирует только один слой данных
>>1570414>Мань, я знаю про иммутабельность лучше, чем ты, уж поверь.Но ты же три раза подряд обосрался и так и не решил исходную задачу. Что с того, что ты про стрелочные функции и spread syntax знаешь? Наука в руках обезьяны бессильна.
>>1570417>а ведь setstate работает асинхронно и в этом был весь косякТы такой тупой, что прямо смешно.https://reactjs.org/docs/react-component.html#setstate> You may optionally pass an object as the first argument to setState() instead of a function:setState(stateChange[, callback])This performs a shallow merge of stateChange into the new state, e.g., to adjust a shopping cart item quantity:
[email protected]... [email protected] [email protected] [email protected] [email protected]Ставлю я, значит, пакет. У этого пакета в зависимостях пакет ms версии 2.1.2, а также пакет send версии 0.17.1. У пакета send в зависимостях пакет ms версии 2.1.1, а также пакет debug версии 2.6.9. У пакета debug в зависимостях пакет ms версии 2.0.0.Что же делает этот незаменимый пакет ms, ТРИ разные версии которого я только что себе скачал? Наберите воздуха в грудь. Он переводит записанное строкой время в миллисекунды.Какие же жаваскриптеры дегенераты.
>>1570420> Какие же жаваскриптеры дегенераты.Пришел байтоеб, который не может не изобрести пару колес до обедаms('2 days') // 172800000ms('1d') // 86400000ms('10h') // 36000000ms('2.5 hrs') // 9000000ms('2h') // 7200000ms('1m') // 60000ms('5s') // 5000ms('1y') // 31557600000ms('100') // 100ms('-3 days') // -259200000ms('-1h') // -3600000ms('-200') // -200
>>1570417this.setState(state => ({...state, favourite: {...state.favourite, id}}))Доволен? Мне больше не о чем с тобой разговаривать, ты не знаешь базовых вещей даже. На мой вопрос ты так и не ответил, только язвишь всё. Язви дальше, оставайся токсичным дальше.
>>1570424Ты же в четвертый раз обосрался.Что будет в state.favourite[id]? Где, блять, дескриптор фильма?(вот такой вод код-ревью для джуна-тормоза)
>>1570425Прости, дорогой, я энтерпрайзогосподин.У нас собственный репо в котором у каждого пакета единственная тру-версия.
>>1570419Я знаю про этоно это может приводить к неожиданным поведениям, как у опапро батчинг обновлений в реакте ты ничего не слышал, конечно же
>>1570431Пятый обсрамс, потерял favourite.... eще пару-тройку итераций, и мы таки дойдем доthis.setState({ favourite: { ...this.state.favourite, [json.id]: json }})
>>1570433>но это может приводить к неожиданным поведениям, как у опаоп тупо модифицировал свойство-объект после shallow-copy состояния. Изменения, естественно, мгновенно отражаются и в "оригинале", и в "копии"А если бы ты не был быдломакакой, ты бы прочитал доку на setState > This form of setState() is also asynchronous, and multiple calls during the same cycle may be batched together.и понял, что setState(object) точно такой же асинхронный, как и setState(updater)Но ты же будешь упорствовать.
>>1570438Ну видишь, я как-то глазами даже не заметил, что в этом json'е находится структура самого объекта, я думал, что его уже перезаписывать нужно, типа ОП не знал, как правильно структуру в айдишник запихнуть.Энивей ты клоун, только токсишь, если ты в этот раз, в этот час оказался более внимательным, чем я - то я тебя сердечно поздравляю)
Подождите, я читаю ваш срач но ещё не разобрался почему же исходный код опа не работал как он хотел.Вот он вызывает функцию createNewObj и передает в неё по ссылке состояние и аргумент jsonВ функции он создает новоеСостояние и копирует в него староеСостояние, но это копия шалоу, то есть если у нас в состоянии есть какой-то атрибут x, который указывает на объект, то есть указывает на ссылку на объект, то скопируется ссылка, не объект по ссылкеПруф:$ node> let a = {a1: 3};> let b = {b1: a};> console.log(b);{ b1: { a1: 3 } }> let c = Object.assign({}, b);> console.log(c);{ b1: { a1: 3 } }> b.b1.a1 = 4;> console.log(c);{ b1: { a1: 4 } }Потом он берёт id из аргумента jsonИ кладет в новоеСостояние.избранное.id аргумент json, то есть кладет туда ссылку на аргумент jsonНо ведь он сделал шалоу копию, то есть у него что новоеСостояние.избранное, что староеСостояние.избранное - это один и тот же объект и когда он пишет новоеСостояние.избранное.id = аргумент json то он меняет (или добавляет) атрибут и в новоеСостояние и в староеСостояние.Верно?Если верно, то как ему надо поступить?
>>1570446> не заметил (в трех строчках кода)> думал> типаКакое милое чирикание после кукарекания в >>1570414
>>1570444Но он гарантирует ожидаемое поведение стейта, вариант с коллбэком предпочительнее, ибо каждый сетСтейт выполнится корректноя бы посмотрел, как ты таким вариантом обновляешь корзину у юзера и в итоге он покупает 100500 товаров за неебическую сумму как за 10 товаров, т.к срабатывал батчингhttps://stackoverflow.com/questions/48209452/when-to-use-functional-setstate
>>1570448Верно.Варианты:1. использовать тот факт, что setState делает shallow merge, и явно скопировать (только те) вложенные свойства которые перезаписываются (favourite)ОП запостил, кстати, рабочий вариант >>1570396 - та же идея, что и в >>1570438, просто НЕИЗЯЩНО 2. Если обновлений много в разных местах и на разных уровнях, можно написать пачку spread operators типа - {...state, favourites: { ...state.favoriles, [json.id]: json }} только это потом поддерживать на больших стейтах будет очень больно.3. или воспользоваться умной библиотекой для иммутабельности assocPath(["favourites", json.id], json, oldState). Если хочется, чтобы все тормозило, то можно deep copy делать.
>>1570156есть такой вариант @ https://dzone.com/articles/everything-you-need-to-know-about-socketio>To establish the connection, and to exchange data between client and server, Socket.IO uses Engine.IO. This is a lower-level implementation used under the hood. Engine.IO is used for the server implementation and Engine.IO-client is used for the client.> Engine.IOhttps://github.com/socketio/engine.io
У ОПа есть key-value массив:favorites { 1 => объект1, 2 => объект2, ...}Чё ему по сути надо сделать?Ему нужно поменять favorites так, чтобы это был бы как бы новый favorites, не затрагивая старыйДля этого ему надо скопировать favorites, при этом скопируется его структура, но все объекты (объект1, объект2) скопируются по ссылке, а не по значениюЗатем ему надо просто отправить в setState новый пустой объект, у которого единственным атрибутом будет новый favoriteslet newFavorites = Object.assign({}, this.state.favorites);if (json.id in newFavorites) return {}; // уже есть в избранномnewFavorites[id] = json;return { favorites: newFavorites };Так что ли? Ну типа он свой вопрос решил не через Object.assign({}, this.state.favorites), а через {...this.state.favorites} хер знает что эффективнее и в чем разница.
>>1570452Дубина, проблема опа не в этом.И уж хранение корзины в локальном стейте компонента вместо стора - это пиздец.(Да и в целом setState вместо управления состоянием - это 90% шансов на пиздец)
>>1570461Успел за час погуглить про хелперные функции, а если бы не я - так бы и страдал бы дальше spreadhell'ами.>(Да и в целом setState вместо управления состоянием - это 90% шансов на пиздец)setState это вообще архаизм, нормальные люди хуки юзают.
>>1570460>Дубина, проблема опа не в этом.Одна из проблем.. Скорее всего человек не знает про коллбэки, его функция вызывается на месте, пускай и возвращает объект(надеюсь ты знаешь, что функции в жс - это объекты первого класса.) Это может привести к ОЧЕНЬ неожиданным результатам.
>>1570463>Успел за час погуглить про хелперные функции, а если бы не я - так бы и страдал бы дальше spreadhell'ами.Ты вообще о чем? О ramda из >>1570357 или о голосах в твоей голове?
>>1570465Это да, это точно. Надо рассказать про коллбеки, про хуки, пять раз подряд обосраться в примерах и так и не ответить на изначальный вопрос.
>>1570467Так ты, дубина, тоже какой невнимательный, оказывается.Я спрашивал, знаешь ли ты способы эффективно изменить глубоко вложенное свойство объекта без мутации. Оператор "..."(spread) не панацея, т.к глубоко вложенные свойства менять с ним жутко неудобно. Как вариант - это решается иммутабельными библиотеками, типа immutable.js или же хелперными функциями, типа immer(ты привел assocPath, это тоже как вариант, с рамдой я особо не работал зато достаточно повозился с rxjsМожно и свою рекурсивную реализацию для этого написать, делается это не сложно.
>>1570473>Так ты, дубина, тоже какой невнимательный, оказываетсяДубина, я эту твою ветку просто прогнорировал, как бесполезную.Что толку беседовать о сложных вещах с человеком, который в трёх строчках кода опа заблудился.
Читаю про вашу иммутабельность и мне кажется что я где-то уже всё это видел. Кажется в 90-е или 00-е годы в функциональщине.
>>1570470Ок, смотри ты не обосрись, когда я попрошу на маркерной доске у тебя написать реализацию AVL дерева)
>>1570473Прости дорогой, я понимаю, что ты сейчас протянешь разговор в дебри подробностей, чтобы забыть о том, как ты обосрался на тривиальном примере.Не делай этого. Это анонимная доска. Уходи, переживи это унижение и возвращайся завтра - все будет хорошо. Не надо самого себя закапывать все глубже и глубже. Теория без опыта мертва, и ты это только что показал
>>1570479Хех, ну, как говорится вчужом глазу соломину видеть, в своём — бревна не замечать. Пошёл-ка ты нахуй, токсичный мудак. Пытался быть вежливым с тобой, но ты неисправимая мразь.
>>1570476Ахаха, да я могу любой код написать - если ты в трёх строчках запутался, то уж реализацию дерева точно не поймешь.
>>1570477Для дошколят, которые умножение не знают, квадратные уравнения сложные.Для макак, не могущих в доки на setState, обсуждение иммутабельности будет сложным, потому что базовые когнитивные способности отсутствуют.
>>1570483Ты не вежливым пытался быть, а тупо поддеть. Ключевое слово - тупо.Так получай говна за шиворот.
>>1570483>Пытался быть вежливым с тобой,>>1570414> Я уверен, что ты даже не знаешь, > Так что закрой еблетЯ серьезно не понимаю, ты такой тупой, что считаешь это вежливым вопросом, или просто реалистично прикидываешься имбецилом, чтобы откосить от стройбата?
>>1570465я тоже изучаю реакт, я читал про коллбэки, но я не совсем понимаю >>его функция вызывается на месте. А где она должа вызываться, видимо я не совсем хорошо освоил эту тему. Или напиши код, как оно должно быть.
>>1570420В голос. Хотя чего удивляться, если у жопоскриптеров однострочные библиотеки - самые популярные.
>>1570430>этот энтерпрайз господин, который вынужден разгребать дерьмо из других репозиториев, для того чтобы везде была одна версия В голос.
>>1570457Он долбоеб и накручивает дерьмо на вал, вместо того чтобы каждому объекту дать булевое свойство isFavourite и уже работать с ним, а не плодить копии объектов.
>>1570543> плодить копии объектовТы серьезно думаешь, что favourites[film.id] = filmсоздаст копию объекта?
>>1570543Я думаю дело тут не в копировании, которого конечно нет. А в том что, например, чтобы отобразить в интерфейсе звездочку у избранного фильма. Ему нужен обработчик из родительского компонента, который имеет инфу о юзере. Типа я рендерю компонент отображения фильма и мне надо решить показывать div с картинкой звезочкой или нет. А как? Надо проверить нет ли моего id у юзера в ищбранном. Получается зависимость.Или это норм?
>>1570560Еще вчера выяснили что Object.assign создает копии не объектов, а структуры объектов. Ты осторожней выражайся :3 А то щас тебя растерзает иммутабельщик
>>1570564А потом весь это бордель масштабируется на много коллекций (избранное, хочу посмотреть, рекомендации и прочее) и модель фильма засирается 1001 флагом? Спасибо, Шахерезада, такие сказки нам не нужны.
>>1570565Да похуй мне, что вы там макаки выяснили. У тебя в сам метод новый объект передаётся, новый или старый в который копируются собственные свойства другого объекта. В методе выше именно создаётся новый объект Object.assign({} - вот в этом месте.
>>1570577Какой нахуй дескриптор фильма, ты можешь на человеческом разговаривать, макака, я тебя не понимают.>>1570574Это не Ок, потому что срёт в память созданием ненужных объектов, которые сборщик мусора соберёт не сразу.
>>1570581Прочти >>1570543 с чувством, толком и расстановкой.Посмотри на код >>1570316Обдумай.Если после этого все еще хочешь побыть грелкой для Тузика, приходи снова.
>>1570582Да я уже понял, что нет смысла разговаривать с жопаскрипт макакой, для которой работа с памятью это что-то магическое, что само собой происходит и о чём можно не беспокоиться.
>>1570590Слушай, ты, прыщ на жопе мироздания... ты ведь захотел сохранить хорошую мину при плохой игре, правда? Или правда не понимаешь, что объект состояния должен пересоздаваться при каждом обновлении чтобы кишочки React и всякие shouldUpdate нормально работали, а вот объекты, на которые он ссылается - нет?
>>1570593Я понимаю, что пытаюсь разговаривать с макакой, которая прочитала документацию к реакту, думает, что всё поняла и теперь возомнила себя сеньором с 20-ти летним опытом, который пилит свой мувисёрчер, лол.
>>1570593По-моему он с этим не спорит и вообще не про это говорит.Смотри.Анон >>1570543 пишет:> а не плодить копии объектовто есть он либо думает, что тот код создает копию фильма, либо он просто не правильно выразилсяДругой анон >>1570555 уточнил у него:> Ты серьезно думаешь, что favourites[film.id] = film создаст копию объекта?На что анон >>1570560 отвечает:> Object.assign создастто есть говорит, что не этот код (favourites[film.id] = film) создаст новый объект фильма, а Object.assignЧувствуется что после этого Другой анон уже начинает закипать, потому что новый-то объект он создаст, но не фильмаА я такой пишу >>1570565> Object.assign создает копии не объектов, а структуры объектовНо это не так, поэтому иммутабельщику стало ещё хуже ион уже начинает орать >>1570572> Да похуй мне, что вы там макаки выяснили. В методе выше именно создаётся новый объект Object.assign({} - вот в этом местеИ тут ты такой выходишь >>1570577> Дубина, дескриптор фильма никогда не попадает в object.assign, только объект состоянияИммутабельщик уже совсем ахуевает >>1570581 и пишет> Какой нахуй дескриптор фильма, ты можешь на человеческом разговаривать, макака, я тебя не понимают.
>>1570611>По-моему он с этим не спорит и вообще не про это говоритДа тут целая мыльная опера, и хрен поймешь, за красных он, или за белых.В коде выше по телу вообще копий обьектов не создавалось, кроме самого объекта стейта. Я не знаю, с чего у него приступ байтоебства.И кто такой иммутабельщик?
>>1570611При чём здесь твой фильм, хуесосина тупорылая. У тебя в метод Object.assign передаётся объект, который в этом же месте и создаётся, замени {} на new Object() чтобы тебе понятней было. Если ты 200 раз вызовешь метод, то у тебя создастся 200 таких объектов в куче.
>>1570634О великий прыщ-на-жопе, просвети же нас, как без создания нового объекта создавать новое состояние для Реакта.inb4: хуячить изменения напрямую в стейт - до такого еще тред не докатился.
>>1570634Да я с этим не спорю.Просто изначально анон писал о фильме. А потом всё скатилось в выяснение того, что же делает Object.assign, но что он делает ты и раньше уже объяснял.
>>1570647>> inb4: хуячить изменения напрямую в стейт - до такого еще тред не докатился.> хуячить изменения напрямую в стейтДеграданты. Кругом одни деграданты.
>>1562152 (OP)Сап, как дела в фронтенде продакшене с версткой? Насколько много вам приходится верстать, отрываясь от функциональщины и штамповки редюсеров?Я вайтишник, делаю заказ для манки-бизнеса, и пиздос как от верстки трясёт, мозг вытекает от монотонности
>>1570745>Насколько много вам приходится верстать, отрываясь от функциональщины и штамповки редюсеров?Очень часто.>пиздос как от верстки трясёт, мозг вытекает от монотонностиПотому что ты не умеешь верстать и вёрстка часто приносит когнитивные диссонансы, т.к. интуитивно не всегда работает так, как задумывалось. Как научишься - "трясьти" не будет.
>>1570750>Потому что ты не умеешь верстать и вёрстка часто приносит когнитивные диссонансы, т.к. интуитивно не всегда работает так, как задумывалось. Как научишься - "трясьти" не будет. И как же научиться? Тупа хуячишь интуитивно, спотыкаясь на ошибки и правя их?
>>1570752Ну не совсём. Если чисто интуитивно - ничего не усвоишь и постоянно будешь натыкаться на одни и те же грабли. Вёрстка - не такая уж и тривиальщина, как многие думают, иначе бы никто от неё не "трясся". Хуярь с умом. Вот ты знаешь например, как по дефолту работает расчета ширины и высоты элемента? Умеешь переопределять это поведение?
>>1570761>Хуярь с умом.Хз, курсы что ли пройти какие>Вот ты знаешь например, как по дефолту работает расчета ширины и высоты элемента? Умеешь переопределять это поведение? Только знаю, что на 100% расстягивается и всё
>>1570767Ахуенно давать советы, когда сам им не следуешь, но я всё же дам, вдруг я долбоеб не следую, а ты последуешь.Не просто нужно курсы проходить, а нужно всё время их проходить, чтобы всё время учиться чем-то новому, иначе ты как специалист сначала отстанешь от жизни, а потом будешь никому не нужным, как я. Мне вот больше нравилось играть в вов, вместо того чтобы изучать новое по профессии. А хули? И так ведь платят. Ну да, седня платят, а завтра? А через год?
>>1570810Да, но когда-нибудь перестанут и что тогда? И будет как в басне Крылова про муравья и стрекозу.
>>1570873что конкретно? этот инфобизнесмен еще хуже чем хтмл академиникакой структурированности, одни ролики вы стиле "как сверстать шаблон за 1000500 долларов в наносекунду"
>>1570883мож он и гений, но обуччающего контента у него нихуя нет. Одни "мотивационные" ролики. Сколько тут не спрашивал, тут все срутся на тему реакта. А меж тем в большинстве вакансий препроцессоры цсс3 хтмл5 идут первой строчкой и в первую очередьТак как же поднять эти скиллы?Гайдлайн хороший есть?
>>1570887>А меж тем в большинстве вакансий препроцессоры цсс3 хтмл5 идут первой строчкой и в первую очередь>Так как же поднять эти скиллы?Cейм, верстал всякую хуету, но по макету не вывожу сильно, расхождения, про пиксель перфект ваще молчу. Реквестирую гайды, как можно улучшить верстку
Ананасы, нужна какая-нибудь простая cms которую можно засунуть на локальный сервер и туда уже запихать пару html + css файлов. Хочу чтобы все это висело на локалхосте и туда редиректило с пары сайтов. То есть открывается сайт Х --- редиректит на локалхост и открывает html файл с компа. Батя заебал смотреть пердильные коммедии на левых сайтах, хочу покосплеить роскомнадзор с вайт-листами.
Возможно ли забрать изображение с css background-image. Не url, а именно уже загруженное изображение?
>>1571227Функция Y возвращает результат функции которая принимает в аргумент саму себя. Результат этой внутренней функции будет результат вызова функции аргумента f которая принимает фукнцию которая возвращает вызов первой функции которая принимает сама себя.Вообщем это функция которая принимает функцию, и в этой функции можно вызвать функцию аргумент чтобы вызывать эту фнукцию еще раз. Получается рекурсивный вызов функции аргумента.
>>1571222Получаешь таки урл сначала, а потом по нему создаешь изображение. Хз как там правильно. Точно можно получить сорс через canvas, возможно как-то можно получить и без него.
Начинаю вкатываться в реакт и назрел такой вопрос - а нужно ли реактогосподину знать ООП? И вообще, если я ориентируюсь на MERN-стек, стоит ли уделять внимание этой хуетене? Меня прямо трясет от флешбеков, когда я в шараге дрочил джаву.
>>1571499Комбинация ООП и системы типов и синтаксиса в яве просто фантастически уебищна. Учить ООП надо, но практики явы тащить не надо.
>>1571499Что ты подразумеваешь под учить ООП? Ты в любом случае на жс будешь затрагивать элементы ООП даже не задумываясь над этим.Если очень сильно постараться, ты можешь все написать функционально или процедурно. Но это надо очень сильно постараться и знать довольно много теории.
>>1562152 (OP)Ёп вашу мать, перешёл по ссылке в оп пике, обосрался, у меня наушники сняты были, пол офиса бы ахуело
Суп скриптонитыч.Пишу по фану бота в дискорде. Прикрутил напоминалку через setTimeout(), всё было заебись.Но решил я сделоть ещё и забывалку, чтобы можно было отменить задачу.Прикрутил глобал переменную, которой присваиваю setTimeout(), чтобы иметь возможность отменить через clearTimeout(timer) из другой функции.Ну и ясное дело, чем всё закончилось - теперь у бота только одна ячейка памяти под напоминалку, которую может стереть любой юзер.Как сделоть так, чтобы для каждого юзера была своя напоминалка? Я вот щас думаю как такое запилить, и нихуя в голову не идет.Бот на node.js + diiscord.js, мб у кого был опыт/подскажет чё.
>>1571697кажется мне надо заебурить массив из парных элементов, один из которых - ник, а вторая - напоминалка
>>1571705короче заебенил я let timer = {},получаю ник и ебошу в timer[author] = setTimeout()Теперь у меня персональные напоминалки, что кру
Аноны, кто шарит в node.js - у меня возник такой вопрос - вот допустим я со стороннего сайта собираю всю его разметку и файлы.К примеру с помощью модуля http.request(options[, callback]) или http.get(url[, options][, callback]).Тоесть я получаю из этих методов объект типа stream, который потоком льет мне разные данные.И текст, и бинарные данные(картинки и прочее). Где почитать - а как парсить этот поток? как определить тип данны? Как определить допустим начало и конец бинарного файла в потоке?Прошу инфы и сурс по этому вопросу.
>>1571657> Что ты подразумеваешь под учить ООП?Паттерны, в первую очередь>Ты в любом случае на жс будешь затрагивать элементы ООП даже не задумываясь над этим.Например? Прототипы это понятно, но что ещё? Классы в реакте далеко не ООП, энивей.> Если очень сильно постараться, ты можешь все написать функционально или процедурно. Но это надо очень сильно постараться и знать довольно много теории.Просто я не представляю, как в реакте можно использовать ООП, особенно если ты пишешь на хуках.
>>1572001Концепция объектов в рамках ООП теории появилась. Это его элемент. Без объектов сейчас разве-что что-то низкоуровневое на С пишут.
>>1572165Это не так. И даже если бы это было так, то все равно использовать объекты в коде != использовать ООП. Объект -- просто структура данных, ООП -- парадигма.
>>1572116>>1572339 Да мне больше бы теоретические какие то основы. Мне не для практической задачи - а чисто учебный велосипед. Я в этой области не понимаю нихуя.Про сheerio знаю, даже пытался код смотреть - но не особо понял.
>>1572354Разницы особой не будет, потому что это Node.js. Для теоретических основ тебе нужно что-то более низкоуровневое, например, C++ или, на крайний случай, C#.
>>1572394Но сheerio когда сдирает данные с другого сайта - получает солянку из текста и бинарников всяких.Эта солянка льется на сервер потоком - как то же этот поток парсится, сheerio понимает что - это картинка, это текст, это ну допустим гифка. Определяет MIME типы как то и прочее - прочее.Вот эту тему хотелось бы для себя развернуть.
>>1572419Тебе с ответом от сервера приходит заголовок Content-Type с указанием типа данных. Также и с типом кодировки, например, content-encoding: gzip И со всем другим тоже самое. Для этого и придумали протоколы, чтобы не нужно было гадать что и откуда ты принимаешь, и как с этими данными работать.
Сап трудягам.Есть у кого-нибудь пример open source PWA приложения, чтобы нормально работало на десктопе, андроиде и ебать его в рот IOS?Хорошие примеры PWA без исходников подойдут тожe - нужно хотябы оценить, что оно на данный момент умеет.Планирую набросать кое-какой сервис, для начала, чтобы прощупать спрос и получить фидбек - поэтому нецелесообразно разрабатывать под нэйтив.
>>1562152 (OP)Двач, помоги вкатиться в JS Дошел до методов массивов на learn.javascript.ru ( https://learn.javascript.ru/array-methods ) и Я НЕ ПОНИМАЮ find и findIndex. Как работает этот пример? let users = [ {id: 1, name: "Вася"}, {id: 2, name: "Петя"}, {id: 3, name: "Маша"}];let user = users.find(item => item.id == 1); // Что это за стрелочка??? alert(user.name); // Вася
>>1572743Тогда уж такconst condition = (item) => {return item.id === 1;};let user = users.find(condition);
>>1572743>>1572744Спасибо, анончики :3А чему у вас строгое сравнение?>item.id === 1;Что не так с == ?
>>1572774Это как завести и прогреть какой-нибудь ВАЗ, после чего засечь время и замерить за сколько она до 100 км/ч разгонится, а потом сравнивать это время с разгоном до 100 км феррари, при этом запуская таймер до того как она из гаража выедет.
>>1572822Тайпскрипт не помешает, Ангуляр потихоньку умирает.>>1572841Мгновенно перерендерилось vs Ждать загрузки страницы с нуля.
Что надо знать, чтоб на стажировку напроситься? Сделал мувисерчер, канбан, расширение для гугла, файлопомойку
>>1572852>сайт номер 1 для поиска работы>не может определить Javascript как запрос относящийся к программированию Вся суть IT индустрии. Ну ничего, зато аджайл практики внедряем, проводим митинги, тимбилдинги и прочую хуету.
>>1572852>>1572863Хоть один из вас написал в поддержку хедхантера, или вы только на дваче можете сраться?
>>1572877О чём тут в поддержку писать? Кем-то разве было заявлено, что подсказки в поиске выдаются соответственно вакансиям? Нет, они выдаются просто дополняя введённый запрос популярными словами.
>>1572877Бабуль, ты чего тут забыла? Тех. поддержка и разработчики это не одни и тоже. Тех. поддержке похуй на разрабов, а разрабам на тех. поддержку, никто и пальцем не пошевелит ради того чтобы исправить такую "мелочь".
>>1572884>кем-то разве было заявленоДа, было. Автодополнение подразумевает дополнение релевантной информацией, а не случайной.
>>1572863>>1572852Вот, кстати, сайт для поиска работы не #1!Вся суть бизнеса - главное кричи громче, что ты топ в своей сфере, а как там на самом деле - похуй.
>>1572900> это не одни и тожеКонечно нет. "Клиенты" обращаются к техподдержке, а техподдержка уже обращается к разрабам. Напрямую написать разрабам никто не даст. Вообще, разрабы - это следующая линия поддержки> Тех. поддержке похуй на разрабов, а разрабам на тех. поддержкуЕсли это какой-нибудь ООО Вектор, то да. Но не здесь.
>>1572891А что сео? Гугл тоже не на месте сидит и тоже научился запускать скрипты, а не тупо бегать по статической странице в поиске кейвродов.
>>1572939SSR, от части, да, нужен для того, чтобы покравать seo (генерация html на стороне сервера), но и так же у SSR есть куда других полезных свойств, о которых многие почему-то умалчивают.Самый простой и примитивный пример - это first-meaningful-paint, т.е. клиенту не нужно самому в браузере "рендерить / раскрывать" html, т.к. он уже полностью отдался с backend'a => отображение первых элементов будет на порядки быстрее, нежели чем в only client mode.Динамическая подгрузка бандлов и куча всяких других плюшек, о которых я даже и не буду упоминать.Ииииии т.д.
Аноны, где-то пол года учу JS сильно задрачивая каждую тему по учебникам you don't know JS, дополняя все множеством просмотренных видео. Буквально часами вникаю во все эти примеры, пытаясь понять все до конца. Собираюсь специализироваться в будущем на Реакте. Вопрос в том, нужно ли мне продолжать также дотошно во все это вникать, ведь, как мне быть кажется, это никому нахуй не нужно. У меня знакомый пару лет назад устроился на работу после курса юдеми блеать, а мне все кажется что ещё слишком многого не знаю. Почти потерял всю мотивацию, так как чем глубже вникаю в язык, тем больше мне кажется, что все мои знания поверхностны.
>>1573066Да нихуя не доделываю до конца, пара незаконченных, но они почти готовы. Обычно когда нужно что-то сделать, например ajax, я начинаю зарываться в тему целиком, хотя все давно через axios сделано порой строчек кода, но меня не отпускает, пока я не исследую все до конца. В каждой теме нахожу отсылки к другим, и начинаю дрочить их, забывая о проектах.
>>1573064>накомый пару лет назад устроился на работу после курса юдемиВот это самая главная ошибка вкатывальщиков - смотрят на прошлы опыт своих друзей. Ключевое слово в твоей фразе "пару лет назад". Да, пару лет назад какого-нибудь паршивого курса было достаточно, сейчас от тебя нужны не только идеальные знания ванильного JS, но еще и React + Redux, а также MongoDB.
>>1573252А что ты хочешь? Я сделал туду, написал резюме и пошел работать, мне не понять желание анонов выучить все кишки языка и вкатываться по полтора года
>>1562152 (OP)анончики, поясните как лучше и вообще как можно сделать. Каждые 5 секунд с api мне приходят данные. Мне нужно посчитать разницу между предыдущим числом, которое пришло 5 секунд назад, и тем, которое пришло сейчас. Как это сделать? Есть мысли, что тут как-то надо использовать замыкания, но пока хз как. Реакт если что!
>>1571697>Как сделоть так, чтобы для каждого юзера была своя напоминалка? Я вот щас думаю как такое запилить, и нихуя в голову не идет.>Храни переменную в localStorage
>>1573660и нужно ли оно так сильно?смотрю курсы академии, а там больше части вода про доступность, нарезку фотографий в фотошопе резиновая хуиновая верстка, или может все же туду проекта на реакте будет достаточно?
>>1573663Как можно не знать верстку, это же супер легко. Те кто пишут на JS обязательно должны знать как работает верстка. ОБЯЗАТЕЛЬНО СУКА.
>>1573692> это же супер легковот и посоветуй как прокачать скилл верстки.я не говорю что я совсем ее не знаю, но иногда выбешивают блочные модели и картинки просто пиздец.
как обычно... спрашиваешь в этом треде как изучить нормально верстку, и все затухает. А до этого все выебываются как легко это, знать верстку.
>>1573692> Pixel perfect> Одни свойства наследуется, другие почему-то нет. Хуй знает.> Из-за одного пикселя всё поехало> Сука, почему не работает width> На мобилках текст отображается по одному слову в строкеНу да, легко.
>>1573739>Pixel perfectЛегко.>Одни свойства наследуется, другие почему-то нет. Хуй знает.Осознай каскад. >Из-за одного пикселя всё поехалоОсознай box-sizing, влияние внешних и внутренних отступов>Сука, почему не работает widthПотому что прочитай спеку, ты высоту то задал?>На мобилках текст отображается по одному слову в строкеОсознай адаптивную/отзывчивую вёрстку
>>1573748Легко в том плане, что это легко осознать, т.к. это интуитивно понятно, если начать разбираться.
>>1573752Ну да, привык и ты привыкнешь. И чем больше в твоих действиях будет осознанности - тем быстрее привыкнешь и ты.
>>1573692>>1573702Вообще не нужно, если не пишешь под юй, не придумывай.Нахрен прогеру в 20м верстка, если давно для повышения специализации придумали всякие фреймворки с онлайн конструкторами?Все затухает, потому что это вопрос такой же примитивный, как и "как нормально вытирать жопу" - так же, как и нормально что угодно другое, трахаясь с ней версткой изо дня в день часами, желательно на вечнотекущих проектах.
>>1573751нихуя не интуитивно. Спеку читать слишком дохуя страниц.охуиллионы страниц. Из-за ебаной верстки, которая должна быть простой поидее. Но она сложная
>>1573768Ну значит для тебя всё будет сложное. Займись более простым делом, уступи дорогу более смышлённым ребятам.
Пилю расширение для лисы. Нужно заставить ебанный ютбуб разворачиваться на весь экран автоматически.Уже все попробовал и программно посылаю клавишу f, и посылаю все возможным айдишника от movie_player до player-container реквест на Фулл скрин. Но ютуб упорно не хочет этого делатьЧто за хуйня? Почему он не хочет разворачиваться. Что это дерьмо вообще означает?>В запросе полноэкранного режима было отказано, так как Element.requestFullscreen() не был вызван изнутри короткоживущего обработчика события, сгенерированного пользователем.
>>1573233Хех, ебать ты лошпек) Как там в 2018? Думал, что реакт выучил и всё? Хуй там плавал, надо ещё выучить редукс, контекст, аполло, рекомпоуз, саги, санки для сайд-эффектов, хелмет, дропзоун, спринг, дауншифт, фаербейс. Это уже не говоря о классике типа иммер, имьютбл и рамда.
>рекомпоузАлло, как там в 2020?) это же уже полтора года как неактуально. Сейчас бы хуки не знать, в 2к20 то, ну ты и отсталый конечно...
Аноны, я только изучаю js, и возможно где-то объяснялся ответ на мой вопрос, но я упустил и не могу найти.В общем мне в голову пришла такая мысль, что функция на пик2 должна перезаписать переменную "а" собственной самой функцией, и в таком случае код бы сломался, т.к. в аргументе функции по моей ебанутой логике будет сама функция, и такой код зациклится и выдаст ошибку или типа того.Но код работает, и нет никаких ошибок.Почему "a = someFunction ( a );" продолжает держать значение "2" когда я вроде бы как перезаписал эту переменную функцией?Я какой-то хуйни нагородил у себя в голове, и теперь не могу от этой мысли отвязаться, спаси анончик.
>>1573893Ебанутый нахуй тебе это надо?Лучшее бы ноду поставил и начал пилить свой первый мувисерчер.А так только время зря потеряешь.
>>1573893В строчке со стрелкой ты не переписал "a", а просто присвоил ей результат функции "someFunction". Что собственно хотел, то и получилЕсли хочешь >Перезаписать переменную "а" собственной самой функциейТо убери скобки в конце "someFunction"
>>1573983async/await не завезли?зачем городить сложные асинхронные флоу? может быть это проблемы архитектуры приложения?
>>1573996>async/await не завезли?Завезли, но в сагах много полезной обвязки и они более мощные. Например, их можно стопнуть, в отличие от промисов.>зачем городить сложные асинхронные флоу? может быть это проблемы архитектуры приложения?Ну блять, бизнес-логика сложная. Не все же пишут круды с двумя запросами на приложение.
>>1574009>их можно стопнуть, в отличие от промисовсомнительно async тоже можно стопнуть, но ладно>бизнес-логика сложнаядекомпозиция?
>>1574041Видел. Я их у себя на проектах использую, когда саги пишу. В ФП языках это вообще повсеместно используется. Она даёт ленивость. Генератор это же по-сути корутина.
Аноны, которые шарят за теорию, поясните:Вот в ЖС есть Область видимости, лексическое окружение, скоуп, [[Scope]], внешние лексическое окружение. Можно сказать, что: Область видимости = Лексическое окружение = Scope,[[Scope]] - просто свойство объекта, которое хранит информацию о лексическом окружении и ссылается на глобальное лексическое окружение
Аноны. Блять. Объясните пожалуйста как работают модули в JS. Как работает import и export. Я меня жопа горит уже. Смотришь во всех видео, во всех туториолах. У всех всё работает так просто. Они просто пишет export const catAge = 13; и в другом файле пишут import {catAge as cat} from './файл.js';, и у них блять всё работает. Как только я пишу ровно такую-же хуйню, у меня в консоли Uncaught SyntaxError: Cannot use import statement outside a module. Пытаюсь найти какую-то информацию, и не понимаю. Ставлю в index.html где подключал js, в script ставлю type="module". Он мне начинает писать какую-то такую хуйню "Access to script at 'file:///F:/AnotherProjects/JSTESTS/main.js' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.. Я не понимаю, пчоему у них всё работает, я делаю тоже самое и хуй.
>>1574186Двачую, у самого такая-же проблема. Я так понял, нужно накатывать вебпак, чтобы он потом все эти модули вместе собрал.
>>1574207Ну нигде ничего об этом не говориться, абсолютно. Они просто пишут export/import и всё работает.
>>1574186>>1574207>>1574223Встретились два одиночества.1) Нативно импорты/Экспорты работают только если подключить входной скрипт указав type="module"2) Свои поделия надо не из файловой системы открывать, а поднимать серверочек для них, хотя бы php -S localhost:80, о чём он тебе и пишет - протокол file:// не даёт делать кросс-доменные запросы, потому что ДОМЕНА И НЕТ НИКАКОГО. >Ну нигде ничего об этом не говоритьсяЭто само собой разумеется в 2020 году. Может, тебе ещё объяснять как ИДЕ поставить или как компьютер включать?
>>1574239>не из файловой системы открывать, а поднимать серверочек для нихCORS то флагами можно обойти, но там потом ещё много говна, например для модулей в ответе должен быть корректный mime тип. Подозреваю что твой однострочник на php не будет с этим заморачиваться тоже.В вебшторме есть встроенный сервачок или можно что-то типа http-server из npm взять
>>1574296>Подозреваю что твой однострочник на php не будет с этим заморачиваться тожеСложно проверить?curl -i localhost:8080/test.jsHTTP/1.1 200 OKHost: localhost:8080Connection: closeContent-Type: application/javascript
>>1574296Щас бы флаги на целый браузер вешать ради того, чтобы обойти то, что не нужно обходить. Зачем специально стараться, чтобы сделать не по-человечески?>однострочник на php не будет с этим заморачиваться тоже.Всё будет работать как надо, никаких маймов не нужно
>>1562734похоже на то, что у тебя отключен вывод в консоль, в правом уголке есть панелечка, там Лог, вот кликни на него чтобы завелось.
>>1574358А что сам посоветуешь лучше? Вебпак или бабел? Я слышал вроде что вебпак, это что-то более свежее.
>>1562152 (OP)Двач, как полюционировать эволюционировать с чувачка, пишущего код с первого пика, в чувачка, пишущего код со второго?
>>1574400>Прочитать про методы массивов да статьПочитал на learn.javascript.ru и написал первый пик по первой задачке, а в ответах был второй пик. Я глупый?
>>1574411Вряд ли это к глупости имеет отношение. Просто два разных подхода. Первый быстрее, но читается хуёво, второй медленее и понятнее, хотя и мутки мутные есть с тернаркой, мельтешит.Хочешь реально тупым себя почувстсовать? Сходи на codewars и после того как решишь очередную задачу - посмотри на чужие решения из разряда most clever, вот там у тебя самооценка-то и упадёт
>>1574399Писать код на JS. >>1574408Второй.>>1574411Да, ты тупая скотина, но не потому что написал второй код с пика, а потому что думаешь, что его написал такой же вкатывальщик, как ты, а не уже состоявщийся жопаскриптер.
>>1574399Это палка о двух концах. Я так на коудворс задачки решал, а потом кукухой поехал и начал ЛЮБЫЕ решения пытаться уместить в одну строчку с помощью кучей методов, мапов/редьюсов с абсолютно жуткими колбеками етц.Не делай так.
>>1574399Проблема первого пика не в том, что он не использует методы массива, а в хуевом именовании переменных. (если закрыть глаза на лишнее arr[key].length)Замени arr на words и key на index — сразу станет понятно.
А на сколько блокируется контора после неудачного собеса? Например я мувик не стану делать - приду к ним на вакансию, которая его не требует но контора с реактом работает - его по ходу дела изучать надо будет - мне скажут, что я не подхожу, а через месяц я уже сделал мувик и могу ли я снова к ним идти? Они ж обо мне помнить будут. Как к такому вообще относятся?
>>1574549Тебе во время отказа скажут, что добавили тебя в базу, и если им понадобится твоя кандидатура, то они тебе дадут знать. Если ты через месяц опять долбиться к ним будешь, то тебя просто в чс кинут как неадеквата.
>>1574551> что добавили тебя в базу, и если им понадобится твоя кандидатура, то они тебе дадут знать.А они как-то мониторить будут, как я развиваюсь разве?
>>1574549Зависит от конторы. Если после собеса тебе говорят, что перезвонят через неделю -- забей хуй, контора говно. Если получил фитбек, узнай, можно ли попробовать ещё раз в идеале, тебе это скажут сами.мимо устроился в датку с третьего раза
>>1574553кому ты сдался, мониторить тебя)если ты не прошел собес - получай недостающие знания и иди опять на собесы
>>1574556> если ты не прошел собес - получай недостающие знания и иди опять на собесы>>1574551> Если ты через месяц опять долбиться к ним будешь, то тебя просто в чс кинут как неадеквата.Где правда то? Я может за месяц недостающие знания получу.
>>1574561Мы все сейчас наблюдаем как ты их получаешь. Если бы тебе не хватало знаний, которые можно получить за месяц, то тебя бы взяли на исптытательный, но нет, тебе указали на дверь, значит за месяц эти знания не получаются.
Сколько примерно займет изучение React если выделить на чтение документации и специфических статей на хабре пол или целый день? И вообще, сложен ли он?
>>15745793 года опыта в чистом си. так уж и вышло - попытался в си++ провалилась, да и не нужно стало Игрался много с чем. Тесты на ноду кстати проходил - выходит в районе 50-70, не ниже. Сегодня прочитал про React на хабре - вроде начал понимать синтаксис и предназначение, но не уверен что этого хватит до собеседования. Вообще в принципе не знаю как быть увереным в том, что знаний достаточно. В самой ноде ничего сложного нет, если сравнить одно "многоуровневые и константные указатели и идеей разницы между константными указателями и указателями на константу" - в свое время у меня мозги взрывались. Но с понятием асинхронности после чистого си мне таки пришлось попотеть, да.
>>1574598Зачем раст? Конкретно в моем мухосранске вакансии есть только по плюсам, из которого мне только векторы и классы известны. Но на ноду хоть отбавляй хуева туча.
>>1574606Ну с твоим опытом плюсы тебе легче выучить будет, в долгосрочной перспективе это более перспективно, кмк.
>>1574614Работать на плюсах будет сложнее в разы и ответственности больше, но в основном ЗП мало отличается от ЗП в веб-разработке, но опять же - лично там, где я планирую работать. Но я слышал, что в ДС та же история. Остается только в других странах искать.
>>1574620А, так ты простой путь ищешь. Ну тогда ты зашёл туда, куда нужно.Ну у тебя глуповатый вопрос, это же всё субъективно и зависит от многих факторов. Изучить реакт не сложно, в нем нет ничего сложного.
>>1574586Если ты после трёх лет C, не осилил С++, значит React ты точно не осилишь, потому что это сразу ООП и функциональщина, а C это процедурная хуйня для дегенератов.
>>1574636>Если ты после трёх лет C, не осилил С++ООП-то я осилил. Но знаешь, если понаблюдаешь за холиваром С++ программистов, ты начинаешь понимать, что ООП - это лишь мелкая часть того, что надо знать С++ кодеру, ну и еще понимаешь, что нихуя не знаешь, а попытка узнать больше - будет стоить нескольку лет, и нет гарантий, что ЗП будет выше от ЗП обычной макаки.
>>1574641Надо не за холиварами наблюдать, а язык учить. Как ты свои 3 года C описать можешь? 1.5 года писал пет-проект уровня тудулиста, остальные 1.5 наблюдал за холиварами? Потому что какой-то ты слабенький для трёхлетнего сишника. Если у тебя асинхронность вызвала сложности, то значит ты не использовал многопоточность. Почему?
>>1574655>. Если у тебя асинхронность вызвала сложности, то значит ты не использовал многопоточность. Почему? Потому что не было идей для софта, которая нуждалась бы многопоточности. Я в основном писал модификации для видеоигр, где все строится на хуках и патчах, ну и еще всяких ботов. Лишь однажды правда мне пришлось еще один поток завести в точке входа дллки, но это мелочь на уровне использования _beginthread - все остальное на хуках и патчах и обмазыванию асмой.>Потому что какой-то ты слабенький для трёхлетнего сишникаКак определяешь? По личному опыту после освоения указателей и подводных работой с памятью вся сложность сишки в том, что приходится дохуя писать и ебаться опять же с той памятью, и отлаживать по сотню раз в час. Никакой корреляции с плюсами уже давно нет. Плюсы это другой мир, и максимум что ты возьмешь с сишки для удобного изучения плюсов - это синтаксис, и то плюсы уже превращаются в какое-то смешанное говно.>остальные 1.5 наблюдал за холиварами? Одного раза хватило в телеграм чатике по плюсам. Потом понял, что делать мне там нехуй. Тут даже не за холиварами наблюдать надо, а просто вчитаться в то, что они обсуждают.
>>1574666>Потом понял, что делать мне там нехуй.Лол, тогда тебе к яваскрипту даже близко подходить не стоит.
>>1574673Ну смотри. С++ это тот же JS, только там ты всё видишь и контролируешь, он логичен, а в JS половину ты не видишь, половина делается за тебя, при этом он в некоторых местах максимально не логичен и большую часть времени тебе нужно будет работать с объектами, которые ты не осилил.Это как с основ кидаться сразу к чему-то более высокому, понятно, что если ты основы не осилил, то JS тебя только запутает.
У кого-то есть архивчик с рассылками шаблонов от хтмл академии? помню раньше прилеплялидайте ссылку или как найти подскажите
>>1562152 (OP)Первый пик - задачка с learn.javascript.ruВторой - мое решение Третий - решение из ответов Чему автор учебника выбрал такое решение, а не как у меня?В чем мое решение хуже?
>>1574739С твоим решением вроде как проблем нет, просто с точки зрения теста ты все упростил. Итерацию пропустил, поиск значения пропустил. Если понимаешь пример из ответов, то проблем нет. Он просто сделан более самостоятельнее, что ли. И мне кажется пример с циклом какой-то грязный, при каждой итерации объявляется переменная, это по определению грязно - по крайней мере в СИ точно было бы. Зачем, если можно определить переменную перед ентрипонтом цикла, и затем просто переустанавливать значение на нужное?
>>1574739У автора понятно расписанное решение, которое может понять даже начинающий, а у тебя душня только ради того, чтобы всё в одну строчку спихнуть.
>>1574739Разве безопасно идти по массиву и одновременно менять его? На сколько я знаю в пхп за такое убивают. Я не прав?
>>1574748Нет, это задача из главы, где он и объясняется https://learn.javascript.ru/array-methods>>1574750Ну так в главе же map() проходится, вот я его и использовал
>>1574739Сорта вкусов.Я бconst newArray = arr.filter((item) => !(item >= a && item <= b)); arr.splice(0, arr.length, ...newArray);
>>1574750Разе map не очевиднее? Сразу понятно, что дальше будет выполняться что-то для каждого элемента массива, а как цикл работает, нужно думать, а потом еще думать, что в этом цикле делается
>>1574773>Я б>const newArray = arr.filter((item) => !(item >= a && item <= b)); arr.splice(0, arr.length, ...newArray);Спасибо, анончик, я даже о таком не подумал. А чему нежелательно идти по массиву и одновременно его менять?
>>1574782Большая вероятность нарваться на ошибки, особенно когда одни элементы логически зависят от других. Сами элементы в массиве изменять нормально, но не массив.
>>1574739Мысли у всех разные, а задача тривиальна и решения могут быть какие угодно.Хоть так можно const f = (arr, a,b) => { arr.forEach((item, index) => !(item >= a && item <= b) && arr.splice(index, 1))}
>>1574739Потому что у тебя одностроковая хуйня, а не решение. При этом всё это делается еще проще:function filterRangeInPlace(arr, a, b) {return arr.filter(value => value > a && value < b);}
>>1574837>inPlaceЖопой читаешь? Это не изменит исходный массив и вернет новый массив, а такого поведения быть не должно + у тебя даже сама задача решена не верно
>>1574782В основном из-за внезапных подводных камней для алгоритма: Во-первых, можно поменять элементы которые впереди и твой алгоритм охуеет когда дойдёт до них или внезапно для себя вылетит за пределы массива. Здесь тот случай, но тем не менее. А при итерации по индексам индекс придётся корректировать если наоборот удаляются элементы позади, i-- например в белом куске кода.Ещё компиляторам/интерпретаторам от такого хуёво, наверняка многие оптимизации идут по пизде.
>>1574849Это изменит область памяти на которую указывает переменная arr, но не содержимое этой памяти.
>>1574837>>1574850А ещё он отфильтровал наоборот.Лол, надо же так обосраться на задаче для джуниора с вьетнамского форума горлового пения.
>>1574858В моем случае почему-то ничего не меняется >Это изменит область памяти на которую указывает переменная arr, но не содержимое этой памяти.Почему не оставить это сборщику мусора?
>>1574873>>1574886Потому что массив передаётся в функцию по ссылке, а не по значению. Т. е. у тебя внутри массива arr это ссылка на массив, если ты будешь работать с этой ссылкой, т. е. вызывать методы arr, т. е. изменишь тот массив на который ссылается твоя переменная arr, в случае с присваиванием, ты своей переменной, в которой была ссылка, присваиваешь массив. Очевидно, что это никак не влияет на массив на который была ссылка в этой переменной.
>>1574907Достаточно в общих чертах их понимать. Реализовывать с нуля вряд ли понадобится, всё типовое уже давно написано за нас.
>>1574641Охуенное ООП без наследований в 99% процентов случаевФункциональщина в чем заключается?Реакт охуенно простой, вебпак и бабел дольше учиться настраивать, чем с ним разбираться
Аноны, чисто по опыту, посоветуйте, что учить поверхностно для веб-разработки, а что нужно знать досконально. Что устарело? Что набирает популярность?
>>1575070Обязательно- Верстка (css3 + html5), -JS (ES5 + ES6) + базово проглядеть JQuery, - React|Vue|Angular (любой один на выбор). - Redux \ Mobx- Git- Photoshop \ Sketch \ Figma базово - надергать картинки, читать размеры и т.п.Желательно - Уметь читать/немножко писать PHP- Английский уровня чтения доков- Немножко UX- NodeJS- консольные команды уровня ls \ cd \ rm -rfПолный гайд туть (шапку читай, остальное не читай, проблюешься).https://2ch.hk/wrk/res/1810392.html#1823504
>>1574739>Использует map? который сделан для изменения каждого члена массива, тупо для удаления по условию>Чему автор учебника выбрал такое решение, а не как у меня?>В чем мое решение хуже? Ну так то можно и ложкой гвозди забивать, а так как минимум читабельностью хуже.
>>1575176Оборачиваешь всю свою портянку двумя фигурными скобками и пользователь отсосет, при попытке что то вызвать
>>1575207Скрыл >>1575194>>1575204Потому что какое-то гамно заумное пишешь, когда можно было просто все обернуть { }
>>1575194Копирую его портянку. Меняю в редакторе. Блокирую загрузку этого скрипта на странице. Обновляю страницу. Вставляю отредактированную портянку.>>1575176Можно только осложнить, но это защитит только от школьников и бабушек. Если нужно что-то скрыть и запретить использовать, то это выносят на сторону сервера.
>>1574678Какая то шаблонная, стереотипная портянка про JS. Все в JS нормально с логикой. Дыры и странности есть в каждом языке.>>1574681Да не слушай ты его. Если системщик - вкатывайся в ноду.
>>1575414Да, в JS всё нормально, если рассматривать его как браузерный язык. Как язык, который позволяет за малое количество действий, получить результат. Но именно это и делает его сложным для освоения тем, кто до этого не разобрался в основах. У тебя большая часть делается за кулисами, от этого тебе может казаться что-либо не логичным, но вот если бы ты знал, что там делается за кулисами, то у тебя бы не возникало вопросов. И те, кто работал с С++, например, знают что происходит за кулисами, потому что в C++ ты это делаешь вручную и представляешь что и как работает.
>>1575418>>JS всё нормально, если рассматривать его как браузерный языкДа ты что? А я думал он одну нишу с Фортраном делит.Дальше пурга. Шли кулисы через кулисы.>> делает его сложным для освоения темОсваивать нужно не язык, а программирование.
>>1575428Я про это и говорю. С JS-ом ты программирования не освоишь, нужно что-то более низкоуровневое.
>>1575484Какой бред) в js есть все те понятия, какие есть в любом языке. Ну и понятное дело, что увлеченный человек не будет себя ограничивать одним языком
>>1575491Конечно. Передача по значению и ссылке тоже есть в js?))))0)) Может быть многопоточность в js есть?))) Может быть в нём есть явное приведение типов?))) Может быть в нём есть полноценные классы и структуры?))))
>>1575502>Передача по значению и ссылке тоже есть в js?))))0))Вообще-то да.>Может быть многопоточность в js есть?)))https://nodejs.org/api/worker_threads.htmlhttps://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API>Может быть в нём есть явное приведение типов?)))https://www.typescriptlang.org>Может быть в нём есть полноценные классы и структуры?))))define «полноценные»
>>1575502На сколько я понимаю "явное приведение типа данных", это не просто маня мантра, и "так разрабатывать удобнее!!11".В большей мере это позволяет компилятору лучше оптимизировать код. Но это лучше знает тот тип выше, который на C пишет
>>1575502>передача по значению и ссылкеЕсть конечно же. Объекты по ссылке, примитивы и функции по значению>МногопоточностьЕсть. Сервис воркеры. >Приведение типовTS, bucklescript, reasonml, flow к твоим услугам>структуры данных, классыЕсть, есть. Любую структуру ты можешь написать сам, в случае чего, тебя ничто не ограничивает. Так что твои кукареки необоснованные.
Анончики, не гнобите плиз, не могу понять как работает else в этой рекурсии. Вообще не вдупляю, почему рекурсия записывается в numbers и что оно там возвращает.
>>1575510>Вообще-то да.Показывай мне аналог пикрила. >https://nodejs.org/api/worker_threads.htmlПочитай чем поток отличается от процесса. >https://www.typescriptlang.orgИ? Зачем ты ссылку даёшь на другой язык программирования? >define «полноценные»Поддержка несколько конструкторов, хотя бы.
>>1575559>Любую структуру ты можешь написать самПроиграл с жопаскрипт макаки, которая не знает чем структура отличается от класса.
>>1575567Рекурсия никуда не записывается. Когда выполнение кода доходит до numbers = То начинается рекурсивный вызов функции до получения результата, т. е. пока endNum - startNum не будет равно 0.Как только результат получен, стэк вызовов начинает схлопываться, т. е. последний вызов вернёт [1]Далее выполнение кода продолжается, т. е. код, получивший [1], пойдёт дальше:numbers.push(endNum) endNum в предпоследнем вызове функции равен 2В итоге ты получаешь массив [1, 2] и возвращаешь его в предыдущий код, который находится на стадии numbers = И так по цепочке, пока самый первый вызов не получит массив [1, 2, 3, 4] и не добавит в него первоначальный endNum, т. е. 5
Аноны, можно ли передавать local state детям, если я уверен что изменение этого стэйта будет синхронным среди детей? Так же мне не раз в треде писали, что я либо не знаком/ не пользуюсь call-back. Я не раз читал что есть call-back функции, но видимо я не ловлю какую-то важную суть. Можете придумать какое-нибудь тривиальное задание для меня, чтобы я сам себя проверил на знание call-back.
>>1575541Нет, это как раз таки про удобнее. Строгая типизация нужна в первую очередь для отлова ошибок ещё на уровне написания кода а не в рантайме или при компиляции.Современные компиляторы/интерпретаторы – чёрная магия, им уже похер что оптимизировать.
>>1575669>Любую структуру ты можешь написать сам, в случае чего, тебя ничто не ограничивает.Вот здесь
Хочу нарисовать на canvas такую анимацию. Что почитать, чтобы без долгих объяснений фундаментальных основ про синусы и косинусы?
>>1575728Ты напрасно ищешь лёгкий путь, его нет. Если бы можно было без долгих объяснений, все бы этим занимались.https://www.youtube.com/watch?v=u5HAYVHsasc
>>1575748хотя, может быть оверкилл... Есть нужно просто нарисовать шейдер, то какой-нибудь shader-doodle https://www.npmjs.com/package/shader-doodle
>>1575743Под эту задачу не нужно никаких фрейворков. Там же нет сцены и всего один квад. Голый webgl и много шейдерного кода.Shadertoy ок для быстрого старта.
>>1575728Апи канваса что 2д что 3д низкоуровневое и тупое, такое же как все остальные апи для рисования. Сложность тут только в собственно программирование алгоритма анимации. Если ты этот шар взял из какого-нибудь туториала по плюсам или шейдерам, с него и начинай, потом портируешь на канвас но нахуя тогда уже?.
>>1575777Нужно же знать эти 50 строк, а зачем их знать, если можно взять готовый фреймворк? Я пробовал, получилось. Сложно, не нужно.
>>1575789такой же шар ты не нарисуешь, если не найдёшь автора, и он не отдаст тебе код. Можешь нарисовать "что-то типа", если с нуля потратишь несколько десятков часов. Для простого смертного это очень сложно, нужна тригонометрия и знание glsl.
>>1575801Незачем же.Какой-нибудь красивый эффект который дизайнер захотел на фоне проще в видео записать.
Какой проект реализовать? Чтобы не слишком сложно, и чтобы приобрести популярность хотя бы человек у ста...
>>1575838Создай искуственный интеллект который будет делать заебись по описанию, и сможешь приобрести популярность у предпринимателей.
>>1575841Я же сказал не сложно. И тем более разве на жаба скрипте можно написать искусственный интеллект?
>>1575861Так до тебя все простое уже написали, для всего есть несколько версий, уже нового ничего придумать нельзя.
Есть проблема, гугл не помог - в vs code не работает автодополнение в папках, которые созданы через create-react-app - если нажать ctrl+space, будет строка загрузки автодополнения, пустая естественно. Есть старые папки, созданные таким образом - в них все работает. Если попробовать ввести хоть что-то в папке с неработающим автодополнением - оно перестаёт работать во всех папках вообще, до перезапуска вскода. Как это можно исправить? Это что-то в node modules надо поменять? Перестановить вскод?Причём это не касается хтмл/цсс - там сниппеты работают исправно.
Привет аноны. Прошу вашей помощи. Есть какой нибудь способ приостановить выполнение функции до загрузки страницы?funstion test{var a;var b;var c = a + b;////// тут что-то, что остановит выполнение пока страницы не загрузитсяalert (c);}Спасибо
>>1573780Бампирую вопрос. Уже перерыл все что можно все равно не пашет. Что сука характерно если себе на страницу заебенить ютубплеер, то с ним можешь делать что душе угодно, но вот с плеерами на ютубе тебе делать ничего не дают. Что за хуйня?Ну же аноны, неужели никто здесь из вас не писал расширения для браузеров? Не верю. Учить жс и не писать расширения это же пиздец тупо.
>>1573780>>1576161Тебе же руским языком браузер написал:>В запросе полноэкранного режима было отказано, так как Element.requestFullscreen() не был вызван изнутри короткоживущего обработчика события, сгенерированного пользователем.Не пустят тебя в полный экран без клика пользователем на кнопку.И слава богу.
>>1576175Да сука, что же они за мудаки то такие. Какого хуя я не могу автоматизировать некоторые простые вещи. Ублюдки, блять. Реально без ручного нажатия никак?
>>1576195Ну короче я наконец разобрался, оказывается это даже не вина ютуба. Просто сам ебучий FullScreen API сделан так что:>По соображениям безопасности полноэкранный режим может быть запущен только из обработчика событий (то есть инициируется пользователем);То есть я изи могу сделать кнопку которая вызывает фуллскрин, но автоматически его запускать ни ни. ЕБаный стыд, как же я горю.
Есть тут такие люди, которые знают и любят вабаудио?Идет какая-то дикая (пол-секунды) задержка от микрофона, хотя цепочка там проще некуда:navigator.getUserMedia({audio:true}, micCB);function micCB(_in){ var mic = audioContext.createMediaStreamSource(_in); var sp = audioContext.createScriptProcessor(256, 1, 1); mic.connect(sp);}
>>1576198Хочешь, чтобы каждый сраный второй сайт пытался автоматом свою охуенно важную рекламу тебе в фулскрин запихнуть?Посмотри на муделей, которым про Notifications API рассказали - 2019 год прошел под знаком "Нет, не хочу оповещений. И здесь тоже. И здесь. Заткнитесь нахуй"
>>1576319Напоминаю, что эти оповещения так заебали пользователей, что все браузеры будут отключать их нахуй по умолчанию.
>>1576319Ну вообще так то у расширений вроде как побольше прав чем у кода с сайтов. Хотелось бы что ими можно было фулскринить. ДА и тем более там большими буквами всегда пишется что выход из фулскрина ESC, так что ничего страшного бы не случилось.
>>1576319Ну не, ничто не переплюнет "Мы что-то слышали про закон о cookies который пытались принять в одной стране на которую наш сайт даже не ориентирован, но нам надо заставить нажать вас на кнопочку потому что так делают все."
>>1576328"Зарегистрируйтесь, чтобы увидеть больше". Охуенно, что это обходится так же элементарно, как и запреты на копирование.
2020 год. Консоль браузера от ведущего разработчика софта при открытии сервиса ведущего разработчика софта.
Я правильно понял, что <Suspense> из react@experimental react-dom@experimental позволяет не писать в рендере что-то вроде{isLoading ? <div>Loading</div> : <UserPage>...</UserPage>} Он сам внедряет этот прелодер и чекает, что данные зафетчены и потом уже рендерит компонент?Судя по этой статье https://reactjs.org/docs/concurrent-mode-suspense.html#approach-3-render-as-you-fetch-using-suspense
>>1576712Нет, неправильно ты понял. >Он сам внедряет этот прелодер и чекает, что данные зафетчены и потом уже рендерит компонент?Нет. Да и как ты себе такое представляешь?
>>1576732>Нет. Да и как ты себе такое представляешь?Я предполагал, что новый Suspense из ветки experimental, проверяет переменные в которые сохраняются данные из промисов (например запрос к API), если промисы выполнены, то рендерит компонент, а если нет, что показывает то, что указанно в fallback
>>1576746Там в примере есть комментарий // Try to read user info, although it might not have loaded yet и в рендере нет никаких проверок на то, что данные загружены
>>1576058Бамп. Серьёзная проблема, что делать? Скажите на что ориентируется вскод, когда решает, какое автодополнение показывать и показывать ли.
>>1577091У меня один раз получилось так, что у меня их было два - 64 и 32х бит. Переустанавливался один из них, но запускался другой. Долго прифигивал в этом всем, пока не обнаружил это. Понятия не имею, как так могло получиться. Я ставил его один раз и потом просто обновлял время от времени.
>>1576058>нажать ctrl+spaceПодскажите, а в маке какая комбинация для этого? Command+space открывает спотлайт поиск
>>1562152 (OP)перекат https://2ch.hk/pr/res/1577313.htmlперекат https://2ch.hk/pr/res/1577313.htmlперекат https://2ch.hk/pr/res/1577313.htmlперекат https://2ch.hk/pr/res/1577313.htmlперекат https://2ch.hk/pr/res/1577313.htmlперекат https://2ch.hk/pr/res/1577313.htmlперекат https://2ch.hk/pr/res/1577313.htmlперекат https://2ch.hk/pr/res/1577313.htmlперекат https://2ch.hk/pr/res/1577313.htmlперекат https://2ch.hk/pr/res/1577313.html