Вы видите копию треда, сохраненную 9 июля 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Больше пары строк кода в посте или на скриншоте ведут в ад.
Для программирования на HTML https://codesandbox.io
Для Node.js с консолькой https://repl.it/languages/nodejs
Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Документация - https://developer.mozilla.org
Руководство для вката - https://github.com/acilsd/wrk-fet#javascript
Какими инструментами в связке React Redux пользуются для работы с localstorage, sessionstorage и куками?
подскажите какой командой можно удалить определенные символы из строки
Все, нашел, из-за disabled не работало, помог useEffect на изменение стейта isDisabled с проверкой, что оно false
replaceAll возвращает новую строку, не изменяет str, вообще в js строки иммутабельные, их невозможно изменить
str = str.replaceAll(/[t]/g, '') надо
Вот сделал задание по npm, смерджил чисто случайно, пока тыкал кнопки. Потом сделал второе задание (по вебпаку) на той же ветке, изменив код. Ментор мне говорит - почему в коде исходники из прошлого задания?
Не понимаю, а куда должны исходники деться, если я с ними работаю
То есть нужно просто через thunk совать данные в сториджи? Мне казалось, что для всего этого используются отдельные либы, типа redux-persist, но инфы об этом мало. Как будто на это все забили.
значит если создать функцию с этой командой, она работать не будет?
типа если туда подставлять разные переменные с текстом
Контент редукс стора обычно слишком большого объёма для локалстораджа, не говоря уже о куках. Так что волшебной либы которая бы это всё орагнизовывала просто нет, так как это слишком ситуативно для общего решения.
function foo(str){ return str.replace(/[t]/g, '')};
const str = 'document';
const substr = foo(str);
console.log(substr)
Ну раз тебе платят, готов тебе помочь за 100$
Я так и сделал, но меня смущает, что у нас тут как бы побочный эффект и работать с ним нужно соответствующе, а выходит, что я функцию с фетч кручу без useEffect.
UseEffect используется когда у тебя побочный эффект рендера . У тебя же не рендер
По жыесу буду читать ydkjs бесплатно на гитхубе в оригинале, в пизду переводы. Уже видел в комментариях, как там путали в каком то разделе понятия, из за чего весь смысл терялся
Документация на официальном сайте React.
Сеньоры, подскажите, что почитать/посмотреть/пройти чтобы плотно въехать в парадигмы программирования?
Чтобы разобраться в ООП и ФП и начать нормально применять во всех проектах.
Пока что для меня это какие-то абстрактные наборы правил без явных профитов.
Стек - реакт и тс
Начать с Википедии - там все парадигмы расписаны по категориям и описаны. И в каждой статье есть ссылки на литературу.
ru.reactjs.org/docs/hello-world.html
ru.reactjs.org/tutorial/tutorial.html
Когда то был курс Буры на юдеми, но я уже несколько лет прошло и хз че там по актуальности информации
Насколько хорошо нужно знать умножение кассиру в пятерочке? Вообще считать нужно уметь или за вас все считает калькулятор?
Как ответ понимать? Как то, что касиру это нахуй не нужно ибо там все считают калькулятором. Или как то, что касир это по определению знать должен? Алсо, я основы верстки знаю, как что работает там тоже. Но мне сама верстка не нравится.
Типа, когда я версткой занимаюсь, ощущение такое же как когда на улице вижу собаку которая себе анус лижет. А вот писать всякие штукенции на решаете прям по кайфу, особенно когда пол дня пытаешься понять какого хуя роуты нихуя не работают, а потом оказывается что в 6 версии синтаксис полностью поменяли, или когда с мапингом ебешься чтоб засунуть в массив jsx массив пришедших объектов и вот когда спустя полдня все начинает работать прям так по кайфу становится, как оргазм. А всякие стилями и прочей хуетой просто не могу себя заставить заниматься.
Шас все надо знать и фронтендеру сиквель с редисами и бекендеру реакты если ты родился в стране третьего мира
Для начала учи хтмл теги, почитай про семантическую верстку, изучи селекторы, приоритеты ксс правил, флекс, грид, медиазапросы, адаптивность. Сверстай пару адаптивных макетов.
Далее учи основы синтаксиса жс, основы дом апи, события, веб апи (в основном fetch) Изучи основы веба, принципы работы хттп и клиент серверной архитектуры (без углубления), что такое рест приложение. Подними на ноде простое приложение с парой эндпоинтов. Пусть это будет туду лист, фронт напиши на ванильном жиэсе, вставляй тудушки innerHTML, а храни тудушки на беке в простом массиве. После читай доку реакта и делай туду на нем. Далее пытайся устроится стажером в ИП Пахом
ооп в жиэсе используется в тырпрайзе, и еще на беке с тайпскиптом. Так что забудь и учи сри-акт.
Видосики владилина минетова информативнее?
Смотря какой проект. Смотря какая галера.
Придется потерперть
Так вот, мне на стажировку 3 месяца дали, уже почти полторы недели прошло, как думаете, за какой срок нужно уложиться, чтоб не выкинули со стажировки?
Ну выкинут, пойдешь в другое место стажироваться, но уже со знанием вуя. И так шажек за шажком. Я тебе че бесплатный психолух?
На канале ulbi tv есть видиво курс по вью
Идёт 3 часа
Если смотреть на 2х, то предполагаю, что за полтора часа можно осилить. Завтра с утра уже сможешь разгребать офферы с предложениями 300ккнаносек
Тебе в любом случае нужно знать вёрстку отлично, чтобы быть нормальным специалистом, а не быдлокодером
А куда ты предлагаешь идти анону, если не берут джуном?
2-3 месяца под лидом попердолит проектики и вкатится в работу, всяко полезнее капчевания, например.
Или ты предлагаешь натянуть корону и дрочить дома пет проекты, пока тебя не заметят и не возьмут сразу сразу на 60-70к?
Всякое бывает, но если до сих пор не взяли на такие позиции, то мб просто стоит трезво оценивать себя?
Корону на себя не обязательно натягивать, надо себя просто уважать и иметь адекватную самооценку. Можно спокойно на 40к залететь после 4х месяцев дрочки пет-проектов без стажировок всяких ебаных, где тебя подрочат 2-3 месяца, а потом киданут еще. Достаточно уметь подпиздеть где надо, хорошо разговаривать на собесах и не унижаться ни перед кем.
+ написать норм резюме и принимать во внимание разные факторы, типа сезона поиска работы, настроения hrки и т.п. Но идти 3 месяца хуярить на дядю за 10к, а еще чаще забесплатно, это реально себя не уважать надо. Это, конечно, лучше капчевания, но не на много
Нужно чтоб я нажимал удалить итем, это обрабатывалось, атолько потом переходило на другую страницу - из-за этого вариант с <Link> из роутера не подходит
https://ui.dev/react-router-programmatically-navigate/
onClick = (item) => delete(item).then(() => navigate('/items'))
ну mdn же мужичёк
Это не так работает немножко
>хочу идеально выучить CSS
Тогда только дока.
А еще прочитай 20 книг, которые самые популярные по запросу "книга по CSS". Ну естественно, все надо будет попробовать на практике для закрепления. Главное не забывать с выходом обновлений обновлять и знания.
Идеально выучит - удачи тебе в твоем начинании.
Приветствую вас в самом петушинном треде, братья!
Говно ебаное.
Я помню туториал по экспрессу "создадим контроллеры для роутов. Для этого создадим папку контроллерс и нахуячим туда вот этот код".
Я и сам таких туториалов могу навысирать сколько захочешь.
ну кстати меня он очень впечатлил почему-то своими видосами, но потом я просто почитал доку экспресса и мдн и понял, что там всё есть, я такие видосы смотрю, чтобы сравнить доку и реальную разработку. потому что например после прочтения доки реакта не совсем очевидно, что сейчас весь код на хуках пишется
Кста, а почему они раздел с хуками так глубоко засунули? Я вот тоже читал доку, смотрел курс (правда старенький), думал, что хуки это какая то еба технология и оставил на потом. Начал пытаться говнокодить используя классовые компоненты, а оказывается сегодня нужно ебашить в функциональном стиле и использовать хуки, которые наоборот, только упрощают говнокодинг. Да, моя проблема, что я не поинтересовался сразу, но им бы стоило как то переписать доку
Мне кажется, стоит понимать, как работают в том числе классы. Как и ванильный жс тоже надо знать.
ваще концепт стейта и пропсов через классы понятнее, хуки это просто очень удобная запись. я думаю, им в доке стоило бы прямо так и написать на каждой странице с классовыми компонентами, что сейчас всё это пишется хуками + сделать альтернативный код на хуках на каждый пример с классами
Петух птица гордая, в цирке не выступает!
Библиотеки конечно торчат такие как rxjs но там базовые типы на поверхности лежащие и хорошо задокументированные. Практически нет ситуации чтобы оператор какой-то внутренний тип выплюнул за которым нужно в исходники лезть.
Еще ты должен знать что в пейсбуке не любят все что делается в микрософт и гугле. И тупаскрипт там не любят.
Все они сволочи, не думают о простых работягах. Фейсбук вываливает неоптимизированное говно, ведь ему пох, их соцсеточку в ПС не ищут и будут ждать загрузку хоть минуту, если придется.
Вкатился, реактомакака 2 года коммерческого опыта к твоим услугам.
>>37083
Нет, в useState или в стору закидывай
>>37459
>Вообще верстать приходится или у вас отдельно верстальщики в команде есть?
Я когда закатился нихуя верстку не знал, хотя работа подразумевала умение верстать. Прошло 2 года, я так и нихуя не знаю. Оказалось, что почти все кейсы элементарно гугляться за пару секунд.
Есть такое. Я когда перекатывался с Vue на реакт знатно охуел, что реакт в плане типизации значительно хуже Vue, в котором то вообще нормальной типизации нет
Зависит от контекста. Для SEO, по моему мнению, хуйня полная. Для уменьшения FCP он имеет место быть.
Да ты ебанись, если краулер будет вместо простого разбора HTML выполнять все скрипты на странице, скорость индексации упадет в разы, а датацентры станут жрать на порядки больше киловатт энергии.
Чаво?
SSR ведь и юзают во многом для того, чтобы кроулеры нормально могли сайт посещать и индексировать.
>скорость индексации упадет в разы, а датацентры станут жрать на порядки больше киловатт энергии.
Да. Но почему из-за этого должен страдать разработчик веб-ресурса, а не разработчик бота для индексации?
>>37996
Ты видимо не так меня понял. Из-за того, что поисковые движки не умеют нормально работать с асинхронным кодом разработчикам приходится вхуяивать еще одну потенциальную точку отказа в виде SSR.
Потому что иди нахуй, вот почему. Затраты на разбор HTML это миллисекунды времени и несколько килобайт памяти, а выполнение твоих говноскриптов это уже секунды и мегабайты. Это твоя задача пролезть в индекс поисковика, а не наоборот - у поисковика собирать в свой индекс всякое кривое недоделанное говно. К тому же сайт всегда может закэшировать рендер страницы и раздавать его разным поисковикам, чтобы у Греты Тунберг было счастливое детство.
id - а что не так, зачем тогда в жабоскрипте существует document.getElementById()
превратится в кучу хлама
Это почему?
да че не так то, епта?
Названия классов всратые.
Форматирование всратое.
Использовать айдишники - зашквар
Где-то классы через -, где через _
Одни и те же вещи названы разными именами
За footer_fon нужно просто плюнуть в ебало
У вас как на зоне, какие-то свои понятия, которые вы пересказываете, но не объясняете суть
нахуй ваш тред, токсичные сучки
Тебе действительно не понятно почему класс footer_fon - говно? Или почему называть цельсий одновременно cels и celsi это долбоебизм?
>почему класс footer_fon - говно
В душе не ебу, класс может быть каким укажешь, так почему нельзя написать именно так?
>зачем тогда в жабоскрипте существует document.getElementById()
Чтобы делать ReactDOM.render(<App/>, document.getElementById('app-root'))
а насчет цельсия, я к нему обращался по имени класса, а Валюе использовал для создания нового класса уже при создании других элементов на странице при помощи ЖС функции
Ну значит ты дурачек и с тобой неочем разговаривать. Уебывай и пиши как хочешь, зачем только наше мнение спрашивал?
Я напрямую спросил почему нельзя так назвать класс, а ты говной изрыгаешься. Душнокодер, спок
Так ты мне не платишь чтобы я терпел твою тупость. Ты уже третий пост не можешь понять, что не правильного в названии класса, в котором смешаны английский и русский язык транслитом. Как насчет загуглить и прочитать статейки как правильно называть css классы или переменные в программировании в целом? Как насчет ознакомиться с БЭМом или какой-нибудь другой общепринятой конвенцией нейминга? Нет, слишком сложно, буду жаловаться что мне на дваче не разжевали.
Хртьфу неосилятору
Погоди, так вместо строки - "почитай статьи как называть классы" ты высрал 10 постов ни о чем. Ну да, ты грамотно распределяешь свое время и ни капли не чсв-шная зазнавшаяся веб макака.
А насчет оплаты - как же вы заебали со своим программистским подходом - я сделал это, я должен получить это взамен.
Это как когда ко мне знакомый программист подходит и говорит - непонимаю, почему у меня с тней не складывается, 6 лет вместе, а поговорить не получается. Да потому что уебище, неумеющее в общение, привыкшее мыслить простой логикой.
За подсказку насчет статей спасибо, а в остальном ты душный токсик
>>38064
орнул
русский транслит -всегда лучше заменять английским. сейчас пока у тебя программа из 10 строк - тебе это не заметно. Но в будущем когда ты напишешь мулата сына виндоус и андроид с автономным ии - твой код будут колупать иностранцы которые все знают англ, но не знают транслитный русский. fon=background. сейчас иностранцы не смотрят твой код, тебя просто не возьмут на работу из-за этой привычки, а хипстеры со смузи скажут что ты би, а не тру.
у тебя в одном классе для пробела -
в другом классе для пробела _
так нельзя. везде должен быть единый стиль либо первое , либо второе. потому что когда строк будет миллион ты запутаешься между -_
btn я только на третьей секунде подумал что это са-баттон
твое название желательно сделать таким, чтобы ты через 5 лет и я через пять лет - поняли по названию с первой секунды что оно значит конкретно temperatureCalculatorDeleteButton
btn btn-add это неправильные названия для хорошего кода(особенно первое), потому что я и ты через 5 лет непоймем с первой секунды не напрягая мозг и не лазя по коду что за кнопка бтн рядом с кнопкой адд
в титле твое краткое всратое описание КАЛЛ. вместо него должно быть Перевод цельсия в килограммы \ калькулятор температуры
я учил 10 лет назад, еще до отсидки. возможно если твой проект в теории размещается в интернете - ты должен прописать ключевые слова и дскрипшн хтмл теги. чтоб получить +5чел с яндугла
мог бы заморочиться и сделать больше дизайна
мне не нравится название класса контент. это слово может обозначать контент страницы и контент калькулятора и контент строки в калькуляторе
для разграничения зон попробуй иногда сильно контрастные отступы
____________
____________
______________________
______________________
______________________________________________
______________________________________________
русский транслит -всегда лучше заменять английским. сейчас пока у тебя программа из 10 строк - тебе это не заметно. Но в будущем когда ты напишешь мулата сына виндоус и андроид с автономным ии - твой код будут колупать иностранцы которые все знают англ, но не знают транслитный русский. fon=background. сейчас иностранцы не смотрят твой код, тебя просто не возьмут на работу из-за этой привычки, а хипстеры со смузи скажут что ты би, а не тру.
у тебя в одном классе для пробела -
в другом классе для пробела _
так нельзя. везде должен быть единый стиль либо первое , либо второе. потому что когда строк будет миллион ты запутаешься между -_
btn я только на третьей секунде подумал что это са-баттон
твое название желательно сделать таким, чтобы ты через 5 лет и я через пять лет - поняли по названию с первой секунды что оно значит конкретно temperatureCalculatorDeleteButton
btn btn-add это неправильные названия для хорошего кода(особенно первое), потому что я и ты через 5 лет непоймем с первой секунды не напрягая мозг и не лазя по коду что за кнопка бтн рядом с кнопкой адд
в титле твое краткое всратое описание КАЛЛ. вместо него должно быть Перевод цельсия в килограммы \ калькулятор температуры
я учил 10 лет назад, еще до отсидки. возможно если твой проект в теории размещается в интернете - ты должен прописать ключевые слова и дскрипшн хтмл теги. чтоб получить +5чел с яндугла
мог бы заморочиться и сделать больше дизайна
мне не нравится название класса контент. это слово может обозначать контент страницы и контент калькулятора и контент строки в калькуляторе
для разграничения зон попробуй иногда сильно контрастные отступы
____________
____________
______________________
______________________
______________________________________________
______________________________________________
Я тебе сказал где у тебя проблемы, прямо по пунктам. И ты не можешь самостоятельно додуматься, что тебе, возможно, стоит что-то про твои ошибки почитать?
>Ну да, ты грамотно распределяешь свое время и ни капли не чсв-шная зазнавшаяся веб макака.
Угорать над агрессивным вкатуном-неосилятором это действительно грамотный расход моего времени. Меняю время на лулзы по выгодному курсу
> А насчет оплаты ко-ко-ко
Это я к тому, что я тебе ничего не должен вообще, а ты требуешь разжовывания базовых вещей
>прямо по пунктам.
Лол, вот человек над твоим постом по пунктам написал, а ты с самого начала сказал:
классы всратые, форматирование всратое, айди - зашкварфутер фон - пиздец
Охуеть у тебя доводы. Это ты недогоняешь, пчел. Повторюсь - за направление на статьи о классах спасибо, нашел кучу типичных названий для классов, которые всем понятны и я могу их использовать, но первые твои посты - это то же самое, что и мой код, понятен только для того, кто написал
Спасибо анон, а насчет дизайна не понял, дизайн же через Цсс, ии я не о том подумал
Я с тебя ничего не требовал, маня, я в треде кинул пост, у кого есть желание - могут ответить, у кого нет - проходят мимо. Но ты начал засирать, ничего не поясняя, вот я и спросил еще раз - что не так.
И вообще, в любом случае мне это помогает, хоть спустя 10 постов ты что-то дельное выдавил из себя, а на эмоции мне похуй, я люблю нахуй послать, если человек выебывается
окей гугол, почему использовать id в html плохо?
окей гугол, как правильно форматировать код в моей IDE?
окей гугол, как правильно называть классы?
Собственно не удивлен, что использующий слова "пчел", "спок", "маня" оказался дауном.
>окей гугол, почему использовать id в html плохо?
>окей гугол, как правильно форматировать код в моей IDE?
>окей гугол, как правильно называть классы?
Закинул в копилку фраз для гугла, а ты даже полезен бываешь, но все равно еблан)
Поясните вкратце про webpack, tree shaking, sass/less и gulp.
Вот у меня есть ui библа (fomantic ui), сейчас стили подключаются из cdn, большая часть стилей не используется, переписываю на свои.
Собираюсь разобраться с сборкой проекта, и как понял, при сборке происходит минификация файлов, удаление ненужных зависимостей и т.п. Мне нужно это как-то настраивать? Нужно как-то конфиг для этого дорабатывать в nodejs/webpack?
Также у них есть отдельные css/sass/less репы. Для сборки есть разница какой использовать, или это чисто для разработки?
Жаль в реале тебя не вижу, небось в остальных сферах кроме кодинга еще хуже меня, как это обычно бывает с такими душнилами
Вебпак бери. Галп не бери (оно мертво).
Кого ты обманываешь? У тебя же интеллект на уровне 12летнего ребёнка. Буквально любой в этом треде лучше и умнее тебя во всем.
Ты даже самостоятельно не смог понять что плохого в смешивании русского и английского даже после того, как тебе на это указали. Это даже базовым знанием нельзя назвать, это просто здравый смысл.
Репы чего? webpack это упаковшик жиэса в один файл (несколько файлов). Минификация css делается плагинами webpack. У вебпака есть документация https://webpack.js.org/guides/tree-shaking/ Гальп это инструмент автоматизации сборки, деплоя, чего угодно. Для фронта обычно достаточно дефолтной автоматизации, которая с вебпаком идет . Да и для большинства задач можно плагин вебпаковский найти. Так что гальп ненужен.
> Вкатываюсь из бэка в эти ваши фронты.
Но в бэке же больше платят. В чем смысл?
> Собираюсь разобраться с сборкой проекта, и как понял, при сборке происходит минификация файлов, удаление ненужных зависимостей и т.п. Мне нужно это как-то настраивать? Нужно как-то конфиг для этого дорабатывать в nodejs/webpack?
Если дефолтное поведение и результат устраивает, то не нужно. Если хочешь настроить под себя, то нужно. и это кстати не очень просто. Все эти настройки бабелей, вебпаков и прочего - отдельный пласт знаний
> Также у них есть отдельные css/sass/less репы. Для сборки есть разница какой использовать, или это чисто для разработки?
Если я правильно тебя понял, то это не имеет значения для конечного результата. Сборщик в итоге все преобразует в ванильный css.
>Репы чего?
Чисто стилей, т.е. изначально в библе есть и жс и цсс, но есть отдельные оптимизированные дистрибутивы без жс зависимолстей.
>>38129
>Но в бэке же больше платят. В чем смысл?
Я и не хочу в фронт идти, на текущем месте я типа бэкенд разраб на питухоне, но т.к. у нас нет четкого разделения на разрабов, то и в том числе и neo4j и graphql с архикектором настраивал, и сча обязали фронт пилить для нашего бэка. Потихонечку собесаюсь, но пока либо мало предлагают, либо говнопроекты.
Вью как я понимаю вообще пизже во всем, кроме количества вакансий. Да и там вроде уже на пятки наступает Реакту. Наверно когда-нибудь все же выучу его основательно и буду надеяться что устроюсь именно на него.
Наверно потому,что платящему твоей галере деньги кабану проще дать затрещину тебе, чтоб ты делал все как у людей, чем звонить в гугл и требовать чтоб краулер работал по другому.
Вообще не понимаю боли с тсом и реактом.
Сперва было сложно, но это потому что я сам тс не знал. А когда тс освоил, то реакт на нем не вызывает проблем практически.
При минификации CSS неиспользуемые классы не удаляются, потому что на этапе сборке в общем случае нету инфы о том, будут ли они использоваться на сайте.
Есть PurgeCSS, который grepает исходные файлы на наличие классов и если не находит, то не включает их в сборку. Но я не знаю, есть ли способы заставить его работать с css modules или css in js фреймворками.
SASS версия твоей либы вряд ли поможет, импортить отдельные файлы ты можешь и в обычном CSS. Ну, собственно, это и можешь попробовать - установить css либу через npm и импортить отдельные файлы, а не всё сразу.
Может, можно ещё пожать css gzipом.
В общем, простого решения нет, разбирайся сам, что лучше подходит.
>А когда тс освоил, то реакт на нем не вызывает проблем практически.
Да, расскажи нам как keydown обработчик навесишь на инпут
например :
<----------------------->
<----------------------->
true
<----------------------->
<--------------->
true
<------------------>
<--------------->
true
<------------------->
<-------->
true
<------->
<-------------------->
true
<---------->
<------->
false
я был крайне удивлен что все ответы на стаке не верны, на скл это можно легко сделать использую битвин
CASE WHEN( RSN.start NOT BETWEEN @START AND @END AND RSN.end NOT BETWEEN @START AND @END
AND ( RSN.start > @START OR RSN.end < @END ))
но джс в джс все как всегда через пизду собаки
например :
<----------------------->
<----------------------->
true
<----------------------->
<--------------->
true
<------------------>
<--------------->
true
<------------------->
<-------->
true
<------->
<-------------------->
true
<---------->
<------->
false
я был крайне удивлен что все ответы на стаке не верны, на скл это можно легко сделать использую битвин
CASE WHEN( RSN.start NOT BETWEEN @START AND @END AND RSN.end NOT BETWEEN @START AND @END
AND ( RSN.start > @START OR RSN.end < @END ))
но джс в джс все как всегда через пизду собаки
// пары дат (a, b) и (c, d)
// a <= b, c <= d
moment(c).isBetween(a, b) || moment(d).isBetween(a, b)
>в джс все как всегда через пизду собаки
Сравнение через операторы < и > это для тебя через пизду собаки? Совсем ебанулся?
> a <= b, c <= d
это не работает
>moment(c)
сейчас бы ради простенькой дженерик задачки подключать сторонние библиотеки
>это не работает
Ну так отсортируй, ёпта
>сейчас бы ради простенькой дженерик задачки подключать сторонние библиотеки
Во-первых, тут для проверки isOdd подключают сторонние библиотеки. Во-вторых, напиши isBetween сам, раз настолько анальный.
если интервал (c, d) содержит внутри себя (a, b), то не будет работать
тру решение - чекать max(a, c) <= min(b, d), нужно будет написать дополнительно функции min и max для дат
>>Ну так отсортируй, ёпта
что тут сортировать то?
оно не работает и работать не может принципиально
>>напиши сам isBetween
именно об этом спршиваю, если у кого-то написан уже такой ГЕНЕРИК МАСТ ХЕВ ЕБАНА В РОТЕ ЕГО ДЖС функционал
я не верю что фронт насколько ебанутый что сидит без БАЗОВОГО функционала
Ты имеешь ввиду доступ из одного редюсера к состоянию, за которое отвечает другой редюсер? Да никау, наверное, зачем тебе вообще это нужно..
> — Двач, а почему я суп так медленно ем? И мне очень неудобно.
> — Потому что ты ножом суп ешь? Ложкой ешь.
> — Ложкобляди не нужны! Бамп! Еще варианты? Бамп!
если так посмотреть то сам джс тогда не нужон если в нем за ложками каждый раз в магазин надо бегать, надеюсь он здохнет уже когда ниюуть, нахуя он существует вообще, пиздец аж трясет
как я написал инже мне нужны не сторонние библиотеки в которых нет а конкретно решение для этого функционала
если нужно то полотном кода, только не гребанной библиотекой где кроме 1 фичи которая мне реально нужна в прибавок идут 100500 бесполезного мусора который нагружает страницу и запускает гребанный майнер
Да, чета я херню там написал
Вот так верно
// пары дат (a, b) и (c, d)
// a <= b, c <= d
!(b < c || d < a)
я проверил вроде как работает...
>>>2238266
В общем реально работет! Спаибо за помощь Десу~
const textareaText, setTextareaText = useState(initValue) если я initValue получаю как prop который приходит асинхронно? А то он в initValue записывает пустую строку и не дожидается подгрузки и не перерендеривает
не, хочу чтобы поле currentRoute было ссылкой на объект из другого поля или можно проще и лучше как то сделать? тестовое запарное решаю какое-то
Вызов то в родительском компоненте происходит, а не в текущем, разве я могу на проп await накинуть?
>prop который приходит асинхронно
Что ты имеешь ввиду? если prop меняется вычисляй в
useEffect(() => {
setTextareaText(prop)
}, [prop])
Нет, я делаю api запрос, получаю данные об итема, и одно из этих данных передаю в другой компонент и там записываю в initalValue, но туда записывается не то что я хочу а пустое значение
А промисы или стримы нефиг передовать через пропсы
Ну, ты можешь просто сначала создать объект, а потом записать его два раза в initialState. Но я не понимаю, зачем ты вообще пытаешься пихать рауты внутрь редакс стейта, чего ты этим хочешь добиться?
Я помню тебя, ты тот челик с фоном кошки на крыше дома. Ну как там с работой, взяли?
Читан доку по реакт хукам, в правилах написано, что хуки должны быть на верхнем уровне, только в реакт-функции
Например у меня есть форма с инпутами, кнопками и у них обработчик события onChange или onClick.
Если я сверху напишу функцию handleChange и потому буду использовать ее на кнопке это считается нарушением или нет?
Норм
Так у тебя хук на 5 строке, как раз на верхнем уровне. Всё норм. Если бы было что-то не так, все бы превентивно закрашилось
То есть, сам хук это 5 строка (useState), а функцию setValue уже можно использовать где угодно?
Сори за дебильный вопрос
const [value1, setValue1] = useState('');
const [value2, setValue2] = useState('');
const [value3, setValue3] = useState('');
onChange = () => {do something}
return <>
<BigFatComponent>
<SomeInput onChange={onChange1}>
<SomeInput onChange={onChange2}>
<SomeInput onChange={onChange3}>
</>
Если я onChange буду триггерить внутри любого из инпутов мой BigFatComponent тоже каждый раз будет ререндериться?
Не везде вроде. В useEffect, например, нельзя.
Но такие детали лучше всего на практике осваивать
Тэк я сам проверил, в общем да он ререндерит этот bigFatComponent, я туда засунул список на 10000 элементов и инпуты стали лагать при вводе
Понял, чаю
Я не про конкретно как на этом пике, а вообще, общий способ как такое верстать
Заебись, спасибо
А что с ним не так, с этим обработчиком?
В тестовом задании такое требование!) Вот тестовое кстати:
Реализовать приложение, представляющее из себя роутинг, построенный на основе дерева. Изначально дерево имеет только корень: { route: ‘/main’, nodes: [], title: ‘Main’ }. Все дерево нужно хранить в Redux.
В дерево можно добавлять узлы. Находясь на конкретном узле, пользователь имеет возможность добавить узлы: для этого он заполняет форму с полями: route, title. После заполнения формы пользователь ее сабмитит (submit) и новый узел добавляется под текущий.
Каждый роут приложения по сути представляет из себя визуализацию узла дерева, на странице есть:
1. Title. Находится в хедере.
2. Кнопка “Перейти к родительскому узлу”. Находится в хедере.
3. Форма добавления нового узла. Находится в основном контенте сайта.
4. Список ссылок на дочерние узлы (Link-и), при нажатии на которые пользователь переходит на данный роут (узел).
Если у текущего узла 0 дочерних узлов, то страница оформлена в цветах Facebook, если > 0, то в цветах WhatsApp.
Количество и содержание узлов не ограничено.
Количество дочерних узлов также не ограничено.
Например, есть дерево с роутами main -> additional -> info -> ayf, если я введу в роуте localhost:3000/main/additional/info/ayf, то у меня должен открыться самый дочерний узел.
Текущий роутинг сайта строится на актуальных данных о состоянии дерева.
Основной смысл задания: моментально при добавлении узлов визуальная составляющая должна меняться.
Использовать:
React - для пункта 3. React-router - для пунктов 2,4. Redux - для всей работы с деревом и его хранения в персисте. SCSS - для стилей. Любые иные либы, которые могут упростить жизнь, но не делают работу за вас.
Верстка должна быть респонсив (достаточно мобильной версии).
Проект создать через create-react-app.
В чем прикол? Всё работает. ЧЯДНТ?
Жесть. В целом не сильно сложно, но времени прилично займет.
Не люблю тестовые, обычно именно в те конторы, которые их дают - в итоге и не берут. По крайней мере у меня так.
для 1 условия)import java.util.Scanner;
class Main {
static Scanner scan = new Scanner(System.in);
public static void main (String[] args) {
int[] at = new int[10];
for(int i = 0; i < 10; i++) {
test(at);
}
System.out.print("Размер массива = ");
int n = scan.nextInt();
if (n < 1) return;
int[] a = new int[n];
input(a);
print(a);
System.out.println( Solution(a) );
}
static void test (int[] at) {
System.out.print(" Массив: ");
for (int i = 0; i < at.length; i++) {
at = (int) (Math.random() * 10) + 1;
System.out.print(at);
System.out.print(' ');
}
System.out.println();
System.out.print(" Результат: ");
System.out.println( Solution(at) );
}
static void input (int[] a) {
for (int i = 0; i < a.length; i++) {
System.out.printf("a[%d] = ", i + 1);
a = scan.nextInt();
}
}
static void print (int[] a) {
System.out.println("\nМассив:");
for (int j : a) {
System.out.printf("%4d", j);
}
System.out.println();
}
static int Solution (int[] a) {
int vo = 1;
int ub = 1;
int max = 0;
boolean next = true;
for (int i=0, k=1; k < a.length; i++, k++) {
if (a[k] > a) {
vo++;
if (next && i != 0) {
ub = 1;
}
next = false;
}
if (a[k] < a) {
ub++;
if (!next && i != 0) {
vo = 1;
}
next = true;
}
if (ub > vo && max < ub) {
max = ub;
}
if (ub < vo && max < vo) {
max = vo;
}
}
return max;
}
}
Для 2)Даниил
Даниил9:59
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
Random random = new Random();
int n;
//do {
System.out.print("Input even number: ");
n = scan.nextInt();
// if (n % 2 != 0) System.out.println();
// } while (n % 2 != 0);
int[] arr = new int[n];
int leftSumm = 0, rightSumm = 0;
System.out.print("Числа: ");
for (int i = 0; i < n; i++) {
arr = random.nextInt(16);
System.out.print(arr + " ");
}
System.out.println();
for (int i = 0; i < (n / 2); i++) {
leftSumm += arr;
rightSumm += arr[n - 1 - i];
}
leftSumm += arr[n/2+1];
String s;
if (leftSumm > rightSumm) s = "Левое число больше правого";
else if (leftSumm < rightSumm) s = "Правое число больше левого";
else s = "Левая и правая половинка равны";
System.out.printf("Left summ = %d, Right summ = %d\n", leftSumm, rightSumm);
System.out.println(s);
}
}
для 1 условия)import java.util.Scanner;
class Main {
static Scanner scan = new Scanner(System.in);
public static void main (String[] args) {
int[] at = new int[10];
for(int i = 0; i < 10; i++) {
test(at);
}
System.out.print("Размер массива = ");
int n = scan.nextInt();
if (n < 1) return;
int[] a = new int[n];
input(a);
print(a);
System.out.println( Solution(a) );
}
static void test (int[] at) {
System.out.print(" Массив: ");
for (int i = 0; i < at.length; i++) {
at = (int) (Math.random() * 10) + 1;
System.out.print(at);
System.out.print(' ');
}
System.out.println();
System.out.print(" Результат: ");
System.out.println( Solution(at) );
}
static void input (int[] a) {
for (int i = 0; i < a.length; i++) {
System.out.printf("a[%d] = ", i + 1);
a = scan.nextInt();
}
}
static void print (int[] a) {
System.out.println("\nМассив:");
for (int j : a) {
System.out.printf("%4d", j);
}
System.out.println();
}
static int Solution (int[] a) {
int vo = 1;
int ub = 1;
int max = 0;
boolean next = true;
for (int i=0, k=1; k < a.length; i++, k++) {
if (a[k] > a) {
vo++;
if (next && i != 0) {
ub = 1;
}
next = false;
}
if (a[k] < a) {
ub++;
if (!next && i != 0) {
vo = 1;
}
next = true;
}
if (ub > vo && max < ub) {
max = ub;
}
if (ub < vo && max < vo) {
max = vo;
}
}
return max;
}
}
Для 2)Даниил
Даниил9:59
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
Random random = new Random();
int n;
//do {
System.out.print("Input even number: ");
n = scan.nextInt();
// if (n % 2 != 0) System.out.println();
// } while (n % 2 != 0);
int[] arr = new int[n];
int leftSumm = 0, rightSumm = 0;
System.out.print("Числа: ");
for (int i = 0; i < n; i++) {
arr = random.nextInt(16);
System.out.print(arr + " ");
}
System.out.println();
for (int i = 0; i < (n / 2); i++) {
leftSumm += arr;
rightSumm += arr[n - 1 - i];
}
leftSumm += arr[n/2+1];
String s;
if (leftSumm > rightSumm) s = "Левое число больше правого";
else if (leftSumm < rightSumm) s = "Правое число больше левого";
else s = "Левая и правая половинка равны";
System.out.printf("Left summ = %d, Right summ = %d\n", leftSumm, rightSumm);
System.out.println(s);
}
}
Мне уже почти оффер кинули один:
- Разработка мобильных хентай игр и админки под них.
- Стек: Typescript, NextJs.
- ЗП: 40к
По моему я выиграл в этой жизни.
А ты совсем без опыта вкатываешься? Сколько искал работу до этого момента? Сколько учился?
и не говори, я сам в ахуевозах с предложения, еще не принял просто потому, что на неделе еще 4 собеса)0)
Мне хх предложил вакансию жс гейм дев - 300к все дела. Я охуел, но работу менять пока не хочу
мимо-миддл
По-моему по зп очевидно, что его рассматривают как интерн-джуна. Не?
у меня вообще никакого опыта работы, 20 лвл, отучился год с лишним в универе и бросил нахуй. В резюме припиздел естественно про фриланс, но я врать умею, если ты не умеешь, то не надо пиздеть, обосрешься лишний раз просто.
а как учился, если не секрет?
Их стек то знаешь? ТС и некст? А то за 4 месяца и жс то толком не освоить
>Их стек то знаешь?
От меня не требуют знания ts и next, хоть их основы и знаю. Требуют js и все.
>а как учился, если не секрет?
Первые 2 месяца по 8 часов в день хуярил, потом тяп ляп. Писал простые приложения, смотрел видосы на ютубе, смотрел спираченые курсы с торрента, читал статьи, и все это на инглише
Кста, помню тестовое которое я делал.
Есть 4 кнопки. На каждой есть название какого-то сабредита.
По клику на эту кнопку, ты должен тянуть с соответствующего сабредита рандомный пост через апиху и отображать его.
Алсо, кнопки должны плавать туда сюда по экрану (они как блочные элементы - в столб расположены), а при клике замирать на пару секунд.
Ну и ещё какие-то условия были.
В учебных целях почему бы и нет, потом в тайпскрипт можно скатываться без проблем
С учетом твоего возраста зарплата более чем нормальная. Поучись сперва у мужиков уму разуму. Через три - четыре месяца получишь второй разряд джуниора. Через еще год получишь миддловский разряд. К тридцати пяти годам будешь иметь сеньерский разряд. Вот тогда и будешь себе требовать зарплату 80 тысяч как у опытных мужиков.
А как ты хотел? Зато у нас всё надежно, полный соцпакет, путевки в санаторий, мы же не какая-то шарашкина кантора, а Интрфейсо Литейный Завод Имени Красного Знамени 8-го мото-кавалерийского полка
А что тут не так?
Нет, мне насрать, я еще учусь в шаражке и до первой работы далеко
https://jsfiddle.net/25y1b6he/
Иди кури доку iconv-lite
import fetch from "node-fetch";
import iconv from "iconv-lite";
(async () => {
const resp = await fetch("https://vologda.carpet-gold.ru/");
const ab = await resp.buffer();
const decoded = iconv.decode(ab, "windows-1251");
console.log(decoded);
})();
Проиграл с этого вкатуна. Даже доку не додумался открыть к используемым либам, сразу хуярить код побежал.
Нет, но спасибо, что подсказал за buffer.
Cделал так, изменил request чтобы он получал буфер а не текст
rp({
uri:url,
encoding: null //получаю не text а buffer
})
и уже потом получилось html = iconv.decode(Buffer.from(html), 'windows-1251');
Но вообще это извращение какое-то, декодировать из буфера, а не текста?
>>38665
Ну не стукай, тем более сам знаешь, что разрабам либ на доки класть, фиг найдешь их.
> декодировать из буфера, а не текста?
Текст из высших сил возникает по твоему? Там точно такой же декодер стоит, только Buffer -> utf8
Ещё один вопрос рендеру, вот у меня там изначально react.StrictMode на видосах у челов такого нету, собсно чё конкретно делает этот строгий режим?
Импортится*
Хз как у тебя написан проект, но по факту да - везде, где юзается JSX - нужен реакт. То есть если есть синтаксис реакта - "html in js", то должен быть импорт реакта. В каких-нибудь вспомогательных файлах, которые, например, считают что-то или с сервером взаимодействуют без jsx - импорт не нужен
В новых версиях в каждом .jsx файле импортить реакт не нужно, такое только в старых версиях реакта. Strict компонент лучше сразу убрать, хуйня полная, приносит только проблемы.
Если не обращаешься к React.* напрямую то он тебе нахуй не нужон, раньше еще надо было всегда импортировать даже когда только JSX разметку пишешь но это поправили в какой-то версии.
На странице очень много svg-элементов, кнопки, чекбоксы, инпуты, прогресс-бары svg'шные, везде стоят svg'шные фоны и границы,
Это интерфейс игры.
Вроде не нужно, у меня работало. Ну там тоже .tsx файлы.
>импорт реакта нужно делать в каждом jsx файле иначе ничего работать не будет
С 17 версии реакта не нужно. Ну или если у тебя правильно лоадер настроен тоже не нужно
https://reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html#whats-different-in-the-new-transform
Если пользуешься babel, то можно настроить, чтобы автоматически нужные реакт функции импортировались:
https://babeljs.io/docs/en/babel-preset-react#runtime
(runtime automatic)
В create-react-app вроде по умолчанию стоит runtime automatic.
Мне кажется, нормально, если тебе надо повесить классы на отдельные элементы внутри svg, чтобы его анимировать через CSS, например, или если хочется перекрасить svg иконку на hover (и не хочется пердолиться с filter или mask-image). По крайней мере я видел, что на сайтах обычно все иконки сделаны как заинлайненный svg.
Из бэкграунда - спрингбут, ехал джоин через джоин и кривая хуйня на реакте на коленке за 5 минут.
Вот тебе вообще отдельная благодарность за пояснение с бабелом.
let bigNumber = 322
function print1() {
let bigNumber = 228
print2()
}
function print2() {
console.log(bigNumber)
}
print1() // 322
Функции важно лишь то, где ее объявили, а не откуда ты ее вызываешь. Вот ты обращаешься к bigNumber, он лежит на уровне выше, то есть 322. А то, что ты вызываешь ее рядом с bigNumber = 228 ничего не значит, потому что функции лишь важно где ты ее объявил
Я не умею объяснять
Нормально объяснил.
ТЛДР: принт2 объявлена в глобальной области видимости и видит только переменные внутри себя и в глобале.
Чтобы принт2 видела переменную из принт1, надо либо передать её аргументом в принт2, либо объявить принт2 внутри принт1.
bigNumber с 228 является локaльной. Почему print2 должен ее видеть? Но в print1 можно не инициализировать новую переменную а изменить глобальную и тогда тогда print2 покажет уже 228
Замыкания это немного про другое.
Прочитай you don't know js про области видимости и замыкания.
Книга тебе объяснит намного понятнее,ч ем любой из нас.
Я читая YDKJS задался этим вопрос, правда читаю русский перевод. По сути получается, функция принт2 запоминает глобальную область видимости где то у себя? И поэтому в принт1 вызов принт2 возвращает число в глобальной области? Это же замыкание получается? Пушто если бы он прыгал по областям то вывел число, что обьявляется в принт1?
ну нет, это не замыкание. Замыкание было бы, если бы:
let bigNumber = 322
function print1() {
let bigNumber = 228
return function print2() {
console.log(bigNumber)
}
}
let closurePrint = print1()
closurePrint()
Вот тут у нас print1 замыкает внутреннюю функцию print2. Поэтому когда мы вызываем её в closurePrint() - возвращается 228.
В твоем случае функция просто возвращает значение из своей области видимости. Не вижу тут никакого замыкания. Я по крайней мере так понимаю эти термины, объяснять всегда тяжко.
https://learn.javascript.ru/closure
вот это ещё почитай
Если ты задаешься такими вопросами, то ты во-первых вообще не умеешь в бэк (даже на питоне), во-вторых ты не умеешь в разработку в целом и программирование в частности.
Спец с практическим опытом в год вообще не задает таких вопросов. Он уже в состоянии сам оценитвать все перспективы переката в любую специализацию сферы разработки, не говоря уже о самих языках.
Человек, который идет на форму спрашивать сможет ли он после языка А освоить язык Б - это человек который вчера написал хелловорлд.
Так что вместо того, чтобы прыгать, выбери для себя уже стек и инструменты, и освой профессию нормально. Иначе ты никогда не научишься думать.
const response = await fetch(url)
const json = await response.json()
Зачем нам json = await response.json() ? Что там await-ить? Мы уже получили из сети результат через response = await fetch(url), нахрена второй раз это делаем?
Всё так
>Человек, который идет на форму спрашивать сможет ли он после языка А освоить язык Б
Жопой читал?
Я про перспективы развития вопрошаю
>After the initial fetch() call, only the headers have been read. So, to parse the body as JSON, first the body data has to be read from the incoming stream. And, since reading from the TCP stream is asynchronous, the .json() operation ends up asynchronous.
>Note: the actual parsing of the JSON itself is not asynchronous. It's just the retrieving of the data from the incoming stream that is asynchronous.
?
Ну вроде работает, но написано через жопу
Читай как оформлять код, чтоб не серить переменными прямо внутри script, читай про ФП, чтоб не серить глобальными переменными
>читай про ФП, чтоб не серить глобальными переменными
ты про то, что нужно засунуть всё в одну функцию и подключать файлик через скрипт сурс? ну да, я это знаю, начало задачи было на мдн, хотелось бы услышать более продвинутых советов по коду в плане логики, 100% тут много кто делал таймеры
Я бы как минимум отделил логику, которая занимается отрисовкой таймера в DOM, от самого таймера, у тебя сейчас всё вперемешку. В общем, сделал бы разделение на view и model. Алсо нафиг ты пользуешься этими set/remove attribute, просто .attributeName = true/false пиши же.
Приведение кода к стандартному формату. Я имел в виду может вебшторм умеет теги DIV-ов на одну строку переносить, если они расположены коряво и внутри ничего нет. Но походу только с пробелами и строками работает. Уже проверил, так что зря вопрос задавал
>ты про то, что нужно засунуть всё в одну функцию и подключать файлик через скрипт сурс
Нет я про парадигмы разработки
Будешь искать работу - пригодится, что б у интервьюверов кровь из глаз не текла
https://habr.com/ru/company/ruvds/blog/434112/
https://devpractice.ru/fp-python-part1-general/
о, спасибо за атрибут через свойства, я как-то подзабыл, мне не первый раз пишут про вью и модел. но я не понимаю, что нужно сделать? таймер рисует только 2 строки в коде, там где clock.textContent. если не лень, то можно поподробнее?
ааааааа ты про это, да есть косяк, спасибо за подробное разъяснение!
Так нафиг нужен таймер, который не умеет считать минуты и часы?
я все 60 секунд надеялся, что у тебя есть часы
Чёт такое мб. Не знаю. Я САМ ВКАТЫШ((9
https://jsfiddle.net/yja1238s
Да, класс, я слышал тут, что классы говно, но, мне кажется, тут они норм вписываются в качестве вью для компонента. Код, который сам таймер двигает, я не трогал, потому что не понял его...
>Жыесфидле
Сколько миллиардов долларов стоила разработка этого ебаного дерьма?
Сука, какое название, такой и сервис
>Doing some research, I found functional programming concepts like immutability and pure function.
>Автор этой статьи, выполнив некоторые изыскания, обнаружил концепции функционального программирования наподобие иммутабельности и чистых функций.
Вот от этого дерьма тебя блевать не тянет, а от какого-то кода видите ли кровь должна потечь из глаз.
я заметил, что большинство сайтов не оптимизировано под мобилки, форсят пользоваться приложениями на мобилках
Попробуй погуглить, вдруг ответ уже есть.
https://stackoverflow.com/questions/3590058/does-html5-allow-drag-drop-upload-of-folders-or-a-folder-tree/
Я этот код уже использую, но есть две проблемы. При перетаскивании папки с более чем 100 файлами он выводит в консоль только первые 100 файлов, также при вот таком вот коде:
function UploadFiles(){
ScanFiles();
UploadFiles();
}
где ScanFiles() - метод, который ты мне скинул, а UploadFiles() метод, который к примеру выведет в консоль "Файлы загружены", сначала почему то выводит в консоль "Файлы загружены", а только потом выполняется метод ScanFiles(). Почему так?
<img src="../img/name.png" />
Но работают при импорте:
import A from "../img/name.png";
<img src={A} />
>С вебпаком
><img src={require('./govno.jpg')} />
https://webpack.js.org/api/module-methods/#es6-recommended
>Version 2 of webpack supports ES6 module syntax natively, meaning you can use import and export without a tool like babel to handle this for you. Keep in mind that you will still probably need babel for other ES6+ features.
Да и фигурные скобки в реакте нужны только, если будешь шаблонные строки использовать...
Ещё и комментарии от выродков спамящих своими говногруппами вроде бы почистил
Если внутри ScanFiles() промисы, то евоный код может выполнится позже чем UploadFiles.
>Как мне понять, что в ScanFiles()
Открыть доку к твоей либе? console.log? Дебаггер? Совсем пердиксы отупели.
Если в хуке стоит стейт по дефолту — плеер показывается
Если ты отправляешь его ИД фильма через форму ввода — пустая страница. Я вообще не понимаю почему так происходит.
Думаю что тут какие-то приколы с useEffect? Как мне правильно все починить?
>>39627
Во-первых, сабмит по умолчанию перезагружает страницу. Так что нужен evt.preventDefault()
Во-вторых, у события сабмита формы нет evt.target.value. Вэлью есть у инпутов, а у формы в evt.target будет сама форма с инпутами, из которых ещё надо будет доставать значения.
Самый простой фикс для тебя - на пикриле
[title, setTitle] = useState('')
Ну и да, грузить скрипт в реакте странно, хрен его знает на кой черт тебе этот скрипт сдался. Но я в твои дела не лезу, если грузишь, значит есть за что.
А зачем, кстати, так происходит - перезагрузка страницы при сабмите? Чому так формы работают?
Потому что по дефолту она хочет отправить пост запрос с данными формами.
Предположу, что так как экшн не указан, то по дефолту она вместо этого просто переходит на '/'
Бля, я и забыл, что жс переписали полностью за год. Буду оформлять возврат
Мне книги этого издательства не понравились. Ниодну не дочитал.
Ещё интересно бы было разборы оптимизации кода на реакте посмотреть(оптимизация нагрузки приложения да и вообще устоявшиеся бест практикс для реакта)
Заранее спасиб
Ну начнем с того, что ты вообще читал по архитектуре приложений и их оптимизации, без специфики реакта?
или типа это потому что фильтер - это метод массивов в отличие от пользовательской функции? в этом дело?
В общем. Либо дайте советов мудрых, как самому привыкнуть к этому вот(еще, блядь, и разметка, стиль и код в одном файле, охуеть, блядь), либо покидайте более валидных аргументов. Я пока что только придумал пиздеть что тайпскрипт может предостеречь от части ошибок.
Хуй с картинки не понимает что такое декларативный подход
Дайте 5 кг яблок, которые зеленого цвета и не гнилые - декларативная инструкция
Возьмите пуль от телевизора. Нажмите зеленую кнопку Меню.
Кнопками вверх вниз выберите на экране пункт яркость. Это императивные инструкции.
>Я через create-react-app создавал приложение.
Дальше можешь не продолжать. Иди учи вебпак, потом вопросы задавай.
То есть декларативные инструкции описывают результат и не говорят как едо достичь. Императивные инструкции описывают как получить результат, но не говорят какой он будет.
Чето взвизгнул с тебя, так и представил, как ждун на полном серьезе предлагает переписать 50к sloc проект на другой фреймворк из-за того, что не умеет пользоваться ide.
>Поясните за декларативный и императивные подходы.
Всё очень просто. "Декларативный" в жс мирке это хайповый термин, под которым понимают point-free нотацию и последовательность вызовов, офомрленную в виде композиции по типу pipe/flow.
не, он там объясняет вполне доходчиво, только любой декларативный метод будет на самом деле абстракцией над императивным чи да чи не? вот об этом никто не пишет, а просто вот тут мы используем фильтр, а тут код сами пишем
>>39787
я бы сказал, что императивные - это когда ты пишешь чёткие пошаговые инструкции в коде, а декларативные - это когда ты пишешь pure функции или в это случае пользуешься функциями жс, которые выполняют инструкции
То, что это кал ебаный, который превращает часть твоего солюшна в черную коробку, где нихуя нельзя нормально настроить, надо либо искать пакеты от васяна, либо делать eject и чистить вилкой говно в конфигах.
ну вот, а зачем они выёбываются, у меня прям триггер на эту тему
У фронтовиков такая каша в голове из императивный декларативный потому что они сиквель не видели в жизни?
Я умею пользоваться IDE. Но под ваш ебаный жс нет IDE, есть ебучие говноредакторы, которые не умеют в нормально в Vue с его охуительнейшим дизайнерским решением по использованию однокомпонентных файлов. А если я буду писать на чистом JS - это будет слишком сильно выбиваться из общего стиля, потому что все пишут в однокомпонентых файлах, а я буду как пидор-гной-скотина писать на чистом JS.
Ну и да. Я - БЕКЕНДЕР, блядь. 5 лет бекенд хуячил, сейчас(последний год) - из-за того что и так все перехуячил - волевым решением руководства - я расширяю горизонты своих обязанностей и морфирую в фуллстака.
>>39792
Окей, покажи мне удобный инструмент для дебага vue, с его охуительным однокомпонентным подходом. Я искал-искал, все что нашел - расширение для бровсера(которое бесполезно кстати), да всякие китайские говноподелки, которые работают через жопу.
То, что это ебаная поделка от вкатунов, которая написана криворукими макаками, имеющая 2к зависимостей уровня isOdd, не имеет нормальной возможности конфигурирования. Тоже самое про vue-шный аналог 1 в 1.
сикиль я действительно не видел ирл
Ну давай тебе на примере SQL:
Select Age from Users where Users.Gender = 'female' order by Age
Под капотом уже движок субд это превратит во что-то типа такого(абстрактный си-подобный язык):
int ExecuteQuery(QueryContext context, QueryResult result)
{
assert(contxt != 0);
assert(result != 0);
AccessCheckContext aContext = new AccessCheckContext();
auto aResult = eContext.CheckAccess(context);
if(aResult == 0){
result->Error = "Access error. " + aResult.Error;
}
auto table = engine.GetTable(context->TableName);
if(table == 0){
result->Error = "Table "+contxt.TableName+ " not found";
return 0;
}
auto expression = context->Expression;
QeuryExecutionContext eContext = new QeuryExecutionContext (&table);
auto result = eContext.ComputeExpression(context->Expression);
if(result == 0){
result->Error = "Compute fail. " + eContext.Error;
return 0;
}
result->Result = eContext.Result;
return 1;
}
Так вот. В первом случае - тебя не ебет как оно исполняться будет. Не ебут шаги и вообще. Ты просто хочешь получить возраст пользователей, которые женщины, отсортированный по этому самому возрасту. Что там будет СУБД делать - не твои проблемы. Во втором - ты буквально по шагам выполняешь алгоритм. При этом то что я там за ООП скрыл - это еще куча кода, которые еще более пошаговые и страшные.
Я правда не знаю в каком контексте в ЖС это вот используется. Язык - императивный, можно только мимикрировать под декларативное программирование.
Ну давай тебе на примере SQL:
Select Age from Users where Users.Gender = 'female' order by Age
Под капотом уже движок субд это превратит во что-то типа такого(абстрактный си-подобный язык):
int ExecuteQuery(QueryContext context, QueryResult result)
{
assert(contxt != 0);
assert(result != 0);
AccessCheckContext aContext = new AccessCheckContext();
auto aResult = eContext.CheckAccess(context);
if(aResult == 0){
result->Error = "Access error. " + aResult.Error;
}
auto table = engine.GetTable(context->TableName);
if(table == 0){
result->Error = "Table "+contxt.TableName+ " not found";
return 0;
}
auto expression = context->Expression;
QeuryExecutionContext eContext = new QeuryExecutionContext (&table);
auto result = eContext.ComputeExpression(context->Expression);
if(result == 0){
result->Error = "Compute fail. " + eContext.Error;
return 0;
}
result->Result = eContext.Result;
return 1;
}
Так вот. В первом случае - тебя не ебет как оно исполняться будет. Не ебут шаги и вообще. Ты просто хочешь получить возраст пользователей, которые женщины, отсортированный по этому самому возрасту. Что там будет СУБД делать - не твои проблемы. Во втором - ты буквально по шагам выполняешь алгоритм. При этом то что я там за ООП скрыл - это еще куча кода, которые еще более пошаговые и страшные.
Я правда не знаю в каком контексте в ЖС это вот используется. Язык - императивный, можно только мимикрировать под декларативное программирование.
Ну вся разница в этих двух примерах только в том, что в первом сравнение элемента с x зашито в код, а во втором - вынесено в функцию smaller. Поэтому если надо будет поменять условие фильтрации, то в первом случае надо переписывать всю функцию filterArray, а во втором - просто передать в filter функцию с другим условием.
>ебучие говноредакторы, которые не умеют в нормально в Vue с его охуительнейшим дизайнерским решением по использованию однокомпонентных файлов
Сублим нормально хавает .vue файлы
Из книг ничего, так пару статей и видоса про single responsibility и подобное.
>>39636
Спасибо анончики, а скрипт гружу потому, что в нем вся логика плеерных агрегаторов. Я хз как мне сделать по другому. Просто положить его в папку рядом? Вариант с сабмитом это уже очередная версия попытки решить проблему, до этого я и просто кнопку прикручивал, но оно не работало. Не работает и с тем вариантом, который предложил анон (если я его правильно понял). С импута пишем каждое состояние формы в стейт, а потом кнопкой записываем его в другой стейт из которого берем значения для JSX.
Но оно все еще не работает, просто не реагирует ни на что. Кнопка точно содержит и передает значения, я проверил это алертом. Если в initialState есть число, плеер появляется.
Пока на бэкенде работал, тоже переписывал все со спринга на дотнет каждый раз, когда бин не инжектился?
На бекенде есть нормальные IDE. Я могу просто помнить первые буквы названия метода - мне подскажут, я выберу из нужых вариантов то что мне нужно, еще и подсветят какие аргументы куда вставлять. А накатив пару плагинов - еще и автоинжекты, рефакторинг всего и вся парой клавиш, автоматическая проверка и исправление стилей по тем что установлены, проставление копирайта, анализ кода на потенциальные проблемы и много чего еще. И с тем же ангуляром хотя бы близкий экспириенс от разработки, не настолько удобно, но жить можно. Тут же, я будто даун: Бля, как там эта хуйня называлась-то, бля, а где она лежит хотя бы, бля, а был ли вообще код который мне нужен или мне нужно писать новый.
В бекенде все есть, настраивается одной кнопкой. Сиди-перди, думай об архитектуре, о перформансе, либо, если уже лень - сиди двачи читай, а не как ебанат ищи в проекте как блядь что обзывается и как мне это посмотреть нормально.
Вангую, что вы просто без TS пишете. А на ванильной жс-очке как ты хотел по другому, там же все ДИНАМИЧНО, название переменной лежит в объекте по ключу, который в рантайме сшивается из массива, который приходит с бэкенда в зашифрованном виде.
>>39876
Мне настолько нечем заняться на работе что я посмотрел сурс код твоей хуйни и разобрался.
Короче скачивай сурс код и суй его в проект. Внизу скрипта есть IIFE - анониманя функция, которая мгновенно себя вызывает.
Меняй её на обычную и экспортируй.
Импортирую в свой компонент. Запускай по клику на кнопке - все, вы великолепны
чтобы менять, надо сносить предыдущий див с плеером и делать новый. Например так (мне впадлу делать нормально с реактом)
> Я могу просто помнить первые буквы названия метода - мне подскажут, я выберу из нужых вариантов то что мне нужно, еще и подсветят какие аргументы куда вставлять. А накатив пару плагинов - еще и автоинжекты, рефакторинг всего и вся парой клавиш, автоматическая проверка и исправление стилей по тем что установлены
Ты только что вебшторм
Анон спасибо тебе большое! Мне оч стыдно что я не могу разобраться в этом сам. Я хз сколько мне еще учить этот проклятый JS, чтобы знать все его особенности. Но сегодня я выучил что-то новое, всего хорошего тебе.
В бебшторме появился телепатический модуль? Он просто парсером тупоскрипта ванильный жс парсит и автоматически выводит типы. Они очень хреновые. Парсер сам не узнает, кроме как через телепатию, что тебе джейсонами прилетит с бека. А если к примеру сделаешь простое DI на ванильном жсе через фабрики
export function createTest(makeTest) {
return (params) => makeTest(params)
}
Без выполнения кода или пользовательских типов ИДЕ хрен будет знать что у тебя в makeTest передается
Да я никуда с фронта не уходил. Здесь пока воюем!
-26лвл
-даунка 2021
-5 мес. поиск работы
-минимум 3 дня в неделю коммиты на гитхаб с конца 2019
-2 приглоса на собес, завалили сеньорскими вопросами
-из группы 11 человек не устроился НИКТО до сих пор.
Ливаю из треда, трали ебаные
Что?
Алсо, дай пример сеньорских вопросов
>даунка 2021
поэтому и не берут, лоль)) я тоже сижу в одном чате с вкатышами, таких тупых свиней еще ни разу не видел, денег хотят ужасно, а башкой думать вообще не умеют, не учатся и не хотят учиться))) меня кстати буквально сегодня взяли без собеседований всяких и подобной хуеты, просто поговорил за жизнь с двумя разрабами 7+ лет опыта, оба в работают / работали в топ IT компаниях России, типа яндекса и сбера, с понедельника выхожу на работку
А цифры что? Порядковый номер? Год? Нихуя не понятно. Даунка 2021 года рождения? Чиво???
да кто эту жирноту разберет?
>меня кстати буквально сегодня взяли без собеседований всяких и подобной хуеты
>просто поговорил за жизнь с двумя разрабами
По блату и я вкатился. А в моих условиях ты соснул бы.
какой блат блять, маня? я из мухосранка 300к населения с двумя друзьями
Бауманка наверное.
Ок. Какую ЗП просил. Какие вопросы задавали? Что в твоем понимании сеньерские вопросы?
Ну, просто блядь.
Вот у нас, приходят студенты, в качестве оплаты им норм роспись в дневнике практики. Вопросы: как открыть файл, как прочитать строку из файла, как записать что-то в файл.
Приходит чел стажерем, просит ЗП 25-30к. Ему вопросы: Алгоритмики, SQL, n+1, ООП, классические паттерны.
Приходит чел джуном, просит ЗП 50к. Ему вопросы: Солиды, архитектура, докеры, микросервисы, балансировщики, администрирование линукса.
Приходит мидл, просит 100к. Ему вопрос: где работал, что делал, хули к нам пришел.
Приходит сенька, просит 250к и отдел молодых-перспективных-упругих пориджей в свое руководств, . Ему вопросы: И нахуя уходил-то, мудила?
Так какие сеньерские вопросы тебе задавали-то?
Тяжело вам будет синьора найти, меня на 4,5к захантили и назвали стронгмидлрм хотя для клиента я помидор
мимо
>Приходит чел стажерем, просит ЗП 25-30к. Ему вопросы: Алгоритмики, SQL, n+1, ООП, классические паттерны
знакомый чел синьорище на удалёнке как-то разоткровенничался, что срал он на sql и гуглит, если надо. и паттерны эти, и всё остальное... алгоритмики, блядь
>ЗП 50к. архитектура, докеры, микросервисы, балансировщики, администрирование линукса.
ой, иди нахуй
>>ЗП 50к. архитектура, докеры, микросервисы, балансировщики, администрирование линукса.
>
>ой, иди нахуй
и в чем он не прав
>>39508
>>39486
Так и не разобрался, вот код: https://pastebin.com/FmiErB8x
Может кто-то скажет почему так?
> знакомый чел синьорище на удалёнке как-то разоткровенничался, что срал он на sql и гуглит, если надо. и паттерны эти, и всё остальное... алгоритмики, блядь
И хуй что гуглит. Важно что он знает про то что гуглить и может в голове держать что вот это вот есть и не будет какую-нибудь дичь с курсорами хуячить там где можно обычным запросом сделать. Ты не представляешь, как охуенно, когда задача: достань из базы какие-нибудь иерархические данные(допустим кто кому начальником приходится), а хуйло - курсорами это в хранимку запихнул. Еще бы, блядь, на уровне приложения читал и массивчики руками собирал и руками мапил.
> ой, иди нахуй
> ЗП 50к
А сколько нужно платить хую, который вообще может оказаться тем еще аутистом, пусть даже и имеющим хард-скиллы? Плюс, у него никакой особой ответственности нет, просто делай что тебе говорят в нужные сроки. Это, блядь, не мешки таскать или на морозе ходить трубы долбить палкой, с такой хуйней - любая собака справится, которая минимальный интерес к профессии проявляет.
>>40201
Ну да, бек. Но это специфика нашей конторы, тут как-бы фронт не считается чем-то достойным отдельных людей, работа обезьянья, потому фронт подразумевается по-умолчанию или как минимум, что чел разберется за неделю.
>>40197
Блядь, а какие вопросы нужны джуну? Как включить компьютер? Может быть: Что кушал сегодня? Это же самый минимум, чтобы начать работать и приносить хоть какую-то пользу. Если человек этого не знает и не умеет, то он будет просто проперживать стул на рабочем месте и не справится с простейшими задачами, типа: напиши микросервис для интеграции с вон той хуйней. Джунам и так дается на выполнение элементарных задач времени в 5 раз больше чем мидлам, еще и за их обосрамсы получают по башке их менторы, если они еще и знать нихуя не будут, то нахуя они нужны, когда отличник третьего курса средней паршивости вуза, который минимально интересовался профессией - будет справляться лучше них и за работу ему норм - 20к и подписанный дневник о прохождении практики с бумажкой о том что его разработку внедрили и она такую-то пользу прнносит.
> знакомый чел синьорище на удалёнке как-то разоткровенничался, что срал он на sql и гуглит, если надо. и паттерны эти, и всё остальное... алгоритмики, блядь
И хуй что гуглит. Важно что он знает про то что гуглить и может в голове держать что вот это вот есть и не будет какую-нибудь дичь с курсорами хуячить там где можно обычным запросом сделать. Ты не представляешь, как охуенно, когда задача: достань из базы какие-нибудь иерархические данные(допустим кто кому начальником приходится), а хуйло - курсорами это в хранимку запихнул. Еще бы, блядь, на уровне приложения читал и массивчики руками собирал и руками мапил.
> ой, иди нахуй
> ЗП 50к
А сколько нужно платить хую, который вообще может оказаться тем еще аутистом, пусть даже и имеющим хард-скиллы? Плюс, у него никакой особой ответственности нет, просто делай что тебе говорят в нужные сроки. Это, блядь, не мешки таскать или на морозе ходить трубы долбить палкой, с такой хуйней - любая собака справится, которая минимальный интерес к профессии проявляет.
>>40201
Ну да, бек. Но это специфика нашей конторы, тут как-бы фронт не считается чем-то достойным отдельных людей, работа обезьянья, потому фронт подразумевается по-умолчанию или как минимум, что чел разберется за неделю.
>>40197
Блядь, а какие вопросы нужны джуну? Как включить компьютер? Может быть: Что кушал сегодня? Это же самый минимум, чтобы начать работать и приносить хоть какую-то пользу. Если человек этого не знает и не умеет, то он будет просто проперживать стул на рабочем месте и не справится с простейшими задачами, типа: напиши микросервис для интеграции с вон той хуйней. Джунам и так дается на выполнение элементарных задач времени в 5 раз больше чем мидлам, еще и за их обосрамсы получают по башке их менторы, если они еще и знать нихуя не будут, то нахуя они нужны, когда отличник третьего курса средней паршивости вуза, который минимально интересовался профессией - будет справляться лучше них и за работу ему норм - 20к и подписанный дневник о прохождении практики с бумажкой о том что его разработку внедрили и она такую-то пользу прнносит.
>Удалите тред. Вкат невозможен.
Этот тред не про вкат. Неудивительно, что у тебя не получилось, если ты даже этого не понимаешь.
>Солиды, архитектура, докеры, микросервисы, балансировщики, администрирование линукса.
Блять, только дошло что это девопс. Пиздуй в it тред, чмохен
прога для набирания цифр
Какой еще девопс? У нас нет разделения на девопс-хуепс-фронт-бек. Ты приходишь на работу программистом. И делаешь все, от бека-фронта, до запуска на сервере клиента. Хуй знает, что в этом удивительного. Я в принципе не могу представить себе человека, который бы называл себя на серьезных щах мидлом и не был в состоянии все это сделать самостоятельно.
Так ты эту модель не пытайся натянуть на то, как у большинства.
А у большинства есть программисты, которые все должны уметь на нескольких языках в полном цикле, инженеры, которым пихуй на каком языке и с какими технологиями, они чисто задачи решают, а разработчики это как раз те, кого делят по областям и иногда даже они между собой не контактируют. Не знает фронт что-то про данные с бэка, ну и идет нахуй внутреннюю доку читать как и что.
Фух, это жирнич. А я уж запереживал
querySelector принимает один аргумент всего и написать в одну кавычку сразу три наверное и не сработает.
И в мыле и в зелёном все по феншую разделено. Это какая-то местечковая кабанчиковая конторка
> У нас нет разделения на девопс-хуепс-фронт-бек.
> И делаешь все, от бека-фронта, до запуска на сервере клиента
Тогда плати сотыгу
>Не знает фронт что-то про данные с бэка, ну и идет нахуй
скорее так
и это правильнее
может ещё заведём отдельную должность для сранья?
Еще спроси у вкатуна какие регистры есть в процессоре.
Когда я приходил, требования были те же, разве что докера не было, и платили вообще 15к. С хуя сейчас джуну должны сотыгу платить за те же требования?
Не не, во время инсульта ты можешь забыть где и зачем находишься, а также не понимать что говорят люди и некоторые надписи могут быть не понятны.
Ну, плюс-минус так. Плюс всякие надбавки за неразглашение, за патенты, за то что работаешь эффективно, но оклад+- такой.
>можешь забыть где и зачем находишься, а также не понимать что говорят люди и некоторые надписи могут быть не понятны.
В ИТ это обычно называют собеседованием
Нихуя не те же, года 3-4 назад от начинающих мидлов требовали знать все то, что сейчас требуют от джунов на 30-40к.
Так и думал что столько платят во всяких шарагах без нормального разделения и где от тебя требуют быть цезарем.
Читай про делегирование событий, должно помочь.
Бамп вопросу
В 2010м
function getEntriesFromReader(reader) {
return new Promise((resolve)=>reader.readEntries(resolve))
}
Или учить серверный рендеринг, next.js, node.js, mongo.db, typescript - это must have и без этого никак нельзя?
А посерфить вакансии по своей мухосрани ты не пробовал?
Алсо, подозреваю что анон сказавший про пхп прав
зря иронизируешь
Например: что за задача?
Что значит концепт?
Из стейтменеджеров по моим ощущениям сейчас в топчике всё ещё Редакс (+ редакс тул кит), после него с большим отставанием МобХ со своими обсервеблами.
Ещё недавно появился рекоил от цукербука. Вот я сейчас в петпроектике его тыкаю. Пока приятно, не понятно только насколько он хорошо скейлится.
Мне кажется тут базовый алгоритм - декомпозировать задачу на мелкие составляющие. Их уже пытаться решать с помощью гугла, максимально въезжать в проблему, искать схожие решения
вспоминаю как я ебался с написанием и настройкой e2e тестов с обязательной хтмл инъекцией
вы просто необучаемые. Люди адекватные, выставляют в резюме опыт по минимуму, чтобы начали звать на ту должность. (тебе буквально надо будет напиздеть) Стараются проходить по 1 собесу в день. Ты проходишь собес, помечаешь на что плохо ответил и что самое важное, постоянно запрашиваешь обратную связь у hr. Буквально, проговаривай это в конце собеседования. Проговаривай, что ты в начале своего пути и любая информация для тебя очень важна. Что в плохом случае, ты хотел бы подтянуть конкретные знания и прийти позже к вам еще. Твоя цель - получить максимально развернутый ответ у hr/ лида.
Все. 3 месяца таких собесов и должность твоя. Но это опять же при условии, что у тебя каркас знаний есть.
Все остальные оправдания : ну вот не зовут, не знаю что сделать на гите (какое пет проект) и т д, все в жопу.
Помогите врубиться. Вот есть какая-то страница, которая грузится последовательно. В ней по идее должен быть элемент content. Я получаю управление в самом начале загрузки, из баннерорезки. В этот момент нужного элемента ещё нет. Но он будет.
Как делаю я - вешаю setinterval и долблюсь, долблюсь, долблюсь в document.getElementById, проверяя, не появилось ли нужное, а потом уже с ним работаю, при этом интервал можно грохнуть и больше уже не долбиться. Проблема в том, что таких элементов много. И всех их нужно дождаться.
И вот чувствую одним местом, что это можно сделать как-то красиво, через промисы или что-то подобное. Ну типа написать "скоро будет контент, и тогда с ним сделать такое-то".
Подскажите, как такое вообще надо писать на этих ваших джаваскриптах.
Use Durex.
Ну, промисы могут быть сделаны в виде треда или чего-то типа ивент-лупа, а воркеры это процессы, вроде бы. Процессы используют разные ядра. Треды и ивент-лупы, соответственно - нет.
А на счёт этих >>37696 долбоёбов я вот что скажу. Это какие-то дебилы, таких много развелось с некоторых пор. Когда-то давным-давно ты мог в сети задать вопрос и получить в личку кучу исходников. Ну типа "как сделать такое-то", скажем, в текстовом режиме, в консольном, мышку графическую, стрелочкой. И тебе приходит в личку модуль, который именно это и делает. Собственно других вариантов найти подобное и не было. Не было интернетов как сейчас. Во всяком случае таких. И быдла тупорылого в сети не было.
Ты не поверишь, но, когда-то тебя засмеяли бы, если бы ты сказал, что однажды в сети будет нормальным не то что чьих-то мамок словесно ебать, а просто хотя бы кого-то нахуй послать. Даже не нахуй, а нахер. Это просто в голову бы никому не пришло.
Представь себе сеть профессионалов, каждый из которых получил уникальную возможность связываться с людьми по всему миру, и которые понимают, что это такое. Не толпу тупорылого сброда, а именно илиточку, с модемами на 1200 бод, стоившими под тысячу баксов.
Тогда можно было взять и написать: Сам я не местный, мне срочно нужно собрать тысячу баксов (тогда очень большие деньги, годовая зарплата плюс-минус) маме на операцию, помогите кто чем может, верну когда смогу.
И абсолютно незнакомые люди писали "приезжай по такому-то адресу, дам столько-то".
И ЛЮДИ ДАВАЛИ.
Но самое поразительное, ты сейчас не поверишь. Слушай внимательно, я свидетельствую это как исторический факт.
ИХ ВОЗВРАЩАЛИ. Да, совершенно незнакомым людям. Без залогов и поручителей.
Так БЫЛО.
К сожалению, с доступностью интернетов сам интернет отупел. Безвозвратно. Теперь тут дохера тех, кто самоутверждается не помощью людям, а кукареканием в их адрес.
Я уж даже молчу, что помогать кому-то деньгами в интернете сейчас это надо быть я даже не знаю кем, но скорее всего конченным ослом.
Жаль, но это отношение к соседям даже никакими запретами на государственном уровне не исправить. Никакой цензурой. Кроме введения обязательного тестирования на айсикью перед доступом в сеть. При чём уровень этого тестирования должен быть настолько высоким, что в итоге ни ты, ни я, его скорее всего не пройдём, лол.
Ну, промисы могут быть сделаны в виде треда или чего-то типа ивент-лупа, а воркеры это процессы, вроде бы. Процессы используют разные ядра. Треды и ивент-лупы, соответственно - нет.
А на счёт этих >>37696 долбоёбов я вот что скажу. Это какие-то дебилы, таких много развелось с некоторых пор. Когда-то давным-давно ты мог в сети задать вопрос и получить в личку кучу исходников. Ну типа "как сделать такое-то", скажем, в текстовом режиме, в консольном, мышку графическую, стрелочкой. И тебе приходит в личку модуль, который именно это и делает. Собственно других вариантов найти подобное и не было. Не было интернетов как сейчас. Во всяком случае таких. И быдла тупорылого в сети не было.
Ты не поверишь, но, когда-то тебя засмеяли бы, если бы ты сказал, что однажды в сети будет нормальным не то что чьих-то мамок словесно ебать, а просто хотя бы кого-то нахуй послать. Даже не нахуй, а нахер. Это просто в голову бы никому не пришло.
Представь себе сеть профессионалов, каждый из которых получил уникальную возможность связываться с людьми по всему миру, и которые понимают, что это такое. Не толпу тупорылого сброда, а именно илиточку, с модемами на 1200 бод, стоившими под тысячу баксов.
Тогда можно было взять и написать: Сам я не местный, мне срочно нужно собрать тысячу баксов (тогда очень большие деньги, годовая зарплата плюс-минус) маме на операцию, помогите кто чем может, верну когда смогу.
И абсолютно незнакомые люди писали "приезжай по такому-то адресу, дам столько-то".
И ЛЮДИ ДАВАЛИ.
Но самое поразительное, ты сейчас не поверишь. Слушай внимательно, я свидетельствую это как исторический факт.
ИХ ВОЗВРАЩАЛИ. Да, совершенно незнакомым людям. Без залогов и поручителей.
Так БЫЛО.
К сожалению, с доступностью интернетов сам интернет отупел. Безвозвратно. Теперь тут дохера тех, кто самоутверждается не помощью людям, а кукареканием в их адрес.
Я уж даже молчу, что помогать кому-то деньгами в интернете сейчас это надо быть я даже не знаю кем, но скорее всего конченным ослом.
Жаль, но это отношение к соседям даже никакими запретами на государственном уровне не исправить. Никакой цензурой. Кроме введения обязательного тестирования на айсикью перед доступом в сеть. При чём уровень этого тестирования должен быть настолько высоким, что в итоге ни ты, ни я, его скорее всего не пройдём, лол.
>запрашиваешь обратную связь у hr.
А ещё толще можешь?
>ну вот не зовут
Да, не зовут. Оправдывайся.
Блядь, чувак даже не знает, как пользоваться гуголом и ещё кого-то называет ебланом.
Изначальный ответ и правда чайнику был бесполезен. "footer_fon зашквар" это не обратная связь. Уместно было бы отправить чайника какие-то стандарты по оформлению кода читать, вроде PEP8 в питоне. А так просто потыкать пальчиком и сказать, что зашквар - ну ясно же, что он не поймёт, а понимал бы - не спрашивал бы по такой код.
Но это не отменяет того факта, что чайник тот ещё мудак: >>38040
Вместо того, чтобы спросить "а почему footer_fon это плохо" он начал верещать, как рваножопая проститутка, которой не заплатили за случайно порванный сфинктер. И ещё кого-то называет ебланами и токсичными сучками. Вот же долбоёб!
А потом ещё ждёт помощи. Кретин.
Это просто стиль программирования. Функциональное программирование это когда ты можешь передать функцию в качестве параметра, вот и всё. Как процедурное программирование это когда ты можешь объявить процедур. В бейсике (классическом) не можешь. А в паскале можешь.
Кстати, функцию можно передавать в качестве параметра и в паскале. Но лямбда-функции, безымянно объявленные прямо в выражениях там отсутствуют. Поэтому как минимум часть того, что называют функциональным программированием, там была или недоступна, или использовалась слабо.
А в чём практическая разница - в том, что с одной и той же функцией filter ты можешь сочетать как разные объявленные функции, так и лямбда-функции, и всё это не реализуя саму итерацию по элементам множества. То есть чуть-чуть, но повысить повторное использование кода. В этом конкретном случае экономия небольшая. Ну так это всего лишь учебный пример.
А за императивность и декларативность я ничего не скажу, сам этих терминов не знаю.
function channel()
{
if (window.location.href.indexOf('channel/') != -1)
{
$('#overlays.ytd-thumbnail#progress').parent().parent().parent().parent().parent().parent().hide();
}
};
Я хочу такую же функцию, но чтобы скрывала ютуб джем (плейлисты с рекомендованными песнями). В принципе можно просто по названию thumbnail-а, там так и написано "Джем - ...". То есть вместо запроса $('#overlays.ytd-thumbnail#progress') мне надо запрос, который будет искать Джем в названии. Как мне это сделать, помогите плиз.
>.parent().parent().parent().parent().parent().parent()
У сука, для таких есть отдельный котёл в аду
Моя обратная связь тебе за щеку не поместится
Ну так перебирай все span элементы и проверяй их текст на содержание нужной подстроки. Я думаю до запросов в гугл 'как найти подстроку в строке js' и 'как получить все элементы с тегом со страницы js' ты допетришь. Давай, быренько.
Модифицируй. Тред не для «сделайте вот такую хуйню, а то я гуглить не умею», а для тех кто хочет язык выучить и учит его.
>Функциональное программирование это когда ты можешь передать функцию в качестве параметра, вот и всё
Написал для тебя программу в ФП-стиле по этим критериям, оцени.
У тебя в коде только одна функция и та принимает инстанс класса, а не другую функцию. Ты обосрался
Что-то оно не вызывается вообще. Вероятно, ты имеешь в виду, что так можно дождаться загрузки самой страницы? Это я в курсе. Но там асинхронно куски грузятся типа ajax.
>>40578
А так можно? Или я херню написал?
Так-то вроде работает, но я не понял, как в этом MutationObserver параметры работают. Нет в них нужного элемента, что-то не находится. А через document.querySelector при первом же вызове пара нужных элементов есть.
Бля я плюсы изучал, а на изучение Js у меня времени нема. Помогите плиз, я же не что то сверхсложное прошу. Или сверхсложное?
Это ООП, а не функциональный стиль. Функциональный стиль это скорее так (над порядком в input_line думать лень, просто пример):
a=[
{operator:'+',func:function(a,b){return a+b}},
{operator:'-',func:function(a,b){return a-b}},
]
function calculate(){
operator=input_line.pop()
for i in a...
if (i.operator==operator){
return calculate_operation(i.func)
}
}
Здесь одна функция получает другую функцию в качестве параметра:
function calculate_operation(func){
a=input_line.pop()
b=input_line.pop()
return func(a,b)
}
Она принимает две функции, которые для удобства завернуты в одну общую структуру данных. Или в ФП уже структур данных нет и туда нельзя функции положить?
>>40794
>Это ООП, а не функциональный стиль
По твоим критериям это самый что ни на есть функциональный стиль - функции же можно в другие функции передавать.
Да понятно, что вуе кал и сосет, чет сразу обижаешься, может кто аргументированно его задефает.
На какую максимальную зп в таком случае можно претендовать?
Захожу в репозитории, там сотни файлов, папок и тд.
Вот прочитал я доку реакта, потом редукса, попробовал поговнокодить, а дальше что?
Начинать с построения какого то каркаса главной страницы, страницы фильма, потом делать так, чтобы данные подтягивались через апи и тд?
Просто хотелось бы самому с нуля написать такое приложение, а не скопипастить решение по туториалу или с чьего то проекта.
Делая постепенно от простого к сложному можно в итоге получить нормальный результат, не зная каких то подводных камней?
Ну вернее технология а не концепт(хотя концепт же тоже подойдет, они же по разному(слегка) работают?) Пасиб за ответ.
P.s много где пишут про какой-то apollo и что он вот вот убьет редакс(никогда такого не было и вот опять) кто с этим apollo сталкивался?
Прочти любую книжку по архиектуре, хотя бы того же Мартина, там всего 300 страниц, за два дня осилишь. Тогда не будет возникать таких вопросов - а как, а что.
Манюнь, ну куда ты лезешь? Ты ведь даже не видишьразличия между методом и функцией, не знаешь что такое функция высшего порядка, что такое чистая функция, но при этом пытаешься что то выбрать из своей тупой головы, зачем?
Ангуляр лучше, очевидно. Вуе ближе крему чем реакт, поэтому лучше чем реакт.
О, хуила с хабра опять нарисовался. Хуйня твои чистые функции, пальцем по воде, да и только.
пошла нахуй, агрессивная чмоня
По этим скринам нихуя не понятно. Без пропердоливания конфигов вскод старается угадать контекст файла по его контенту. Если у тебя там вызовы всяких браузерных АПИ, то никакого процесса в браузерном контексте нет.
Ну, метод тоже можно считать функцией.
>>40798
>>Это ООП, а не функциональный стиль
>По твоим критериям это самый что ни на есть функциональный стиль - функции же можно в другие функции передавать.
Я не понимаю, ты про что вообще? Ну, можно передавать. Но ты-то не передаёшь, во всяком случае явно. Ты лишь вызываешь одни функции из других. А как параметры ты их не передаёшь. Сами функции, а не значения, которые они возвращают.
Ладно, другое объяснение функционального программирования: Это когда с функциями обращаются как с переменными любого из базовых типов. То есть присваивают функцию в качестве значения некой константе, переменной, объявляют массивы функций, передают функцию в качестве фактического параметра в другую функцию и так далее. Опять же, передают не значение функции, а саму функцию. При чём в явном виде.
ООП это немножко про другое. Это про инкапсуляцию, полиморфизм, наследование и вот это вот всё.
Конечно, при явной или неявной передаче self в метод класса, или при передаче ссылки на класс, неявно передаётся и то, что по этим ссылкам содержится, в том числе и ссылки на соответствующие методы. Но не в явном виде. То есть когда ты передаёшь свой calc в явном виде, ты не пишешь рядом ещё calc.add и calc.substract.
Показываю первый и последний раз как должен выглядеть ФП калькулятор:
https://stackblitz.com/edit/typescript-mbu8y7
Теперь сравни это с твоим высером и... ну как минимум пасть не открывай лишний раз
О том, макакен, что автодополнение это не какая-то там магия из коробочки которую ты называешь КУДАХТЕР, это такая же программа, как и любая другая. Задача этой программы анализировать код и давать релевантные подсказки. И если этот код написан с ошибками в синтаксисе, то с чего ты решил, долбоебина, что автодополнение должно отрабатывать нормально?
Ну другим вариантом будет написание своего анализатора, который будет считывать твои мысли и показывать тебе то, что ты хочешь, а не то, что можно вывести из написанного кода.
Вот тут код: https://pastebin.com/TdG4upxz. Не могу понять почему цикл for выполняется всего один раз, хотя выполняться он должен столько раз сколько было дропнуто папок, с файлами такой проблемы нет.
Длина массива items равно количеству дропнутых файлов и папок первого уровня. Т.е. если скинуть две папки, как на 1 пикриле, то длина массива items будет 2, а если скинуть файлы, как на пикриле 2, то длина массива будет 3.
Только вот если кидать именно файлы, то итераций будет столько, сколько и файлов, а если папки, то только одна итерация.
нанять выпускника хтмл академии за тарэлку супа
function getParentElementsOfДжем(){
document.querySelectorAll("*").forEach(el => el.normalize());
const elements = []'
const walker = document.createTreeWalker(document, NodeFilter.SHOW_TEXT);
let node = null;
while(node = walker.nextNode()){
if (!node.textContent.includes("Джем")) continue;
const parent = node.parentElement;
elements.push(parent);
}
return elements;
}
Возвращает список всех элементов, у которого непосредственное дитя имеет слово "Джем"
В tsconfige задай, что разрабатываешь под ноду
Вкатун, ты когда уже ссылку на песочницу скинешь? Никто не будет тут ебаться с твоим пастебином.
Пробуй сверстать рандомные макеты с фигмы
это скорее ++а
Раньше использовалось в циклах. Сейчас используется только олимпиадниками, код которых никто кроме них читать не будет и на написание которого тратится максимум 1 час времени.
Всё верно. Явное лучше неявного. Чем очевиднее твой код, тем этот код лучше. Вот это "a++" поймёт только программист, вот это "a += 1" может понять каждый.
> может понять каждый
А зачем каждому понимать? Все равно этот "каждый" не будет учувствовать в разработке
Это критерий "понятности" кода. Чем код понятней, тем лучше для программистов которые его читают. Вместо "так, плюсы в конце, значит вернёт то что было, а только потом прибавит", ты читаешь "прибавляем единицу и возвращаем результат".
я бы вообще лучше не пользовался значениями, которые возвращают ни "a += 1", ни "a++", ни "++a" и всегда бы все сайд эффекты какие-то на отдельные строки расписывал
Ну я например, для тоглера это использовал.
Хотя кому я пизжу, это просто мое решение задачи из учебника ydkjs.
Типичная ошибка новичка. ФП это про простоту и читаемость кода, композицию, а не "ФУНКЦИИ, ВСЁ В ФУНКЦИЯХ, ДАВАЙТЕ ДОБАВИМ ЕЩЕ БОЛЬШЕ ФУНКЦИЙ!!".
Порядок операций это задача парсера мат. выражений, который будет использовать calculator для того чтобы вычислить значение. Т. е. "2 + 2 * 2" распарсится и приведет к:
calculator(startWith(calculator(startWith(2), multiply(2))), add(2));
При этом нам не нужно менять существующий код calculator и городить в нём что-то новое, мы просто создаем парсер и используем в нём calculator.
Это уже баланс между читаемостью и затратами времени. Но я склоняюсь к тому, что нужно делать как ты предложил.
Отборный говнокод, такое лучше в каком-нибудь загажнике держать типа ydkjs
Если i, он же индекс, равен длине массива, то есть вышел за пределы массива, то я обнуляю индекс, возвращаю обнуленный индекс и одновременно увеличиваю его для следующего вызова.
По-моему получилось очень элегантно.
Вапроси?
Я кончено туплю прям вообще, но там много говна еще в виде расширений, без них он ругается , и я не знаю как это все дропнуть на jsfiddle. Может через сервак получится, через инструменты разработчика можно ведь код посмотреть?
http://94.180.221.148:8006
Пароль и логин: 123
Файлы дропать прям туда, где много текстовых фалов 123.txt? В консольке логи.
const current = rest
i = (i + 1) % rest.length
return current
не ЭЛЕГАНТНО, но по крайней мере понятно, что вообще функция делает...
и вообще ЭЛЕГАНТНО - это через генераторы, мне кажется
Пчел, используй уже for...of/forEach() для итерации по массивам.
Когда я кидаю папку с такой структорой:
Папка 1
4.txt
5.txt
6.txt
Папка 2
Папка 3
8.txt
7.txt
То он выдает пикрил, а я кидал две папки, в каждой из них есть файлы и в одной есть подпапка, а он сканирует только одну папку, либо папку 1 либо папку 2, хотя я их одновременно обе кидаю. Просто одновременно кинь две папки одного уровня в которых есть файлы. Произойдет только одна итерация в логах, а должны 2, если скинуть 2 папки.
Да бля, древо папок не отрисовалось. Папки 1 и 2 одного уровня. В папке 1 находятся 3 текстовых файла: 1,2,3 .txt. В папке 2 находится текстовый файл 7.txt и папка 3 с текстовым файлом 8.txt.
Я даже норм код не научился писать, а тут еще тесты. Для меня тесты это console.log(). Но тут я даже не могу понять в чем дело, если логать через console.log, то я прихожу к выводу, что for итерирует 1 раз, когда должен 2 или более раз.
async function AnyFucntion(){
for(var i = 0;i < items.length;i++){
await AnyMethod();
}
}
Может в случае выполнении асинхронных методов в for нужно что то сделать, или их нужно выполнять в каком то другом цикле? Он тупо выполняет одну итерацию с методом и все.
Зачем ты возвращаешь промис из async функции? Если ты ЧТО-ТО возвращаешь из async функции, то это ЧТО-ТО оборачивается в промис автоматически. То есть у тебя там в итоге из getEntriesFromReader вернётся промис, обёрнутый в промис.
Мб в этом проблема, я хз, код не смотрел и в твои беды не вникал.
Ну я имею ввиду, что просто попробуй убрать async у функции getEntriesFromReader
Смотри на пикрил пока не найдешь ошибку. Даже если кажется, что её тут нет ыт все равно смотри. Попробуй на листочке расписать логику.
И var никогда не используй, особенно внутри асинхронщины. Пиши всегда const, если надо менять значение - let.
Иди учи как работает оператор await Перед тем, как давать советы по оному
Ну так ты посмотри что у тебя в items в данном случае лежит. В for при асинхронщине дописывать ничего не надо, все работает из коробки, кроме итерации for of по асинхронным генераторам, но у тебя их нет.
>Вообще люблю строгую типизацию а ля int, string, float
Так нахуя ты тогда с js ебешься? Возьми и пиши с типизацией на TS.
тайпскрипт же есть
Я стараюсь со всем хотя бы понемногу разобраться, а про typescript не так давно узнал.
https://jsfiddle.net/45ka3g9w/
>Вообще люблю строгую типизацию а ля int, string, float
Если бы любил что-то, давно бы научился отличать статическую от строгой.
Попробуй в функции UploadFiless предварительно пройтись по всем айтемам, у всех вызвать webkitGetAsEntry и все их сложить в массив. И только потом обрабатывать их.
У меня вроде, если так сделать, то всё работает, если несколько файлов закинуть.
Есть
Если любишь копаться в чужих велосипедах.
У тебя обработчик стоит на <body>, а события происходит на нпуте и не всплывает.
>>36606 (OP)
Свинота, перекатывай.
Да, спасибо!
Вот спасибо! Исправил на new Event('change',{"bubbles":true}) А чего они по дефолту не всплываемые-то, я думал как в addEventListener по дефолту всплывают.
яЯщас читаю справочник мозиллы прост
Electron/ReactNative
Но ты же неправильно сделал...
Спасибо большое, анончик!
Сейчас самые нормальные фреймворки для работы это вуе и ангуляр, для вката - реакт. Сам решай что для тебя лучше.
В рамках джаваскрипта никакой - фреймворки или библиотеки для другого ЯП.
>начал верещать, как рваножопая проститутка
Какой ответ, такая и реакция, Если ты много знаешь, это не дает тебе права быть уебком. Или мне на ответ в стиле - ты лох, опустить глаза как школьник и сказать - простите пожалуйста, а почему я лох?
Пруфы или пиздешь! Я в смысле, че, реально не любят? В чем выражается?
Вы видите копию треда, сохраненную 9 июля 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.