Вы видите копию треда, сохраненную 27 ноября 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Больше пары строк кода в посте или на скриншоте ведут в ад.
Для программирования на HTML https://codesandbox.io
Для Node.js с консолькой https://repl.it/languages/nodejs
Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если/когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Документация - https://developer.mozilla.org
Руководство для вката - https://github.com/acilsd/wrk-fet#javascript
> я вот пользуюсь пузырьком и бед не знаю!
Уже за тебя вкрутили инсёршн сорт до 10 и мердж сорт на большем количестве элементов в стандартный сорт. Пузырёк через деструктуризации можешь себе в гарбоч коллектор анус засунуть и точкой с запятой подтереться.
Правила культурного и хорошего разработчика:
1. Не использовать семиколомн. Это показатель культуры кода.
2. Реакт не фреймворк. Писать на нем - упасть в глазах настоящих программистов.
3. Алгоритмы - база. Без них никуда. Если у тебя не решено хотя бы 200 хард задачек на литкоде, то ты не программист.
4. Работать первые полгода за бесплатно - необходимость начинающего разработчика. Никто вам деньги за ваши коды без опыта давать не будет.
5. Использовать актуальные инструменты: Светл и Кампле.
6. Есть множество курсов для повышения всех хардскилов, скиллбокс, янедкс практикум, да даже в нашем треде Есть Павел, который за всего лишь тысячу рублей сможет подтянуть вас до мидл++, так же часто ведет стримы, где показывает все чудеса опытного разработчика.
>Реакт не фреймворк.
Конечно нет
>Писать на нем - упасть в глазах настоящих программистов.
А это не обязательно
Именно, все будем на кампое писать.
Дебс, не путай свелт и светл.
В своих проектах как хочешь, очевидно. В командной разработке конвенции команды есть, что тоже очевидно.
Тож задавался тем же вопросом, но пришел к тому, что разделяю с помощью запятой как свойства в объектах. Предложил ребятам на проекте и меня поддержали(и это не потому что я тимлид!)
Надо было предлагать убрать все запятые. Лишний шум. А так сделали работу только наполовину - убрали точки.
Так я как раз в бекенд и вкатитлся много лет назад. Но про фронтенд ты зря, практически каждый серьезный проект включает веб-приложение, так что перспективы есть.
Нахуя тебе что-то в коде за пределами этого набора символов?
Минимальный набор символов, никакого шума.
> перспективы есть
Какие? Вот бек может срыгнуть в девопс или архитекторы. А фронт только в макдак
просто я сам фронт и мучает чувство неполноценности
Это снова не ответ на мой вопрос. Ты решил троллить тупостью, только зачем?
Ты неполноценный фронт, иначе - тот самый формошлёп, шлёп.
>>863063
Оставь свои точки с запятой здесь >>2852531 (OP)
Этого >>862846 предлагаю накуканить на бутылку с точками и запятыми, забоксить и сослать в старый тред.
Мне похуй что ты там будешь использовать для шумового минмакса, хоть иероглифы и хангыль в названиях переменных.
База треда
Забей на него, он семиколон шиз
Стало стыдно и тут решил припиздеть, чтобы тру-фронтендеры слабее обоссали.
А ты хуле сталкеришь за мной?
Чтобы все знали что ты напиздел
А ты как думаешь?
> refactoring-guru.ru
нет такого хоста. есть чета такое https://refactoringguru.cn/ , но там даже на русском - везде шаолинь
Миддл это не про решение задачек с литкода.
> жёлтые
Задачи, даже в одном цвете, а их всего три, имеют разную сложность относительно друг друга... В этом плане на том же гейкодварсе лычек для организации задачек больше.
>то я автоматом мидл?
Если чел хуярит в доту на более чем 9000 ммр, это не значит, что он нагибатор жанра МОБА, сейчас пересядет за лигу легенд и будет ебошить. Это лишь значит, что он умеет шпарить в доту.
Дальше экстраполируй идею сам.
>Оставь свои точки с запятой здесь
>Мне похуй что ты там будешь использовать для шумового минмакса, хоть иероглифы и хангыль в названиях переменных
Дебич, ты снова забыл принять таблетки? Зачем ты свои точки с запятой тащишь в интерфейсы?
С чего ты взял, что я туда тащу запятые?
запятые вообще не нужны. пиздец какое бескультурье. тупым обезьянам, которые делали язык невдомек, что отступ означает конец. в итоге навалили какого-то визуального шума.
Это брейнфак. 8 символов. Минимум шума. Всё самое нужное.
Если уберёшь запятые в импорте, то он не будет работать. Троллинг тупостью удался.
открываете рабочий проект, желательно пообъёмнее.
по всему проекту ищете "sumbit" (не путать с "submit")
> 12 results in 3 files
>sumbit
Это типо как на второй пикче?
проект на пару сотен тыщ строк.
Таблетки не забудь выпить.
>${arr_name}.lentgh поищи
а то что твои коллеги не умеют в правописание и спел-чек на английском - ещё не делает тебя умнее их
То есть если попытаться подключить такой пакет в проект, вит сломается.
Чтобы это пофиксить, нет официального плагина/руководства. Есть обсуждение, в котором смогли пофиксить эту проблему большим и сложным конфигом. Но в разработке все равно могут возникнуть какие-то непредвиденные проблемы.
Судя по комментариям, HMR также замедляется.
Есть пример такого пакета с jsx в js, который вероятно можно было бы использовать в продакшене? Кто сталкивался с такой проблемой в разработке на вит? Как думаете, мб вит пока-что сырой и лучше забить и использовать rollup/webpack?
Роллап же в нексте прекрасно себя чувствует.
То, что я описал, это похоже проблема сочетания вита+ролапа+есбилда.
ЭТО
ЗА
ДЕРЬМО
?????)))))))))))))))))))))))))))))))))))))))))))))))))))
Я час искал баг чтобы найти вот ЭТО??
Объясните мне, откуда они знают про возможность табличного вывода, но приходят троллить и создавать движуху но не знают про примитивы/объекты или ссылочные/значимые типы?
Я инженер, я пишу инженерную тулзу и мне вывод таблиц нужен был с первой строки.
Кто же знал, что в вашем обосраном языке какое-то животное придумало, что копирование массивов должно работать именно так. Просто пизда, ты только глянь на этот вырвиглазный кал. И потом сравни с чистым си или даже питоном. Я ебал...
> чистый си
> вас вертели на поинтере
> референсим дереференсим
> АЛЛОЦИРУЕМ НАШ ДИНАМИЧЕСКИЙ МАССИВ В КУЧУ, БРРРРРРРРРР
> НУ КААААКИЕ УЕБАНЫ СО СВОИМИ ПОИНТЕРАМИ И РЕФЕРЕНСАМИ
Попробуй чууууточку тоньше.
Ни в одном другом языке такого кала я еще не видел, на питоне я просто прихожу раз в два года и пишу что мне нужно без верчения жопой, а до этого всегда писал на си. И только в здесь и сейчас я имею проблемы с тем, что кто-то не осилил прочитать определение знаку равнения и рандомы из-за этого должны страдать. Алсо я так и не разобрался какого хуя у вас матрица внезапно меняет тип при приравнивании элементов флоатам >>864808 уверен, что то же самое животное с логикой наоборот и здесь придумало какое-то правило.
Конечно тупостью. Это же байтоёб, который статические массивы копирует в С.
Судя по тому, как он сманеврировал на гринтекст про динамические массивы в соСИ, которыми не знает как пользоваться.
> ну я жы привык выделять массив на 10МБ до компиляции моей программы, чиста чтобы был статическим ХЫ
Массивы в жс - динамические, ссылочного типа. Содержат под капотом ссылку на начало массива в куче и длину. Типа слайсов в гошечке и list-а в петухоне.
хотя, есть у меня подозрение, ты тролль
> всегда писал на си
> не разбирается в указателях
Ладно, за троллинг ставлю зачёт.
https://onlinegdb.com/NuIEqT2HS
Вот поэтому создатели реакта и рекомендуют использовать enterprise-ready решение под названием next вместо китайской подделки.
ООООО, УЧЕНЫЙ!!
Давно тебя не было. Соскучился уже. Как ты там?
Опять на примитивных вещах тупишь?
Петушок - петушок, а многими ли ты ЯП пользуешься в которых нет ссылочных типов? Да, js не самый лучший пример, но есть и та же самая java,,,,,,,,
types.includes('lemon')
кто тупит? я или typescript?
зачем тупл сужает тип аргумента у includes
Ведь все равно компилится в обычный includes у массива, да и метод бесполезет если он всегда true на допустимых значения аргумента.
И? Это причина того что lemon стал недопустимое значение аргумента у includes?
Ты блядь вообще в курсе что as const делает, или от балды прилепил, патаму шта канстанта?
Не очень понял тебя. Я хочу заюзать в коде как 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)
B иче он делает? Он делает readonly tuple. Но тайпскрипт никаких новых типов и методов в жс не добавляет по его концепции. Почему сигнатура includes меняется?
Каким образом в кортеже, в котором известны все типы и он не меняется, может оказаться элемент другого типа?
Это не отвечает на вопрос зачем сигнатура includes меняется. Значения кортежа являются подможеством всех строк, почему имутабельный includes перестал принимать значения типа string?
Потому что иди нахуй. Никто не знает что ты хочешь сделать и что там у тебя за ошибка.
Не поверишь как мне не похуй. На тебе скриншот с ТОЙ САМОЙ вкладки. Вариант для ленивых и ментально слабых, не любящих свою ментальную гимнастику.
Никто до сих пор не знает, нужны ли тебе просто булеаны на выход или вывод типов, поэтому повторюсь: иди нахуй.
У тебя синдром Туретта? Попей валерьянки.
Короче понял почему тайпскрипт прав. У lданного тьюпла внутри не строки, а литеральные типы, поэтому аргумент типа строка у includes не проходит
Orly?
>Короче понял
Нахуй, просто нахуй. Ты высрал 3 поста. В них есть всё, кроме того ЧТО и НАХУЯ ты делаешь. Держи что дали.
Я спросил почему так и где я ошибся. Я не спрашивал что делать. Мне вот непонятно почему ты слюной стал брызгать.
Ты вопрос понимаешь? ПОЧЕМУ ТАК? Я с него начал писать в тред. Мне интересно почему тайпскрипт в подкрашивает этот код. Я не просил писать другой код, а пояснить почему ошибка компиляции в этом случае.
Я с наровинга и начал думать, и спросли почему у метода инклудс сужает тип аргумента. Оказалось что сужения типа нет. У тьюпла просто внутренний тип не строки а три литеральных типа банан маго лимон.
массив:
string[]
тупле на 3 строки:
[string, string, string] (сужение массива, держись со мной, следуй)
редонли тупле путём модификации as const:
["string1", "strong2", "strenk3"] - строки ещё больше сужаются до литеральных типов.
> Оказалось что сужения типа нет
Пикрил. Прямо как тебе и показали на скрине тут >>865249.
потому что разрабы тс так захотели, такая же хрень выходит с массивами енумов, и это бесит
ts reset фиксит это и другие калычи
в принципе норм пояснил, хотя аргументы против порешания ии прогеров как всегда неубедительны
С одной стороны большой текстовый файл с кучей не нужной и дополнительной инфы, с другой стороны другой json файл (массив обьектов).
Мне нужно пройтись по этому массиву обьектов и проверить что значения полей присутствуют в том большом файле.
Как это правильно сделать?
Пока что планирую на каждый обьект сделать ф-ю которая будет регуляркой парсить большой файл,вычленять оттуда инфу и матчить её с полями обьекта другого файла и так на каждый тип обьекта будет своя ф-я. Всего 100 разных обьектов. Боюсь я заебусь регулярки писать
это одним циклом делается по массиву вальюс обьекта, проверяется интерсекция слова через инклюдс
абсолютно все правильно сказал, с жипегом хорошо сравнил, я только сегодня это наблюдал когда локально картинки описывал в стейбл диффузии
Пиздец, в его возрасте обычно скуфеют, а он наоборот похудел килограмм на 20
Хотя, может, это так войнушка чела подъела
Кстати, насчет Климова. Вот он кандидат наук по ИИ. Мог бы быть датасатанистам или нормальным кодером
Так нахуя он влез по горло в говеный вротенд? Это же не тру кодинг
Так не получиться. Ну и похуй решили что нам не нужно это делать
Благодарен за ссылку.
Посмотрел, вроде базанул.
>>865406
Почему пиздец. Там же он описал проблему, что будущие вкатыши будут базу не знать, а юзать ИИшку и проводить ритуалы в надежде чтобы код заработал.
Собственно, у нас тут ученые и инженеры базовые вещи не знают.
Единственное с чем не согласен - это про прыжки с галеры на галеру. Чем плох такой способ, когда, действительно, текущий кабан может зажать, хотя при этом в новой можешь поднять чуть ли не х2.
Да и не сказал бы, что "прыжки" - не развивают. Собственно, в каждой новой галере ты встречаешься с новыми проблемами, новыми фреймворками, новыми проектами и их решениями. Каждое новое решение может кардинально изменить архитектуру будущих твоих проектов и личных предпочтений, т.к. когда ты был на первой галере, думал типо: нихуя как все тут круто сделано, а потом попадаешь на новый и понимаешь, что можно сделать иначе и лучше.
Как по мне:
1. ИИ все таки нас порешает, со временем
2. Выученная беспомощность из за ИИ - реальная штука
3. Вкатунам пиздец
> 1. ИИ все таки нас порешает, со временем
Человечество мечтало избавиться от рутинной механической работы, а оказалось что сложному калькулятору проще порешать профессии, где можно что-то калькулировать. Вот ето поворот. Жаль, что ручной работы больше не станет.
> 2. Выученная беспомощность из за ИИ - реальная штука
Да, потому что человека нужно научить (должен научиться) полагаться на себя, хоть частично. Обучить его хоть каким-то эссеншиал навыкам. Но даже школьникам проще списать матешу и физику с ГДЗ. Нахуй там что-то считать и придумывать? В гугле и гуглГПТ все ответы. А отключение света - настоящая катастрофа.
Но растить личиночку в человека - это значит тратить дохуя ресурсов: время, потенциально репетиторы (ещё больше денег), прививание и помощь в обнаружение интересов, запреты на пользование телефонами и компутадорами пока мозг наиболее пластичен.
Нужны квалифицированные кадры, прогресс не стоит на месте. Paper'сов всё больше. Чтобы вникнуть в пейперсы и каким-либо образом приложить - нужны знания. Даже обслуживать кластер гуглеГПТ не пустят долбоёбов.
>3. Вкатунам пиздец
Да.
>>865526
> Я вот не бегаю от муравейника к муравейнику и не распыляю йобо токсины.
Это не так работает. Муравейники САМИ к тебе приходят. Их просто становится больше со временем. И будешь ли ты пытаться залить муравейники водой, выкопать, набодяжить химозную хуйню по народным рецептам или купишь специальные химикаты для вытравки - вопрос знаний и того, что может предложить прогресс.
Знания: ты знаешь как в домашних условиях набодяжить химозную хуйню в условиях отсутствия гугла и гугла 2.0. Молодец. Потратил ресурсы на получение этого знания.
Прогресс: есть гугл и гугл 2.0, достаточно уметь работать с информацией, спрашиваешь гуглГПТ как протравить муравьёв - получаешь 10 рецептов. Половина из которых бесполезна - но ты и не отличишь.
И вообще, как вы заебали с хуёвыми аналогиями, абсолютно и полностью, нахуй, неуместными.
>ИИ все таки нас порешает, со временем
Не на нашем веку, мы будем писать код в 10 раз быстрее используя ИИ. Я уже сейчас не гуглю, а просто задачи в ИИ спрашиваю и подгоняю результат
тру-кодинг - это хайлоад бекенд, а не покраска кнопок. Но это просто пирмер
>Работу чё то очень сложно найти нубу без коммерческого опыта
Как будто когда-то было по-другому
>Ты насчёт того, что он похудел и стал ещё более чсвшным?
Я насчет того, что вся суть видео свелась к тому, что
традиционное
- {{ курсыНейм }} говно
- Илья Климов заебись
новое
- ИИ убьет всех (но это не точно)
Потратить на это 42 минуты - ну как бы хуй знает. Зато примерно 20 раз за видео были упомянуты падаваны, у которых после обучения у Ильи увеличилась з/пшка.
Любая другая сфера ойти говно потому что. Программирование стало балдежным когда в нем появился фронтенд. Все остальное программирование - это унылая дрисня для сутулых анальников.
Я устал притворяться что фронтенд как-то связан с программированием...
И в том, и в другом по 10000 вкатунов:)
И все равно придется верстать компоненты на своем фреймворке
А как их не путать, если для удобного ux нужно шарить за вёрстку?
Даже если пишешь дохуя логики
Принципиально чем хайлоад бекенд отличается? Микросервисошлёпство ты типа сложным считаешь? Лол. В кафку пукнуть — это тру кодинг?
Мне хочется вывести обойти все дерево что-бы условно его можно было записать в строчку узелРодителя1 > узелВторогоУровня1 >> узел третьего уровня1; узел второго уровня2 >> узел третьего уровня 2, узел третьего урвня 3, узел третьего уровня 4.
Вобщем у меня не получается из дерева все превратить в строку. Подскажите пожалуйста, куда смотреть? В рекусии не понимаю начальное и конечное условие, а еще не понимаю как выводить все в разные уровни(
>если для удобного ux нужно шарить за вёрстку?
Для удобного UX нужно шарить за дизайн. Этим занимаются дизайнеры. Первое. Второе - (почти) всю возможную верстку уже придумали. Бизнес логику - нет.
const walkTree = (tree) => {
let s = "";
s += `${tree.title} -> `;
if (tree.children.length !== 0) {
tree.children.forEach((element) => {
s += walkTree(element);
});
}
return s;
};
>Фронт: Учесть хуеву тучу условий заказчика, реализовать бизнес логику, ебаные пиксели
>Бек: Вернуть жсончик для фронта.
Какие же бекендеры дегенераты...
Так это у вкатунов только.
Миддлобояре и Помидорогосподины вне этого говна.
Вот, два дня назад банк какой-то спамил, хотя активность с хх, лынкыдына, хабра убал уже как полгода где-то. До этого какая-то мелкогалера пыталась захантить.
А что тру анальники делают того, что не делают веб анальники?
"Бизнес логика на фронте" это уже значит что там трешак какой-то. Задача фронта превратить жсончик в красивую картиночку
В канвасе твоём тоже бэкенд рисовать джэйсончиком по клику будет? Впрочем, как тебе и сказали - ты шлёпошлёп. В этом случае - да, твоя задача делать JsonToHtml.
мимо
Стоп райт хере криминал скам!
Как будто все фронты рисуют игровые автоматы в гамблинге
В 99,9% фронт это JsonToHtml
И по секрету в гамблинге бизнес логика тоже на бекенде. На фронте только логика связанная с игровыми анимациями. Собственно жс для продвинутых анимаций и создавался
Какую хуету формошлепы только не придумают, лишь бы не совсем бесполезными казаться
>Задача фронта
Мильен страниц, куча табов, права, условия, все-все-все.
Задача бекендера же просто отдать жсончик, который, собственно, будет уже обрастать бизнес логикой на фронте.
У тебя хуёвая архитектура на фронте, вот и всё. Не надо продвигать это как норму.
У тебя безнес-логика на фронте, а проблем с архитектурой решения никаких нет?
Ну тогда не хуёвая, а нормальная, хорошая архитектура, но тем не менее необычная
>Не надо продвигать это как норму.
>Как будто все фронты рисуют игровые автоматы в гамблинге
Это был самый хуёвый пример Это один из самых криминальных примеров в защиту своего жирного троллинга, который ты мог привести.
На фронте должен быть бложик и формочки без джаваскрипта. JSONчик ты должен сам развернуть на бекенде. Уёбывай в свой аппле на свой аппле макбук делать десктопные приложения по их заветам. Не забудь, что линуксойдам и виндусойдам это приложение тоже нужно.
>У тебя безнес-логика на фронте, а проблем с архитектурой решения никаких нет?
Где я про архитектуру писал? Где я писал про проблемы?
Или мильен таблиц, куча табов тебе фантазируются как архитектурные проблемы?
Причем тут архитектура, шизик, мы тут унижаем подсоса бекендеров.
В 99% бекенда есть бизнеслогика. Возьмем обычную задачу сделать сброс пароля. Фронту просто кнопку в профиле, форму изменения пароля и плашку с сообщением сделать, а бекендеру продумывать логическую цепочку.
1) как зарегистрирован пользователь и есть ли у него email мож он через соцсети зашел первый раз. Если нет почты редиректить в профиль на форму ввода emal и вывести плашку с сообщением
2) если почта есть, то отправить туда ссылку на сброс пароля
3) по ссылке сделать редирект на форму изменения пароля, если ссылка свежая, а если не свежая, то вывести сообщение в плашку
4) обновить пароль данными из формы и сделать редирект на профиль
Если спа то вместо редиректов бек возвращает жсон, а фронт только роуты переключает.
Почему спросишь бизнес логика это бек? Потому что кабан хочет смотреть количество новых регистраций за месяц. Обдумывать как сброс пароля повлияет на эту статистику создадут задачу бекендеру. Логически это никак не должно влиять. Но продположим форма заполнения email это огрызок от формы регистрации и ее облуживает контроллер регистрации и он обновляет станистику при post запросе из формы.
Как итог обычный бекендер
1)обдумывает более разветвленную логику
2) должен быть в курсе бизнеспроцессов, чтобы решая задачи ничего не поломать.
3) такие вещи как аналитика опять же пишет бек, потому что бизнес логика на беке и нужно быть в курсе бизнеспроцессов чтобы правильно все подсчитать. А фронту только жсонина приходит чтобы ее в chart.js нарисовать
>Возьмем обычную задачу сделать сброс пароля.
Задача, которую делают один раз а потом ктрлц+ктрлв.
Обычная задача бека вернуть жсончик.
Обычная задача фронта сделать так, чтобы юзер мог тыкать, тыкать туда куда надо, тыкать туда куда можно, получать то что нужно.
Бек же просто на подсосе фронта, т.к. бек возвращает только то, что нужно фронту для его работы.
>1)обдумывает более разветвленную логику
Жсончик сформировать.
>2) должен быть в курсе бизнеспроцессов, чтобы решая задачи ничего не поломать.
Должен внимательно читать условие задачи, чтобы он вернул фронту то что нужно.
>3) такие вещи как аналитика опять же пишет бек
Сохраняет данные и возвращает на тот же фронт.
В то же время фронт действительно занимается бизнес логикой, сколько бы копиума не принял этот бекендолатентный.
А бек просто обслуживает фронт и его бизнес процессы, своего рода секретарша у кабанчика.
Он всего лишь пытается простым языком объяснить фронтендерам сложные вещи, не стоит его винить
Его сложные вещи - обработка бизнес процессов фронта.
Да, понимаю, для бекендера держать две или более переменные в уме достаточно сложно.
Я хотел расписать всё со стороны фронта, но потом увидел
> Если спа то вместо редиректов бек возвращает жсон, а фронт только роуты переключает.
> Но продположим форма заполнения email это огрызок от формы регистрации и ее облуживает контроллер регистрации и он обновляет станистику при post запросе из формы.
И пошёл ты нахуй. Не удивлюсь, что вот этот долбоёб, который узнал новую аббревиатуру - это ты >>2865804 →
Бегают такие, кичатся как они по слоям размазывают сервисы, контроллеры, вьюшки, а потом оказывается, что они ручку в контроллер положить нормально не могут. CTRL+C CTRL+V в штаны насрало.
>Как итог обычный бекендер
Не может освоить спринг, считает своим долгом промахнуться Java тредом и зайти в тред JavaScript
>всё ещё обдумывает, что пошло не так
>должен быть в курсе бизнеспроцессов, потому что работает в шаражкиной конторе без аналитика. На самом деле он фулстэк, которые заставили делать фронт, поэтому ему больно и обидно.
>А фронту только жсонина приходит чтобы ее в chart.js нарисовать
Видел таких в некоторых командах. Послали фронта нахуй, потому что не могут поменять продуманную архитектуру, и переложили часть логики на фронт.
Тащем-та. На словах - ты Лев Толстой, а на деле - не смог найти свой загон.
Всё, иди нахуй, животное, потролль где-нибудь ещё.
Спасибо) я вчера сидел до поздна но всё-таки сам разобрался и сам написал такую вещь. Приятно видеть, что я написал какой-же примерно код.
>CTRL+C CTRL+V в штаны насрало.
Ох, лол, жизненно.
Недавно сотню запросов новых выкатили бекендеры, я половину назад отправил. Где-то с типами проебались, где-то в пути опечатка, где-то параметр забыли, где-то у параметра тип не тот, где-то параметр не читается, где-то поля обязательные не возвращает.
Бизнес логика бекендера аз ит из.
Чел. Я фулстек. По сути фронт. Писал на ваниле, жиквери, нокауте, вуе, реакте, ангуляре. Так что мимо. Если бы у бекенда не было бы бизнес логики, то никто бы не ошибался с архитектурой. Тот кто ничего не делает, никогда не ошибается.
Фронт сложный, но эти сложности создали фронтендеры сами себе. Фронт просто запарный. Никакого изучения талмудов как бек он не требует.
Как рассуждают бекендеры. Вот большое ТЗ. И еще не все аспекты БЛ раскрыты, может все поменятся. Надо делать как можно проще.
Как руссуждают фронты. Бля вот тут в ТЗ надо просто форму обратной связи сделать. Что нам нужно для этого? Разумеется react, sass, postcss, react-router, redux, typescript и еще +100500 либ
>Чел. Я фулстек
Ну вот, я даже оказался прав.
>По сути фронт.
По сути Java головного мозга.
>Писал на ваниле,
Шифт парадигм в голове не произошёл, видим ананас выше про 2013 тоже попал, или близок.
>Если бы у бекенда не было бы бизнес логики, то никто бы не ошибался с архитектурой. Тот кто ничего не делает, никогда не ошибается.
Ну то есть всё ошибаются, поэтому бэкендеры молодцы. Noted.
>Фронт сложный, но эти сложности создали фронтендеры сами себе. Фронт просто запарный. Никакого изучения талмудов как бек он не требует.
Пчёл, пчел, пчелидзе, пчелиус, пчелариус, ну так делай свои no-js страницы, кто мешает то? Всё прекрасно анимируется в CSS. Данные в x-www-formurlencoded с акшонов в формах собираешь и заебись. Никто тебе не мешает.
>Как рассуждают бекендеры. Вот большое ТЗ. И еще не все аспекты БЛ раскрыты, может все поменятся. Надо делать как можно проще.
Ты же по сути фронт, тебе то откуда знать? Нахуй тут что-то навязываешь?
>Как руссуждают фронты. Бля вот тут в ТЗ надо просто форму обратной связи сделать. Что нам нужно для этого? Разумеется react, sass, postcss, react-router, redux, typescript и еще +100500 либ
Ты же фуллстек, бекендер, тебе то откуда знать?
>Ну то есть всё ошибаются
Ошибаются. А фронты не ощибаются. Они делают СПЕЦИАЛЬНО так
>тебе то откуда знать
Потому что видел как делают другие и сам так делал.
Неужели наш тред посетило то жирное Java хуйло с ютуба?
Лучше ответь на вопрос: почему шарпомухи просто радуются жизни, а большинство джавистов, с которыми приходилось взаимодействовать - отбитые ЧСВшные ублюдки, которые радуются свои джаве 7, прямо как деды, которым ничего кроме C не надо, и считают, что все остальные тоже должны стагнировать вместе с ними?
Чо ты ко мне доебался с джавой? Я пишу на ноде. Останюсь на ней потому что уже старый, позняк метаться.
Джаваскрипт язык для смешных поделок и фронта. Ты не можешь называться программистом по своей же ограниченной логике. Piss off.
Я кого-то обзывал непрограммистом? Я учу плюсы в свободное время. Свой мелкобиз буду писать на плюсах, а нода будет на подсосе для интеграций.
Да у этих даше на Cample не хватит.
Это не я. Это кто-то свои пять копеек вставил. Окамл не подходит по причине нельзя объять необъятное
Не хватает микросервисных фабрик для полного счастья.
>Спасибо) я вчера сидел до поздна
Пройдет пара лет, будешь писать за 10 минут.А теперь напиши в ширину, тут уже помогать не буду. Удачи в развитии =) Не останавливайся, через 3-4 года будешь сильный разраб, если не скатишься в формошлепство и верстку.
Тут кстати обсер. Попробуй повтори на своей жабе делегатный полиморфизм
Нет. Иначе бы кабаны скачивали у друг друга сайты и бизнес готов.
>Фронт сложный, но эти сложности создали фронтендеры сами себе. Фронт просто запарный. Никакого изучения талмудов как бек он не требует.
99% бекенда тоже не требует изучения талмудов. Это требуется, если ты пишешь сложный хайлоад типа твитча или дискорда. А твой очереднярский хайлоад это пукнуть в кафку одним микросервисом на голанге и прочитать другим, хотя даже ноды достаточно.
Требует для понимания что ты делаешь, чтобы не быть макакой рандомно долбящей по клавишам. Знания на беке добываются последовательным изучением от простого к сложному. Например хочешь запросы к БД писать.
1) Понимать что такое подключение к СУБД. Через юникс сокет или TCP
2) У СУБД может быть достигнут лимит подключений. Надо понимать как СУБД примерно работает, чтобы сделать умозаключения о настройках
3) Сколько выделить на СУБД сервер ядер и памяти в докере
4) Для самих запростов знать еще ЯЗЫК отличный от основного на котором приложение пишется
5) Кроме ansi sql знать особенности реализации в субд с которой работаешь
6) Для оптимизации запроса сделать индексы. Надо понимать как индесы устроены b+ деревья связные списки и тд.
7) Надо понимать как индесы на сапрос влияют и анализировать план запроса
8) Для пользования ORM неплохо бы паттерны знать, чем дата мапер от актив рекорда отличается, юнит оф ворк и тд
Это все для мидла в любой B2B конторе может встретится
И главное если ты этого не знаешь у тебя постоянно будут затыки и охуевания когда приложение на прд уйдет.
Для клепания типичного фронта для того же самого B2B приложения просто открываешь доку по реакту и ебошишь.
>Знания на беке добываются последовательным изучением от простого к сложному.
Мы уже вот тут >>866885 поняли, что ошибаться и получать знания и опыт могут только бекендеры.
> Если бы у бекенда не было бы бизнес логики, то никто бы не ошибался с архитектурой. Тот кто ничего не делает, никогда не ошибается.
Могу только посочувствовать этим ребятам и пожелать безопасного путешествия в профильные треды.
>Например хочешь запросы к БД писать.
Пчёлище, жуёбище, даже в браузере есть IndexDB... Для работы бека не нужна БД. Тащите свои пакеты и библиотеки, а потом выёбываетесь. Просто... съеби в профильный тред...
//
Алсо анонсы, какого это осознавать, что в 2к24 до сих пор реализовано ~2/3 свойств из css selectors 4?
Знал челика который без дизайнеров делал сразу заебись верстку с дизайном, но нихуя не знал в теории. Кабанам очень нравится. Вот это чистый фронтенд.
>Для работы бека не нужна БД
Будет клауд БД, бизнес не бывает без данных. Ему хотябы аналитика нужна. Если бузнес вообще своей инфраструктуры не имеет то причем тут программирование? А про IndexDB ты вообще сравнил хуй с пальцем
Слоуфикс.
Там уже турбо, вместо ролапа. А сначала вообще вебпак был.
Алсо, турбо делает создатель вебпака и на конференции сказал, что не знает, что будет с вебпаком через 5 лет.
Дунасинг он такой, бессмысленный и беспощадный...
Конечно. Что угодно лучше этого куска кала с бесконечными breaking changes.
В современном мире разработки веб-приложений часто упоминается понятие "бекендер" - разработчик, который занимается программированием серверной части приложения. Однако, если посмотреть на его роль в компании, то можно увидеть, что он является всего лишь секретаршей фронтендера.
Фронтендер - это разработчик, который занимается созданием пользовательского интерфейса и взаимодействием с пользователем. Он задает требования к бекенду, чтобы тот обеспечил нужный функционал. Бекендер же занимается лишь обработкой бизнес процессов, которые уже заданы фронтендером.
Поэтому можно сказать, что бекендер - это всего лишь исполнитель, который реализует требования фронтендера. Его работа не требует особой креативности и интеллектуальных способностей, ведь он просто выполняет поставленные задачи.
Кроме того, существуют специальные инструменты и фреймворки, которые значительно упрощают работу бекендера. Это делает эту область разработки доступной даже для не самых умных разработчиков.
В итоге, можно сделать вывод, что бекендер - это важная, но не самая сложная часть веб-разработки. Его роль заключается в обеспечении работоспособности приложения, а основную работу выполняет фронтендер.
>Бекендер же занимается лишь обработкой бизнес процессов, которые уже заданы бизнесом.
Быстрофикс
пиздец конечно программистишка в оригинальном посте себя богом возомнила
А фронтендер в свою очередь является секретаршей дизайнера. Ведь дизайнер продумывает как все должно выглядеть и функционировать, он всегда на короткой ноге с руководством и вместе с большими начальниками проектирует флоу всего бизнес процесса. Фронтендер - это просто макакен, который должен на язык кода перенести то, что создал настоящий Творец.
Призываются математики, программеры и кодеры для создания краткого математического выражения вечного календаря.
Итак, вот код календаря: 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 для вычисления дня недели на основе даты (день, месяц, год) выглядит следующим образом:
mathematica
Copy code
h = (q + 13(m + 1) / 5 + K + K/4 + J/4 + 5J) % 7
Где:
h - день недели (0 - суббота, 1 - воскресенье, 2 - понедельник, и так далее).
q - день месяца.
m - месяц (январь и февраль считаются за 13 и 14 месяцы предыдущего года, соответственно, январь и февраль текущего года считаются за 13 и 14 месяцы).
K - год в столетии (год % 100).
J - столетие (год / 100).
Эта формула позволяет вычислить день недели для любой заданной даты.
Например, эта формула некорректно определяет 5 октября 2023 года.
Хуй его знает, как получить массив mods, и как интегрировать его в формулу, чтобы пофиксить эту формулу ебучую.
Короче, презываются долбоящеры с двача, которые очевидно, что неприведут к прогрессу.
Призываются математики, программеры и кодеры для создания краткого математического выражения вечного календаря.
Итак, вот код календаря: 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 для вычисления дня недели на основе даты (день, месяц, год) выглядит следующим образом:
mathematica
Copy code
h = (q + 13(m + 1) / 5 + K + K/4 + J/4 + 5J) % 7
Где:
h - день недели (0 - суббота, 1 - воскресенье, 2 - понедельник, и так далее).
q - день месяца.
m - месяц (январь и февраль считаются за 13 и 14 месяцы предыдущего года, соответственно, январь и февраль текущего года считаются за 13 и 14 месяцы).
K - год в столетии (год % 100).
J - столетие (год / 100).
Эта формула позволяет вычислить день недели для любой заданной даты.
Например, эта формула некорректно определяет 5 октября 2023 года.
Хуй его знает, как получить массив mods, и как интегрировать его в формулу, чтобы пофиксить эту формулу ебучую.
Короче, презываются долбоящеры с двача, которые очевидно, что неприведут к прогрессу.
>Короче, презываются долбоящеры с двача, которые очевидно, что неприведут к прогрессу.
Так нахуй ты тогда просишь помощи?
Я не прошу помощи, а призываю антона пофиксить ебучий календарь, а то заебали эти формулы зеллера, и прочее говно, впилите туда массив уже, сукаблядь. Только как его сгенерировать, хуй его знает. С виду - неведомая ебанная хуйня, дизассемблирование которой даже тебе не по зубам, блядь, разве не так?
Не более ничтожной, чем позиция фронтендера офк. Два брата по разуму
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 будет зациклен, и вы сможете использовать его для вычисления дня недели в любой дате в будущем без необходимости пересчета.
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 будет зациклен, и вы сможете использовать его для вычисления дня недели в любой дате в будущем без необходимости пересчета.
Как ИИ, я не могу давать медицинские советы. Однако, если вы беспокоитесь о размере своего полового члена, лучше обратиться к специалисту - урологу или сексологу, чтобы получить профессиональную консультацию и рекомендации. Также можно изучить различные методы увеличения пениса, такие как упражнения Кегеля, использование насадок и приспособлений, а также хирургические методы. В любом случае, важно помнить, что размер пениса не является единственным фактором в сексуальной жизни и удовлетворительных отношениях.
Что делать, если у девушки слишком вместительное влагалище?
Как ИИ, я не могу давать медицинские советы. Однако, если у девушки есть проблемы с вместительностью влагалища, она может обратиться к гинекологу для профессиональной консультации и рекомендаций. В некоторых случаях, использование специальных упражнений Кегеля или вагинальных шариков может помочь укрепить мышцы влагалища и улучшить сексуальную жизнь. Также можно рассмотреть использование различных секс-игрушек, которые могут помочь достичь более полного ощущения. В любом случае, важно помнить, что каждое тело уникально, и нет ничего неправильного в том, чтобы искать способы улучшить свою сексуальную жизнь.
Если у мужчины маленький пенис -- не расстраивайся, есть и другие в жизни радости
Если у женщины большое влагалище -- просто запихайте в себя что-нибудь побольше
тяжко быть кунчиком...
Я могу такую же функцию анонимку сделать
const myFunction = function(...params) { }
Всё что тебе нужно понимать, это разница в поведение function declaration, function expression. Ну и классика, разница между функциями и стрелочными функциями.
Ну и например тот факт, что в TSX файлах ты не можешь делать generic стрелочные функции, потому что парсер пытается это разобрать как тег компонента, а не дженерик типы.
Т.е. вот так ты сделать не сможешь:
const foo = <T>(param: T) => ...
А вот так сможешь
function foo<T>(param: T) { ...
>Всё что тебе нужно понимать, это разница в поведение function declaration, function expression.
Спасибо за наводку.
Методом научного тыка заметил еще одно различие, которое почему-то нигде не упоминается. Функция, объявленная внутри объекта через declaration имеет доступ к объекту через this, а объявленная через expression - нет
const myObject = {
myFunc1: function() {
console.log(this)
},
myFunc2: () => {
console.log(this)
},
myValue: "my value"
}
myObject.myFunc1() // Выдает тело myObject
myObject.myFunc2() // Выдает пустое {}
Всё есть в описании и примерах.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this
Тут есть абзац "this in arrow functions" но здесь не говорится конкретно о том что если метод объявлен через стрелочную функцию он не будет содержать в this ссылку на текущий объект из которого такой метод вызывается.
Или ткни пальцем, я в глаза долблюсь.
Для читабельности везде использую function functionName(someArgument) { ... }
Стрелочные функции только в качестве аргументов/коллебеков
Потому что стрелочки это сложно. Надо либо читать, либо добиваться чтобы щёлкнуло эмпирическим путём. Либо совмещать подходы.
>Тут есть абзац "this in arrow functions"
Ты щёлкнул в абзац в секции "примеры" и хочешь получить всю кумулятивную выжимку по данному кейсу, прямо посреди статьи?
Объект не будет захвачен в качестве контекста стрелочной функции. Они объявляются в одном контексте.
Контекст стрелочной функции не переопределяется в отличие от обычной функции. У обычной функции контекст определяется в момент вызова. Можешь погуглить такой охуенный оператор как оператор точка.
В примере на который тебя хватило пролистать - показан пример, как изъебнуться с помощью обычной функции, которая в момент вызова с объекта получить объект в качестве контекста, и далее использовать его в качестве контекста во вложенной стрелочной функции. Далее. после возврата этой стрелочной функции, она всегда в качестве контекста будет иметь ТОТ САМЫЙ объект, независимо от того куда ты повесишь функцию.
>я в глаза долблюсь.
(X) Открыть
>метод вызывается
От того, что ты запихнул стрелочную функцию в объект и назвал методом - в ООПшный КЛАССАВЫЙ метод оно не превратилось.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions
> Arrow functions don't have their own bindings to this, arguments, or super, and should not be used as methods.
Впрочем, если ты сделаешь класс
class OOP {
foo = () => {
console.log(this);
}
const oppa = new OOP();
oppa.foo()
Оно будет работать, как ты, наверно ожидал. Если ты делал проекции на свой предыдущий ОППА опыт.
Потому что стрелочки это сложно. Надо либо читать, либо добиваться чтобы щёлкнуло эмпирическим путём. Либо совмещать подходы.
>Тут есть абзац "this in arrow functions"
Ты щёлкнул в абзац в секции "примеры" и хочешь получить всю кумулятивную выжимку по данному кейсу, прямо посреди статьи?
Объект не будет захвачен в качестве контекста стрелочной функции. Они объявляются в одном контексте.
Контекст стрелочной функции не переопределяется в отличие от обычной функции. У обычной функции контекст определяется в момент вызова. Можешь погуглить такой охуенный оператор как оператор точка.
В примере на который тебя хватило пролистать - показан пример, как изъебнуться с помощью обычной функции, которая в момент вызова с объекта получить объект в качестве контекста, и далее использовать его в качестве контекста во вложенной стрелочной функции. Далее. после возврата этой стрелочной функции, она всегда в качестве контекста будет иметь ТОТ САМЫЙ объект, независимо от того куда ты повесишь функцию.
>я в глаза долблюсь.
(X) Открыть
>метод вызывается
От того, что ты запихнул стрелочную функцию в объект и назвал методом - в ООПшный КЛАССАВЫЙ метод оно не превратилось.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions
> Arrow functions don't have their own bindings to this, arguments, or super, and should not be used as methods.
Впрочем, если ты сделаешь класс
class OOP {
foo = () => {
console.log(this);
}
const oppa = new OOP();
oppa.foo()
Оно будет работать, как ты, наверно ожидал. Если ты делал проекции на свой предыдущий ОППА опыт.
>Ты щёлкнул в абзац в секции "примеры" и хочешь получить всю кумулятивную выжимку по данному кейсу, прямо посреди статьи?
>https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions
Сначала третируешь меня сделав вид ЯКОБЫ я половину статьи пропустил, а потом даешь ссылку на СОВЕРШЕННО ДРУГУЮ статью где дается ответ на мой вопрос.
Молодец, типичная токсичная мразь которая пытается казаться умнее чем она есть, посредством сомнительных демагогических приемов.
То есть ты ленивое хуйло, который жалуется, что нигде не написано про X, а виноват я, потому что ткнул тебя туда, где об этом написано?
Ну и пидорас же ты.
Если ты не заметил, там написано
> should not be used as methods.
То есть язык позволяет так делать. А чтобы не быть тупорылым баттхёртом - надо уделить время, чтобы разобраться в вопросе, а не следовать всему, что пишут в интернете и пользоваться инструментами на основе чёрной магии. Убирай своё магическое мышление, долбоёб.
Дошел до 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]
Вроде звучит как фантастика.
Просто проект для декомпозиции задачи, что бы масштабом можно было менять "угол" обозрения задачи. Может уже есть сервисы с похожим функционалом?
>для описания архитектуры?
Та не только. Вообще так удобно любую задачу/проект дробить,
(я в голове так проектирую просто и мысленно этот масштаб "отдаляю/приближаю", при необходимости)
на блоки побольше (которые можно общими словами описать), и которые будут давать понимание общей картины, а в них уже блоки поменьше с чуть более детальное реализацией, а там внутри ещё более мелкие блоки (и их больше и т.д), которые будут прямо описывать реализацию.
Есть импортозамещённый попенсорсный продукт с ногами растущими со стороны сбера, который медленно корраптит бигтех. Это немного не так работает, как ты описал, в плане интерактивности, но суть примерно та же - описать архитектуру, слинковать узлы, иметь возможность по ним перемещаться + документация. Бонусом возможность вставлять plantUML, сваггеры и прочую залупу.
https://dochub.info/main
Гитхаб там где-то болтался в доке, да и загуглишь если надо.
Не думал, что буду рекламить импортозамещённые продукты. В какое опасное время живём. В следующий раз буду астру предлагать похоже, кек
Сегодня джун такую хуйню нагородил в 100 строк JS, которую получилось заменить 15 строками CSS (и все кроссбраузерно)
Потому что на фронте нет бизнес логики, фронты не програмисты, нужно JSON разворачивать. Вот он и развернул JSON красиво. Вини бекендеров. Надо был страницу без джейсона посылать.
Потому что анальники захватили фронтэнд и ненавидят и неумеют верстать.
Голова джимми биста раздавала 10к айфонов за 2 доллара. Желающие заскамиться всегда найдут возможность заскамиться.
Как говорится: лох не мамонт, лох не вымрет. А одебилевание населения только способствует.
Меня больше волнует вопрос фальсификации медиа, которые для суда будут выглядеть на все 146% натурально, что повлечёт бутылирование. Даже изъёбываться не надо. Собрал свой минимальный набор голосовых данных. Соц сеточки поскамил на фото/видео, твит/лонгтвиты и ты готов.
Надеюсь у всех пидорасов, которые рассылали голосовые сообщения, теперь начнётся тряска.
>>868675
https://www.twitch.tv/atheneaiheroes
24/7 нейронка отвечает на вопросы от лица выбранного персонажа. Киану ривз, блэт обэма, трумп, мр жывотне, джо роган.
Тиктокшортсеры используют нейронки чтобы озвучивать происходящее на экране и генерацией видео фида своей головы.
Голова, дай айфон.
>Меня больше волнует вопрос фальсификации медиа, которые для суда будут выглядеть на все 146% натурально, что повлечёт бутылирование.
Фотошоп же умельцы умеют детектить.
Чисто технически бутылка в этом случае может грозить от незначительной детали, но детектят же.
Скорее, думаю, будет хайп у всяких шарлатанов, которые будут брянькать по мобиле и представляться голосом мамки/корзинки и кляньчить бабки.
Вообще не понимаю как люди на это ведутся, но ведутся же. Сам в своей жизни был свидетелем, как коллега все бабки скинула какому-то шарлатану, который банком представился.
>Надеюсь у всех пидорасов, которые рассылали голосовые сообщения, теперь начнётся тряска.
Обязательно начнется, но потом.
>Если сделаю проверку на сервер, то будет ошибка гидрации, потому что серверная тема может не совпасть с клиентской. Без проверки на сервер, ошибка только на сервере, на клиенте всё работает чётко.
<NoSSR> компонент сделай шизик. Только нормально на саспенсах, а не typeof document === 'undefined'
function ThrowIfServer({children}) {
if (typeof document === 'undefined'){
throw new КастомнаяОшибкаКотораяНеЛетитВСентри()
}
return children
}
export function NoSSR({chuldren}) {
return <Suspense children={<ThrowIfServer children={children} />}/>
}
Мб на нексте надо будет как-то глушить подобные ошибки, хз. У меня на проекте свой сервер, поэтому как там с некстом дела обстоят - не подскажу
Ок, спасибо.
>Т.е. вот так ты сделать не сможешь:
>const foo = <T>(param: T) => ...
И так
const foo = <T, >(param: T) => ...
Какой-то костыль. однако, но не знал, да. Получается удалятель символического шума опять соснул?
Мимо Middle React Dev
Ну? Или ты о том, что я мало писал на Вуе (первые полтора года работы) и на Ангуляре (петы с дуднетом)? И скотина такая осел в Нексте
Обсидиан, в фигме есть(figjam board), reactflow, eraser. Самая технически крутая - eraser, думаю.
А вообще гуглится таким набором слов: graph node wire js
Нет, с чего это? Этот код будет работать независимо от наличия или отсутствия точек с запятой.
Какой же ты ограниченный, да ещё и слепой. Не заметить шума на одной из строк...
> никакого шума нет
> так надо
> так получилось
Ничего, тут тебе поможет рул "react/function-component-definition", чтобы не костылили через стрелочки. Всё, лишь бы у диточки дедочки запяточки не шумели.
Зачем тебе пхп если ты в итоге в го собрался переходить? Что мешает сразу в го идти?
>рул "react/function-component-definition", чтобы не костылили через стрелочки.
Кринге. Зачем мне лишние байты в бандл добавлять?
Шизофреник, ты сам понимаешь, что ты несёшь? Какие ещё костыли через стрелочки, какие шумящие запятые? Ты можешь изъясняться адекватным языком, который понятен нормальным здоровым людям?
Долбоящер трахнутый, где я писал про ТОЧКИ С ЗАПЯТОЙ? Тебе даже написали, что ты слепой и тупой, но ты ещё и зацикленный.
Речь шла о символах, о визуальном шуме. >>869083
>Получается удалятель символического шума опять соснул?
Который может создаваться как знаками препиная точками запятыми вопросительными знаками двоеточиями и прочими прелестями синтаксиса языка
Ты настолько тупой, что не видишь разницы в количестве байт, которые занимает строки
> () => {}
> function() {}
Как там было... дай мне поискать в том треде...
>Чел, открой для себя такие инструменты как линтеры и форматтеры.
Открой для себя настройки процесса минификации.
>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.
Ясно, прототипошиз. Иди монгуса подрочи со своими прототипами.
не тот тред
Пробовали уже эту штуку от яндекса? Как вам, Анальники?
>Долбоящер трахнутый, где я писал про ТОЧКИ С ЗАПЯТОЙ? Тебе даже написали, что ты слепой и тупой, но ты ещё и зацикленный.
Зачем ты так рвёшься?
>Речь шла о символах, о визуальном шуме.
Твоя память работает хуже, чем у моего 92-летнего деда? Удалятель символического шума называл таким шумом исключительно точки с запятой.
Удалятель шума ещё заявлял, что от выпиливания точек с запятой код продолжает работать так же. А на деле AST меняется. Да мало ли, что он рассказывал?
Стыдно быть динамикодриснявой мартышкой
>Удалятель шума ещё заявлял, что от выпиливания точек с запятой код продолжает работать так же.
Там было про то, что код работает так же, ЕСЛИ в нём не встречаются ломающие конструкции в начале строк. Что оставалось на волю внимательности писателя кода. Хотя там же было про правила еслинта, которые напоминают мартышке о том, чтобы она не писала ломающие конструкции.
>const foo = <T, >(param: T) => ...
Независимо от всего этого, зачем нужна запятая в дженерике, если после неё не идёт второй дженерик? Я никогда не встречал такого кода ни в говнопроектах, ни в компании из КОТВАСЯ, где я сейчас работаю.
нахуя ты засираешь тред? иди в /b/ посри лучше, тут люди серьезными вещами занимаются
> напоминают мартышке о том, чтобы она не писала ломающие конструкции
Ломающие, только если кому-то мешают точки с запятой. Ведь поменяется AST.
> напоминают
Накладывают ограничения через анальные еггогы
> зачем нужна запятая в дженерике
Начнём с того, что это была не моя вариация объявления функции
> зачем а это я буквально описал выше, когда писал пример про TSX.
> никогда не встречал
Ну, я тоже никогда так не пробовал наебать концеплятор за 4 года работы с ТС. Дальше то что?
.html(html)
Анальник трясун:
<div dangerouslySetInnerHTML={{__html:html}}></div>
Почему так?
Чад энжоер бы это вообще сделал бы так: <?php echo html; ?>
Правильно, нехуй прикладыцвать текст ошибки и тип matterResult.data. А то вдруг разберутся в чём проблема.
Не знаю братан, не знаю. Попробуй не снимать свитер.
Это из markdown файла берется. Тебя это ебать не должно. Допустим это жисон.
Даже ИИ не помог, сука, не то что эти мои двощи. А раз уж я сам додуплил, то это значит я самый охуенный маняматический быдлокодер на свете. Пруф: https://jsfiddle.net/f5cto68p/
Так и напишите в моём резюме.
> помогите вылечить TS
> Показывай типы, поможем состыковать
> вас ебать не должно, чините мне типы
Кек, уёбище. Это же ты то самое уёбище, которое уже не первый раз игнорирует все наводящие вопросы ради троллинга?
>жисон из файла
>показывай типы.
Где я тебе их в жисон файле высру? Туда потные ручки тайпскриптеров не добрались еще к сожалению.
> скидывай тип
> КАК Я ТЕБЕ СКИНУ ТО, ЧТО ДАЖЕ НЕ ПРОСИЛИ???
Господи, как же охуенно, что я тебя вчера проигнорировал. Прямо как чувствовал, что это снова ты.
И ведь если это gray matter, то там ничего сложного. Но иди нахуй. Помощь заслуживает только желающий помочь себе сам.
Работает, как затычка, и пусть работает. Радуйся.
А ты сам-то анонам ответил, которые тебе помочь хотели?
Всё, отъебись. Лимит смс исчерпан.
Это грей маттер, да. Вот сюда я могу писать любую хуйню. Тебя должно это ебать для решения задачи? Я вам сразу и заявил что вы не туда идете.
Как блядь разраб tailwind.css говорит best practices don't work и с первого параграфа показывает worst сука practice.
Уебки блядь зачем вы мой фронтэнд убили?
Чуть-чуть ниже пролистай, и увидишь, что тип data у него - это не иронично JSON.
Тайпскпритеры не пользуются жисоном?
2. Как мне выпилить 2 вызова одной и той же функции?
2 вызова я выпилил, оказалось функция для динамической генерации не нужна.
Крестьсяне лезут в магию и спрашивают на площади, какое залинание говорить, чтобы росла картошка. Вот такой вот образ современного фронтенда.
Главное, чтобы по итогу мошонку не приколотил на площади.
Всегда так было. Стековерфлоу наверно больше лет чем тебе поридж.
Нееееет, что ты наделал!! Теперь понятно, почему у тебя была ошибка!! Нееееееееет!!!
Это было понятно без этого. И я сразу написал, что пропертей нужных тайпкрипт не нашел.
>я сразу написал, что пропертей нужных тайпкрипт не нашел
Да хуй разберёшь что вкатуны имеют в виду, когда пишут такую хуйню.
В твоём случае по хорошему надо сужать тип matterResult.data (например с помощью zod). Потому хуй знает что с твоим кодом произойдёт, если структура json'а поменяется.
Проперти а не тип.
Я понял почему props объявляю я. Потому что id объявляю я вот так обзывая папку.
> напиши ошибку полностью и укажи тип data
>>869873
@
>>869961
@
>>870160
@
> >>870121 Это из markdown файла берется. Тебя это ебать не должно. Допустим это жисон.
@ >>870458
> На самом деле тип я нашёл, там на самом деле пропертей не было
>Я понял почему props объявляю я. Потому что id объявляю я вот так обзывая папку.
Имаджинь ты бы доку открыл и прочитал один А4 про роутинг?
>Имаджинь ты бы доку открыл и прочитал один А4 про роутинг?
Я прохожу getting started туториал, деб.
Давай ты лучше 10 ноября задашь вопрос, художник, на юбилей?
Ну так и проходи молча, хлебушек. Раз помощь тебе не нужна. Иди нахуй со своим бложиком.
Причём отмечу: нахуй со своим туториал бложиком, и бложиком который ты пытаешься устроить ИТТ.
Пока что только тред не может объяснить как какать. Как будто это они первый раз видят самый популярный фреймворк в 2к23 а не я.
>покажи тип переменная_нейм
>показывает жсон файл
>не тип файла, а тип переменная_нейм
>вот скрин файла json
>не json-объект, а тип переменная_нейм, наведи курсор на переменная_нейм
>тупой вкатунидзе всё таки сумел показать тип переменной
>по нормальному надо делать так и так
>рррряя почему не рассказали когда я не показывал тип переменная_нейм я же написал текст_ошибки_без_конкретики
Задача заключается в том чтобы размазать произвольный объект по объекту с типом.
>покажи мне тип этого произвольного объекта, он обязательно имеет значение!
>тебе нужен спиннер для анальной пробки
>>покажи мне тип этого произвольного объекта, он обязательно имеет значение!
Блять, вкатун, ну не позорься. Ну не получится у тебя метко загринтекстить.
>Задача заключается в том чтобы размазать произвольный объект по объекту с типом.
Ты решаешь задачу в лоб (дефолтный вкатун), и не понимаешь, где обосрался.
Знаешь почему тайпскрипт выдаёт эту ошибку? Потому что если в импортируемом json/md файле у тебя будут другие поля - обмякнешь после "Cannot read property ... of undefined". Тайпскрипт тебе правильно подсказывает - нет гарантии, что твой код будет работать без ошибок. Либо делай как надо, либо пересаживайся на js и не доёбывай нормальных людей своими тупыми вопросами, обрыган
Есть. Проверять на существование каждое поле BlogPage, и проверять тип значения поля. Только у тебя будет уёбищная простыня из минимум 8 if'ов. Для лакончиности придумали библиотеки zod/yup
На жс есть
let blogData = {
title: "',
description: "'
};
let matterData = {};
let result = {
...blogData ,
...matterData
}
Да не трясись ты. QA зря штоле зарплату получает.
Съеби.
export function getItem<T>(key: string): T | null {
const item = localStorage.getItem(key);
if (item === null) return null;
return JSON.parse(item);
}
export function setItem(key: string, value: unknown) {
localStorage.setItem(key, JSON.stringify(value));
}
export function removeItem(key: string) {
localStorage.removeItem(key);
}
Там ведь как-никак нужен матан
Матан нужен, когда он нужен например написать тот самый threejs. Думаешь дохуя индюков на том же юнете знает матан? Или на юече, где надо блюпринты двигать?
transform.rotate
transform.translate
Никаких тебе кватернионов и знания матриц для этого не надо.
Минимум в виде векторов, скалярных произведений, нормализации и т.д. освоит наверно даже дегенерат.
> Когда нужно написать webgl
Хуйня в том, что иногда нужно писать на нем, а не дереве. Нахуя тянуть полмегабайта либы три.жс в бандл ради одного 3D-блока, если можно написать свою шуструю реализацию?
И что тогда делать косолобому формошлепу?
Там разве нету тришейкинга?
По размеру либу перепутал с babylon, обосрался
Похуй. Когда-то курс линала и ангема(и прочего другого разнообразного матана проходил).
Быстренько пройду какой-нибудь курс по этим технологиям, где быстро и легко объяснят.
>Но так нельзя.
Можно. Знакомый 3 месяца ничего не делал после трудоустройства и свалил до того как спалили
Перекладыватель жсонов, под шконку съеби. Тру бекендеры ебашут алгосы только в путь.
Зато этот перекладыватель жсона всегда будет с работой
А тебя пидорнут с работы за незнание 3d либ)))
Ты таску никогда не задерживал?
Я одну "переработку" функционала с прокидыванием параметров в урл месяц делал, когда можно было за день.
Когда уже подъебывать начали, типо долго делаю, выкатил. Хрюша еще и похвалила.
Не нужен там матан. Там надо ломать себе мозги в новое измерение. Я могу незнание третьего измерения сравнить с тем временем когда я не врубался в эвенты.
Я не на жс трехмеркой занимался. Блендер(питон) и анриал энжин(кресты/ визуальное программирование).
цсс зэбэс.
Хочу угореть и сделать about на чистом шит'em'оле, цэсэсэ с анимациями, 3д эффектами и перделками без вобласкрипта.
мимо
За то что трудоемкую задачу сделал, логично же.
Я же не просто так каждый понедельник умными словами описывал свое "превозмогание".
Но я в то время чуток выгорел, никак не мог начать нормально.
если дропдаун вырван из потока элементов, то никак. Не еби себе мозги, сделай лучше через js
Приведите кейс (желателньо работы фронтендера) в котором нужно использовать замыкания? Я в саму концепцию давно въехал, но я не понимаю зачем это все вообще нужно, где это может использоваться. Зачем из одной функции вызывать другую, создавать скоуп с данными которые не трогает сборщик мусора? Замыкания работают медленно, вносят чехарду в плане хранения/удаления данных, вроде как можно даже обосраться с памятью (но не точно).
Каррирование
Formik так не вызывается вроде как, либо через хук, либо из <Formik> вытащить надо метод
Каррирование, разграничение доступа к данным (например, те переменные которые ты не экспортируешь из модуля, но используется экспортируемой функцией), обёртки добавляющие логику.
Т.е. лучше переписать форму, используя компонент, как тут?
https://formik.org/docs/api/formik
А не как в туторе, через useFormik?
Пчёл, ты можешь делать как удобно. ЕМНИП Formik напердолен поверх хука useFormik.
Formik создаёт контекст. Для простых форм шлёп-шлёп этого должно хватать. Только функции для изменения данных доставай из пропов рендер функции.
useFormik, да и вообще хуки - для кастомизации, так как дают больше гибкости.
мимо
Ну всмысле, чел. Представь что тебе нужно данные фильтровать по критерию ты передаёшь критерий в функцию, она тебе создаёт функцию где элемент множества проверяется на соответствие критерию. Получил функцию-фильтр которую можно передавать-туда сюда и использовать.
У меня сейчас, как в туторе https://formik.org/docs/tutorial
Я просто под себя форму переписал, добавил css, повесил вызовы на бэк через axios и все.
>>871680
Вкатун потому что, погуглил, что формик + yup норм связка для создания форм, вот его и взял.
Ковыряю я его, потому что хочу получать ошибки от бэкэнда и отображать их на форме.
Например, делаем POST-запрос, он возвращает ошибку, я ее добавляю в список ошибок поля в форме.
Я так понимаю, делать это надо через это https://formik.org/docs/api/formik#seterrors-fields--field-string-string---void
>>871682
Так, понятно, надо гуглить, что такое контекст, потому что я ничего не понял.
>погуглил, что формик + yup норм связка для создания форм
Выкидывай формик и юзай react-hook-form. Сейчас нигде формик не юзают
Почему? Чем он плох?
Ну ладно, пересяду на рякт хук форм.
Можешь подсказать, на этом вашем хук форме можно без боли решать следующие задачи:
1. Валидация форм, через yup, например.
2. Отображение ошибок с бэкэнда.
Алсо, есть ли вообще смысл делать валидацию форм и на фронте и на бэке?
На бэке у меня есть функция, которая проверяет пароль на сложность. Если пароль легко подобрать, то выдает в респонсе ошибку, что пароль не принимается.
Есть смысл делать аналогичную функцию на фронте, чтобы лишний раз на сервер не обращаться, а юзать ресурсы клиента?
Это уже какой то ООП головного мозга. Легче создать пустой массив, оттуда вытащить метод фильтр и его использовать.
>1)
https://react-hook-form.com/advanced-usage#CustomHookwithResolver
2) шта?
Основную валидацию можно на клиенте, а на беке какую-то легковесную валидацию, вроде, есть ли такой юзер в базе и т.д.
Ок, спасибо.
Зачем в туторе к формику используют useFormik, а потом пишут, что его лучше не юзать? Хуйня какая-то.
Это уже какой-то поток сознания, tbh.
> создать массив
Возьмите уже тогда с прототипа, а не с экземпляра прототипа.
Сейчас бы жаловаться на ООП и уходить от функционального подхода с функторами. БОЙСЯ ХАЧКЕЛИСТОВ В ТЁМНОЙ ПОДВОРОТНЕ. Застрелят в упор во дворе, не доходя до шестёрочки.
ООП - когда у тебя жёсткая привязка методу к классу, а не занимаешься функциональной композицией. Ни одному sane джависту и шарпомухе каррирование в дупу не всралось. Fluent api ещё куда не шло, функторы - заебись.
Почему шарпистов называют шарпомухами?
>Зачем в туторе к формику используют useFormik
Просто попользуйся реакт хук форм и потом будешь блевать от формика.
А нам и не требуется разрешение холопов библиотеки Реакт.
У роллапа есть? И все остальные плагины, чтобы собрать проект?
RHF меньше весит, и не ререндерит всю форму при вводе.
Да у тебя всё шиза. Начиналось с замыкание шины. Продолжилось с ООП/анти-ООП шизы и вот мы здесь: очередное нинужно шиза. Бинды тоже нинужны. HOF тоже нахуй нинужно. Давайте писать в процедурном стиле и все объявление делать глобальными.
Крашу кнопки и прокидываю редуксы без всей этой твоей хуйни и что? Где твой бог теперь?
const handeHuetaClick = (data: Hueta) => () => { huetaHandlerCodeExecutor(data) }
...
<ZalupaList>
{ huetinki.map(hueta => <ZalupaItem key={hueta.id} onClick={handleHuetaClick(hueta)} {...hueta} /> }
</ZalupaList>
//////////////////
<ZalupaList>
{ huetinki.map(hueta => <ZalupaItem key={hueta.id} onClick={() => {
huetaHandlerCodeExecutor(data)
}} {...hueta} /> }
</ZalupaList>
А не, можно настроить.
>Понял, что обновлять состояние, как в функции f1 плохо.
Надо головой думать когда код пишишь, а не искать как правильно обновлять состояние
>при срабатывании события дважды подряд, значение state увеличится всего на 1
У тебя при обновлении события вызовется ререндер и обработчик сразу захватит уже увеличенное значение твоего стейта
>И возник вопрос, как в общем случае защититься от дважды сработавшего события?
Никак, потому что нет такой необходимости
>Допустим, я запускаю в каком-то коллбэке таймер, где гарантия, что он не запустится дважды?
Очевидно, хранить где-либо флаг, что таймер запущен/сигнал с предыдущего таймер и его абортить
>Я могу хранить идентификатор таймера в ref, и проверять, не запущен ли он уже, но могу и забыть случайно. Какой-то универсальный способ защиты от этих ошибок есть?
Чел, эта "проблема" решается буквально парой строк кода. Что за универсальное решение ты хочешь получить?
>У тебя при обновлении события вызовется ререндер и обработчик сразу захватит уже увеличенное значение твоего стейта
Если вплотную рядом стоят 2 дива, и я мышь двигаю из одного в другой, то события onmouseleave одного и onmouseenter другого произойдут одно за другим без вызова рендера между ними. И если f1 будет навешен на оба этих события, то state увеличится всего на 1.
Какая шиза. Неси видеопруфы.
> но я знаю когда сломается
Ну так и используй колбэки? Колбэки батчатся и обновляют состояние последовательно.
Блядь, вообще, что нахуй за шиза? Если у тебя есть необходимость делать апдейты с зависимостью на текущее состояние - делай через КОЛЛБЭКИ. Потом ты ещё захочешь юзэффектов напихать с установитьСостояние(состояние + 1) и твоя простыня не сработает, потому что принимает ЗНАЧЕНИЕ, а не ДЕЙСТВИЕ над состоянием.
мимо
>Какая шиза.
Он прав кстати, сам только что проверил. Но энивей изъебываться ради такого эдж кейса - совсем долбоебом быть
Надо смотреть на 16/17 реакте. Уверен автобачингом в 18 в штаны насрали.
btw никогда не отлавливал кейса, где это выстрелило бы в ногу. Наверно, потому что проще сразу писать в действиях над состоянием, если там что-то сложнее чем true/false.
>Надо смотреть на 16/17 реакте
не надо, пусть продолжает умирать в небытие, ибо без саспенса на ssr это юзелесс кал.
Да, только твоими проектами будут легаси говна, нового ничего на ангуляре не делают
Легаси говна будут в любом случае. Время, когда проектики мутятся, бабки крутятся прошло минимум 5-7 лет назад. Тогда пачками нанимали джунов чтобы писать стартапы, а сейчас даже мидлам только поддержка легаси.
Хватит маняфантазировать, иди ищи нормальную либу для формочек и стейт менеджмента.
Это не аксиос. Прикинь ошибку сам.
https://developer.mozilla.org/en-US/docs/Web/API/Response/ok
https://developer.mozilla.org/en-US/docs/Web/API/Response/status
>Хватит маняфантазировать, иди ищи нормальную либу для формочек
react-hook-form
>и стейт менеджмента.
zustand
Низкой культуры разработки запахло. Скажи ещё, что точки с запятой ставишь
Как же мне не похуй на нитакусь. Говно всегда найдёт чем выделиться.
Эти любители поработать в кафе и коворкингах кафешного типа, ближе к стоечке - особый вид инвалидов. Человеку не дали его любимый ПОПЕН-спейс. Домой он не хочет. Приходится сторговываться на кокворкингах.
Потом на собесе попустят
у меня наобородт удаляет
А всё потому что он был сделан на коленке и там почти ничего толком не продумано. Вот реально хочется взять и уйти учить норм язык, хз питон или джаву наверное.
Создают ощущение, что код грязный
Это вопрос про приведение типов. Если ты преисполнился - ответишь без проблем
Твоя злость выдает в тебе нуба. Чем глубже ты погружаешься в жс тему, тем отчетливее понимаешь, что жс со всей его инфраструктурой близки к совершенству.
есть такое, люблю жс за то что он динамический, легко модифицируемый, но сраная слабая типизация калыч полный, хотя иногда удобно бывает, что null, undefined, false и "" в логических проверках означают false
>что будет если пустой массив приплюсовать к единице
бля, почему массив к пустой строке приводится
Проиграл, после JS сиха будет казаться как доска с колесом, вместо автомобиля
жаль rust мертв...
Да я просто помню одного такого, который с плюсов на шарпы перешёл и потом горел, что КАКОГО ХУЯ НАДО ДЕЛАТЬ ЯВНУЮ ПРОВЕРКУ НА NULL В IF'АХ, а вот в его-то сишечке можно просто положить какую угодно хуйню не занулённую и оно сработает.
Причём тут язык и вопросы уровня "я не знаю, что спрашивать на собесах, поэтому буду спрашивать оторванную от реальности хрень"? Если тебя такое бесит, то у меня для тебя плохие новости.
Много было, примерно половина всех собесов
У меня не было только на галерах
Видимо здесь только литкодами интересуются. Кабаны же за литкоды бабки платят
> ням-мням опять нейросетки в бете для прототипирования в штаны насрали
Попробуй спросить ещё раз.
>везде тейлвинд мерещится
Как же я бы без лахты не разобрался, что пикрил это CSS модули оказывается, а не никакой тэйлвинд!
Мокай запросы на бек любым удобным тебе способом. Остальное можно не мокать так-то.
У тебя две функции в разных модулях
function getUser() {
return {avatar: "Pepe"}
}
function getAvatar(fn) {
return fn().avatar
}
Они соединяются в третьем модуле и от друг друга не зависят
getAvatar(getUser)
В тесте getAvatar.test.js мокают getUser как раз, чтобы вместо getUser передать мок как аргумент fn, чтобы тестировался только getAvatar без конкретной реализации getUser
Да, просто вместо задач с литкода были только про React
Кринж. Как взлетел этот ваш тейлвинд, так и улетит обратно в небытие, где ему и место.
> и оно сработает.
Все так, только ты потеряешь данные и кабанчику прилетит 128$ вместо 45092020$, а узнаешь это только спустя месяц
Причина баха?
Тут даже адаптива нет, вот когда начнется использовать css классы чтобы складывать туда имена с @apply, тогда будет веселье.
База. Радует, что в треде становится больше адекватных анонов. Точки с запятой у эстетически развитого человека могут вызвать лишь кринж.
Там еще массив, а не объект
Трясунчик, какашечку удерживал пока писал?
Зачем джаваскрипт придумывает каждый год одинаковый тест тул с абсолютно одинаковым синтаксисом?
моча и жасмин это же просто тест раннеры, а жесть от пейсбука "три в одном" раннер, матечеры, моки
>матечеры
Поридж плиз. Всё это было гораздо раньше с тем же самым синтаксисом.
Функции по другому, но тоже были. У фейсбука NIH синдром просто.
Фейсбук просто взяли, и сделали фреймворк для тестирования. В котором не надо по кускам собирать матчеры, тестсуйты/тесткейсы, есть before/after джобы на суиты и тесткейсы. И ко всему этому можно замокать всё что нужно.
Но нет, постоянно найдётся какой-то недовольный неофит, которому на 7-ой джаве норм.
мимо
Пик слева джасмин, там тоже ничего не надо было собирать по кускам. Откуда вы эту хуйню берете?
Блядь, ну найди СРАВНЕНИЕ фреймворков. Куча пиздоссаных тест раннеров, в одном удобные матчеры, в другом можно группировать в тест суйты, в третьем можно ранить джобы до/после тестов. В jest просто собрали это.
А, и да,
> 2к23
> пробудился и узнал про jest
Там уже cypress хоронить начинают, если что.
Пошёл нахуй, террорист, не я вылез из подвала после спячки;
Вентилируй свой гнев и недовольство куда-нибудь ещё;
Вылез из своего ебаного манямирка, а виноваты окружающие;
Остальное сам найдёшь;
Что тут происходит? Мы создаем неизменяемый объект и передаем его в хук useForm?
Первый раз такой синтаксис вижу.
Результат выполнения useForm будет записан в переменные, которые мы указываем в объекте?
Это мока, безграмотный
useForm возвращает объект
const obekt = useForm()
Но вместо того, чтобы использовать функции и поля и obekt вот так:
obekt.register(...)
obekt.handleSubmit(...)
Через деструктуризацию достают в отдельные константы только то, что нужно.
Если я знаю, что в этом объекте с десяток функций - то я от тебя ожидаю какой угодной хуйни и финтов ушами.
Если ты сразу достаёшь register, handleSubmit - то я от тебя ожидаю, что ты будешь регистрировать формы и субмитить. Да и register(...) читать и писать проще, чем obekt.register(...)
Т.е. грубо говоря, мы "берем" от хука, то, что нам нужно?
Хотим ошибки обрабатывать - берем от хука errors и записываем ее в именованную переменную errors?
Да, useForm вернёт объект, у него куча функций на первом уровне вложенности.
formState - объект. На нём производят вложенную деструктуризацию.
И того, ты мог это написать ручками примерно так:
const form = useForm;
const register = form.register;
const handleSubmit = form.handleSubmit;
const errors = form.formState.errors;
Только всё скомпоновали в одно объявление
а нахуй ты плюсы учишь в свободное время? Я без доеба, просто сам будучи 5+ лет фронтом их учил, чтобы укатиться, но мне каждый раз прилетал вкусный оффер, и я оставался на формочках
Потому что я уже прыгал с пыхи на пиздон и с пиздона во фронт. Я заебусь снова учить базу, поэтому готов терпеть по 500 откликов на место
ты бы еще фанг написал
В чем прикол?
В первом случае я пишу 6 css стилей, вы пишите 6 tailwind классов
НАХУЯ?
Даже на экран не вмещается
Гонка была лет 5 назад, или больше. А с тех пор scss модули + реакт/ангуляр/вью это база.
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.
Че получается фреймворк поверх фреймворка.
> scss
Да хоть чистый css, это куда лучше чем tailwind
Еще ни один человек не смог объяснить нахуя он нужен в проекте.
СУКА Я ЕБАЛ В РОТ ЗУМЕРА КОТОРЫЙ ЗАТАЩИЛ ЕГО В ПРОЕКТ И ПОТОМ СУКА УВОЛИЛСЯ
Ну чтобы респонсив делать, ты дурак штоле?
фреймворк поверх библиотеки же.
гибель фронта неминуема, умные люди по тихому изучаю бек и серверное дело! Я начал с ASM
Конечно всё, всего-то более половины рынка.
Или ты опять тот пидорас, который не может не накидывать?
Не знаю о ком ты. Так что в итоге-то, почему при установке реакте девы советуют сходу лупить некстжс.
Просто я полгода назад реакт ковырял, а теперь надо некстжс ковырять, получается.
Потому что реакт поставляется без опинионатед роутинга и ещё кучи всякой хуйни с QoL типо SSR/SSG, но позволяет тебе сделать самому.
> nextjs
Для этого надо таки реакт ещё посмотреть, чтобы совсем не быть баттхёртом.
По минималке на старте от nextjs много тебе и не надо знать, но таки хотя бы вводную в доку посмотреть, чтобы не быть баттхёртом х2.
Его, таки, пилят челы и с команды реакта и с верцеля.
Давай скажем так, де факто, сейчас nextjs стандарт для воннаби реакт девелоперов.
> но nextjs не реакт
Именно поэтому первым что они делают в доке - жирненько со ссылочками намекают подучить реакт.
>почему при установке реакте девы советуют сходу лупить некстжс
Потому что CRA давно все, его никто не поддерживает. Из готовых сборок только Vite, на который еще косо поглядывают и фреймворки (самый популярный это Next).
>а теперь надо некстжс ковырять, получается
Там нечего ковырять. Это инструмент для макак (как и любой другой фреймворк), в котором за тебя уже многое придумали и сделали, надо просто взять из доки и сунуть в проект.
да в общем-то тайлвинд не нужен. Но
1) если делаешь сам без готового дизайна, то делать на css тупо долго.
2) все верстки которые я видел на css/scss имели названия классов от фонаря и селекторы были жуткоспециализированны ка каждую кнопку отдельно.
Не использвать тайлвинд - не знаит что будет забись.
В даже если проект придет от нормального верстальшика то через полгода всеравно все превратят в кашу из несемантичных селекторов. Везде будет понапихано .red-button .green-buy-button .product-vertical-list-blue-item
написать "flex flex-col p-2 text-black rounded-md" быстрее чем
.zalupa {
display: flex;
flex-direction: column;
padding: 8px;
color: black;
border-radius: 6px;
}
И читается лучше
Ты это запруфал в своём сообщении. Я посмотрел на эти 2 варианта и так заключил.
Заключил из твоего ответа что ты маня отрицающая реальность
Вот p-2 это единственная ложка меда в бочке говна.
Скинь UI-kit на tailwinde хотябы уровня https://mantine.dev
>>877383
Читается лучше? ты троллишь?
радует одно, всего 60 компаний на РФ используют tailwind и как правило это компании уровня https://hh.ru/vacancy/88117564
>React
Че-то аж хрюкнул. Кто-то еще с серьезным ебалом использует это.
Не удивительно, что вакансия - жирнота.
а что использовать в 2023?
А альтернативы?
vue, который по своей сути и не пригоден для взрослого веба серьезных дядь, разработчики низкого сорта, "BSODы" на пустом месте, лаги глюки, вообщем китайская поделка. (очень удивлен что они не написали свою поделку поверх jqeury)
https://github.com/advisories/GHSA-m95q-7qp3-xv42
ёбаная макака ну чини уже свою каптчу блядь
>Читается лучше? ты троллишь?
Совсем другое дело скакать из одного файла в другой, скакать вверх-вниз по CSS, чтобы все медиа запросы посмотреть. На твоих скринах всё, что помещается в одну строчку, в css занимает 20.
>Скинь UI-kit на tailwinde хотябы уровня https://mantine.dev
Бля, проиграл
>фууу, "flex flex-col p-2 text-black rounded-md" не читаемо(((
>другое дело мантин, где всё тоже самое, но в виде пропов
>писать медиазапрос в виде tailwind классов в элементе
>фууу нечитаемо
>писать медиазапрос в css рядом с классом
>омномном
Да.
Вообще-то каждый должен учиться верстать используя девтулз. Глядишь какую-то менюшку, не знаешь как такое верстать, изучаешь с помощью девтулза. Другого способа стать лучше и не существует.
Ооо, спасибо. А я не знал что есть такая штука как девтулз. Блин ну ты крут, пойду хуячить файлы по 100-200 строк вместо лаконичных атомов
не забывая конечно приправить названиями классов типа .container, .wrapper, .innerWrapper, .outerWrapper. Ну или бемчик наверну
Поэтому можно не тратить время на сорта говна, реак и редукс это база, остальное дрочь без всякого смысла, ну ангуляр еще можно,но на любителя все таки ООП не нужон для формошлепства, лучше потратить время на оптимизацию sql запросов и литкод.
> редух
> уже даже 18-ый реакт тащите на новые проекты и тыкаете саспензы
> тащите редукс который всё ещё не может догнать 18-ый реакт
Когда этот сблёв уже похоронят?
мимо не саспеншиз
Ну видимо не знал раз не можешь посмотреть где ксс написан.
vue не нужен
react-query не нужен
tailwind не нужен
axios не нужен
все так, но нет альтернатив, по этому пока пользуемся
Я хочу SPA мне стейт менеджер самому велосипедить или мне в базу ходить на каждый пук?
mobx/zustand/reatom/xtate
>или мне в базу ходить на каждый пук
Не понял вопроса, ты заходишь на страницу и получаешь данные.
перезагрузил - снова получаешь.
вернулся на страницу - снова получаешь
Кешировать должен бекенд и отдавать вам данные как ебучий текст
А чё не так ксс модулями? Мне нравится, а бэм говнина.
Нахуя нужен CSS-in-JS, если есть модули? Перформанс выше, читабельность лучше. Вон тот же мантин в новой версии переписали на модули, а раньше он был на emotion, который наконец-то отправили на помойку.
Правильно, нехуй кэшировать стили. Надо заставлять клиент каждый раз при рендере компонент рендерить новые.
Проигрывай дальше, но покажи мне хотя бы один ui-kit на твоем tailwind где будет богатый набор готовых компонентов.
Я лишь краешком глаза, но в одной из последних версий некста они улучшили оптимизацию при работе с mui и ещё рядом либ.
>Вместо react-query предлагаешь свой костыль писать?
Я предлагаю его не использовать и использовать бекенд по назначению. Задача кеширования - это задача бекенда.
зачем ты берешь эту задачу на себя? Ради чего? что ты выиграешь если твои данные будут будут готовы за 0.2s вместо 0.3s ?
только не нужно вымышленные примеры где за 1 раз на фронт прилетает 100 000 строчек новостей)
Дело вкуса, мне пох, могу использовать могу не использовать в любом случае к серверу я буду обращаться через итоговую абстракцию api.get api.post
Dx на эмошенах лучше. Можно пробрасывать в стилевые компоненты данные, легко и очевидно управлять стилями с помощью жс. На чистом css/sass почти всегда выходит костылинг.
>Dx на эмошенах лучше.
Багнутая хуйня, как же я проиграл когда он не смог в
.za:not(.lupa) {Pisa} {
}
Точно так же прокидываются данные через дата атрибуты
Почему?
>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 - под каждым номером значение, тут блять название аргумента, которое хуй пойми что выбирает, ключ или проперти
В квадратных скобках же должно быть название ключа, какого хуя. Тогда уж круглые нужны, раз val это просто заглушка нахуй, чтобы перебирать все значения.
Чем тебе помочь? Я не умею лечить умственную отсталость. Если ты такую простую концепцию как "параметр функции" не смог осилить, как тебе помочь?
Советую перекатиться на ТС, он тебе скажет "иди нахуй со своим val".
Да уже разобрался. Ну ты и важная чмоня, лол, поди главный формошлеп в ИП Говнов.
val это параметр функции, ты при вызове это функции можешь передать туда строку "alpha" например
Судя по твоим тупым вопросам, тебе даже до младшего формошлёпа бесконечно далеко
у тебя resetTextButton - метод, а должен быть компьютед
buttonText() {
return this.login ? 'Enter' : 'Registration'
}
и пиши нормальные названия функций, переменных
LogIn() -> changeFormView()
logIn -> isLogIn хотя бы
судя по всему ты вьюшку только начинаешь учить, сразу тебе дам совет: начинай сразу с 3 версии, composition API и современной инфраструктурой типо Pinia, Nuxt и наборы готовых composable'ов из VueUse.
Поддержка второй версии заканчивается в этом декабре.
Мануалов на трёшку уже достаточно
там уже все вкатились
>{{ курсыНейм }} говно
Претензии были реальными. Похуй, что он заинтересован разъебывать, зато разъебал по фактам.
>ИИ убьет всех (но это не точно)
Вообще он говорил ровно обратное - "я в теме, когда это еще не было мейнстримом, ИИ нихрена никого не убьет".
Плюс ты упустил главное
- Антон Назаров мудак. Рынок итак лихорадит, а из-за него устроиться на работу будет сложнее.
Че там еще было не помню. Смотрел давно, пересматривать лень.
Вы видите копию треда, сохраненную 27 ноября 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.