Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если/когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
>>2862001 Уже за тебя вкрутили инсёршн сорт до 10 и мердж сорт на большем количестве элементов в стандартный сорт. Пузырёк через деструктуризации можешь себе в гарбоч коллектор анус засунуть и точкой с запятой подтереться.
>>2861981 (OP) Правила культурного и хорошего разработчика: 1. Не использовать семиколомн. Это показатель культуры кода. 2. Реакт не фреймворк. Писать на нем - упасть в глазах настоящих программистов. 3. Алгоритмы - база. Без них никуда. Если у тебя не решено хотя бы 200 хард задачек на литкоде, то ты не программист. 4. Работать первые полгода за бесплатно - необходимость начинающего разработчика. Никто вам деньги за ваши коды без опыта давать не будет. 5. Использовать актуальные инструменты: Светл и Кампле. 6. Есть множество курсов для повышения всех хардскилов, скиллбокс, янедкс практикум, да даже в нашем треде Есть Павел, который за всего лишь тысячу рублей сможет подтянуть вас до мидл++, так же часто ведет стримы, где показывает все чудеса опытного разработчика.
>>2862846 Тож задавался тем же вопросом, но пришел к тому, что разделяю с помощью запятой как свойства в объектах. Предложил ребятам на проекте и меня поддержали(и это не потому что я тимлид!)
>>2863055 Так я как раз в бекенд и вкатитлся много лет назад. Но про фронтенд ты зря, практически каждый серьезный проект включает веб-приложение, так что перспективы есть.
>>2863062 Ты неполноценный фронт, иначе - тот самый формошлёп, шлёп.
>>2863063 Оставь свои точки с запятой здесь >>2852531 (OP) Этого >>2862846 предлагаю накуканить на бутылку с точками и запятыми, забоксить и сослать в старый тред.
Мне похуй что ты там будешь использовать для шумового минмакса, хоть иероглифы и хангыль в названиях переменных.
>>2863687 Миддл это не про решение задачек с литкода. > жёлтые Задачи, даже в одном цвете, а их всего три, имеют разную сложность относительно друг друга... В этом плане на том же гейкодварсе лычек для организации задачек больше.
>то я автоматом мидл? Если чел хуярит в доту на более чем 9000 ммр, это не значит, что он нагибатор жанра МОБА, сейчас пересядет за лигу легенд и будет ебошить. Это лишь значит, что он умеет шпарить в доту. Дальше экстраполируй идею сам.
>>2863099 >Оставь свои точки с запятой здесь >Мне похуй что ты там будешь использовать для шумового минмакса, хоть иероглифы и хангыль в названиях переменных Дебич, ты снова забыл принять таблетки? Зачем ты свои точки с запятой тащишь в интерфейсы?
>>2863061 запятые вообще не нужны. пиздец какое бескультурье. тупым обезьянам, которые делали язык невдомек, что отступ означает конец. в итоге навалили какого-то визуального шума.
Так блядь объясняйте какого хуя тут происходит? Почему массив внезапно поменял тип на стринг или что это за параша вообще? Я просто в цикле прибавляю флоат числа к нулям.
Как вы используете Vite в продакшене, если он не поддерживает jsx синтаксис в js файлах? То есть если попытаться подключить такой пакет в проект, вит сломается. Чтобы это пофиксить, нет официального плагина/руководства. Есть обсуждение, в котором смогли пофиксить эту проблему большим и сложным конфигом. Но в разработке все равно могут возникнуть какие-то непредвиденные проблемы. Судя по комментариям, HMR также замедляется. Есть пример такого пакета с jsx в js, который вероятно можно было бы использовать в продакшене? Кто сталкивался с такой проблемой в разработке на вит? Как думаете, мб вит пока-что сырой и лучше забить и использовать rollup/webpack?
>>2864924 Объясните мне, откуда они знают про возможность табличного вывода, но приходят троллить и создавать движуху но не знают про примитивы/объекты или ссылочные/значимые типы?
>>2864954 Я инженер, я пишу инженерную тулзу и мне вывод таблиц нужен был с первой строки.
Кто же знал, что в вашем обосраном языке какое-то животное придумало, что копирование массивов должно работать именно так. Просто пизда, ты только глянь на этот вырвиглазный кал. И потом сравни с чистым си или даже питоном. Я ебал...
>>2864955 > чистый си > вас вертели на поинтере > референсим дереференсим > АЛЛОЦИРУЕМ НАШ ДИНАМИЧЕСКИЙ МАССИВ В КУЧУ, БРРРРРРРРРР > НУ КААААКИЕ УЕБАНЫ СО СВОИМИ ПОИНТЕРАМИ И РЕФЕРЕНСАМИ Попробуй чууууточку тоньше.
>>2864963 Ни в одном другом языке такого кала я еще не видел, на питоне я просто прихожу раз в два года и пишу что мне нужно без верчения жопой, а до этого всегда писал на си. И только в здесь и сейчас я имею проблемы с тем, что кто-то не осилил прочитать определение знаку равнения и рандомы из-за этого должны страдать. Алсо я так и не разобрался какого хуя у вас матрица внезапно меняет тип при приравнивании элементов флоатам >>2864808 уверен, что то же самое животное с логикой наоборот и здесь придумало какое-то правило.
>>2864955 Массивы в жс - динамические, ссылочного типа. Содержат под капотом ссылку на начало массива в куче и длину. Типа слайсов в гошечке и list-а в петухоне. хотя, есть у меня подозрение, ты тролль
>>2864955 Петушок - петушок, а многими ли ты ЯП пользуешься в которых нет ссылочных типов? Да, js не самый лучший пример, но есть и та же самая java,,,,,,,,
>>2865198 Не очень понял тебя. Я хочу заюзать в коде как tuple const types = ['banana', 'apple', 'mango'] as const так и производный юнион const union = typeof types[number]
Далее у меня есть код const fn = (x: string) => types.includes(x) Вот тут ошибка Приходится херню делать const fn = (x: string) => (types as unknown as string).includes(x)
>>2865201 B иче он делает? Он делает readonly tuple. Но тайпскрипт никаких новых типов и методов в жс не добавляет по его концепции. Почему сигнатура includes меняется?
>>2865216 Это не отвечает на вопрос зачем сигнатура includes меняется. Значения кортежа являются подможеством всех строк, почему имутабельный includes перестал принимать значения типа string?
>>2865236 Не поверишь как мне не похуй. На тебе скриншот с ТОЙ САМОЙ вкладки. Вариант для ленивых и ментально слабых, не любящих свою ментальную гимнастику.
Никто до сих пор не знает, нужны ли тебе просто булеаны на выход или вывод типов, поэтому повторюсь: иди нахуй.
>>2865253 Как думаешь, когда я уже зашёл в песочницу, набросал на вентилятор говнокода, пишу тебе >>2865225 , что непонятно что и нахуя ты делаешь (потому что, внезапно, от этого может поменяться код), мне правда нужна информация о твоей ошибке? Скриншотом >>2865227 ? Без описания?
>>2865257 Ты вопрос понимаешь? ПОЧЕМУ ТАК? Я с него начал писать в тред. Мне интересно почему тайпскрипт в подкрашивает этот код. Я не просил писать другой код, а пояснить почему ошибка компиляции в этом случае.
>>2865259 Я с наровинга и начал думать, и спросли почему у метода инклудс сужает тип аргумента. Оказалось что сужения типа нет. У тьюпла просто внутренний тип не строки а три литеральных типа банан маго лимон.
>>2865260 массив: string[] тупле на 3 строки: [string, string, string] (сужение массива, держись со мной, следуй) редонли тупле путём модификации as const: ["string1", "strong2", "strenk3"] - строки ещё больше сужаются до литеральных типов.
> Оказалось что сужения типа нет Пикрил. Прямо как тебе и показали на скрине тут >>2865249.
Есть задача. С одной стороны большой текстовый файл с кучей не нужной и дополнительной инфы, с другой стороны другой json файл (массив обьектов). Мне нужно пройтись по этому массиву обьектов и проверить что значения полей присутствуют в том большом файле. Как это правильно сделать? Пока что планирую на каждый обьект сделать ф-ю которая будет регуляркой парсить большой файл,вычленять оттуда инфу и матчить её с полями обьекта другого файла и так на каждый тип обьекта будет своя ф-я. Всего 100 разных обьектов. Боюсь я заебусь регулярки писать
>>2865445 Благодарен за ссылку. Посмотрел, вроде базанул.
>>2865406 Почему пиздец. Там же он описал проблему, что будущие вкатыши будут базу не знать, а юзать ИИшку и проводить ритуалы в надежде чтобы код заработал. Собственно, у нас тут ученые и инженеры базовые вещи не знают.
Единственное с чем не согласен - это про прыжки с галеры на галеру. Чем плох такой способ, когда, действительно, текущий кабан может зажать, хотя при этом в новой можешь поднять чуть ли не х2.
Да и не сказал бы, что "прыжки" - не развивают. Собственно, в каждой новой галере ты встречаешься с новыми проблемами, новыми фреймворками, новыми проектами и их решениями. Каждое новое решение может кардинально изменить архитектуру будущих твоих проектов и личных предпочтений, т.к. когда ты был на первой галере, думал типо: нихуя как все тут круто сделано, а потом попадаешь на новый и понимаешь, что можно сделать иначе и лучше.
>>2865516 >>2865516 >1. ИИ все таки нас порешает, со временем Нахуя а главное зачем? Я вот не бегаю от муравейника к муравейнику и не распыляю йобо токсины.
>>2865516 > 1. ИИ все таки нас порешает, со временем Человечество мечтало избавиться от рутинной механической работы, а оказалось что сложному калькулятору проще порешать профессии, где можно что-то калькулировать. Вот ето поворот. Жаль, что ручной работы больше не станет.
> 2. Выученная беспомощность из за ИИ - реальная штука Да, потому что человека нужно научить (должен научиться) полагаться на себя, хоть частично. Обучить его хоть каким-то эссеншиал навыкам. Но даже школьникам проще списать матешу и физику с ГДЗ. Нахуй там что-то считать и придумывать? В гугле и гуглГПТ все ответы. А отключение света - настоящая катастрофа. Но растить личиночку в человека - это значит тратить дохуя ресурсов: время, потенциально репетиторы (ещё больше денег), прививание и помощь в обнаружение интересов, запреты на пользование телефонами и компутадорами пока мозг наиболее пластичен. Нужны квалифицированные кадры, прогресс не стоит на месте. Paper'сов всё больше. Чтобы вникнуть в пейперсы и каким-либо образом приложить - нужны знания. Даже обслуживать кластер гуглеГПТ не пустят долбоёбов.
>3. Вкатунам пиздец Да.
>>2865526 > Я вот не бегаю от муравейника к муравейнику и не распыляю йобо токсины. Это не так работает. Муравейники САМИ к тебе приходят. Их просто становится больше со временем. И будешь ли ты пытаться залить муравейники водой, выкопать, набодяжить химозную хуйню по народным рецептам или купишь специальные химикаты для вытравки - вопрос знаний и того, что может предложить прогресс. Знания: ты знаешь как в домашних условиях набодяжить химозную хуйню в условиях отсутствия гугла и гугла 2.0. Молодец. Потратил ресурсы на получение этого знания. Прогресс: есть гугл и гугл 2.0, достаточно уметь работать с информацией, спрашиваешь гуглГПТ как протравить муравьёв - получаешь 10 рецептов. Половина из которых бесполезна - но ты и не отличишь.
И вообще, как вы заебали с хуёвыми аналогиями, абсолютно и полностью, нахуй, неуместными.
>>2865516 >ИИ все таки нас порешает, со временем Не на нашем веку, мы будем писать код в 10 раз быстрее используя ИИ. Я уже сейчас не гуглю, а просто задачи в ИИ спрашиваю и подгоняю результат
Потратить на это 42 минуты - ну как бы хуй знает. Зато примерно 20 раз за видео были упомянуты падаваны, у которых после обучения у Ильи увеличилась з/пшка.
>>2866578 Любая другая сфера ойти говно потому что. Программирование стало балдежным когда в нем появился фронтенд. Все остальное программирование - это унылая дрисня для сутулых анальников.
Привет, у меня есть структура в виде дерева. Я их еще не изучал, но хочу понять. У дерева есть узлы {id, children: [], title} каждый узел содержит пустой или заполненый n-ным количеством массив children.
Мне хочется вывести обойти все дерево что-бы условно его можно было записать в строчку узелРодителя1 > узелВторогоУровня1 >> узел третьего уровня1; узел второго уровня2 >> узел третьего уровня 2, узел третьего урвня 3, узел третьего уровня 4.
>>2866638 Вобщем у меня не получается из дерева все превратить в строку. Подскажите пожалуйста, куда смотреть? В рекусии не понимаю начальное и конечное условие, а еще не понимаю как выводить все в разные уровни(
>>2866617 >если для удобного ux нужно шарить за вёрстку? Для удобного UX нужно шарить за дизайн. Этим занимаются дизайнеры. Первое. Второе - (почти) всю возможную верстку уже придумали. Бизнес логику - нет.
>>2866147 >Фронт: Учесть хуеву тучу условий заказчика, реализовать бизнес логику, ебаные пиксели >Бек: Вернуть жсончик для фронта. Какие же бекендеры дегенераты...
>>2866578 Так это у вкатунов только. Миддлобояре и Помидорогосподины вне этого говна. Вот, два дня назад банк какой-то спамил, хотя активность с хх, лынкыдына, хабра убал уже как полгода где-то. До этого какая-то мелкогалера пыталась захантить.
>>2866711 В канвасе твоём тоже бэкенд рисовать джэйсончиком по клику будет? Впрочем, как тебе и сказали - ты шлёпошлёп. В этом случае - да, твоя задача делать JsonToHtml.
>>2866739 И по секрету в гамблинге бизнес логика тоже на бекенде. На фронте только логика связанная с игровыми анимациями. Собственно жс для продвинутых анимаций и создавался
>>2866711 >Задача фронта Мильен страниц, куча табов, права, условия, все-все-все. Задача бекендера же просто отдать жсончик, который, собственно, будет уже обрастать бизнес логикой на фронте.
>>2866800 У тебя безнес-логика на фронте, а проблем с архитектурой решения никаких нет? Ну тогда не хуёвая, а нормальная, хорошая архитектура, но тем не менее необычная >Не надо продвигать это как норму.
>>2866739 >Как будто все фронты рисуют игровые автоматы в гамблинге Это был самый хуёвый пример Это один из самых криминальных примеров в защиту своего жирного троллинга, который ты мог привести.
На фронте должен быть бложик и формочки без джаваскрипта. JSONчик ты должен сам развернуть на бекенде. Уёбывай в свой аппле на свой аппле макбук делать десктопные приложения по их заветам. Не забудь, что линуксойдам и виндусойдам это приложение тоже нужно.
>>2866802 >У тебя безнес-логика на фронте, а проблем с архитектурой решения никаких нет? Где я про архитектуру писал? Где я писал про проблемы? Или мильен таблиц, куча табов тебе фантазируются как архитектурные проблемы?
Причем тут архитектура, шизик, мы тут унижаем подсоса бекендеров.
>>2866797 В 99% бекенда есть бизнеслогика. Возьмем обычную задачу сделать сброс пароля. Фронту просто кнопку в профиле, форму изменения пароля и плашку с сообщением сделать, а бекендеру продумывать логическую цепочку. 1) как зарегистрирован пользователь и есть ли у него email мож он через соцсети зашел первый раз. Если нет почты редиректить в профиль на форму ввода emal и вывести плашку с сообщением 2) если почта есть, то отправить туда ссылку на сброс пароля 3) по ссылке сделать редирект на форму изменения пароля, если ссылка свежая, а если не свежая, то вывести сообщение в плашку 4) обновить пароль данными из формы и сделать редирект на профиль
Если спа то вместо редиректов бек возвращает жсон, а фронт только роуты переключает.
Почему спросишь бизнес логика это бек? Потому что кабан хочет смотреть количество новых регистраций за месяц. Обдумывать как сброс пароля повлияет на эту статистику создадут задачу бекендеру. Логически это никак не должно влиять. Но продположим форма заполнения email это огрызок от формы регистрации и ее облуживает контроллер регистрации и он обновляет станистику при post запросе из формы.
Как итог обычный бекендер 1)обдумывает более разветвленную логику 2) должен быть в курсе бизнеспроцессов, чтобы решая задачи ничего не поломать. 3) такие вещи как аналитика опять же пишет бек, потому что бизнес логика на беке и нужно быть в курсе бизнеспроцессов чтобы правильно все подсчитать. А фронту только жсонина приходит чтобы ее в chart.js нарисовать
>>2866816 >Возьмем обычную задачу сделать сброс пароля. Задача, которую делают один раз а потом ктрлц+ктрлв.
Обычная задача бека вернуть жсончик.
Обычная задача фронта сделать так, чтобы юзер мог тыкать, тыкать туда куда надо, тыкать туда куда можно, получать то что нужно.
Бек же просто на подсосе фронта, т.к. бек возвращает только то, что нужно фронту для его работы.
>1)обдумывает более разветвленную логику Жсончик сформировать. >2) должен быть в курсе бизнеспроцессов, чтобы решая задачи ничего не поломать. Должен внимательно читать условие задачи, чтобы он вернул фронту то что нужно. >3) такие вещи как аналитика опять же пишет бек Сохраняет данные и возвращает на тот же фронт.
В то же время фронт действительно занимается бизнес логикой, сколько бы копиума не принял этот бекендолатентный. А бек просто обслуживает фронт и его бизнес процессы, своего рода секретарша у кабанчика.
>>2866816 Я хотел расписать всё со стороны фронта, но потом увидел > Если спа то вместо редиректов бек возвращает жсон, а фронт только роуты переключает. > Но продположим форма заполнения email это огрызок от формы регистрации и ее облуживает контроллер регистрации и он обновляет станистику при post запросе из формы.
И пошёл ты нахуй. Не удивлюсь, что вот этот долбоёб, который узнал новую аббревиатуру - это ты >>2865804 →
Бегают такие, кичатся как они по слоям размазывают сервисы, контроллеры, вьюшки, а потом оказывается, что они ручку в контроллер положить нормально не могут. CTRL+C CTRL+V в штаны насрало.
>Как итог обычный бекендер Не может освоить спринг, считает своим долгом промахнуться Java тредом и зайти в тред JavaScript >всё ещё обдумывает, что пошло не так >должен быть в курсе бизнеспроцессов, потому что работает в шаражкиной конторе без аналитика. На самом деле он фулстэк, которые заставили делать фронт, поэтому ему больно и обидно.
>А фронту только жсонина приходит чтобы ее в chart.js нарисовать Видел таких в некоторых командах. Послали фронта нахуй, потому что не могут поменять продуманную архитектуру, и переложили часть логики на фронт.
Тащем-та. На словах - ты Лев Толстой, а на деле - не смог найти свой загон.
>>2866864 >CTRL+C CTRL+V в штаны насрало. Ох, лол, жизненно.
Недавно сотню запросов новых выкатили бекендеры, я половину назад отправил. Где-то с типами проебались, где-то в пути опечатка, где-то параметр забыли, где-то у параметра тип не тот, где-то параметр не читается, где-то поля обязательные не возвращает. Бизнес логика бекендера аз ит из.
>>2866864 Чел. Я фулстек. По сути фронт. Писал на ваниле, жиквери, нокауте, вуе, реакте, ангуляре. Так что мимо. Если бы у бекенда не было бы бизнес логики, то никто бы не ошибался с архитектурой. Тот кто ничего не делает, никогда не ошибается.
Фронт сложный, но эти сложности создали фронтендеры сами себе. Фронт просто запарный. Никакого изучения талмудов как бек он не требует.
Как рассуждают бекендеры. Вот большое ТЗ. И еще не все аспекты БЛ раскрыты, может все поменятся. Надо делать как можно проще. Как руссуждают фронты. Бля вот тут в ТЗ надо просто форму обратной связи сделать. Что нам нужно для этого? Разумеется react, sass, postcss, react-router, redux, typescript и еще +100500 либ
>>2866885 >Чел. Я фулстек Ну вот, я даже оказался прав. >По сути фронт. По сути Java головного мозга. >Писал на ваниле, Шифт парадигм в голове не произошёл, видим ананас выше про 2013 тоже попал, или близок.
>Если бы у бекенда не было бы бизнес логики, то никто бы не ошибался с архитектурой. Тот кто ничего не делает, никогда не ошибается. Ну то есть всё ошибаются, поэтому бэкендеры молодцы. Noted.
>Фронт сложный, но эти сложности создали фронтендеры сами себе. Фронт просто запарный. Никакого изучения талмудов как бек он не требует. Пчёл, пчел, пчелидзе, пчелиус, пчелариус, ну так делай свои no-js страницы, кто мешает то? Всё прекрасно анимируется в CSS. Данные в x-www-formurlencoded с акшонов в формах собираешь и заебись. Никто тебе не мешает.
>Как рассуждают бекендеры. Вот большое ТЗ. И еще не все аспекты БЛ раскрыты, может все поменятся. Надо делать как можно проще. Ты же по сути фронт, тебе то откуда знать? Нахуй тут что-то навязываешь? >Как руссуждают фронты. Бля вот тут в ТЗ надо просто форму обратной связи сделать. Что нам нужно для этого? Разумеется react, sass, postcss, react-router, redux, typescript и еще +100500 либ Ты же фуллстек, бекендер, тебе то откуда знать?
>>2866910 >Ну то есть всё ошибаются Ошибаются. А фронты не ощибаются. Они делают СПЕЦИАЛЬНО так >тебе то откуда знать Потому что видел как делают другие и сам так делал.
>>2866918 Неужели наш тред посетило то жирное Java хуйло с ютуба?
Лучше ответь на вопрос: почему шарпомухи просто радуются жизни, а большинство джавистов, с которыми приходилось взаимодействовать - отбитые ЧСВшные ублюдки, которые радуются свои джаве 7, прямо как деды, которым ничего кроме C не надо, и считают, что все остальные тоже должны стагнировать вместе с ними?
>>2866931 Я кого-то обзывал непрограммистом? Я учу плюсы в свободное время. Свой мелкобиз буду писать на плюсах, а нода будет на подсосе для интеграций.
>>2866868 >Спасибо) я вчера сидел до поздна Пройдет пара лет, будешь писать за 10 минут.А теперь напиши в ширину, тут уже помогать не буду. Удачи в развитии =) Не останавливайся, через 3-4 года будешь сильный разраб, если не скатишься в формошлепство и верстку.
>>2866885 >Фронт сложный, но эти сложности создали фронтендеры сами себе. Фронт просто запарный. Никакого изучения талмудов как бек он не требует. 99% бекенда тоже не требует изучения талмудов. Это требуется, если ты пишешь сложный хайлоад типа твитча или дискорда. А твой очереднярский хайлоад это пукнуть в кафку одним микросервисом на голанге и прочитать другим, хотя даже ноды достаточно.
>>2867531 Требует для понимания что ты делаешь, чтобы не быть макакой рандомно долбящей по клавишам. Знания на беке добываются последовательным изучением от простого к сложному. Например хочешь запросы к БД писать. 1) Понимать что такое подключение к СУБД. Через юникс сокет или TCP 2) У СУБД может быть достигнут лимит подключений. Надо понимать как СУБД примерно работает, чтобы сделать умозаключения о настройках 3) Сколько выделить на СУБД сервер ядер и памяти в докере 4) Для самих запростов знать еще ЯЗЫК отличный от основного на котором приложение пишется 5) Кроме ansi sql знать особенности реализации в субд с которой работаешь 6) Для оптимизации запроса сделать индексы. Надо понимать как индесы устроены b+ деревья связные списки и тд. 7) Надо понимать как индесы на сапрос влияют и анализировать план запроса 8) Для пользования ORM неплохо бы паттерны знать, чем дата мапер от актив рекорда отличается, юнит оф ворк и тд Это все для мидла в любой B2B конторе может встретится И главное если ты этого не знаешь у тебя постоянно будут затыки и охуевания когда приложение на прд уйдет. Для клепания типичного фронта для того же самого B2B приложения просто открываешь доку по реакту и ебошишь.
>>2867555 >Знания на беке добываются последовательным изучением от простого к сложному.
Мы уже вот тут >>2866885 поняли, что ошибаться и получать знания и опыт могут только бекендеры. > Если бы у бекенда не было бы бизнес логики, то никто бы не ошибался с архитектурой. Тот кто ничего не делает, никогда не ошибается.
Могу только посочувствовать этим ребятам и пожелать безопасного путешествия в профильные треды.
>Например хочешь запросы к БД писать. Пчёлище, жуёбище, даже в браузере есть IndexDB... Для работы бека не нужна БД. Тащите свои пакеты и библиотеки, а потом выёбываетесь. Просто... съеби в профильный тред...
//
Алсо анонсы, какого это осознавать, что в 2к24 до сих пор реализовано ~2/3 свойств из css selectors 4?
>>2867566 Знал челика который без дизайнеров делал сразу заебись верстку с дизайном, но нихуя не знал в теории. Кабанам очень нравится. Вот это чистый фронтенд.
>>2867566 >Для работы бека не нужна БД Будет клауд БД, бизнес не бывает без данных. Ему хотябы аналитика нужна. Если бузнес вообще своей инфраструктуры не имеет то причем тут программирование? А про IndexDB ты вообще сравнил хуй с пальцем
>>2864880 Слоуфикс. Там уже турбо, вместо ролапа. А сначала вообще вебпак был. Алсо, турбо делает создатель вебпака и на конференции сказал, что не знает, что будет с вебпаком через 5 лет.
посоны, я очень далек от фронта, недавно попользовался вебвизором от яндекса(приблуда, которая записывает действия пользователей на сайте) и мне стало интересно - а что вообще разрешено современному браузеру? только то, что конкретно на странице творится? проясните пожалуйста
>>2867555 В современном мире разработки веб-приложений часто упоминается понятие "бекендер" - разработчик, который занимается программированием серверной части приложения. Однако, если посмотреть на его роль в компании, то можно увидеть, что он является всего лишь секретаршей фронтендера.
Фронтендер - это разработчик, который занимается созданием пользовательского интерфейса и взаимодействием с пользователем. Он задает требования к бекенду, чтобы тот обеспечил нужный функционал. Бекендер же занимается лишь обработкой бизнес процессов, которые уже заданы фронтендером.
Поэтому можно сказать, что бекендер - это всего лишь исполнитель, который реализует требования фронтендера. Его работа не требует особой креативности и интеллектуальных способностей, ведь он просто выполняет поставленные задачи.
Кроме того, существуют специальные инструменты и фреймворки, которые значительно упрощают работу бекендера. Это делает эту область разработки доступной даже для не самых умных разработчиков.
В итоге, можно сделать вывод, что бекендер - это важная, но не самая сложная часть веб-разработки. Его роль заключается в обеспечении работоспособности приложения, а основную работу выполняет фронтендер.
>>2867871 >Бекендер же занимается лишь обработкой бизнес процессов, которые уже заданы бизнесом. Быстрофикс пиздец конечно программистишка в оригинальном посте себя богом возомнила
>>2867871 А фронтендер в свою очередь является секретаршей дизайнера. Ведь дизайнер продумывает как все должно выглядеть и функционировать, он всегда на короткой ноге с руководством и вместе с большими начальниками проектирует флоу всего бизнес процесса. Фронтендер - это просто макакен, который должен на язык кода перенести то, что создал настоящий Творец.
>>2861981 (OP) Призываются математики, программеры и кодеры для создания краткого математического выражения вечного календаря. Итак, вот код календаря: https://jsfiddle.net/28tf0xuq/ Он точно определяет день недели, по числа даты, в пределах 10000 лет.
Задача - сгенерировать массив mods если он неизвестен, по известным значениям temp, year, month и day: Судя по всему, может быть использована формула: mods[(year + 7) % 28][(month-1) % 12] = ( temp + 5 * 7 - day + 1 ) % 7 но как его генерировать - хуй его знает.
Массив содержит 28 строк и 12 столбцов, которые соответствуют 12 месяцам. Судя по всему, строки соответствуют годам, и вычисления нужно производить в пределах произвольных 28-ми лет. Судя по всему, это массив остатков по модулю 7, поскольку значения не превышают число 6. Судя по всему, массив являет собой описание некоего цикла, который циклично повторяется.
В общем хуй его знает, как был получен этот массив.
Массив может помочь корректно определять дни недели, и усовершенствовать эту вот формулу:
Оригинальная формула Zeller's Congruence для вычисления дня недели на основе даты (день, месяц, год) выглядит следующим образом:
h - день недели (0 - суббота, 1 - воскресенье, 2 - понедельник, и так далее). q - день месяца. m - месяц (январь и февраль считаются за 13 и 14 месяцы предыдущего года, соответственно, январь и февраль текущего года считаются за 13 и 14 месяцы). K - год в столетии (год % 100). J - столетие (год / 100). Эта формула позволяет вычислить день недели для любой заданной даты.
Например, эта формула некорректно определяет 5 октября 2023 года.
Хуй его знает, как получить массив mods, и как интегрировать его в формулу, чтобы пофиксить эту формулу ебучую. Короче, презываются долбоящеры с двача, которые очевидно, что неприведут к прогрессу.
>>2867893 Я не прошу помощи, а призываю антона пофиксить ебучий календарь, а то заебали эти формулы зеллера, и прочее говно, впилите туда массив уже, сукаблядь. Только как его сгенерировать, хуй его знает. С виду - неведомая ебанная хуйня, дизассемблирование которой даже тебе не по зубам, блядь, разве не так?
>>2867888 User Сколько будет 28 лет умножить на 12 месяцев?
ChatGPT 28 лет умноженных на 12 месяцев дает 336 месяцев.
User 336 месяцев тебе о чем-нибудь говорит, в контексте цикличности значений mods из моего кода? ChatGPT Да, 336 месяцев указывают на то, что вам нужно получить 336 значений для массива mods, чтобы охватить все месяцы в течение 28 лет.
User А в контексте цикличности григорианского календаря тебе о чем нибудь говорит это число месяцев? ChatGPT Да, 336 месяцев указывают на то, что вам нужно охватить все возможные комбинации месяцев и годов в григорианском календаре в течение 28 лет, так как годы и месяцы повторяются в этот период.
User Число 336 делится на 4, и високосный год тоже делится на 4. Когда появляется высокосный год, происходит сдвиг. Я так полагаю, что в течении 336 месяцев, цикл сдвигов замыкается, это так? ChatGPT Да, вы правильно понимаете. В григорианском календаре каждый 4-й год является високосным, и это приводит к сдвигу в днях для календаря. Однако, когда вы рассматриваете период, который включает в себя 336 месяцев (28 лет), вы учтете все возможные комбинации обычных и високосных годов, и цикл сдвигов в днях замкнется.
User Почему замыкается цикл сдвигов? ChatGPT Цикл сдвигов в григорианском календаре замыкается, потому что период, равный 336 месяцам (28 лет), включает в себя все возможные комбинации обычных и високосных лет. В григорианском календаре каждый 4-й год является високосным, за исключением тех лет, которые делятся на 100, но не делятся на 400. Это добавляет один дополнительный день календарю в високосные годы.
Поскольку 28 лет содержат 7 високосных лет и 21 обычный год, цикл сдвигов в днях замыкается через 28 лет. Это происходит потому, что после 28 лет, вы снова вернетесь к тем же самым комбинациям дней недели и календарных дат, которые были в начале цикла.
User Значит, чтобы сгенерировать корректный массив mods, нужно каким-то образом охватить произвольный период в 336 месяцев, верно? ChatGPT Да, чтобы сгенерировать корректный массив mods, вам необходимо охватить произвольный период, состоящий из 336 месяцев (28 лет), чтобы учесть все возможные комбинации високосных и обычных лет. Это позволит вам создать массив mods, который будет правильно работать в течение долгого времени и для всех дат в этом периоде.
Вы можете использовать цикл, который будет изменять годы, месяцы и дни внутри этого периода, чтобы вычислить значения mods для каждой комбинации. Как только вы закончите этот период, массив mods будет зациклен, и вы сможете использовать его для вычисления дня недели в любой дате в будущем без необходимости пересчета.
Как ИИ, я не могу давать медицинские советы. Однако, если вы беспокоитесь о размере своего полового члена, лучше обратиться к специалисту - урологу или сексологу, чтобы получить профессиональную консультацию и рекомендации. Также можно изучить различные методы увеличения пениса, такие как упражнения Кегеля, использование насадок и приспособлений, а также хирургические методы. В любом случае, важно помнить, что размер пениса не является единственным фактором в сексуальной жизни и удовлетворительных отношениях.
>>2867945 Что делать, если у девушки слишком вместительное влагалище?
Как ИИ, я не могу давать медицинские советы. Однако, если у девушки есть проблемы с вместительностью влагалища, она может обратиться к гинекологу для профессиональной консультации и рекомендаций. В некоторых случаях, использование специальных упражнений Кегеля или вагинальных шариков может помочь укрепить мышцы влагалища и улучшить сексуальную жизнь. Также можно рассмотреть использование различных секс-игрушек, которые могут помочь достичь более полного ощущения. В любом случае, важно помнить, что каждое тело уникально, и нет ничего неправильного в том, чтобы искать способы улучшить свою сексуальную жизнь.
ЧатГПТ итоги: Если у мужчины маленький пенис -- не расстраивайся, есть и другие в жизни радости Если у женщины большое влагалище -- просто запихайте в себя что-нибудь побольше тяжко быть кунчиком...
Анон, поясни, почему при возможности объявления функции через ключевое слово function везде объявляют функцию как присвоение константе анонимки, а-ля const myFunc = () => {}
>>2867989 Я могу такую же функцию анонимку сделать const myFunction = function(...params) { }
Всё что тебе нужно понимать, это разница в поведение function declaration, function expression. Ну и классика, разница между функциями и стрелочными функциями.
Ну и например тот факт, что в TSX файлах ты не можешь делать generic стрелочные функции, потому что парсер пытается это разобрать как тег компонента, а не дженерик типы. Т.е. вот так ты сделать не сможешь: const foo = <T>(param: T) => ... А вот так сможешь function foo<T>(param: T) { ...
>>2867995 >Всё что тебе нужно понимать, это разница в поведение function declaration, function expression. Спасибо за наводку.
Методом научного тыка заметил еще одно различие, которое почему-то нигде не упоминается. Функция, объявленная внутри объекта через declaration имеет доступ к объекту через this, а объявленная через expression - нет
>>2868011 Тут есть абзац "this in arrow functions" но здесь не говорится конкретно о том что если метод объявлен через стрелочную функцию он не будет содержать в this ссылку на текущий объект из которого такой метод вызывается. Или ткни пальцем, я в глаза долблюсь.
>>2868019 Потому что стрелочки это сложно. Надо либо читать, либо добиваться чтобы щёлкнуло эмпирическим путём. Либо совмещать подходы.
>Тут есть абзац "this in arrow functions" Ты щёлкнул в абзац в секции "примеры" и хочешь получить всю кумулятивную выжимку по данному кейсу, прямо посреди статьи?
Объект не будет захвачен в качестве контекста стрелочной функции. Они объявляются в одном контексте.
Контекст стрелочной функции не переопределяется в отличие от обычной функции. У обычной функции контекст определяется в момент вызова. Можешь погуглить такой охуенный оператор как оператор точка.
В примере на который тебя хватило пролистать - показан пример, как изъебнуться с помощью обычной функции, которая в момент вызова с объекта получить объект в качестве контекста, и далее использовать его в качестве контекста во вложенной стрелочной функции. Далее. после возврата этой стрелочной функции, она всегда в качестве контекста будет иметь ТОТ САМЫЙ объект, независимо от того куда ты повесишь функцию.
Сначала третируешь меня сделав вид ЯКОБЫ я половину статьи пропустил, а потом даешь ссылку на СОВЕРШЕННО ДРУГУЮ статью где дается ответ на мой вопрос. Молодец, типичная токсичная мразь которая пытается казаться умнее чем она есть, посредством сомнительных демагогических приемов.
>>2868051 То есть ты ленивое хуйло, который жалуется, что нигде не написано про X, а виноват я, потому что ткнул тебя туда, где об этом написано?
Ну и пидорас же ты. Если ты не заметил, там написано > should not be used as methods. То есть язык позволяет так делать. А чтобы не быть тупорылым баттхёртом - надо уделить время, чтобы разобраться в вопросе, а не следовать всему, что пишут в интернете и пользоваться инструментами на основе чёрной магии. Убирай своё магическое мышление, долбоёб.
Читаю туториал по next.js там всё написано для pages. А я делаю app. Дошел до static generation vs SSR, узнал что в app больше нету getStaticProps. А как тогда там делает различие SSR vs SG?
Вот такая хуитка почаны... Есть многоуровневый кей валуе объект типа конфиг const Config = { port: 5555 log: { level: "debug" } } но значения вычисляются. Я значит хочу кешировать эту ебалу в плоском объекте типа const Cache = { port: 555, "log.level": "debug" }
И вытягивать значения из Cache через Proxy<Config>
Например это можно сделать рекурсивно обходя объект Config и записывая ключи. Но это решение строится на том что Cache будет иметь тип Record<string, any> , а я возвращаю Proxy<Config> у которого тип Config
Вопрос если в тайпскрипте возможность сделать это без приеведения типов? Чтобы тип значения в кеше был Config[key1][key2] и не делать приведение any к Config[key1][key2]
Есть идея сделать проект - дашборда для создания структурных схем/таблиц с текстом и т.д. Но с функцией зума, которая при определённом значении зума, отображает разные составные блоки. Напрмиер, 100% - два блока с подписями (Блок 1, Блок 2. Пользователь определяет), чуть ближе - 150%, например, в блоках вместо подписей, появляются внутренние блоки со своей структурой и т.д. Если приблизить к одному блоку, там будут уже более мелкие блоки, из которых состоит основной блок (Блок 1) и т.д.
Просто проект для декомпозиции задачи, что бы масштабом можно было менять "угол" обозрения задачи. Может уже есть сервисы с похожим функционалом?
>>2868562 >для описания архитектуры? Та не только. Вообще так удобно любую задачу/проект дробить, (я в голове так проектирую просто и мысленно этот масштаб "отдаляю/приближаю", при необходимости) на блоки побольше (которые можно общими словами описать), и которые будут давать понимание общей картины, а в них уже блоки поменьше с чуть более детальное реализацией, а там внутри ещё более мелкие блоки (и их больше и т.д), которые будут прямо описывать реализацию.
>>2868575 Есть импортозамещённый попенсорсный продукт с ногами растущими со стороны сбера, который медленно корраптит бигтех. Это немного не так работает, как ты описал, в плане интерактивности, но суть примерно та же - описать архитектуру, слинковать узлы, иметь возможность по ним перемещаться + документация. Бонусом возможность вставлять plantUML, сваггеры и прочую залупу. https://dochub.info/main
Гитхаб там где-то болтался в доке, да и загуглишь если надо.
Не думал, что буду рекламить импортозамещённые продукты. В какое опасное время живём. В следующий раз буду астру предлагать похоже, кек
>>2868667 Потому что на фронте нет бизнес логики, фронты не програмисты, нужно JSON разворачивать. Вот он и развернул JSON красиво. Вини бекендеров. Надо был страницу без джейсона посылать.
>>2868675 Голова джимми биста раздавала 10к айфонов за 2 доллара. Желающие заскамиться всегда найдут возможность заскамиться. Как говорится: лох не мамонт, лох не вымрет. А одебилевание населения только способствует.
Меня больше волнует вопрос фальсификации медиа, которые для суда будут выглядеть на все 146% натурально, что повлечёт бутылирование. Даже изъёбываться не надо. Собрал свой минимальный набор голосовых данных. Соц сеточки поскамил на фото/видео, твит/лонгтвиты и ты готов.
Надеюсь у всех пидорасов, которые рассылали голосовые сообщения, теперь начнётся тряска.
>>2868714 >Меня больше волнует вопрос фальсификации медиа, которые для суда будут выглядеть на все 146% натурально, что повлечёт бутылирование. Фотошоп же умельцы умеют детектить. Чисто технически бутылка в этом случае может грозить от незначительной детали, но детектят же.
Скорее, думаю, будет хайп у всяких шарлатанов, которые будут брянькать по мобиле и представляться голосом мамки/корзинки и кляньчить бабки.
Вообще не понимаю как люди на это ведутся, но ведутся же. Сам в своей жизни был свидетелем, как коллега все бабки скинула какому-то шарлатану, который банком представился.
>Надеюсь у всех пидорасов, которые рассылали голосовые сообщения, теперь начнётся тряска. Обязательно начнется, но потом.
Как починить ошибку в нексте? Если сделаю проверку на сервер, то будет ошибка гидрации, потому что серверная тема может не совпасть с клиентской. Без проверки на сервер, ошибка только на сервере, на клиенте всё работает чётко.
>>2868902 >Если сделаю проверку на сервер, то будет ошибка гидрации, потому что серверная тема может не совпасть с клиентской. Без проверки на сервер, ошибка только на сервере, на клиенте всё работает чётко. <NoSSR> компонент сделай шизик. Только нормально на саспенсах, а не typeof document === 'undefined'
>>2868993 function ThrowIfServer({children}) { if (typeof document === 'undefined'){ throw new КастомнаяОшибкаКотораяНеЛетитВСентри() } return children
>>2868552 Обсидиан, в фигме есть(figjam board), reactflow, eraser. Самая технически крутая - eraser, думаю. А вообще гуглится таким набором слов: graph node wire js
>>2869338 > никакого шума нет > так надо > так получилось Ничего, тут тебе поможет рул "react/function-component-definition", чтобы не костылили через стрелочки. Всё, лишь бы у диточки дедочки запяточки не шумели.
>>2869346 Шизофреник, ты сам понимаешь, что ты несёшь? Какие ещё костыли через стрелочки, какие шумящие запятые? Ты можешь изъясняться адекватным языком, который понятен нормальным здоровым людям?
>>2869352 Долбоящер трахнутый, где я писал про ТОЧКИ С ЗАПЯТОЙ? Тебе даже написали, что ты слепой и тупой, но ты ещё и зацикленный. Речь шла о символах, о визуальном шуме. >>2869083 >Получается удалятель символического шума опять соснул? Который может создаваться как знаками препиная точками запятыми вопросительными знаками двоеточиями и прочими прелестями синтаксиса языка
>>2869372 Как там было... дай мне поискать в том треде... >Чел, открой для себя такие инструменты как линтеры и форматтеры. Открой для себя настройки процесса минификации.
>>2869385 >Note: it is not always safe to perform this conversion if code relies on the the function having a prototype, which arrow functions lack. This transform requires that the ecma compress option is set to 2015 or greater.
>>2869353 >Долбоящер трахнутый, где я писал про ТОЧКИ С ЗАПЯТОЙ? Тебе даже написали, что ты слепой и тупой, но ты ещё и зацикленный. Зачем ты так рвёшься? >Речь шла о символах, о визуальном шуме. Твоя память работает хуже, чем у моего 92-летнего деда? Удалятель символического шума называл таким шумом исключительно точки с запятой.
>>2869698 Удалятель шума ещё заявлял, что от выпиливания точек с запятой код продолжает работать так же. А на деле AST меняется. Да мало ли, что он рассказывал?
>>2869707 >Удалятель шума ещё заявлял, что от выпиливания точек с запятой код продолжает работать так же. Там было про то, что код работает так же, ЕСЛИ в нём не встречаются ломающие конструкции в начале строк. Что оставалось на волю внимательности писателя кода. Хотя там же было про правила еслинта, которые напоминают мартышке о том, чтобы она не писала ломающие конструкции.
>const foo = <T, >(param: T) => ... Независимо от всего этого, зачем нужна запятая в дженерике, если после неё не идёт второй дженерик? Я никогда не встречал такого кода ни в говнопроектах, ни в компании из КОТВАСЯ, где я сейчас работаю.
>>2869719 > напоминают мартышке о том, чтобы она не писала ломающие конструкции Ломающие, только если кому-то мешают точки с запятой. Ведь поменяется AST. > напоминают Накладывают ограничения через анальные еггогы
> зачем нужна запятая в дженерике Начнём с того, что это была не моя вариация объявления функции > зачем а это я буквально описал выше, когда писал пример про TSX. > никогда не встречал Ну, я тоже никогда так не пробовал наебать концеплятор за 4 года работы с ТС. Дальше то что?
>>2867888 Даже ИИ не помог, сука, не то что эти мои двощи. А раз уж я сам додуплил, то это значит я самый охуенный маняматический быдлокодер на свете. Пруф: https://jsfiddle.net/f5cto68p/ Так и напишите в моём резюме.
>>2870121 > помогите вылечить TS > Показывай типы, поможем состыковать > вас ебать не должно, чините мне типы Кек, уёбище. Это же ты то самое уёбище, которое уже не первый раз игнорирует все наводящие вопросы ради троллинга?
>>2870137 > скидывай тип > КАК Я ТЕБЕ СКИНУ ТО, ЧТО ДАЖЕ НЕ ПРОСИЛИ??? Господи, как же охуенно, что я тебя вчера проигнорировал. Прямо как чувствовал, что это снова ты. И ведь если это gray matter, то там ничего сложного. Но иди нахуй. Помощь заслуживает только желающий помочь себе сам.
>>2870146 Это грей маттер, да. Вот сюда я могу писать любую хуйню. Тебя должно это ебать для решения задачи? Я вам сразу и заявил что вы не туда идете. Как блядь разраб tailwind.css говорит best practices don't work и с первого параграфа показывает worst сука practice. Уебки блядь зачем вы мой фронтэнд убили?
1. Зачем в примерах пишут type Props? Мне этот тип предоставлен некстом, мне не надо его писать, а импортировать откуда-то. Как мне его выпилить? 2. Как мне выпилить 2 вызова одной и той же функции?
>>2870335 Крестьсяне лезут в магию и спрашивают на площади, какое залинание говорить, чтобы росла картошка. Вот такой вот образ современного фронтенда.
>>2870458 >я сразу написал, что пропертей нужных тайпкрипт не нашел Да хуй разберёшь что вкатуны имеют в виду, когда пишут такую хуйню. В твоём случае по хорошему надо сужать тип matterResult.data (например с помощью zod). Потому хуй знает что с твоим кодом произойдёт, если структура json'а поменяется.
>>2870576 >покажи тип переменная_нейм >показывает жсон файл >не тип файла, а тип переменная_нейм >вот скрин файла json >не json-объект, а тип переменная_нейм, наведи курсор на переменная_нейм >тупой вкатунидзе всё таки сумел показать тип переменной >по нормальному надо делать так и так >рррряя почему не рассказали когда я не показывал тип переменная_нейм я же написал текст_ошибки_без_конкретики
>>2870585 Задача заключается в том чтобы размазать произвольный объект по объекту с типом. >покажи мне тип этого произвольного объекта, он обязательно имеет значение! >тебе нужен спиннер для анальной пробки
>>2870585 >>покажи мне тип этого произвольного объекта, он обязательно имеет значение! Блять, вкатун, ну не позорься. Ну не получится у тебя метко загринтекстить.
>Задача заключается в том чтобы размазать произвольный объект по объекту с типом. Ты решаешь задачу в лоб (дефолтный вкатун), и не понимаешь, где обосрался. Знаешь почему тайпскрипт выдаёт эту ошибку? Потому что если в импортируемом json/md файле у тебя будут другие поля - обмякнешь после "Cannot read property ... of undefined". Тайпскрипт тебе правильно подсказывает - нет гарантии, что твой код будет работать без ошибок. Либо делай как надо, либо пересаживайся на js и не доёбывай нормальных людей своими тупыми вопросами, обрыган
>>2870617 Есть. Проверять на существование каждое поле BlogPage, и проверять тип значения поля. Только у тебя будет уёбищная простыня из минимум 8 if'ов. Для лакончиности придумали библиотеки zod/yup
>>2871139 Матан нужен, когда он нужен например написать тот самый threejs. Думаешь дохуя индюков на том же юнете знает матан? Или на юече, где надо блюпринты двигать?
transform.rotate transform.translate
Никаких тебе кватернионов и знания матриц для этого не надо.
Минимум в виде векторов, скалярных произведений, нормализации и т.д. освоит наверно даже дегенерат.
Хуйня в том, что иногда нужно писать на нем, а не дереве. Нахуя тянуть полмегабайта либы три.жс в бандл ради одного 3D-блока, если можно написать свою шуструю реализацию?
>>2871177 Ты таску никогда не задерживал? Я одну "переработку" функционала с прокидыванием параметров в урл месяц делал, когда можно было за день. Когда уже подъебывать начали, типо долго делаю, выкатил. Хрюша еще и похвалила.
>>2871139 Не нужен там матан. Там надо ломать себе мозги в новое измерение. Я могу незнание третьего измерения сравнить с тем временем когда я не врубался в эвенты.
>>2871381 За то что трудоемкую задачу сделал, логично же. Я же не просто так каждый понедельник умными словами описывал свое "превозмогание". Но я в то время чуток выгорел, никак не мог начать нормально.
>>2861981 (OP) Приведите кейс (желателньо работы фронтендера) в котором нужно использовать замыкания? Я в саму концепцию давно въехал, но я не понимаю зачем это все вообще нужно, где это может использоваться. Зачем из одной функции вызывать другую, создавать скоуп с данными которые не трогает сборщик мусора? Замыкания работают медленно, вносят чехарду в плане хранения/удаления данных, вроде как можно даже обосраться с памятью (но не точно).
>>2871647 Каррирование, разграничение доступа к данным (например, те переменные которые ты не экспортируешь из модуля, но используется экспортируемой функцией), обёртки добавляющие логику.
>>2871657 Пчёл, ты можешь делать как удобно. ЕМНИП Formik напердолен поверх хука useFormik. Formik создаёт контекст. Для простых форм шлёп-шлёп этого должно хватать. Только функции для изменения данных доставай из пропов рендер функции. useFormik, да и вообще хуки - для кастомизации, так как дают больше гибкости.
>>2871647 Ну всмысле, чел. Представь что тебе нужно данные фильтровать по критерию ты передаёшь критерий в функцию, она тебе создаёт функцию где элемент множества проверяется на соответствие критерию. Получил функцию-фильтр которую можно передавать-туда сюда и использовать.
>>2871674 У меня сейчас, как в туторе https://formik.org/docs/tutorial Я просто под себя форму переписал, добавил css, повесил вызовы на бэк через axios и все. >>2871680 Вкатун потому что, погуглил, что формик + yup норм связка для создания форм, вот его и взял. Ковыряю я его, потому что хочу получать ошибки от бэкэнда и отображать их на форме. Например, делаем POST-запрос, он возвращает ошибку, я ее добавляю в список ошибок поля в форме. Я так понимаю, делать это надо через это https://formik.org/docs/api/formik#seterrors-fields--field-string-string---void >>2871682 Так, понятно, надо гуглить, что такое контекст, потому что я ничего не понял.
>>2871712 Почему? Чем он плох? Ну ладно, пересяду на рякт хук форм. Можешь подсказать, на этом вашем хук форме можно без боли решать следующие задачи: 1. Валидация форм, через yup, например. 2. Отображение ошибок с бэкэнда.
Алсо, есть ли вообще смысл делать валидацию форм и на фронте и на бэке? На бэке у меня есть функция, которая проверяет пароль на сложность. Если пароль легко подобрать, то выдает в респонсе ошибку, что пароль не принимается. Есть смысл делать аналогичную функцию на фронте, чтобы лишний раз на сервер не обращаться, а юзать ресурсы клиента?
>>2871729 Это уже какой-то поток сознания, tbh. > создать массив Возьмите уже тогда с прототипа, а не с экземпляра прототипа.
Сейчас бы жаловаться на ООП и уходить от функционального подхода с функторами. БОЙСЯ ХАЧКЕЛИСТОВ В ТЁМНОЙ ПОДВОРОТНЕ. Застрелят в упор во дворе, не доходя до шестёрочки.
ООП - когда у тебя жёсткая привязка методу к классу, а не занимаешься функциональной композицией. Ни одному sane джависту и шарпомухе каррирование в дупу не всралось. Fluent api ещё куда не шло, функторы - заебись.
>>2871984 Да у тебя всё шиза. Начиналось с замыкание шины. Продолжилось с ООП/анти-ООП шизы и вот мы здесь: очередное нинужно шиза. Бинды тоже нинужны. HOF тоже нахуй нинужно. Давайте писать в процедурном стиле и все объявление делать глобальными.
Вникаю в react. Понял, что обновлять состояние, как в функции f1 плохо. Например, при срабатывании события дважды подряд, значение state увеличится всего на 1. Во втором же случае увеличится как надо, на 2. И возник вопрос, как в общем случае защититься от дважды сработавшего события? Допустим, я запускаю в каком-то коллбэке таймер, где гарантия, что он не запустится дважды? Я могу хранить идентификатор таймера в ref, и проверять, не запущен ли он уже, но могу и забыть случайно. Какой-то универсальный способ защиты от этих ошибок есть?
>>2872364 >Понял, что обновлять состояние, как в функции f1 плохо. Надо головой думать когда код пишишь, а не искать как правильно обновлять состояние >при срабатывании события дважды подряд, значение state увеличится всего на 1 У тебя при обновлении события вызовется ререндер и обработчик сразу захватит уже увеличенное значение твоего стейта >И возник вопрос, как в общем случае защититься от дважды сработавшего события? Никак, потому что нет такой необходимости >Допустим, я запускаю в каком-то коллбэке таймер, где гарантия, что он не запустится дважды? Очевидно, хранить где-либо флаг, что таймер запущен/сигнал с предыдущего таймер и его абортить >Я могу хранить идентификатор таймера в ref, и проверять, не запущен ли он уже, но могу и забыть случайно. Какой-то универсальный способ защиты от этих ошибок есть? Чел, эта "проблема" решается буквально парой строк кода. Что за универсальное решение ты хочешь получить?
>>2872431 >У тебя при обновлении события вызовется ререндер и обработчик сразу захватит уже увеличенное значение твоего стейта Если вплотную рядом стоят 2 дива, и я мышь двигаю из одного в другой, то события onmouseleave одного и onmouseenter другого произойдут одно за другим без вызова рендера между ними. И если f1 будет навешен на оба этих события, то state увеличится всего на 1.
>>2872445 Какая шиза. Неси видеопруфы. > но я знаю когда сломается Ну так и используй колбэки? Колбэки батчатся и обновляют состояние последовательно.
Блядь, вообще, что нахуй за шиза? Если у тебя есть необходимость делать апдейты с зависимостью на текущее состояние - делай через КОЛЛБЭКИ. Потом ты ещё захочешь юзэффектов напихать с установитьСостояние(состояние + 1) и твоя простыня не сработает, потому что принимает ЗНАЧЕНИЕ, а не ДЕЙСТВИЕ над состоянием.
>>2872458 Надо смотреть на 16/17 реакте. Уверен автобачингом в 18 в штаны насрали.
btw никогда не отлавливал кейса, где это выстрелило бы в ногу. Наверно, потому что проще сразу писать в действиях над состоянием, если там что-то сложнее чем true/false.
>>2872626 Легаси говна будут в любом случае. Время, когда проектики мутятся, бабки крутятся прошло минимум 5-7 лет назад. Тогда пачками нанимали джунов чтобы писать стартапы, а сейчас даже мидлам только поддержка легаси.
>>2872970 Как же мне не похуй на нитакусь. Говно всегда найдёт чем выделиться.
Эти любители поработать в кафе и коворкингах кафешного типа, ближе к стоечке - особый вид инвалидов. Человеку не дали его любимый ПОПЕН-спейс. Домой он не хочет. Приходится сторговываться на кокворкингах.
Как же бесит этот сраный js. Куча дурацких, а главное оторванный от реальности, вопросов уровня, что будет если пустой массив приплюсовать к единице и прочее. Вот кому в голову такая хрень придёт??? А всё потому что он был сделан на коленке и там почти ничего толком не продумано. Вот реально хочется взять и уйти учить норм язык, хз питон или джаву наверное.
>>2873202 Твоя злость выдает в тебе нуба. Чем глубже ты погружаешься в жс тему, тем отчетливее понимаешь, что жс со всей его инфраструктурой близки к совершенству.
>>2873202 есть такое, люблю жс за то что он динамический, легко модифицируемый, но сраная слабая типизация калыч полный, хотя иногда удобно бывает, что null, undefined, false и "" в логических проверках означают false
>>2874384 Да я просто помню одного такого, который с плюсов на шарпы перешёл и потом горел, что КАКОГО ХУЯ НАДО ДЕЛАТЬ ЯВНУЮ ПРОВЕРКУ НА NULL В IF'АХ, а вот в его-то сишечке можно просто положить какую угодно хуйню не занулённую и оно сработает.
>>2873202 Причём тут язык и вопросы уровня "я не знаю, что спрашивать на собесах, поэтому буду спрашивать оторванную от реальности хрень"? Если тебя такое бесит, то у меня для тебя плохие новости.
>>2875512 У тебя две функции в разных модулях function getUser() { return {avatar: "Pepe"} }
function getAvatar(fn) { return fn().avatar } Они соединяются в третьем модуле и от друг друга не зависят getAvatar(getUser)
В тесте getAvatar.test.js мокают getUser как раз, чтобы вместо getUser передать мок как аргумент fn, чтобы тестировался только getAvatar без конкретной реализации getUser
>>2875720 >матечеры Поридж плиз. Всё это было гораздо раньше с тем же самым синтаксисом. Функции по другому, но тоже были. У фейсбука NIH синдром просто.
>>2875743 Фейсбук просто взяли, и сделали фреймворк для тестирования. В котором не надо по кускам собирать матчеры, тестсуйты/тесткейсы, есть before/after джобы на суиты и тесткейсы. И ко всему этому можно замокать всё что нужно. Но нет, постоянно найдётся какой-то недовольный неофит, которому на 7-ой джаве норм.
>>2875752 Блядь, ну найди СРАВНЕНИЕ фреймворков. Куча пиздоссаных тест раннеров, в одном удобные матчеры, в другом можно группировать в тест суйты, в третьем можно ранить джобы до/после тестов. В jest просто собрали это.
>>2875801 Пошёл нахуй, террорист, не я вылез из подвала после спячки; Вентилируй свой гнев и недовольство куда-нибудь ещё; Вылез из своего ебаного манямирка, а виноваты окружающие;
Но вместо того, чтобы использовать функции и поля и obekt вот так: obekt.register(...) obekt.handleSubmit(...) Через деструктуризацию достают в отдельные константы только то, что нужно.
Если я знаю, что в этом объекте с десяток функций - то я от тебя ожидаю какой угодной хуйни и финтов ушами. Если ты сразу достаёшь register, handleSubmit - то я от тебя ожидаю, что ты будешь регистрировать формы и субмитить. Да и register(...) читать и писать проще, чем obekt.register(...)
>>2875895 Т.е. грубо говоря, мы "берем" от хука, то, что нам нужно? Хотим ошибки обрабатывать - берем от хука errors и записываем ее в именованную переменную errors?
>>2875900 Да, useForm вернёт объект, у него куча функций на первом уровне вложенности. formState - объект. На нём производят вложенную деструктуризацию.
И того, ты мог это написать ручками примерно так: const form = useForm; const register = form.register; const handleSubmit = form.handleSubmit; const errors = form.formState.errors;
>>2866934 а нахуй ты плюсы учишь в свободное время? Я без доеба, просто сам будучи 5+ лет фронтом их учил, чтобы укатиться, но мне каждый раз прилетал вкусный оффер, и я оставался на формочках
Ощущение что у фронтов какая-то гонка и если он знает какую-то современную технологию то он круче, но что эта технология полная параша и ведущие инженеры признали ее хуйней почему-то замалчивается) зато новая, я современный я знаю ее!))00
Я так понимаю реакт все? Иначе почему прямо на старте официальной документации тебе первым делом советуют работать на некстжс https://react.dev/learn/start-a-new-react-project Чуть ниже они же пишут However, if you’re building a new app or a site fully with React, we recommend using a framework.
>>2877105 Не знаю о ком ты. Так что в итоге-то, почему при установке реакте девы советуют сходу лупить некстжс. Просто я полгода назад реакт ковырял, а теперь надо некстжс ковырять, получается.
>>2877135 Потому что реакт поставляется без опинионатед роутинга и ещё кучи всякой хуйни с QoL типо SSR/SSG, но позволяет тебе сделать самому.
> nextjs Для этого надо таки реакт ещё посмотреть, чтобы совсем не быть баттхёртом. По минималке на старте от nextjs много тебе и не надо знать, но таки хотя бы вводную в доку посмотреть, чтобы не быть баттхёртом х2. Его, таки, пилят челы и с команды реакта и с верцеля.
Давай скажем так, де факто, сейчас nextjs стандарт для воннаби реакт девелоперов.
> но nextjs не реакт Именно поэтому первым что они делают в доке - жирненько со ссылочками намекают подучить реакт.
>>2877135 >почему при установке реакте девы советуют сходу лупить некстжс Потому что CRA давно все, его никто не поддерживает. Из готовых сборок только Vite, на который еще косо поглядывают и фреймворки (самый популярный это Next). >а теперь надо некстжс ковырять, получается Там нечего ковырять. Это инструмент для макак (как и любой другой фреймворк), в котором за тебя уже многое придумали и сделали, надо просто взять из доки и сунуть в проект.
>>2877230 да в общем-то тайлвинд не нужен. Но 1) если делаешь сам без готового дизайна, то делать на css тупо долго. 2) все верстки которые я видел на css/scss имели названия классов от фонаря и селекторы были жуткоспециализированны ка каждую кнопку отдельно. Не использвать тайлвинд - не знаит что будет забись.
>>2877236 В даже если проект придет от нормального верстальшика то через полгода всеравно все превратят в кашу из несемантичных селекторов. Везде будет понапихано .red-button .green-buy-button .product-vertical-list-blue-item
>>2877502 А альтернативы? vue, который по своей сути и не пригоден для взрослого веба серьезных дядь, разработчики низкого сорта, "BSODы" на пустом месте, лаги глюки, вообщем китайская поделка. (очень удивлен что они не написали свою поделку поверх jqeury)
>>2877483 >Читается лучше? ты троллишь? Совсем другое дело скакать из одного файла в другой, скакать вверх-вниз по CSS, чтобы все медиа запросы посмотреть. На твоих скринах всё, что помещается в одну строчку, в css занимает 20.
>>2877483 >Скинь UI-kit на tailwinde хотябы уровня https://mantine.dev Бля, проиграл >фууу, "flex flex-col p-2 text-black rounded-md" не читаемо((( >другое дело мантин, где всё тоже самое, но в виде пропов
>>2877597 Вообще-то каждый должен учиться верстать используя девтулз. Глядишь какую-то менюшку, не знаешь как такое верстать, изучаешь с помощью девтулза. Другого способа стать лучше и не существует.
>>2877005 Поэтому можно не тратить время на сорта говна, реак и редукс это база, остальное дрочь без всякого смысла, ну ангуляр еще можно,но на любителя все таки ООП не нужон для формошлепства, лучше потратить время на оптимизацию sql запросов и литкод.
>>2877616 > редух > уже даже 18-ый реакт тащите на новые проекты и тыкаете саспензы > тащите редукс который всё ещё не может догнать 18-ый реакт Когда этот сблёв уже похоронят?
>>2877651 mobx/zustand/reatom/xtate >или мне в базу ходить на каждый пук Не понял вопроса, ты заходишь на страницу и получаешь данные. перезагрузил - снова получаешь. вернулся на страницу - снова получаешь
Кешировать должен бекенд и отдавать вам данные как ебучий текст
Проект, который не использует CSS-in-JS решения - это просто говно по определению. Без обид. Додстеры до сих пор юзающие хуйню вроде Sass/CSS модулей уже давно там же, где и дурачье собирающее проекты вебпаком - на параше фронтенд истории.
>>2877682 Нахуя нужен CSS-in-JS, если есть модули? Перформанс выше, читабельность лучше. Вон тот же мантин в новой версии переписали на модули, а раньше он был на emotion, который наконец-то отправили на помойку.
>>2877699 >Вместо react-query предлагаешь свой костыль писать? Я предлагаю его не использовать и использовать бекенд по назначению. Задача кеширования - это задача бекенда. зачем ты берешь эту задачу на себя? Ради чего? что ты выиграешь если твои данные будут будут готовы за 0.2s вместо 0.3s ?
только не нужно вымышленные примеры где за 1 раз на фронт прилетает 100 000 строчек новостей)
>>2877735 Дело вкуса, мне пох, могу использовать могу не использовать в любом случае к серверу я буду обращаться через итоговую абстракцию api.get api.post
>>2877694 Dx на эмошенах лучше. Можно пробрасывать в стилевые компоненты данные, легко и очевидно управлять стилями с помощью жс. На чистом css/sass почти всегда выходит костылинг.
>function phoneticLookup(val) { let result = ""; let lookup = { "alpha": "Adams", "bravo": "Boston", "charlie": "Chicago", "delta": "Denver", "echo": "Easy", "foxtrot": "Frank" }; // After converting our case statements into object properties you can make use of the variable `result` to let the function return the correct value.
result = lookup[val]; // Only change code above this line return result; }
Как передается параметр val в функцию, если в объекте lookup никакого val нахуй нет? result = lookup[val] - вот нихуя не понимаю, откуда там val? В массиве все логично - 0, 1, 2 - под каждым номером значение, тут блять название аргумента, которое хуй пойми что выбирает, ключ или проперти
>>2878142 В квадратных скобках же должно быть название ключа, какого хуя. Тогда уж круглые нужны, раз val это просто заглушка нахуй, чтобы перебирать все значения.
>>2878154 Чем тебе помочь? Я не умею лечить умственную отсталость. Если ты такую простую концепцию как "параметр функции" не смог осилить, как тебе помочь?
>>2878518 судя по всему ты вьюшку только начинаешь учить, сразу тебе дам совет: начинай сразу с 3 версии, composition API и современной инфраструктурой типо Pinia, Nuxt и наборы готовых composable'ов из VueUse.
Поддержка второй версии заканчивается в этом декабре. Мануалов на трёшку уже достаточно
>>2866489 >{{ курсыНейм }} говно Претензии были реальными. Похуй, что он заинтересован разъебывать, зато разъебал по фактам. >ИИ убьет всех (но это не точно) Вообще он говорил ровно обратное - "я в теме, когда это еще не было мейнстримом, ИИ нихрена никого не убьет". Плюс ты упустил главное - Антон Назаров мудак. Рынок итак лихорадит, а из-за него устроиться на работу будет сложнее. Че там еще было не помню. Смотрел давно, пересматривать лень.