24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
>>1967416 >асинхронность Хули тут понимать, язык выполняет только одну строчку кода в стеке вызовов, если он видит асинхронную ебалу, он отправляет эту ебалу выполняться в web api если это браузер, далее эта хуета ждет своей очереди в очереди,лол, далее как только стек вызовов очишается event loop запихивает твой промис в стэк
Есть ли гайды по проектированию тестов с нуля? Ну типа сижу я смотрю на тыщу компонентов и сотню сервисов, и куда тут воевать? Начать ебашить юниты на каждый пук, и интеграционные на каждую пару пуков - будешь писать их дольше чем сам проект. Или наоборот начать со здоровых е2е - а они пропускать все будут.
Норм что у меня класс (ксс) записан в стейте и на mouseEnter вызывается функция, которая изменяет этот класс? Например, чтобы один из дочерних элементов изменил цвет, я на mouseEnter по родителю вызываю функцию которая изменяет переменную в className. Или хуйня получилась?
>>1967592 Да во что нахуй? Я ебу что ли? Я нашел решение, оно работает, мне кажется хорошим. Спрашиваю, потому что интересно так делается или нет, и если не делается, то что делается вместо этого и как белые люди динамически изменяют класс.
>>1967599 Да охуенно, может мне еще ядерной физикой заняться? Иначе как я смогу сайты разрабатывать, точно не зная куда там по кремнию электроны летают.
>>1967416 Когда тебя ебут в жопу, ты мождешь надрачивать одной рукой хуй а другой мацать ебаря за жопу. Вроде как действия выполняются "параллельно", однако на самом деле они выполняются "конкурентно" и это главное. Конкруентность может быть и асинхронной
>>1967614 >ввиду в виду раздельно Имеется в виду что вуй или реакт например позволяют привязать состояние элемента напрямую к переменной и этим (реактивностью) славны. Вроде. А к чему ты стейт помянул?
Гайз на вас последняя надежда. Функция ищет least common multiple (наименьшее общее кратное) в заданном ренже, можете расписать работу reduce, я пытаюсь проследить, но не получается, я что-то упускаю/ не понимаю.
>>1967553 Теперь ты начинаешь понимать, почему на большинстве проектов забивают хуй на тестирование. TTD в контексте жабаскрипта - марксисм-ленинизм послегрузинского совка. Никто в него не верит и не практикует, но ты обязан повторять цитаты из него как мантры, чтобы на работу взяли.
Какое же БЭМ блять кривое говно, сразу видно его пердолики из яндекса придумали. Больше времени тратишь на то, как назвать элементный блок и его элементы, да ещё это говнище заставляет простыни селекторов писать даже в препроцессоре.
>>1967650 Да TDD (два раза подряд, это уже не опечатка, сука) практикуют. Просто потом тесты никто не поддерживает и в какой-то момент спустя пару лет внезапно обнаруживает что они нихуя не стартуют и проще их заигнорить или выкинуть.
Блять, вот хуле ему не так? Есть примитивный хэндлер клика, который проверяет, была ли нажата метаКей на маке и если была, то вызывает функцию. const handleMcClick = (e: MouseEvent): void => { if (e.metaKey) { gayAlert(); } else return; }
>>1967789 Если я вообще убираю любое упоминание кнопок, то ничего не меняется. Проблема в обращение к ивенту как к таковому. Та же самая ошибка, если не проверяются кнопки клавиатуры, но есть, например: e.preventDefault()
>>1967416 На ноде/deno асинхронность нинужна. Всё равно все будут юзать зелёные треды на cpython, если такая необходимость будет. В браузере вебворкеры, а не аснихронность, они тоже нинужны в основном, покрайнеймере не для тебя.
Буду скоро менять работку, оттрубил какое-то время фуллстек шлюхой, хочу апнуться до миддла. Вроде как в жс шарю, но сука очкую что меня выебут на хитровыебанных вопросах касательно токонстей работы интерпретатора жопаскрипта, ведь я уже не ждун. Насколько сильно ебут на этом деле?
>>1967824 Кажется блядь в JS вообще не существует нехитровыебанных вопросов. В любом говне десятки подводных, вплоть до того, что ты можешь обосраться на вопросе чем отличается let от var.
Сделал 2 коммерческих сайта с фуллстеком, работаю на 3-м. Всё еще не могу устроиться никуда на постоянку, потому что такое ощущение, что к тому моменту, когда я смогу ответить на все вопросы на собесе, я уже просто пойду проходить собесы на сеньера. У меня довольно много опыта, код который я писал проходит код ревью, но какой же пиздец начинается, когда открываешь доку жс и список из 300 вопросов на собеседовании, и понимаешь какое же количество разнообразного говна тебе еще нужно знать, несмотря на то, что в работе это гуглися просто за пару секунд и применяется примерно столько же. Я просто в ахуе с того, какое количество ебанутых корнеркейсов и подковырок нужно знать джуну. Я вообще не могу представить, каким образом это всё можно вот так вот просто взять и выучить. Кажется, как будто работать с ЖС и устроиться на работу это просто бесконечно далекие друг от друга задачи. Какой же пиздеж все эти разговоры про "программирование это просто", ты нахуй в петлю раньше полезешь, чем первый офер получишь. Но тут конечно есть плюс, количество инфоциган и вкатывальщиков кажется оказывает абсолютно нулевое воздействие на уровень зарплат именно по вышеописанной причине.
>>1967925 >>1967908 Был на 5 собесах. В последний раз это было примерно 4 месяца назад. С тех пор нашел себе фриланс и работаю теперь так, попутно вечерами задрачивая то, чего не знаю. Пока нет желания ходить на эти публичные сеансы унижения от рандомных хуёв. Но хотя бы теперь не совсем прожирая запасы от отложенных денег с прошлого места работы. Но на данный момент работаю по ставке 200р в час, хотя уверен на 100%, что это стоит конечно же куда больше, я бы рад работать за большее, но причину я уже описал постом выше. А согласен я на такое только потому, что в дальнейшем у меня есть перспектива роста, иначе бы уже грузчиком пошел работать, возможно за большие деньги, лол
>>1967943 У тебя синдром самозванца, который ты оправдываешь внешними силами(кококнторы плохие, а я вот хороший!) Конторам нахуй не нужны твои знания при строгом и нестрогом сравнении, это просто тесты на долбоебов, что бы отсеять немощных вкатунов и не тратить время на них. Конторам нужно только одно - что бы ты мог приносить им бабки. Если у тебя прокачан скилл программирования и ты можешь быть полезен компании этим, тебя 100% возьмут на работу. Так вот причина по которой ты еще не на галере - это ты сам. Либо пиздабол и нихуя не знаешь, либо долбоеб и не можешь пройти банальные тесты к которым можно подготовиться за два дня до собеса, либо ты ласкаешь свой синдром самозванца. Вылазий из зоны комфорта, если ты канешь не корзина мамкина как славик сычев.
>>1967958 Ну хуй знает, чел пчел. Вот думаю закончить 3-й проект и уже пиздовать в галеры, а то стыдно без 300к сек кодить. С комфортом у меня проблем нет, учитывая то, из какого говна я постепенно выбираюсь.
>>1967971 В последний раз это было 4 месяца назад, тогда не знал что такое замыкание, всплытие события и т.п. такого же рода вопросы. С тех пор конечно я это выучил, это конечно круто, что я теперь обо всём этом в подробностях знаю. Вот только пока не понял каким хуем это мне помогло проектировать интерфейсы и писать совсем простенький бек. Ну ладно ладно, чуть чуть помогло, но опять же, когда столкнулся с проблемой срабатывания клика по множеству элементов, все равно загуглилось за 0.12132423 секунды
>>1967975 Чувак, если ты умудрился разрабатывать приложенияна жс, не зная, что такое замыкания и принципов распространения DOM- событий, то все эти "интерфейсы" тобой писанные, о которых ты говоришь - это неподдерживаемый говнокод, и тебя совершенно заслужено не взяли.
Это все равно, что строить деревянные дома, связывая бревна веревками, и потом говорить - но я же построил. Какие в пизду строительные крепежи, нахуй они нужны.
>>1967976 Что замыкания, что дом события выдадут свои очевидные ошибки при незнании того, как они работают сразу же, как только ты начнешь с этим работать. Так что можно и без знания о подобных вещах проектировать приложение. Или ты думаешь я код писал проверяя его только в проде на работающем сайте?
>>1967979 И кстати говоря, это не я утверждал, что мне пора пиздовать на галеру, а говорил только о том, что учить нужно дохуя всего. Так что вы сейчас опровергаете собственные же представления на мой счет. А о том, что я сделал несколько рабочих сайтов на реакте и ноде я не пиздел. И вот к примеру >банальные тесты к которым можно подготовиться за два дня до собеса это же очевидный пиздеж. Того, что нужно знать на собесе за 2 дня ты даже прочитать не успеешь, не то, что запомнить или понять.
Может быть вы устраивались на работу лет 5-10 назад, и у вас представление о требованиях берутся из того периода.
>>1967985 Нюхай носки падла дырявая, ты теперь чушкарь позорный, бери миску и пожалуй к пораше. Сиди там и смотри как галерные работяги отдыхают в треди.
>>1967958 Банальные? Сложение массива, строки, объекта и жирафа это не банальные. А поскольку на практике ты это не будешь делать никогда, то надо эту теорию дрочить не за два дня до собеса, а каждый день чтобы она не забывалась.
Я на полном серьезе готов спорить с вами о том, насколько нужно уметь кодить на JS при создании сайтов на реакте, поскольку я буквально фактически это делаю. Вам это может не нравится, вы можете быть против этого, но сам факт вы не отмените. Того, что я дохуя чего не знаю и не могу ответить на вопросы не собесе это не отменяет, о чем я с самого начала и говорил. Но одно другому вообще нихуя не мешает. Возможно именно из-за того, что вы тут опытные дядьки с большими писями вам кажется, что отсутствие глубокого понимания принциповы работы тех или инных вещей в коде равняются полному отсутсвтию понимания принципов работы этих вещей даже на каком-то очень поверхностном, абстрактном уровне, когда ты знаешь как с ними работать и когда использовать, то вы конечно ошибаетесь. Потому что буквально у вас есть неоспоримый факт, весь мой код проходил код ревью, и я буквально готов отстаивать это в споре с вами, какими бы хуями вы тут не пытались меня крыть, потому что вы не можете отменить этот факт.
>>1967993 Харош свои инцельные потуги в тред распылять, если у тебя айкью выше 100 это не проблема запомнить. Если ты не забыл это вообще то программирование нахуй, не хочешь напрягать голову иди в пятерочку работать, там таким нытикам самое место.
Имеет смысл сначала хотя бы базово изучить какой-нибудь строгий язык с правилами написания и прочей ебалой, чтобы потом на жс меньше быдлокодить? Никакого языка не знаю, не знаю их устройства, вкатываюсь с нуля.
>>1967973 Больше функционального подхода и больше чистых функций. Никаких this и прочей хуйни. Настраивайся писать четкий код, потом привыкнешь, а всю this хуйню будешь в отдельные слои хуйни загонять, типо //////TODO: FIX OOP GOVNOKOD
представляю как борщехлёбы придут в тренд, а тут замыкания обсуждают
>>1967976 >это неподдерживаемый говнокод Бля, а как понять, что ты пишешь говнокод? У меня такая паранойя по этому поводу пиздец. Но в отличии от того гения я и про замыкания и про всплытие знаю.
>>1968056 Я тут недавно наткнулся на https://youtu.be/pahO5XjnfLA с темой про замыкания. Потом почитал кантора на эту же тему. Почему в этом видео по сути рассказывается вообще про другое? В целом конечно зная как работают замыкания можно сказать, что примерно он описывает этот процесс, но это же пиздец. У самураев этих ваших то же самое будет? Я еще хуею потом с того, что вот насмотришься таких видосов и будешь блядь собесы проходить. А еще и просмотров ведь дохуя и все благодарят. А фактически он говорит, что замыкания - это когда одна функция находится внутри другой. Это каким хуем вообще относится к замыканию?
>>1968068 >Но в отличии от того гения я и про замыкания Да ты сам тот еще гений нахуй если жопой мой пост прочел, еще и высокомерный хуесос, СМАТРИТИ В АТЛИЧИИ ОТ ТОГО ВОТ А Я ТО УЖ А Я ВОТ НЕ ТО ЧТО ОН, фу блядь, иди под струю мойся
>>1968073 >Да ты сам тот еще гений нахуй если жопой мой пост прочел, еще и высокомерный хуесос В твоем посте 0 конкретики. Только какие-то маняаналогии с деревянными домами.
>>1968078 Ну а хуле ты отвечаешь тогда не на свой пост, ало нахуй? За мной тоже в каждом треде бегается даун, который отвечает от моего имени на посты.
>>1968079 Да потому что в рот я ебал это анонимное общение, все разговаривают как сумасшедшие и никто ни за что не в ответе. Еще и хуй пойми кто вообще кому отвечает
>>1968086 ТАК ЭТО ТЫ ДОЛБОЁБ НЕ ПОНЯЛ КТО ТЕБЕ ОТВЕТИЛ СУКА Ты даже локику разговора двух людей не можешь проследить. Какой нахуй кодинг. Ложкой в рот попадаешь? Вилкой без пробки пользуешься или тебе не доверяют такое? Я нахуй ливаю из этого пиздеца, чтоб я еще раз тут о чем-то разговор завел, это пиздец, битва глухого со слепым в глубокой жопе обезъяны темной ночью
>>1968089 Вот ты мразь конечно, выдал всю свою подлую суть, поняв, что слился. Решил воспользоваться анонимностью общения и опять же написать от моего имени, иначе ведь бы вышло, что насрал тебе в штаны всё-таки ты сам? Ну пацаны-то с утра увидят кто тут обосрался на самом деле. Но ты конечно мразь по настоящему, если решил прибегнуть к такой хуйне. Фу блядь, вот это было по настоящему мерзко. Очередная причина не поддерживать тут никакой активности и кому-то еще отвечать. Пошел нахуй
>АРЯЯ КЛАССЫ НИНУЖНЫ! >Использование классов гарантировает правильное приминение Inline Cache и рост производительности >НИНУЖНЫ! НИНУЖНЫ! МНЕ ПАЦАНЫ ТАК СКАЗАЛИ!!
Почему хтмл с цсс такое гавно? Всякие хитровыебанные родительские свойства абсолютно неочевидные, которые запоминать надо, пляски с размерами и свойствами, применяется не то что ближе к телу в коде, а то, что просто ниже стоит в коде, но не всегда, если только не дальше дочернего тега. Короче лютая поебень. Такое впечатление что издатель трахнул дизайнера, а личинку гомункула скинули программисту куколду.
>>1968222 >которые запоминать надо Как уже заебали неосиляторы подпивасные у которых память как у рыбки. Ебаные хтмлакадемии расплодили как бактерий этих даунов, а они и как дышать забыли, потому что это запоминать еще надо!
>>1968232 Тебе ж и говорят: Использование классов гарантировает правильное приминение Inline Cache. Нигде не сказано что оно магическим образом под капотом его несет
>>1967411 (OP) На связи фуллстек макака: питон (aiohttp/sanic) + жс (ангуляр) 9 месяцев назад вкатился, сейчас думаю менять работу чтобы не застрять на одном месте (и апнуть зп конечно же). Как посоветуете выбирать проекты, чтобы не продаться за дешево или не сесть за неликвидное гавно? буду также идти фуллстеком пока либо только в бэк, как получится
>>1968263 >Как посоветуете выбирать проекты, Ставишь перед собой бутылки, подписываешь их именами проектов. Крутишь бутылки, которая горлом покажет на тебя - садишься на нее.
>>1968282 Ну что бы на дошик хотя бы хватало(месячный запас), ну и раз в неделю под хвост буду с удовольствием принимать(готов бесплатно!). В целом будет клево если еще стекломоя смогу купить на оставшуюся зп.
>>1968282 От 100к минимум На моем нынешнем месте в ДС2 мне походу чисто из принципа не хотят повышать ("аноннейм, ты больно много хочешь! мы тебя за 50к взяли, сейчас повысили до 60! куда тебе еще-то?")
>>1968252 Это конечно хорошо, но в остальных примерах у него вполне еретический const. А вар именно в цикл засунул, ага. >>1968262 Какой сбощик мусора, ебло? Конкретно в его примере будет храниться миллион референсов даже с варом, так что прокукарекай тут про утечки памяти.
>>1968290 >аноннейм, ты больно много хочешь! мы тебя за 50к взяли, сейчас повысили до 60! куда тебе еще-то? Провинция, известная галера, з.п. миддла вчерашнего юниора FE 80, что в питере фуллстэку платят 60, я бы не поверил, но вот только что прочитал на форуме, где все друзья. Это пиздец. Рили, я бы на твоем месте откликался на все подряд - куча вакансий в ХХ удаленных в том числе где зарплата от 100. Мне бы даже 100 мало показаось, я бы брал от 150.
>>1968318 >фуллстэку платят 60 Хе, так я ж зеленым вкатуном тогда был. На тот момент это действительно было норм, тем более что к моим косякам относились с пониманием и даже позволяли учить ангуляр на ходу, особо не доебываясь на этой почве, но пора расти
>>1968325 Тут еще такое может быть что ты вырос, но у них восприятие тебя тем же вкатуном никуда не ушло. Это даже понятие такое есть в психологии, не вспомню сейчас. Отрезвляет в таких случаях только оффер на руках с циферками, после которого у них должна проснуться мысль, что такая корова нужна самому, и следовательно контроффер в ответ. Ну или не должна, но у тебя уже вариант есть.Только так.
>>1968335 >Это даже понятие такое есть в психологии Психология тут ни причём, программисты существуют, чтобы приносить ПРИБЫЛЬ бизнесу, соответственно чем выше ЗП у отдельного программиста, тем ниже ПРИБЫЛЬ у бизнеса. >и следовательно контроффер в ответ Если РАБотник прошёл через поиск новой работы находясь на нынешней, то скорее всего его не устраивает не только ЗП, и эти проблемы повышением ЗП не решатся.
>>1968351 Эх, если бы. По собственному опыту скажу - видел сеньоров, которые доебывали миддлов вопросами, а-ля что там как работает, и джунов посмышленнее миддлов, и лидов, которые в жизни не подумал бы что лиды.
>>1968358 >Психология тут ни причём, программисты существуют, чтобы приносить ПРИБЫЛЬ бизнесу Трава зеленая, небо голубое. Я и говорю про то, что ЕСЛИ он вырос, следовательно приносит больше прибыли, они должны его мотивировать, но часто бывает так, что действительно вырос, но этого НИКАК не видят - и это проблема ПСИХОЛОГИИ восприятия. >Если РАБотник прошёл через поиск новой работы находясь на нынешней, то скорее всего его не устраивает не только ЗП > скорее всего Отдавать самый ценный ресурс - время, работая по найму, и не ставить во главе угла ЗП, по мне это несмышленность, как минимум. Тем более речь о том что ты не меняешь профиль деятельности, а делаешь работу которую и до этого делал за меньшую зп.
>>1968373 >Я и говорю про то, что ЕСЛИ он вырос, следовательно приносит больше прибыли От того, что он запомнил все глобальные методы Ангуляра, ПРИБЫЛЬ у компании не возросла. Соответственно платить ему больше снихуя - уменьшение ПРИБЫЛИ компании. >но часто бывает так, что действительно вырос, но этого НИКАК не видят Почему эта ситуация частая, ты конечно же не задавался вопросом. >Отдавать самый ценный ресурс - время, работая по найму, и не ставить во главе угла ЗП, по мне это несмышленность, как минимум. Есть два стула: на одном компания из отбитых вороватых пидорах за 300к наносек, на другом - цивилизованная фирма белых людей, но за 150к. На какой из стульев сядешь?
>>1968396 >От того, что он запомнил все глобальные методы Ангуляра, ПРИБЫЛЬ у компании не возросла. Правда? Тоесть гугл может нанять вкатывальщиков, готовых кодить за еду, прибыль вырастит - платить же меньше, так? И что будет с такой компанией в дальнейшем? Какие перспективы? Или ты имеешь ввиду цель компании - оптимизация - взять получше и подешевле? Тогда почему наемному сотруднику также не относится к компании? >Почему эта ситуация частая, ты конечно же не задавался вопросом. Для меня это само собой разумеющееся, и опять сводится к ПСИХОЛОГИИ - организм стремится к покою, поиск нового - раздражитель. >Есть два стула: на одном компания из отбитых вороватых пидорах за 300к наносек, на другом - цивилизованная фирма белых людей, но за 150к. На какой из стульев сядешь? У тебя крайности, в мире все не так. Я из условного люксофта, буду стремиться в условный авиасэйлз, когда и если скилл будет позволять, думаю как и любой адекватно мыслящий кодер.
>>1968442 > Я из условного люксофта, буду стремиться в условный авиасэйлз Сразу скажу из-за з.п. я, так получилось, знаю сколько платят миддлам в этих компаниях, а не из-за того что условный авиасейлз стильныймодныймолодежный. В продуктовых потому что платят существенно больше чем на галере, не беря в рассчет исключения ноунеймы - а-ля "веб студия васи иванова".
>>1968358 Как ты там собрался замерять прибыль, лол. Может только у онлайн-галлер есть такое преимущество в замерах, да и то там экономического смысла почти нихуя нет в большинстве случаев.
>>1968401 Я именно про лида который КОДИТ и ничего не лидит, как ступень после сеньора. Лид, который лидит,в той команде тоже был, но речь именно про скилл того лида, который чисто кодер был.
>>1968405 Взять/придумать проект со всеми фичами современных веб-сервисов и гуглить/стэковерфловить как это сделать на том или ином фреймворке. Доки чисто как база, как алфавит, можно сказать. Все на практике только познается. Редакс много где сейчас, там паттерн надо вдуплить, кроме редакса есть еще реализации, но редакс по кол-ву звездочек их все вместе взятых рвет.
>>1968401 В больших компаниях вполне бывают должности выше сеньора без кабанизма. Техлид или архитектор обычно они называются, но тут совсем вакханалия с семантикой начинается: Вакансия с названием техлида может оказаться по факту хоть на менеджера, хоть на тимлида или сеньора.
Аноны, подскажите советом - какую книгу нормальную почитать о том как писать нормальный клиентский код на чистом JS. Я вообще бекенд пишу, реакт знаю по вершкам. Но чет сам решил нативным JS на классах сделать в свой приложухе динамическую форму - получилось. Но код просто блядь пугает. Особенно тот момент когда я DOM-элемент "привязываю" к какому то своему объекту. Ну в объекте есть ссылка на объект DOM. Как правильно работать с тем, что этот объект может получить любой другой обработчик, и менять его состояние как ему угодно.
Или эта тема нормально не реализуется без своего маленького реакта?
>>1968456 >Как ты там собрался замерять прибыль, лол. Так её и не замеряют. Соответсвенно увеличение ЗП === уменьшение ПРИБЫЛИ для компании без ведомых на то причин. А причины искать не будут, потому что вся эта техническая хуитка для стороннего наблюдателя, манагера то есть - чистый и незамутнённый талмудизм. Хоть всю спеку TC39 заучи после вката, для манагеров будешь всё тем же вкатывальщиком-ждуном.
>>1968498 >Как правильно работать с тем, что этот объект может получить любой другой обработчик, и менять его состояние как ему угодно. Object.freeze(). >>1968501 >Как правильно работать с тем, что этот объект DOM может получить любой другой обработчик, и менять его состояние ( и его html ) как ему угодно. Не пихать скрипты с любыми другими обработчиками? Откуда ты блять левые обработчики ожидаешь в своём скрипте увидеть?
>>1968504 >>А чому ты хочешь без реакта писать? Есть сокральный смысол? В своем приложении хочу и повелосипедить немного ( пока что, оно может вырасти ).
>>1968549 >>Не пихать скрипты с любыми другими обработчиками? Откуда ты блять левые обработчики ожидаешь в своём скрипте увидеть?
Исхожу из логики что потом уже не я могу этот код поддерживать. На бэке принято пердолитсья со всякими патернами ООП и прочим. В JS мире может на это хер кладут. Я потому и спрашиваю какую нибудь хорошую книгу в которой описан лучший путь.
>>1968549 п.с. >Object.freeze() Я правильно понимаю что допустим получив в одном обработчике объект формы я могу его заморозить. Но ничто не мешает в другом обработчике получить объект этой же формы, и допустим перепахать ее html как угодно?
>>1968602 >Но ничто не мешает в другом обработчике получить объект этой же формы, и допустим перепахать ее html как угодно? А тебя ебать должно во что там перепахался html? В объекте будут храниться все релевантные данные и все изменения в нём будут происходить только через определённые методы, которые будут менять и состояние полей в html в одностороннем порядке. Если добавить сюда ассинхронщину, то переизобретёшь флюкс. А если посчитаешь, что собирать компоненты в доме слишком заёбисто, то переизобретёшь и jsx.
А для сервера вебпак нужен? Сейчас думал начать писать субконфиг, а потом подумал, а нахуй мне его собирать вообще? Я же его юзерам не отправляю, его node-ts спокойно исполняет со всеми модулями и всей хуйней из коробки.
Анончики, посоветуйте, что можно сделать. Я делал несколько сайтов на заказ разным людям, фронт часть. Сами сайты они не запускали, потому что там еще в процессе всё. А вот мне хочется как-то выложить их в потрфолио, чтобы можно было искать работу другую. Что можно делать в таком случае? Исходники ведь показывать нельзя, если это заранее не было обговорено? Деплоить куда-то фронт часть, чтобы можно было потыкать с фейковым беком это тоже нарушение прав в каком-то смысле? Ну и самый тупой вариант - просто выложить скрины сайтов.
Что можно делать в таком случае? Есть еще конечно идея, переписать немного сайт так, чтобы внешне он уже не совпадал с тем, что ты делал до этого, но тогда опять же ведь код будет тот же самый.
Как этот вопрос вообще решается в сфере кодеров? Например в тех случаях, когда то, что ты пишешь, это вообще не что-то публичное, и тогда невозможно просто взять и выложить это на всеобщее обозрение, бек там какой-нибудь
>>1968700 Серверный код лучше не транспилировать, так как ошибки из-за трансформаций могут вылететь в копеечку, в отличии от клиентского кода, который в худшем случае просто не заработает.
У var функциональная область видимости, то есть если где-то вне скобок используется эта переменная, она будет видна, а let блочная, только в рамках скобок работает. Я правильно понял или нет?
>>1968753 >>1968757 Да я в программирование не первый день, просто эти скопы меня запутали, плюс смотрел интервью, где многие горят на var, называя ее глобальной переменной. Сейчас перелистал книгу и не нашел этого примера, хуй знает что за магия произошла.
В принципе логично, так как выполнение команды идет дальше, и возможно мы будем использовать эту переменную, но в C# вроде она работает только в блоке, дальше ее видно не будет. Я с каждой новой главой всё больше от шарпа отдаляюсь, как будто вообще его никогда не знал. Либо просто новые знания, о которых я даже не задумывался во время разработки.
>>1968766 >>1968769 Разве в шарпе не то же самое?.. Переменная которую ты объявляешь в блоке for / if / while не должна же утекать за пределы этого блока
В Пистоне например не так. Там нет никакой "блочной области видимости" (но по правде говоря не помню когда это мне хоть раз бы мешало)
>>1968773 Какая-то дрочь с этим варом если честно, вообще не логично, хотя Симпсон говорит, что и var и let нужно использовать, хотя для меня проще в начале блока указать let, чтобы область видимости была там, где мне это нужно использовать в дальнейшем по назначению, а внутри блока при необходимости изменять эти данные через конструкции if и так далее.
Фронтоаноны, чому вебпак не скукоживает весь жопаскрип в один файл? Не хочу вот такую хуйню на странице <script src="/build/runtime.js" defer></script><script src="/build/vendors-node_modules_srexi_purecounterjs_dist_purecounter_js-node_modules_alertifyjs_build_al-635012.js" defer></script><script src="/build/app.js" defer></script> А вот такую хочу <script src="/build/app.js" defer></script>
>>1968778 Сложности жс именно в уебанских тонкостях работы интерпретатора и необходимости тащить легаси-парашу без возможности просто ее отбросить (а то код в браузерах просто кекнится и перестанет работать) Забавно кстати когда некоторые прогеры на жс выставляет это все как достоинства блин. Питонисты кстати тоже часто этим страдают
>>1968778 Это просто, но не совсем логично. Зачем мне var, если я могу сделать такой код. let num = 5; let num2 = 0; if(num == 5){ num2 = 10; } console.log(num2); Я хочу явно видить, где у меня эта переменная используется, в моем случае, я получу какое-то стандартное значение, если даже if не пройдет, иначе ReferenceError.
>>1968782 Вообще-то вендоров он должен в отдельный файл пихать, чтобы не дрочить кэш лишний раз. Хуй знает почему у тебя два вендорских файла, колупай свой конфиг. >>1968786 >Зачем мне var, если я могу сделать такой код. Потому что var древнее let/const. Его не нужно использовать в свежем коде.
Я этих замыканий в рот ебал. Когда функция создается, у неё сразу же появляется скрытое свойство environment, которое содержит ссылку на внешнее лексическое окружение того места, в котором она была создана, что и создает замыкание. При этом сама функция содержит скрытый объект Lexical Environment, в котором есть Environment record, с списком всех локальных переенных, и объект содержащий ссылку на внешнее лексическое окружение. Вопрос! Нахуя функции 2 ссылки на внешнее лексическое окружение, если все функции это всё равно замыкания? Как это работает? Ссылки из environment нужна функции только если она была присвоена какой-то переменной?
>>1968793 >Его не нужно использовать в свежем коде. Вот с этого я в ахуе каждый раз. Постоянно везде где только можно вижу вар, в новых уроках, от всяких прошаренных спецов, в свежих документациях написанных вчера, везде! Вы что-то от меня скрываете? Почему вар используется везде и по сей день? Ответ о том, что это просто старый урок, код, дока и т.п. совершенно не принимается, поскольку это не так. Тут должно быть что-то еще
>>1968796 >от всяких прошаренных спецов Так эти "спецы" или с другого языка вкатываются и по привычке хуярят вар, или писали код до появления даже строгого режима и необучаемые. Особенно проигрываю с яндекса, там как пить дать перемалывают косточки с var/let/const на собесе и прочие пропозалы екмаскрипта, но внутреннее говно будешь на варах и фабричных функциях писать.
Есть что-нибудь такое же фундаментальное как YDKJS, только по Angular + RxJS? Хотелось бы не отрывками откуда то знания брать, а именно быть уверенным в том, что я весь фундамент знаю и могу переходить к практике не ниже миддла (но без набитой руки).
>>1968856 Мне не обязательно серия YDK, по Ангуляру там только вопросы, без постепенной подачи материала, которая поможет на практике. Есть книга или сайт какой-то такого же уровня, как и по JS?
>>1968883 Годно, и MEAN стак можно изучить, и RxJs еще. А ты сам брал по Ангуляру, оч хороший, устроился потом куда-нибудь? И если что, можешь аккаунтом поделиться или выгрузить, а то джуну без опыта идти только дворником работать чтобы за пару месяцев на курс накопить.
>>1968664 >>А тебя ебать должно во что там перепахался html? Ну допустим из разметки я при каком то вызове хендлера должен получить, и не сейчас прям, а через некоторое время. А в это время другой объект может получить элемент DOM из этой разметки и нахуевертить. Я готов потратить месяцок на пердолинг с книгой, что бы лучше понять как правильно все структурировать. Вот книгу и спрашиваю. Чето типа "построение корпоративных интерфесов на JS без фреймворков и мокрых писек без смс"
>>1967411 (OP) считается ли хорошим тоном использовать в тестовом фреймворки типа материала в тз написано что Используемые технологии: JS, HTML, CSS. JS-фреймворки не запрещены.
>>1968933 Не важно, тебя все равно не возьмут на работу, пока ты не напишешь по памяти в блокноте клон гугла. С беком конечно, и всеми сервисами. Но это только для бесплатной стажировки.
const result = words.filter(word => word.length > 6);
Что за механизм заставляет передавать в функции параметры, как например здесь в методе filter, когда мы делаем этого явно. Ведь мы просто создаём анонимную функцию, которая ждет, что в нее будет передан параметр. Как фильтр передает в эту функцию текущий элемент массива? Как это называется? Где прочитать?
>>1968907 >Ну допустим из разметки я при каком то вызове хендлера должен получить, и не сейчас прям, а через некоторое время. Хендлер будет вызывать связанный метод с твоим состоянием, все модификации дома за пределами этих методов будут считаться невалидными для состояния. >А в это время другой объект может получить элемент DOM из этой разметки и нахуевертить. Чё ты вообще несёшь? Какой другой объект? Поконкретней юзкейс приведи, а то получается, что ты не можешь управиться с домом даже на своей странице. >Я готов потратить месяцок на пердолинг с книгой, что бы лучше понять как правильно все структурировать. Нет такой книги, так как пока её будут писать, то советы в ней устареют. Касается в принципе всех книг по жс, кроме самых общих. >Вот книгу и спрашиваю. Чето типа "построение корпоративных интерфесов на JS без фреймворков и мокрых писек без смс" Никто не будет эту книгу писать. Человеку, на это способному, проще свой фреймворк создать и пропихнуть, чем вкатунов учить.
>>1969006 Ну т.е. если мы передаем в функцию параметр явно, например: func(5); Это понятно, а когда мы не передаем в функцию аргумент явно, то каким образом он туда передается? Я не спрашиваю как работает метод фильтр, это просто пример. Потому что вот здесь someArr.filter(arrElement => arrElement.length > 1), откуда анонимная функция берет этот arrElement? Что передает к примеру в данном конкретном случае текущий элемент массива в эту функцию?
>документацию джаваскрипта читай С радостью, вот бы только знать, где там об этом написано
Обьясните вот сейчас когда интернет космических скоростей, на пекарнях майнят, нахуя все эти библиотеки реакты вью редаксы графкли , неудели нельзя пилить сайты как раньше ?
>>1969015 Я тоже так думал, когда 5G еще только в головах у людей был. Суть такова скорость веба по другому работает, нежели скорость передачи данных по сети. Фильмы может будешь качать быстрее, но странички быстрее своего максимума открываться не станут.
>>1969020 Откуда тогда сама эта функция берет аргумент для себя? Я же нигде этот аргумент в неё не передаю. arrElement ведь каким-то образом сам подставляет в себя текущий элемент массива. Как?
>>1969015 >>1969021 Все эти фреймворки нужны не для уменьшения трафика, а для во первых более быстрой работы страниц в самом браузере. Потому что то, как браузер оперирует элементами DOM по дефолту, это очень долго. Второе - SPA. Сам по себе браузер не может оперировать страницей так, как будто бы ты работаешь с приложением. Для этого и нужны фреймворки. Вот две этих основных задачи и выполняют фреймворки/библиотеки. Все остальное вторично
>>1969015 >интернет космических скоростей Абсолютно однохуйственно после того, как страница и весь контент загрузились. >на пекарнях майнят Майнят на видеокартах, а жабаскрипт, однопоточный синхронный язык, работает на процессоре. На котором ещё вся остальная система работает, включая браузер, в котором этот жабаскрипт запускается. >нахуя все эти библиотеки реакты вью редаксы графкли , неудели нельзя пилить сайты как раньше ? Ты залётный что ли? Библиотеки эти нужны, чтобы хуяк хуяк и готово быстрее приближать. Попробуй любой компонент средней сложности писать без какого-нибудь шаблонизатора, даже на условном жикверике быстро завоешь волком и побежишь в цирк выступать.
>>1969024 >>1969020 Вот например другой вариант, пример у кантора, пикрил. Откуда функция принимает этот x? Понятно, что x это текущий элемент массива, но каким образом текущий элемент передается-то? Я бы с радостью почитал про это, вот бы только понять где
>>1969024 Потому что блять он ожидает в аргумент функцию с конкретным аргументом. Учи замыкания, чтобы не быть баттхёртом. А ещё лучше напиши отдельную функцию, которая должна колбэком в arr.filter() идти, а не инлайнь её анонимкой, там сразу всё поймёшь.
>>1969032 Бля, он передаёт ВЫЗОВ функции, которая возвращает функцию, подходящую параметрами как колбэк для фильтра. Тут тебе уж точно надо учить захват переменныхзамыкания.
>>1969043 Я тебя сейчас ударю нахуй. Каким образом это относится к замыканиям сука? Замыкания - способность функции запоминать ссылку на внешнее окружение при её создании. Как этот факт объясняет то, что в Х попадает текущий элемент массива?
>>1968922 Тоже сгорела от них жопа. А там еще всякие связки генераторов с промисами и прочее. И про async/await автор упоминает лишь вскользь, хотя как я понял они руинять всю эту хуйню с генераторами и делают их по сути нахуй не нужными.
>>1969069 Я вроде как расчитался, читаю просто бегло, че не понимаю - похуй, читаю дальше, автор хорошо от абзаца к абзацу объясняет, если не понял с первого абзаца есть впереди еще три или четыри, он там свои мысли по кругу гоняет, короче просто дочитывая уже вкуриваешь че он хочет сказать. Норм. Яже не жалуюсь в принципе. Начать просто было тяжело.
>>1969069 >хотя как я понял они руинять всю эту хуйню с генераторами и делают их по сути нахуй не нужными Мякотка в том что ты можешь писать свои запускаторы генераторов, которые необязательно запускают промисы. Посмотри redux-saga например
>>1969021 >>1969027 Вы так говорите будто реакты-редаксы ускоряют загрузку или скорость работы страниц а не наоборот. Только благодаря как раз таки скорости современного интернета и тому что у каждой собаки 3ГГц и 16 памяти современные фреймворки и существуют. SPA на реакт ты вообще хуй запустишь на каком-нибудь старом говне мамонта.
>>1969083 Они работу самого сайта ускоряют, а не загрузку. Работу сайта, когда он уже загрузился. Если у тебя там одна страница буквально без каки-то интерактивных элементов, то тебе фреймворки не нужны
>>1969083 Хуй знает о чем ты, я говорю что скорость загрузки сайтов на компе через оптоволокно уже максимальна если у тебя 100МБ канал. Ускорить загрузку помогут только - новые версии веб апи, новые браузеры, новые мощные сервера с хорошим откликом.
Для мобилок 5g нужен потому нужен что бы принимать без потерь волн - частоту, она более мощная чем предыдущие и интернет стабильнее будет, и скажем на мобилке условия будут приближены к стационарным пека с оптоволокном, не более.
>>1968994 >>Никто не будет эту книгу писать. Человеку, на это способному, проще свой фреймворк создать и пропихнуть, чем вкатунов учить. Ну да, то то в джава мире половина книг это "строим корпоративные приложения". Вторая - шла фабрика через абстрактную фабрику к цепочке обязанностей.
>>Чё ты вообще несёшь? Какой другой объект? Конкретней - другой прогер, решил доработать клиентский код на странице, читать что я там нахуярил и как оно работает - он в рот ебал. (Я хоть разообрался как вебпак работает, и +\- по классам все раскидал, но все же лапша.) Написал он свой обработчик, который чето где то меняет html того элемента разметки на котором у меня висит обработчик. А у меня мой обработчик хуиту начал возвращать.Типа такого. Я не особо могу сформулировать, потому что из юз кейсов у меня пока - нихуя особого.
Просто после бэка с его ооп и прочим стремлением к низкой связности, меня беспокоит что состояние html элементов, из которых какие то обработчики могут данные тянуть - могут быть изменены хуй пойми как и кем.
Полагаю это хуйню либы типа реакта и решают.
Если че не батхерти, а то у вас в треде конечно клоунада
>>1969093 >Написал он свой обработчик Ну если он трогает чужие элементы то очевидно же что распидорасит. >после бэка По аналогии, тебя не беспокоит что соседний сервис насрет тебе в базу в обход твоей бизнес логики?
>>1969083 >Вы так говорите будто реакты-редаксы ускоряют загрузку или скорость работы страниц а не наоборот. Они скорость разработки ускоряют. Просто блять нахуячь какую-нибудь карточку товара с несколькими обработчиками на срякте, а потом напиши эквивалент на чистой ванилле без всяких хаков с инсертами шаблонных строк и сравни затраты времени.
>>1969106 >>Ну если он трогает чужие элементы то очевидно же что распидорасит. Короче это вещь которую нужно принять как факт. >>По аналогии Я об этом думал, конечно сторонний сервис может мне данные поменять, но структуру то не изменит. Не типы данных, ни количество полей.
Тут же сторонний скрипт может тупо разметку удалить вообще. Ладно, я понял, спасибо.
>>1969107 Охуеваю ебаться с постоянными обращениями к дом, и блять залупой с навешиванием/убиранием обработчиков нна элементах которые динамически создаются и удаляются. Хорошо хоть шаблонизатор хенделбарс жизнь облегчил пиздец.
Но вообще поебусь еще пару недель, да закачусь в реакт. Мне не SPA пилить, а всякие сложные формы с динамически подгружаемыми данными нужны. >>1969109 - кун
>>1969093 >Ну да, то то в джава мире половина книг это "строим корпоративные приложения". Вторая - шла фабрика через абстрактную фабрику к цепочке обязанностей. Это конечно хорошо, но мы говорим о жаваскрипт мирке, в котором за год может родиться и помереть целый фреймворк вместе со своими идеями. А неумершие могут полностью поменять парадигму, как например реакт с классов на хуки. Или выйти новая мажорная версия бандлера, с которой половина старых либ не дружит. >Я не особо могу сформулировать, потому что из юз кейсов у меня пока - нихуя особого. Берёшь html, лепишь на него элементы, через скрипт вешаешь на них обработчики и смотришь на результат. >Полагаю это хуйню либы типа реакта и решают. Реакт это дело не совсем решает, он больше как клиентский шаблонизатор, но конкретно что ты хочешь сделать - флюксо-подобное управление состоянием. И редукс является одной из реализаций этой парадигмы. И он не является частью реакта, хоть его часто в реактоподелия и пихают.
>>1969112 >>Но вообще поебусь еще пару недель, да закачусь в реакт. Мне не SPA пилить, а всякие сложные формы с динамически подгружаемыми данными нужны.
Бля, и в тоже время я навелосипедил нативным js такой уютный пагинатор загруженных данных, переход по страничкам результата - это ajax запросы. Было прикольно его васянить.
>>1969032 >>1969057 >>1968922 Что это за лютый говнокод? Блядь, неужели нельзя понятнее написать? Нахуя городить все эти замыкания, если можно передавать в функцию просто больше аргументов?
>>1969145 >Нахуя городить все эти замыкания, если можно передавать в функцию просто больше аргументов? Какие больше аргументов в колбэк фильтра, если он ожидает колбэк с определённым количеством аргументов?
>>1969153 Ну типо несколько раз назначить внутренние функции, хз вообще как это называется r = k(0); s = r(1) d = s(). Ну а я типо прост беру и делаю r = k(0); s = l(1); x(r, s).
>>1967411 (OP) Расскажите плез, где можно достатать весь список методов и вообще всего из чего состоит Реакт. На самом сайте Реакта в документации все этим методы как-то не структурированы, вплетены в графоманию.
>>1969107 Вот это верно. И это единственное что современные фреймворки ускоряют, в угоду всего остального.
Но как только производительность начинает вставать серьёзной хронической проблемой (например объём данных в редаксе того же порядка что объём памяти на устройстве) все внезапно охуевают от точно что пути назад в ванилу уже нет.
>>1969207 Всё равно нихуя не понял. Почему нельзя через пикрелейтед всё делать? Если через return function(x){}, то меньше памяти и что-то с оптимизацией связанное?
>>1969227 Твой пример никакого отношения к теме не имеет. Пример с фильтром можно было переписать как const filter = inBetween(3, 6); arr.filter(predicate); Но тогда было бы слишком понятно.
Есть куча текста без пробелов обернутого в span Когда засовываю его в некий контейнер то текст высирается в одну строку (конечно, пробелов-то нет), как заставить его делать переносы по строкам и уместиться в контейнер? Возможно кстати тут даже без жс обойтись выйдет
>>1969251 Тем что это тяжело поддерживать и функции становятся тяжелыми, зависимыми от кучи аргументов.
В примере с фильтром, предикат (функция, которая фильтрует элемент) можно переиспользовать в другом фильтре. Или объединять с другими предикатами. Или передавать как аргумент в другуюфункцию. И так дальше.
>>1969253 >как заставить его делать переносы по строкам Каким строкам, если у тебя в тексте строк и переносов нет? Он должен за тебя распарсить текст и лайнбрейки вставить по смыслу или что? >и уместиться в контейнер Текст всегда умещается в родительский контейнер по умолчанию, тут уже надо спрашивать что ты с этим контейнером сделал, что у тебя не умещается.
К счастью, многие вспомогательные функции уже написаны до нас, т.к. они постоянно используются. Ramda.js популярная библиотека сейчас, с помощью нее вышенаписанное можно написать сразу const array = [1, 2, 3, 4, 5, 6, 7, 8]; filter(both(lte(3), gte(6)), array) // [3, 4, 5, 6]
Нужен ли подобный подход каждому проекту? Нет, для туду листа на реакте можно хоть через for цикл нахуярить. Но на больших проектах переиспользование функций уменьшает количество кода и позволяет делать его более выразительным и проще поддерживаемым.
Кроме того, подобный подход улучшает твое качество кода, ты пишешь меньше процедурных портянок и код становится более абстрагированным, когда ты начинаешь использовать функции как аргументы. Тогда и становится понятно, что без замыкания на ДЖС писать вообще было бы невозможно, пожалуй.
Нужно ли делать делегирование событий в реакте или просто на каждую кнопку вешать онклик на похуях? Какая практика обычно распространена? С одной стороны меньше обработчиков, с другой с кодом куда легче работать и проще манипулировать данными при клике
>>1969255 >>1969281 Прочитал интернеты. Моё мнение токово. Литературно. На этом всё. Абсолютно все примеры можно заменить на более простые, более понятные, более производительные императивные.
>>1969255 >>1969281 Алсо, пока ебал вашу хуйнявые закрывания и калбэки, придумал такую хуйню. Пользуйтесь. Прикона вышло, нужная хуйня, мне как раз треба. Можно даже этот ваш контекст устанавливать через это, но его по-разному можно, так что это чисто словарь функций для ебания байтов.
>>1969323 У тебя на скрине не байты, а числа в десятеричной системе, которые ты используешь как свойства объекта.
Теперь по крайней мере понятно почему ты ничего не понял про функции и замыкания, JS еще учить и учить. Алсо судя стилю письма тебе не больше 18 лет.
>простые, более понятные Нет. Когда-нибудь возможно ты попадешь в большой проект и поймешь почему твои выглядящие "просто" бредовые идеи на самом деле говнокод.
>более производительные Да. Но в 99% случаев разницы между наносекундами погоды не сделают, если только ты не пишешь под микроконтроллеры.
Рубрика вопросы от вкатышей. Как-то раз, 5 минут назад, забавы ради, зашёл в доку ramba. Функциональненько так, сигнатурки красивые вся хуйня. Есть вот, к примеру, функция toUpper, её исходник это мягко говоря пиздец. Оно ведь сложно ради ничего! Вопрос зачем и нахуя?
>>1969326 > У тебя на скрине не байты, а числа в десятеричной системе Именно так в жс байты используются, лол. Просто массив в число (если нужны преобразования ради надёжности, например) или строку хуяришь и всё. Ты же массивы не можешь сравнивать. Естественно нужен еще один словарь длин и цикл преобразования бинарных массивов, которые примерно так же будут работать. > которые ты используешь как свойства объекта. Кстати, а это нормально вообще, так переменные в объектах назначать? Выглядит кросиво, бохато, но как-то неприятно. Оно же просто как ссылки на буферы памяти используется, да? > Теперь по крайней мере понятно почему ты ничего не понял про функции и замыкания, JS еще учить и учить. Не понимаю зачем они нужны. Нужно практическое применение, но на практике это лишний говнокод с говноконтекстом и падение производительности. Мне кажется даже вот такой словарь с функциями будет медленнее простой портянки сравнения строк через if. Но это не точно, объекты это центральное свойство жс, возможно интерпретатор тут всё же использует высокоэффективный код. > Алсо судя стилю письма тебе не больше 18 лет. Меньше фантазируй. > Нет. Когда-нибудь возможно ты попадешь в большой проект и поймешь почему твои выглядящие "просто" бредовые идеи на самом деле говнокод. Не, говнокод это когда ты читать не можешь и не вкуриваешь сколько контекста функция принимает и где, например. Или что она храниться в памяти всегда. Это реальный говнокод, когда сайтик хуево работает на i5. > Да. Но в 99% случаев разницы между наносекундами погоды не сделают, если только ты не пишешь под микроконтроллеры. Речь шла про сурьезное программирование, в котором огромное кол-во функций и их переиспользования. Очевидно ни про какие наносекунды речи не идёт уже, а модули работают уже микросекундное время.
>>1969708 Он создаёт каждый раз новую область видимости, т.е. каждый раз будет работать scope.h, каждый раз будет работать аллокатор. Для for(let ; ; ) это нормально, но если ты будешь внутри цикла что-то там создавать объемное.... Боюсь говнокод v8 к таким нагрузкам еще не готов....
>>1969741 Плохо, что сказать. У меня ОЧЕНЬ много кода когда я так делаю, ещё больше в forEach... А какая альтернатива есть тогда? Я не вижу чтобы тормозили проекты мои, но всё же.
У вас бывает такое что заебался кодить, читать и хочется упасть на кровать и спать, но ты понимаешь что это выбор слабаков, и продолжаешь кодить, марафоню уже две недели по 12 часов каждый день, сегодня понял что сил уже не осталось, и ничего кроме кода больше не интересно, но на него сил не осталось, кек. Эмоциональное выгорание типо.
>>1967411 (OP) Сап, программач. Очередной вкатывальщик с очередной тупой проблемой. Подключил файл со скриптами в <head>, написал простенькую херню по аналогии с тем, что когда-то писал на делфях, но в результате получаю пикрил. Может я чего-то не понимаю и функции в жс, например, не могут содержать больше одной строки кода?
>>1969801 Говно и моча. Хочешь быстро вкатиться что бы писать по мелочи учи jquery, хочешь нормально выучить язык читай все что в шапке., книги, доку. И свою хуйню больше не кидай, пока хоть одну книгу не прочтешь.
>>1969773 Да ничего не делай, всем похуй, память резиновая. Альтернатива - дрочи архитектуры при которых в циклах переменные не объявляешь. Хз где про это читать даже и к чему это относится.
>>1969125 напердолил уже несколько сложных приколюх на реакте без всяких редуксов, полёт нормальный есть мнение что сам редукс лучше не использовать а использовать либы использующие редукс
>>1969984 >A single instance of Node.js runs in a single thread. To take advantage of multi-core systems, the user will sometimes want to launch a cluster of Node.js processes to handle the load.
>>1969688 >Именно так в жс байты используются, лол. Просто массив в число (если нужны преобразования ради надёжности, например) или строку хуяришь и всё. Ты же массивы не можешь сравнивать. Естественно нужен еще один словарь длин и цикл преобразования бинарных массивов, которые примерно так же будут работать. Екмаскрипт ему дал типизированные массивы для байтоёбства, пердолься на здоровье. Говорит, не хочу пердолиться нормально, хочу жрать говно и костылить псевдобайтоёбство высокоуровневыми конструкциями. >Это реальный говнокод, когда сайтик хуево работает на i5. Давай рассказывай, как тебе ш5 поможет для рантайма синхронного однопоточного языка.
Я обнаружил, что у меня в реакте есть два очень похожих компонента, хочу сделать из двух один. Вопрос в типизации. Первый компонент принимает в качестве пропса функцию с аргументом и типом возврата, второй принимает без аргументов и возвращает нихуя, в остальном они похожи. Пока что я написал 2 интерфейса: interface One { //blahblahblah myFunc(abc: string) => number }
interface Two { //blahblahblah myFunc() => void }
и в пропсах: const Component = ({...blahblahblah, myFunc}: One | Two): JSX.Element => {} Это норм? И как можно проверить, какому интерфейсу удовлетворяют полученные пропсы? Я хотел бы на основании этого подключать другие стили.
>>1970020 >Екмаскрипт ему дал типизированные массивы для байтоёбства, пердолься на здоровье. Говорит, не хочу пердолиться нормально, хочу жрать говно и костылить псевдобайтоёбство высокоуровневыми конструкциями
Дрочился с этими массивами на ноде, пока васянил свою реализацию вэб-сокетов. Интересно
>>1970028 Серьезно блять? Пиздец. Почему для этого не предусмотрели функцию? То есть даже костылями нельзя проверить, всегда придется руками передавать тип? Пиздец блять.
>>1970030 Я дрочился с передачей бинарных файлов через сокеты. Картинки например. Чисто велосипедостроение. Там много всякого, мим-типы. Отправил клиент бинарным потоком через сокет картинку - сервер принимает этот поток. Там много интересного пердолинга.
Короче ебал я рот этого Кантора и того кто его в этот злоебучий фак добавил. Доставьте мне тем которые реально нужны в работе и юзаются довольно часто чтобы их знать. Лучше буду гуглить мдн чем читать эту хуйню с отвратной структуризацией материала. Всё что нужно кроме базовых фич которые во всяких сях имеются, т.е. какие-то там промисы, дереференс это понятно, пердолинг с домом - очевидно. Что там ещё?
Окей, я сделал 1 компонент из двух. interface Props { //blahblahblah myFuncOne?: (abc: string) => number; myFuncTwo?: () => void; componentType: "TypeOne" | "TypeTwo"; --Это типо литерал стринг тайп или как-то так } В пропсах перечислены все возможные варианты, т.е. и myFyncOne и myFuncTwo. Это норм? В самом компоненте есть onClick обработчик. Я хочу, чтобы в зависимости от componentType onClick был либо myFuncOne либо myFuncTwo, это норм, если я сделаю useState, в проверку типа в If, в зависимости от которой будет либо state=myFuncOne либо myFuncTwo и уже стейт будет передоваться в onClick. Это норм вообще? Выглядит костыльно. Или лучше было бы не ебать мозг и оставить 2 компонента, которые отличаются 1й функцией?
>>1970050 Там нет ничего хорошего. Почти для каждой темы что я ответственно прошёл и из которой пробовал решать шизо задания я после гуглил/смотрел выборочно у чувака из курса с юдеми.
>>1970058 >ООП хз >асинк Запросы по апи. >коллбеки Бывает иногда нужно. >объекты Ебанулся? >если надо учить практич манипулирование DOM ом Манипулирование домом из ванили - мозгоебство.
>>1970062 План примерно такой и был, но спустя 3 часа мозгоебли над сабжем я реально бугуртнул. Пойду прогуляюсь, наверну кофе и может пересилю себя да добью этот ужас.
>>1970031 Сдался в рабство тс-комплиятору по надуманной причине и под веянием моды - терпи, хули еще тебе делать. Жс-господа тем временем наслаждаются свободой без анальных пробок и передают в функции что хотят.
>>1970049 Вообще забей на мерж всего двух функций, особенно если нужно пихать литералы в аргументы. Это они сейчас отличаются только одной функцией, потом захочешь чего-нибудь ещё подкрутить в одном компоненте и это будет намного сложней сделать.
>>1970067 Большинство ошибок возникают после компиляции, во время работы с апи и тд. ТС не поможет тебе защититься от них. Но как инструмент для выработки правильных привычек в написании кода тс гуд
>>1970064 > План примерно такой и был, но спустя 3 часа мозгоебли над сабжем я реально бугуртнул. Если где конкретно тупишь - юзай ютуб. Просто на джуновских собесах обычно ебут именно за самую базу за css спрашивали больше чем за реакт
> Пойду прогуляюсь, наверну кофе и может пересилю себя да добью этот ужас. Норм, главное потом вернись за обучение
>>1970082 Забыл добавить что и документации никакой нет, это просто набор объектов в жсоне и я хочу по ссылке или как-то ещё подучить один объект Они же нумеруются от 0 до конца
Сделал на реакте галерею пикч типа как у пинтереста, слитной плиточкой такой. В принципе не сложно, но она сука "мигала" при ререндере когда в настройках вид галереи переключаешь типа. Пока нашел решение проблемы чуть не закукарекал, ухбля.
>>1970049 Прежде чем писать типы расскажи, как ты без componentType собирался определять будешь ты передавать в одну общую функцию аргумент или не передавать в одну общую функцию аргумент
Батя за сегодня сделал колоссальное: написал собственный парсинг текста для проставления переносов. Нахуя спросите? Потому что css свойства word-wrap / word-break / hyphens не работали, но Батя не хуем деланный, Батя на хуя вертел всех и каждого
>>1970103 Никак, очевидно. К чему эти вопросы? Меня больше интересует вот эта часть: >В пропсах перечислены все возможные варианты, т.е. и myFyncOne и myFuncTwo. Это норм? В самом компоненте есть onClick обработчик. Я хочу, чтобы в зависимости от componentType onClick был либо myFuncOne либо myFuncTwo, это норм, если я сделаю useState, в проверку типа в If, в зависимости от которой будет либо state=myFuncOne либо myFuncTwo и уже стейт будет передоваться в onClick.
>>1970020 > Екмаскрипт ему дал типизированные массивы для байтоёбства, пердолься на здоровье. Говорит, не хочу пердолиться нормально, хочу жрать говно и костылить псевдобайтоёбство высокоуровневыми конструкциями. Так из uint8 всё равно словарь придется делать, о чем ты нахой. Мне больше интересно эффективно ли хранить словарь в объекте. > Давай рассказывай, как тебе ш5 поможет для рантайма синхронного однопоточного языка. Система загрузку приложений на несколько ядер распределяет. И жопаскрипт будет на одном из. И желательно чтобы он не сжирал своими замыканиями и прочим говнокодом всё ядро.
>>1970125 >Система загрузку приложений на несколько ядер распределяет. Ядра с потоками путаешь. >И желательно чтобы он не сжирал своими замыканиями и прочим говнокодом всё ядро. Ты конечно же тесты проводил, что твой говнокод дохуя быстрый без замыканий, да?
>>1970114 Ну, как-то так у меня и получилось. Я смотрю ты шаришь в реакте. Где можно вообще бест практис почекать по реакт + тс? И стоит ли ебать себе мозг с ворнингом об exhaustive deps с хуком юз эффект, если я 100% уверен, что все норм, просто эта хуйня глаза мозолит.
>>1970127 > Ядра с потоками путаешь. Не суть, не суть. Суть в том что даже хром нагрузку по ядрам распределяет. > Ты конечно же тесты проводил, что твой говнокод дохуя быстрый без замыканий, да? Это в руководстве мозилы по замыканиям написано.
П.С. А вообще я вот что хотел: Без передачи в пропсы type вычислить, к какому типу принадлежат пропсы. Типо: type Props = X | Y props: Props И дальше блять я точно не знаю, вроде я чет такое читал на typescript.org Идет проверка, удовлетворяет ли props интерфейсу X, и если да, то выполняется какой-то код. Блять надо посмотреть, что-то такое там точно было. И никаких дополнительных type= в компоненте не надо.
>>1970136 >Суть в том что даже хром нагрузку по ядрам распределяет. Хром ничего "не распределяет", что ему система даст, то и будет жрать. >Это в руководстве мозилы по замыканиям написано. Наркоман, там только пример с фабричными функциями приведён, который перерос в классовый сахарок в свежем жс.
>>1970148 > Хром ничего "не распределяет", что ему система даст, то и будет жрать. Че несешь, ты поехал что ли. Он давно уже вкладки по потокам и ядрам распределяет. > Наркоман, там только пример с фабричными функциями приведён, который перерос в классовый сахарок в свежем жс. У тебя шиза началась. Буквально. > > It is unwise to unnecessarily create functions within other functions if closures are not needed for a particular task, as it will negatively affect script performance both in terms of processing speed and memory consumption.
>>1970146 >Идет проверка, удовлетворяет ли props интерфейсу X, и если да, то выполняется какой-то код type guards Но в них тоже надо что то чекать, типов то в рантайме нету
>>1970152 >Че несешь, ты поехал что ли. Он давно уже вкладки по потокам и ядрам распределяет. Кого он тебе распределяет, наркоман? Он вкладки в отдельных процессах создаёт, а как эти процессы будут насиловать ядра и потоки решает система. >It is unwise to unnecessarily create functions within other functions if closures are not needed for a particular task Долбоёб.
>>1970153 Блять, да я ебал. Сложно было было что ли изначально типизацию к языку прикрутить. Пиздец блять боже, как же я завидую всяким сишарпам, где все няшно и изкаробки.
>>1970155 > Кого он тебе распределяет, наркоман? Он вкладки в отдельных процессах создаёт, а как эти процессы будут насиловать ядра и потоки решает система. Создание вкладок в отдельных процессах это и есть распределение. Подходит немношк. > Долбоёб. > if closures are not needed for a particular task Так вопрос с этого начинался. Нахуя нужны замыкания на практике? В какой такой практической задаче (напоминаю, let уже изобрели) замыкания понадобятся и без них (напоминаю, любую рекурсию можно в цикл разложить) жить нельзя?
>>1970159 >Создание вкладок в отдельных процессах это и есть распределение. Вкладки создаются, чтобы память хорошо сжиралась, а не для каких-то волшебных многопоточных оптимизаций. >Нахуя нужны замыкания на практике? Ты даже типичную промисифированную реализацию таймаута без захвата переменныхзамыканий не напишешь. Да и любую любой враппер в принципе. >(напоминаю, любую рекурсию можно в цикл разложить) В цикл можно хоть твою мамашу разложить, вот только не каждая реализация рекурсии циклом сохраняет оригинальную читабельность.
>>1970159 >Нахуя нужны замыкания на практике? Зачем промисы если есть колбэки? Зачем вообще колбеки если можно просто в цикле чекать интерапты Нахуя ваши циклы, я могу просто goto!
Аноны, делаю задачки по учебнику и не могу понять, че делает вот эта строка помеченная стрелкой. Это я подсмотрел уже в готовых решениях как вывести итоговый результат. Поэтому и не понимаю. Есть функция которая делает некое вычисление, в этой функции есть абстрактный(?) параметр sum И только если в конце объявить что um(menu), то typeof выдаст мне желаемый результат. Что происходит когда срабатывает это um(menu)? из объекта menu подставляются данные?
>>1970172 >В цикл можно хоть твою мамашу разложить, вот только не каждая реализация рекурсии циклом сохраняет оригинальную читабельность. Можешь забить, чел живет в своем шизомире Даннинг-Крюгера т понятия не имеет как работает JS.
>>1969633 Рамда в исходниках сложная чтобы соблюдать каррирование каждой функции и выжимать перфоманс (многие функции под капотом там через while написаны)
>>1970172 > Вкладки создаются, чтобы память хорошо сжиралась, а не для каких-то волшебных многопоточных оптимизаций. Не суть, не суть. Главное что вкладки не в одном потоке и не на одном ядре работают. > Ты даже типичную промисифированную реализацию таймаута без захвата переменныхзамыканий не напишешь. А зачем нужен таймаут в промисах? Таймаут ведь имеет колдблек. Промисы тоже ненужны, они создавались когда вебворкеров не было и изобретали шизофрению с псевдоасинхронностью. Сейчас же чисто поебать на блокирование потока которому предначертано быть блокированным и асинхронным. > Да и любую любой враппер в принципе. Вот тут точно нет необходимости в замыканиях. > В цикл можно хоть твою мамашу разложить, вот только не каждая реализация рекурсии циклом сохраняет оригинальную читабельность. Проблемы говнокодеров.
>>1970173 Вот действительно, зачем нужны промисы, когда есть коллбеки и нормальная асинхронность? Ну почти нормальная, изменения dom и так отделены фреймворком, так что похуй.
>>1970238 Ну так я и спрашиваю зачем это всё нужно, че объяснить-то сложно что ли.
>>1970272 Алсо, на пике буквально единственная хуйня, которую хоть как-то можно прикрутить к использованию, за счет того что оно промисы возвращает и имеет в себе try...catch. Но даже оно заменяется обычным куском кода и try..catch.
>>1970272 >Не суть, не суть. Главное что вкладки не в одном потоке и не на одном ядре работают. В этом-то и ссуть, что вкладко-процессы не из-за мифических оптимизаций добавили, а чтобы браузер не крашился при достижении 2ГБ/4ГБ памяти. Про охуенные многопокпоковые оптимизации уже после придумали, чтобы оправдать пожирание памяти. >А зачем нужен таймаут в промисах? Таймаут ведь имеет колдблек. Бля, ты долбоёб. Колбэки как раз насильно заставляют скоупы для замыканий плодить.Если ты конечно не любитель анонимки пихать в колбэки. Но тогда твои пуки про производительность ничего не стоят. >Промисы тоже ненужны, они создавались когда вебворкеров не было и изобретали шизофрению с псевдоасинхронностью. Сейчас же чисто поебать на блокирование потока которому предначертано быть блокированным и асинхронным. Земля тебе пухом, братишка. Интерфейс вебворкеров по дефолту на колбэках работает (а значит больше замыканий), не разделяет контекст с основным потоком и не может в конструкции, не представляемые джейсоном. То есть для всех небайтоёбских операций он добавляет оверхед в виде конвертаций сообщений на обоих концах. Да и требует ассинхронного взаимодействия, на заблоченном потоке ты даже воркеров не сможет пропукать.
>>1970172 >В цикл можно хоть твою мамашу разложить, вот только не каждая реализация рекурсии циклом сохраняет оригинальную читабельность. Что ты несешь, поехавший, рекурсия - это нечитабельный антипаттерн, которого нужно избегать всеми силами. Дрочат на него только вкатывальщики в ФП, которые написали свою первую функцию для чисел Фибоначчи, либо жсеры, которые реального ФП и его подходов в глаза не видели, и думают что ФП ЭТА КАГДА ФУНКЦИИ ПИШЫШЬ
>>1970394 >var Начитался, блядь, двачей. Где хитрости то? Сложение столбиком помнишь? Тут тоже самое, только в двоичной системе x' = x ^ y складываем каждый разряд по модулю 2, в десятеричной ты складываешь по модулю 10 y' = (x & y) << 1 каждый разряд который у обоих чисел равен 1 переносим в старший Очевидно, что x + y == x' + y'
Мужики, объясните долбоёбу почему функция работает не так, как надо. В общем, функция должна возвращать массив с объектами, которые собираются внутри функции из массива с ключами и массива с массивами данных. Моя хуйня возвращает массив с тремя одинаковыми объектами, значения которых взяты из последнего массива.
>>1970544 Так трудно вместо i и j как-то осмысленно называть переменные? Ты три раза засунул один и тот же объект в массив, чего ты ожидал увидеть там?
Нужно getом забирать данные с бэка пока не придет stop в json пагинации нет, данные приходят так называемыми пачками (batch) Тоесть пришел ответ 10000 items, stop:false значит не весь, stop:true может быть когда придет 1000000 items Понятно что ждать весь ответ не вариант, нужно показать юзеру результат уже из первой пачки
Проблема в том, что когда еще не все пачки загружены, юзер уже должен иметь возможность имеющееся данные отфильтровать тоесть у меня в стэйте будет отфильтрованные данные в одной пачке, но с сервера следующая пачка придет неотфильтрованная
Как я думаю сделать: если фильтр выбран применить его к уже загруженным данным, произойдет ререндер и они отобразятся в соответствии с условиями фильтра, это понятно но нужно будет также начать применять фильтр к другим пачкам, сразу после загрузки, и только потом показывать данные (чтобы уже отфильтрованные отобразились), пока не знаю как реализовать, но мысль правильная? не подскажешь как лучше сделать? какие еще подводные могут быть?
Нужно сделать на редаксе, еще все покрыть тестами - thunk, если покрывать, слышал, что гемор ужасный, так ли это и почему? А saga типа норм, но с ней дело не имел.
>>1970591 Сделай полоску загрузки, чтобы юзер понимал что данные не полны, фильтр запрети менять во время подгрузки, опционально кнопку отмены, если запросы рили долгие.
>>1970599 >если юзер фильтр сбросит чо будешь делать? Изначальное состояние будет доступно - в редаксе так можно, как я понимаю. В таком случае верну стэйт в исходный для загруженных данных, а к дозагружаемым просто не буду применять фильтр. Пойдет? >фильтр запрети менять во время подгрузки Может юзер захочет посмотреть отбор из тех 5тыс. items, что прогрузились (там с фильтрами результат будет 50-200), пока грузятся остальные 50тыс. Такое решение не пойдет - тут именно нужно чтобы моментально смотреть загруженные данные с нужными фильтрами, ничего ждать нельзя. И вообще, думаю, что первые 5-10 сек. запретить применять фильтр - плохой пример UX в нынешнее время, где все скорость решает. Юзер к конкуренту уйдет, потому что "там не тормозит".
>>1970315 Кек. Вебворкер и рендеринг это отдельные потоки.
>>1970345 > В этом-то и ссуть, что вкладко-процессы не из-за мифических оптимизаций добавили, Какая разница? Речь шла о том, что хром использует потанцевал ш5. > Бля, ты долбоёб. Колбэки как раз насильно заставляют скоупы для замыканий плодить.Если ты конечно не любитель анонимки пихать в колбэки. Но тогда твои пуки про производительность ничего не стоят. Проиграл с этой хуйни. Зачем мне плодить какие-то там колбеки или промисы? Вся асинхронная работа происходит в разных потоках, вебворкер сам пропукивает пропуки для стейта и тасков. Для всего остального давно придумали различные реализации реактивности, которые кстати работают на коллбеках в большинстве случаев, тому что ромисы имеют собственную петлю, отличную от коллбеков. > на заблоченном потоке ты даже воркеров не сможет пропукать. Зачем пропукивать воркеров? Параллелизм не так работает, пропуки это сообщения между тредами.
>>1970438 Им дали вебворкеры для нормальной параллельной асинхронной работы, нет, промисированную псевдоасинхронищу жрать вкуснее. Нахуя нужно чтобы интерфейс без лагов был? Нее, это не про говнокодеров, ща нахуярим.then(чтобы скроллинг лагал). Пиздец просто.
>>1970651 Завернут на код ревью так. Компания дрочит на скорость, как никто другой. Тут уже в первой пачке данных фильтруй нехочу, а ты предлагаешь ждать, чтобы все пришли - уже ПРОСАДКА в эффективности, выражаясь их языком. Недаром бэк так спроектирован - пачками отдавать, наверное.
>>1970663 >>1970647 >>1970591 Генератор фильтра должен быть доступен всегда. Т.е. фильтр генерируется на сервере и отдается клиенту, клиент может начать фильтровать не имея данных вообще. Как клиент, так и сервер имеет свой экземпляр фильтр, который синхронизируются между клиентом и сервером. Данные фильтра и сами данные идут двумя отдельными запросами. Алсо, сейчас пишу json-фильтр с байтовым потоком и байтоебством, может покажу потом что вышло и какяэтавижу.
>>1970683 >фильтр генерируется на сервере и отдается клиенту Анон, условия придумываю не я. В своем ОП-посте я их изложил. Или я не так тебя понял? Фильтрации на бэке нет, отдаются пачками данными. >клиент может начать фильтровать не имея данных вообще Да, именно. Врубаешь фильтр(ы), к данным которые пришли он применяется, потом рендерится.
>>1970652 >Какая разница? Речь шла о том, что хром использует потанцевал ш5. Потанцевал в память срать? Вроде ты тут над байтиками трясёшься, но при этом защищаешь всирание памяти браузером. >Вся асинхронная работа происходит в разных потоках Ты дебил или вкатыш? >вебворкер сам пропукивает пропуки для стейта и тасков Ух какой волшебный воркер, ничего не делаешь, а всё есть. Ты на синтаксис его инициализации, вызова и взаимодействия посмотри, дебил блять. >Для всего остального давно придумали различные реализации реактивности, которые кстати работают на коллбеках в большинстве случаев, тому что ромисы имеют собственную петлю, отличную от коллбеков. Это не из-за какой-то волшебности колбэков, которые кстати срут ненавистными тобой замыканиями, а потому что эти либы были написаны до промисов. >Нахуя нужно чтобы интерфейс без лагов был? Нее, это не про говнокодеров, ща нахуярим.then(чтобы скроллинг лагал). Ты случаем не из пыхатреда? Скроллинг у тебя и на генераторах, и на колбэках будет лагать, и даже на воркере, у которого кстати доступа к дому нету. Нормальный многопокпок у него на воркерах, одна история охуительней другой.
>>1970696 > Или я не так тебя понял? Не, всё верно, я предлагаю въебать фильтрацию и на беке и на клиенте. > Анон, условия придумываю не я. Так возьми и придумай. Скажи "птсс, если на беке будет фильтрация, то производительность будет в тысячу раз лучше и денег будет меньше". > Да, именно. Врубаешь фильтр(ы), к данным которые пришли он применяется, потом рендерится. Не, смотри. Ты берешь полный набор данных, которые есть на беке. И генерируешь фильтр. И отсылаешь его на клиент. Т.е. фильтр уже сгенерирован будет и клиент уже может щелкать по клавишам, пока данные только идут. А новые данные просто проходят через существующий фильтр, когда они приходят на клиент. Можно на каждый пакет данных навесить хэш фильтра, чтобы знать применялся к ним конкретный фильтр или нет. Если эти пакеты хоть как-то структурированы, офк.
Анусы, делаю в одном файле export default {a, b}, в другом import {a, b} from хуй. И не работает. Я понимаю, что это не по спеке, но в вебпаке это работало раньше точно т.к. он это превращал в простой var {a, b} = webpack_module_import(). А теперь не работает. Это новая версия пофиксила и детектит, когда я пытаюсь сделать named import из модуля, где только дефолтный есть, или я где-то проебываюсь?
>>1970725 А надо ли? Я помню, что это работало, а сейчас хз, может это я просто в конфиге где-то проебался. Кто кодит с вебпаком и модулями, у вас получается имена классов как named export импортить?
>>1970700 >Ты берешь полный набор данных, которые есть на беке. И генерируешь фильтр. И отсылаешь его на клиент. Т.е. фильтр уже сгенерирован будет и клиент уже может щелкать по клавишам, пока данные только идут. Я что-то не раздуплюсь - если на бэке нет фильтра, почему на фронте только не использовать этот подход? Ну тоесть фильтр не выбран - все так и остается - данные рендерятся в порядке, как на бэке они, выберешь фильтр - загруженные данные фильтруются, происходит перерендер, новые через фильтр проходят; если не загружено ничего, а клиент успел щелкнуть по фильтру, соответственно данные проходят через фильтр прежде чем отрендерятся.
>>1970698 > Потанцевал в память срать? Вроде ты тут над байтиками трясёшься, но при этом защищаешь всирание памяти браузером. Что за хуйню ты несешь блядь каждый раз? Речь была про распределение жс по ядрам. Какая память, блядь? > Ты дебил или вкатыш? > Ух какой волшебный воркер, ничего не делаешь, а всё есть. Ты на синтаксис его инициализации, вызова и взаимодействия посмотри, дебил блять. Сказать-то что можешь или только жидко пукать? > Это не из-за какой-то волшебности колбэков, которые кстати срут ненавистными тобой замыканиями, а потому что эти либы были написаны до промисов. > эти либы были написаны до промисов. > до промисов Ахах. Дебил, блядь, промисовый, промисы 9 лет в либах существуют и 6 лет как стадарт. > Ты случаем не из пыхатреда? Скроллинг у тебя и на генераторах, и на колбэках будет лагать, и даже на воркере, у которого кстати доступа к дому нету. Нормальный многопокпок у него на воркерах, одна история охуительней другой. Промисовый, смотри. Основной поток - для рендера, чтобы UI не лагал никогда. Асинхронные потоки - для асинхронных событий. Доступно излагаю?
Аноны, вот у нас для вызова API использовали XMLHttpRequest, потом для облегчения JQuery, теперь fetch, а что использовали и используют для этих целей в PHP? Раньше file_get_contents а теперь curl_init? Я всё правильно нагуглил?
А как они поступают если нужно получить данные сразу с нескольких API и вывести в нужном порядке? То есть если 1 API недоустпен - вывести данные со 2API и т.д.
>>1970731 >Что за хуйню ты несешь блядь каждый раз? Речь была про распределение жс по ядрам. Какая память, блядь? Нести хуйню про ядра начал тут ты, потому что обосрался. Я тебя просто поправляю. >Сказать-то что можешь или только жидко пукать? То есть ты вообще не понимаешь, что несёшь полную хуйню. >Ахах. Дебил, блядь, промисовый, промисы 9 лет в либах существуют и 6 лет как стадарт. Ну да, ведь либы стали писать ещё до стандартизации промисов, да? >Основной поток - для рендера, чтобы UI не лагал никогда. Асинхронные потоки - для асинхронных событий. Это у тебя в пыхопитоне такое разделение? Пиздуй-ка обратно в свой загон, нам жабадебилов с ООП головного мозга и так хватает.
>>1970652 Ты долбоёб братишка, промисы делают код читаемым и понимаемым то есть редактируемым и поддерживаемым, чо у тебя там лагает выброси свой пентиум и купи компьютер.
>>1970745 > Нести хуйню про ядра начал тут ты, потому что обосрался. Я тебя просто поправляю. Распределение вкладок по ядрам есть? Есть. Дальше пошли твои маняманевры и подрывы. > То есть ты вообще не понимаешь, что несёшь полную хуйню. Ну так поясни и не пукай. Но ты не можешь, потому что очевидно хуйню несешь ты. > Ну да, ведь либы стали писать ещё до стандартизации промисов, да? Не, либы которые я использую написаны в 2019. > Это у тебя в пыхопитоне такое разделение? Пиздуй-ка обратно в свой загон, нам жабадебилов с ООП головного мозга и так хватает. Это разделение не_у_говнокодеров, мань. И нужно чтобы поток UI не лагал, как у говнокодера.
>>1970767 Ох уж эти проблемы говнокодеров, которые писать не могут без промисов. Ору нах
>>1970772 >И нужно чтобы поток UI не лагал, как у говнокодера. Братишка, даже там, где для распаралеливания уже за тебя сделано всё, и у тебя есть и потоки, и удобные абстракции над ними из коробки, и возможность распаралелить каждый пук от парсинга жсона и его вставки в базу до подсчёта высоты текста в UI (и даже возможность паралелить рендеринг UI!!!, хотя и не из коробки, и получать 120 фпс на ебаном айфоне 4с, хуяря код в декларативном стиле на флексбоксе) все всё делают в главном потоке нахуй.
Просто ирл всем тупо похуй, такие вот объебосы (а их большинство) берут самый медленный лэйаут, прикованный костылями к главному треду, парсят жсон на мэин треде, там же ходят в базу и пишут в/читают с бд там же — и у всех отмазки уровня "ну бизнесу жи нормальна, когда ебать начнут тогда и начну шевелиться", и потом у нас 4 из 5 приложений лагают на ровном месте как говно, лол.
>>1970791 К чему я это — просто забей на этих долбоёбов и расслабься, твоё портфолио если будешь всё делать качественно всё равно тебя протащит вверх через них, лол.
Мне лень читать весь тред, объясните, о чем срач. Кто вообще воркеры использует для чего? Я думал это для долбаебов, которые хотят протеины на жсе во фронте вычислять или ещё такую другую тяжелую хуйню. А почему бразуеры вообще не делают параллельный тред для всего, кроме работы с DOM'ом, нахуй все эти воркеры?
>>1970792 > просто забей на этих долбоёбов и расслабься Да и так сижу проигрываю над этой хуйней. Отрицание вебворкеров, лол, ну и пиздец. > твоё портфолио если будешь всё делать качественно всё равно тебя протащит вверх через них, лол. Предлагали уже купить проекты из портфолио, правда с полными правами. Планирую сделать полноценную CMS и продавать их тащемта, отличный запасной план если другие проекты будут хуево денег приносить
>>1970809 >А почему бразуеры вообще не делают параллельный тред для всего, кроме работы с DOM'ом, нахуй все эти воркеры? Потому что это нихуя не тривиальная задача, мозилла пыталась это дело ресёрчить https://ru.wikipedia.org/wiki/Servo_(движок) , но новая директор_ка закрыла этот проект нахуй, поэтому всё надо будет делать руками ближайшие 5-10 лет.
>>1970772 >Распределение вкладок по ядрам есть? Есть. Дальше пошли твои маняманевры и подрывы. Распределение вкладок по процессам, дебилоид. И распределили их не с целью, чтобы i5 использовать по полной. >Ну так поясни и не пукай. Но ты не можешь, потому что очевидно хуйню несешь ты. Что тебе пояснять если ты хуйню несёшь? С тобой и так всё понятно. >Не, либы которые я использую написаны в 2019. Ну нихуя себе, ты аж целые либы используешь, которые даже не на промисах написаны. Это конечно невъебенный пруф. >Это разделение не_у_говнокодеров, мань. Это разделение в твоём мирке, не имеющее отношение к движку. >>1970809 >А почему бразуеры вообще не делают параллельный тред для всего, кроме работы с DOM'ом, нахуй все эти воркеры? Потому что полное распараллеливание - рэйс кондишн через рэйс кондишн.
>>1970809 Воркеры это просто потоки. Ньюфаги, и всяческого рода поехавшие, думают что асинхронное событийное погроммирование не блокирует поток js, но на самом деле он блокируется в момент исполнения промиса. В итоге - лаги интерфейса и всё такое. асинхронщина нужна для работы с несколькими внешними интерфейсами, но это редкий случай микросервисов/внешних сервисов Чтобы подебить эти проблемы блокирования, придумали вебворкеров - отдельные потоки для интерфейса, ядер, сети, всего i/o в целом. Это всё уже давно используется (нет) на нативе, с недавнего времени и в вебе (нет). Самый шик это конечно servo. Но это уже будущее нахуй, которое успешно проебали. Сообщество js и веба уже глубоко консервативно, монополизировано и обоссано шизоидами, никаких изменений не намечается, анон >>1970814 писал уже. Даже фреймворки с многоядерной работой на вебворкерах это редкость.
>>1970914 >Неужели это настолько сложно? Да, я не хочу учить воркеры, эти их ебанные send, onmessage, или как там они сообщениями меняются. Каждый выпук делать как обработчик событий, ну ебаный в рот, мне так лень. И нахуя? Даже на моем некропк почти не лагает ни один сайт, кого ебет, что там 50мс жс какой-то занял, люди это даже не замечают.
Аноны хочу сделать на сайте функцию закладок которые будут храниться в локалсторейдж, я так понимаю мне надо сделать кнопку в каждой новости которая будет сохранять айдишник, название и ссылку на новость в массив, который мне надо будет конвертировать в строку и хранить в значении в локасторейдж, и на специальной странице конвертировать эту строку обратно в массив и через цикл выводить его значения, всё так?
Я скрипт-то уже написал, так вот, массив получается вида { ['id25', 'name25', 'url25'], ['id7', 'name7', 'url7'], ['id52, 'name52', 'url52'] }
Как видно айдишники в разброс, но блять после их парсинга из локасторейдж и привидения в массив они сука сортируются по айди и выводятся не сперва новодобаленные закладки, а по номеру айди, что за прикол какого хуя и почему так происходит?
Конвертирую их в строку с помощью JSON.stringify(), а обратно в массив с помощью JSON.parse(), я всё понятно объяснил? Как заставить их храниться и выводиться новые в начале, старые в конце?
>>1970951 Немного проебался с описанием массива, он выглядит вот так { 25:['id25', 'name25', 'url25'], 7:['name7', 'url7'], 52:['name52', 'url52'] } И сортируется по цифрам при добавлении новой новости и парсинге его в строку или обратно для вывода на странице закаладок, заебал уже
>>1970960 Не понял немного, как понять упорядочанный массив?
Сейчас ещё раз потыкал скрипт и понял что вся проблема в моменте добавления новости в массив, я это делаю так bookmark[5] = ['name5', 'url5'] И о чудо эта хуйня добавляется в начало как с самым маленьким айди, а не в конец как самая последняя добавленная, я так понимаю проблема в этом, я неправильно добавляю новое значение в массив или нужно отказаться от айди? Тогда я не вдупляю как добавлять новое значение, просто кидая его в начало или конец массива
Аноны перефразирую вопрос закладки на localStorage
Есть массив который я паршу туда и обратно с помощью JSON.stringify() и JSON.parse() чтобы сохранить его как строку в localStorage, в массиве хранятся айди новости, название и ссылка на новость, массив получается вида
Как мне добавить новую новость ["name5", "url5"] в конец, я реально запутался пиздец, айдики можно тоже во внутрь убрать, типа ["id5", "name5", "url5"], то есть в итоге после добавления новой новости в закладки должно получиться
>>1971024 >Это объект Да анон так и есть, просто я сходу не вспомнил, давно уже не баловался JS
>>1971010 Бля аноны нашёл на learn.javascript >Упорядочены ли свойства объекта? Другими словами, если мы будем в цикле перебирать все свойства объекта, получим ли мы их в том же порядке, в котором мы их добавляли?
>Короткий ответ: свойства упорядочены особым образом: свойства с целочисленными ключами сортируются по возрастанию
То есть эта хуйня и правда сортируется по номеру или алфавиту при добавлении новых свойств в объект, я проверил даже, как обойти эту хуйню? Чтобы новые свойства добавлялись в начало или конец как мне нужно?
>>1971070 > Чтобы новые свойства добавлялись в начало или конец как мне нужно? Это объект, у него нет начала или конца. Вставляй ключ order в котором будет именно массив а не ебаный объект с idшками упорядоченными.
Аноны, пиши в этот тред а не тематический пушто вы мне как родные стали. Позвали на обучение в дата саенс. Прошел собес. Нужно знать питон а ЖС все что я знаю. Но по шпаргалкам худо бедно быстренько подтянул питон и прошел первичный отбор. Дальше будет обучение а потом экзамен. Стоит ли браться за это учитывая что знаю хуево как питон так и математику но могу быстро подтянуть
>>1971234 Вот почему корзины такие не решительные? Вот блять твою судьбу должен рандомный человек решить?
Иди если бесплатно, хоть опыт получишь, не понравится сделаешь вывод - на бесплатные кормушки семинары больше не ходить, понравится - так наоборот больше профита поимеешь.
>>1967628 впиливать тесты в имеющийся проект - ебала редкостная. нужно ТДДшить новые компоненты и писать тесты которые проверяют не ебнется ли старый функционал от выполнения нового. иначе как девелопер ты не сможешь девелопить, а портратишь месяц-два на покрытие тестами того, что кое-как, но работает уже.
если не дали спеку, что должен делать тот или иной легаси компонент, можешь посылать нахуй смело - как ты учтешь все кейсы без четкой спеки? написать 9 тестов к примеру займет полдня, но не будет учтен крит какой-то и компонент все равно попадает/некорректно обработает, полдня потрачено, а баг живой и здоровый
мне ТДД сэкономил много времени и нервов, но это не марксизм-ленинизм per se, а Госплан скорее - без четкого соотношения задач и имеющегося продукта - это хуета, а не Госплан
>>1971336 >впиливать тесты в имеющийся проект - ебала редкостная Это единственное средство зафиксировать стабильное поведение программы в свете надвигающегося рефакторинга.
ну если рефакторинг по шаблону strangler, или как его там, делаеш, и большинство компонентов будет переработано, то конечно имеет смысл. если иметь какую-никакую версионность параллельную, то от версии к версии можно тест-базу наращивать.
>>1977183 Пара месяцев это точно минимум. Уверяю тебя, что ты не выучишь прямо всё по части css и html. Чуть больше базы освоишь, а все остальное узнаешь с опытом и временем
>>1977913 Иногда вижу сайты, где все элементы абсолютно позиционированы, так что там 1. нихуя не сдвинуть 2. высота НУЛЬ
цвета, шрифты, паддинги - все ок. Но что было в голове у человека, который гвоздями приколачивал блоки (и не к родителю, а к странице, т.к. все топ-лефт-райт от края экрана вплоть до top 1200px)...хм...
>>1988183 Вы проебали мое уютненькое программирование, никаких инженерных принципов, никакого желания учиться, из-за вас JS считают говном не за настоящие его слабые стороны, а из-за качества выполнения задач.
Про то, что половина из вас хачи, хохлы и фемки - я молчу.
Больше пары строк кода в посте или на скриншоте ведут в ад.
Для программирования на HTML https://codesandbox.io
Для Node.js с консолькой https://repl.it/languages/nodejs
Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Документация - https://developer.mozilla.org
Руководство для вката - https://github.com/acilsd/wrk-fet#javascript
Старая паста, частично устарела - https://pastebin.com/9yRADC0s