Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
>>2241600 >Вопрос не в нагрузке Как раз таки именно в ней, мой юный фуллстак. Но с таким подходом - твой путь экспресс, там велосипеды отсутствуют в принципе.
>>2241658 Чел возможность ветвится и в пыхе есть. У тебя в ноде нет инструментов взаимодействия твоих воркеров и шаринга данных как в любом взрослом языке с многопоточкой.
>>2241663 В пыхе это костыль, в ноде это полноценный функционал. В твоих полноценных многопоточках ты на синхронизацию потратишь кучу времени, а потом окажется, что хуево синхронизировал и у тебя куча ошибок в коде.
>>2241706 в чём вообще смысл объединять результат вычислений вместе с операциями калькулятора? какой-то говнокод уровня вкатыша, который вчера узнал про классы
>>2241710 В чем сакральный смысл писать функции, возвращающие функции, если можно просто сразу написать эти функции шиз? И я тебе открою секрет, но new Calculator() и buildCalculator() это одно и то же ООП, т.е одинаковые способы создавать одинаковые объекты. Спрятав слово класс под синоним ты не избавляешься магическим образом от ООП.
>>2241736 Вопрос в том, зачем нужно создавать класс\конструктор, когда он используется только один раз — ради создания только одного объекта, если этот объект можно сразу создать без класса\конструктора?
>>2241710 А ты сразу знаешь, что он будет использоваться только один раз, твёрдо и четко? Почему тогда не спросил «в чем смысл писать этот код, если его можно заменить console.log(7); Скажи, манямирок даун
>>2241851 И ведь фп-шиз реально верит, что нечитаемое замудренное дерьмо с его пика хоть по какому-то критерию лучше обычной прямолинейной имплементации. Ебало представили?
>>2241851 Ну очевидно что там нету и намека на ФП, ведь суть шутки была как раз в том, что жс-макаки почему-то считают, что если заменить класс на функцию-конструктор, то ООП внезапно пропадет.
>>2241875 >просто нужно наесться говна, тогда привыкнешь и сможешь его читать, бля буду! Классика фп-шиза. И да, реальная классическая ФП-имплементация этого же функционала будет как на пике, а у тебя - абсолютно заоверинжениренное, нечитаемое и неюзабельное говно, примерно как сделать ту же реализацию на классах через 10 проксифакторибинов вместо одного обычного класса.
>>2241879 Проиграл. Типичный высер от долбоеба который о фп только слышал и читал страшные посты о нем на дваче.
ФП код всегда легко читается. Твой высер это просто набор шизобреда: Отнять добавить ноль пять один. Не говоря уже о ебанутых сигнатурах с их магическим result. ООП долбоеб пытался, но даже здесь наплодил кучу зависимостей неочевидностей .
>>2241894 >ФП код всегда легко читается. Твой высер это просто набор шизобреда: Дебилоид, ты же в глаза не видел ни одного ФП языка, если у тебя обычный порядок вызова иммутабельных функций вызывает проблемы с прочтением. Лисп-то видел хоть краем глазика, фпшник мамкин? Наверное вообще бы голова лопнула от него.
И только в мире одебилевшего ФП-каргокультиста с конпелятором вместо мозга вот это может считаться >>2241851 очевидной имплементацией, а вот это >>2241879 - неочевидной.
Это хорошо что вы написали простой калькулятор в ваших парадигмах. Чтобы посмотреть как они скейлятся добавьте плес memory ячейку и division by zero еггог
>>2241974 Чтобы смотреть как что-то "скейлится", нужно иметь полный контекст системы, в которой это что-то реально используется. "Скейлинг" в твоей шизоидной голове по твоим шизоидным выдуманным на коленке правилам никому не интересен.
>>2242059 Бекендеры легче vuejs переваривают. Пыхеры сейчас поголовно вуй знают. typesctript webpack для vue настраивай по гайду майков. https://github.com/microsoft/typescript-vue-starter Можешь поробывать composition api для vue, будет похоже на реакт. Основная фича composition api - распределение кода не по опциям вуе компонента, а по его ответственности за функциональность и улучшение переиспользования
>>2242059 Делай фронт стандартными средствами .NET(что там у вас, вьюхи, темплейты?) с чутком обычного жопоскрипта сверху и не еби никому мозги. С чего ты вообще взял, что можешь просто прийти в незнакомую тебе сферу и за неделю там написать продакшен-левел продукт? Ты же не думаешь, что можешь за неделю освоить свифт и написать приложение в апп стор? Или что можешь за неделю освоить ассемблер и написать драйвер к железяке? Это все одинаково незнакомые тебе большие сферы разработки, и нормально в них освоится займет месяцы с учетом всего предыдущего опыта, но почему-то именно с фронтом и жсом ты по непонятной причине набил себе говна в голову и решил, что там легко тяп-ляп и любая макака справится. Не справишься.
>>2242059 > Angular - сразу нахуй. Почему, лол? В ангуляре ты будто на шарпе кодишь, только для фронта. Оч удобно. Плюс у ангуляра куча плюшек сразу из коробки, не нужно кучу хуйни искать и ебаться с ней. Просто создал проект и делаешь себе фронт. Еще и какой-никакой DI и вообще половина вещей перекочевала из нормального программирования, а не это вот говно детское, что в том же Vue с Provide/Inject. Опять же структура в ангуляре единообразная, а не как в большинстве других решений, где каждый дрочит как хочет, в итоге даже зная какой-нибудь Vue, React - ты тратишь дохулиард времени, чтобы понять как проект устроен, и это в случае если хоть какая-то архитектура есть, а често ее у жс'еров и нет нихуя. Я понимаю еще, если бы у тебя там проблемы с размером конечной сборки были, но это решаемо. Ну или у тебя совсем милипиздрический проект, в котором будет 3,5 активных компонента и дергается 2 апи, тогда да, ангуляр будет оверкиллом тут.
А так, ну Vue - в принципе не настолько говно как реакт. Простой, понятный, другое дело что все еще говно, по сравнению с ангуляром.
>>2242086 Если бы у него стояла цель "изучить JS фронтенд-фреймворк", а не "слепить фронт по-быстрому чтоб был", то рассказ бы не начинался с того, как он перепробовал кучу говна, лишь бы не трогать жс, который его в детстве укусил.
>>2242079 А что на счёт Реакт/Редукса? Мне понравилась модель Elm с иммутабельным апдейтом через сообщения. Я ещё угораю по F# и ФП.
>>2242080 Мне как раз хуяк хуяк не интересно, так бы я мог давно уже Razor нахуярить.
> что можешь за неделю освоить Где я такое написал? Это твои чистые проекции. Более того, я из бэка во фронт не собираюсь перекатываться, я делаю это чисто для себя, для своего пет-проекта.
>>2242095 Нет, нет цели изучить JS для вката и нет цели нахуярить фронт по быстрому. Есть цель делать фронт вечерами чтобы нравилось, вот и всё.
>>2242093 Ну у меня как раз не энтерпрайз-грейд конюшня, где нужны будут все эти фичи и решения. Даже на бэкэ не юзаю жирные, но проверенные решения, которые могу применять на работе.
>>2242101 >А что на счёт Реакт/Редукса? Это дело вкуса. В реакте толще экосистема. Но и каждый реактер использует что ему по душе, получается зоопарк. В вуе с этим попроще, но бывает трудно найти красивое решение для проблемы и лепишь костыли. В ангуляре все есть свое, если у тебя что-то не получается ты плохо читал документацию. Эти разделения на сервисы, компоненты в ангуляре предназначены для построения архитектуры. Но сам ангуляр архитектуру не задает, поэтому в проектах без нее выглядит избыточным.
>>2242104 Потому что сложный, высокий порог входа, сильно непохож на жс или реакт. А еще джуны ангуляр на хуй никому не нужны. Его в продуктовых компаниях с серьезным проектом используют, туда макакой не войти.
>>2242104 Ну, потому что объективно, ангуляр сложноват для того чтобы закинуть вчерашнего jQuery-лендос мастера на проект, а во времена когда делился рынок - именно такие и были во фронте и они задали вектор развития. Vue еще не существовал, а бекендеров, у которых мозг не убит jQuery - еще не заставляли морфировать в фуллстаков так активно. В итоге - те выбрали, как им казалось, самое оптимальное решение, которое оказалось говном, но что поделать, кучу говна уже насрали, теперь нужно разгребать, еще и из-за того что срали не щадя жопы - там и инструментария сейчас сильно больше чем в остальных решениях, что приводит к тому, что люди, решающие начать новый проект, видят, что, якобы, на реакте уже все что можно порешали, а значит можно брать кучу готового, что опять же выливается в еще больше кучи говна. Как-то так.
Вот жаваскрипт понятно как учить, а верстать как научиться? Или там без задней мысли тоже можно с интернета копировать? Только чет смотрю многие шаблоны платные какие-то или как
>>2242271 import as karasique from "" - вайлдкард - экспортирует всё из файла в объект с указанным именем. Т.е. если у тебя в файле 2 экспорта. То они будут вызываться как karasique.sayhi, например
>>2242223 Если ты делаешь алерт, то на кой хуй создаешь дом элемент? Если создал, то делай типа body.appendChild. Если хочешь к одному элементу обратиться, используй айди и получай element, а не elements или класс уникальный и по селектору ищи, как белый человек.
>>2242124 Этого удвоил. Экосистема реакта это какой-то пиздец, в частности стейт манагеры. Короче для асинхронщины юзает thunk. Выучил thunk, оказывается все хуйня, анзле юзают сагу. Выучил сагу - очень хорошо, но всем похуй, теперь все ющают rtk query. А тут недавно еще и фейспук высрал новый стейт менеджер, и через год-два все знания по редуксу будут нахер не нужны никому.
>>2242489 Напиздел, что есть опыт работы, в итоге проебывал таски по времени, делал задачу не так, как хотел заказчик, пм часто возвращал задачи. Не успел изучить ангуляр, когда направили на проект с этим фреймворком, проебывал таски, говнокодил, не успивал в недельный спринт, на другом проекте не смог в бекенд, говнокодил. Работал 3-4 месяца, зп 52к.
И вот не понятно, искать любую дногалеру или изучить рякт, т.к. вакансий намного больше, хотя +- знаю вью, но в прошлый раз не нашел вакансию на него.
Так пацаны, нужно по ховеру менять толщину шрифта так, чтобы общая ширина кнопки оставалась неизменной. Используется SC в проекте. Пока единственный вариант, который нашел, это создавать псевдоэлемент, туда добавлять текст максимально жирной длинны из используемых, и тогда кнопка всегда будет шириной с этот псевдоэлемент. Вопрос в том, как туда текст передать? Пока нашел только вариант - через пропсы прокидывать чилдрен, и в стайледах использовать этот пропс для контента, предварительно проверив является ли этот пропс текстом, но это же КРЫНЖ, нет? Есть способ получше?
>>2242494 52к это же джун. Либо у тебя галера охеревшая и требует не по зп, либо ты вообще нулевым был. знаю интерна который 40к получал, не выполняя задачи, а тупо учился на работе
>>2242572 Ну этот ментор кинул мне вот эти ссылки и по ним нужно сделать конспект. И он кстати является тимлидом, с которым мне в будущем придется работать, поэтому пытаюсь понять что вообще делать. Походу ему нужно, чтобы все было сделано именно по стандартам
>>2242563 Который юзаем? Не всегда есть время и смысл разбираться. Если есть задача на кастомный скролбар, то мне легче взять из либы и вкрутить его, чем разбираться и свою реализацию пилить.
>>2242528 Да вот в том и дело, что это и есть то решение, которое я нашел, просто тут текст через дата атрибуты передается а не через пропсы в стайледы, и если у меня кнопка принимает не текст, то хз что там может выйти
>>2242530 >52к это же джун Ну да, первая галера, я бы и собаку за бесплатно. >либо ты вообще нулевым был Хз, возможно. Задачки то я решал, почти ничего не спрашивая, да и спрашивать особо не у кого было, просто косячил по времени и не то что хотели делал, часто возвращали на доработки и переделывание. >знаю интерна который 40к получал, не выполняя задачи, а тупо учился на работе Кто-то попивая смузи читает доки за 40к, а кто-то днями и ночами хвосты закрывает за 50к, печаль.
Во время самой работы заметил, что время на свои пет-проекты и просто обучение чему-то новому, кроме того, что усвоил на работе, просто не хватает, тупо как овощ после работы идешь и включаешь музыку, и лежишь смотря в потолок, даже игори были не интересны. Как с этим справляться? После окончания спринта вообще кодить не хочится, буквально тошнит.
Аноны, как бороться с тем, что ничего не понимаешь? Дают обучающую задачу, направляют в гугл - ебись как хочешь. >Перебираешь все что можно, начиная доками и заканчивая владиленом мининым, все равно остается много вопросов по теме >повторяешь >идешь к ментору с ответами >он указывает на пробелы в знаниях и отправляет в гугл > цикл запустился по новой
Аодавляющее большинство самостоятельно нахожит ответы на все свои вопросы. Более того, пожавляющее большинство никогда не задают вопросов кому-то и разбираются во всем самостоятельно.
>>2242612 Вопросы разные бывают. На подавляющее большинство сам находил ответы и вообще никого не дергал. Но бывало такое, что прям анал какой-то и неделю сидишь без видимого результата. Но даже в этом случае в итоге сам справился и родил Дай пример вопросов и мы скажем - зашквар на таком тупить и дергать серьезных дяденек, или норм.
Как сделать чтобы Js переводил с десятичного в двоичное и при этом добавлял цифры до 4 цифр в числе? Только вручную писать? т.е. чтобы для 0 было 0000 для 1 было 0001 итак далее
>>2242771 У ьебя причмнно слелственные связи в постановка вопросов напушены. Как у ткбя возникла идкя что поисковик может прочитать чужую переписку? Какой ход твокй мысли был при этом? Ты что, сам попробовал открыть чью-то переписку и она открылась? Нет, не проьовал. Твоя идея не подкреплена никаким рациональным рассужлением. А раз это так - то ты тупой.
Гипотезы выстраиваются не на ровном месте. А на логческих рассуждениях.
Ребята, вопрос по поводу Тайпскрипта, хочется сделать красиво. Я написал компонент, который стучится в апишку и берет данные пользователей и отрисовывает как список. Самих полей в прилетевшем с апишки объекте около 30, но мне в компоненте нужно только два. В результате я написал интерфейс с типизацией всех полей, но 28 из них я отметил как не обязательные, если мне нужно добавить свой объект в список, мне IDE не будет пиздеть, что мало полей скормил. Все работает и стрикт не жалуется, но выглядит как-то через жепу. А если бы там было 500 полей... Можно конечно два запроса сделать и в каждом получать по одному полю, но я хочу один запрос сделать и чтоб типизировать и реализовывать в компоненте только те поля, которые хочу. Как в таком случае лучше поступить? Или все равно придется два запроса делать?
>>2242615 >А что вообще смамостоятельно делал во время обучения? Какие пет проекты/мелкие компоненты? Проектный менеджер(крутая тудушка с линиями, типо трелло), с беком на пхп, чистый жепаскрипт.
Шифратор.
На вуе всякие штуки, спа, тудушки, поиск с апишкой, лендинги.
Бесчисленное кол-во тестовых, сотни их(меньше, но много).
>>2241590 (OP) Привет двощ. У меня нетривиальный вопрос.
Допустим, я увеличиваю левый HTML-элемент. Он толкает у меня правый. Когда не остаётся свободного места куда толкать -> получается, что scrollWidth родительского блока больше, чем его offsetWidth, что логично.
Вопрос: можно ли через js как-то отследить момент, что перед увеличением левого HTML-элемента не останется свободного места и scrollWidth будет больше offsetWidth ? Т.е. мне надо узнать, что места не хватит ПЕРЕД ТЕМ, как я изменю длину левого элемента, а не после того, как уже изменил длину. Спасибо
>>2242827 По ходу надо до устройства на работу как-то придрачиваться к такому ритму настолько, насколько это возможно. Других вариантов нет. Я с перерывами практически целый день сижу что-то пишу или иногда читаю. Но делаю это на расслабоне, если делаю что-то знакомое, то могу фоном включить что-то послушать. Как стахановец я не ебошил. Когда вкачусь а я апизательна фкачюсь! то скорее всего сильно охуею с этого темпа.
>>2242619 Починить поиск, бэк. Обычная верстка(сказал день, а по итогу два). Жиквери скрипты, часто там проебывался по времени. Логика отображдения всякой всячины, от слайдера до выподающих списков, типо в т3 было не так как надо было. Компоненты на ангуляре, возникали трудности с тп и всякими штуками в самом фреймворке, проебывался по времени, несколько задач вовсе не понял как делать.
>>2242825 Поля объекта приходящего из апи всегда должны иметь тип T | undefined. Неиспользуемые поля не обозначаешь в интерфейсе. После получения тайп гардом валидирует поля и делаешь из T | undefined просто T
>>2242843 >Я с перерывами практически целый день сижу что-то пишу или иногда читаю Обучение и просто писание кода руками на своих пет-проектов отличается от выполнения тасков. Чаще всего, по началу код на проекте абсолютно не понятен(особенно если чистый жс или боже упаси жиквери). Потратить 3 часа на чтение кода, вникая в его суть, это норма, как мне говорил тимлид, а ведь еще надо понять как исправить ошибку. Бывает, что читаешь код час, а потом понимаешь, что тут ошибки нету и надо читать в другом месте. По итогу ты либо проебываешь таск по времени т.к. потратил время впустую на участке кода, который ты не понимал, а потом искал в другом месте. Бывает, что ты говоришь, что сделаешь за n часов, а делаешь за n2, а пм тебя уже ебет за просрочку, т.к. ее ебет заказчик, мол хули тут n, а уже n2 и таск не решен. Бывает, что заказчик переобувается на ходу, а ты уже сделал фичу, а надо делать совсем не то(но тут время могут и добавить). Учиться и работать возможно, но надо вникнуть в проект и его код, чтобы было время решить таски, попроебываться, поучиться, а не как я, просрачивая таски и решая до часу ночи, потом уже чисто физически невозможно чему-то учиться.
>>2242859 >Потратить 3 часа на чтение кода, вникая в его суть, это норма Нихуя себе норма, я на последнем проекте пару недель вникал в жикверипонадусерового тысячефреймворкового гигагусекарася, при том что задачи сами по себе были довольно простыми
>>2242859 Все ясно, это галера в худшем смысле слова. как это блять вообще? Таски от тебя прям в деплой к заказчику идут? Хуле он то рыпается? Алсо, время всегда надо брать х2 и предупреждать если не успеваешь
>>2242878 Ты понимаешь, что браузер сам решает влезет элемент или нет? Он и рассчитывает их размеры. Элементы HTML адаптивные, но их контент не резиновый (текст и др.). Я не могу узнать на следующем ресайзе влезет элемент или нет, потому что браузер работает с адаптивными элементами.
Как вообще писать тесты для фронта (пишу на чистом жс)? Что, вот, например на условное нажатие кнопки выполняется функция и выводится формочка - как это тестами реализовать? Какие инструменты использовать? Какими инструкциями пользоваться. Где запускаете тесты: ведь то, что пишется для браузера сложно запустить на условной ноде (так я себе это представляю).
>>2243262 Тогда приучайся к postgresql. На больших проектах что реляционки, что nosql превращаются в говно. Но первое говно хотя бы читабельное, в отличие от портянок джейсон-запросов.
>>2243278 >приучайся к postgresql Насколько хорошо нужно им владеть? На уровне базовых "SELECT hui FROM govno WHERE pizda" и прочих INSERT INTO? Или со всякими "CREATE FUNCTION" и "OWNER TO" заморачиваться?
Где почитать про тесты? В шапке есть ресурсы, но там про то как их делать в техническом смысле. Но я не понимаю в какой момент мне вообще нужно что-то проверять и что именно проверять. Видел про ТДД, что сначала пишут тесты для любой хуйни с описанием что вообще эта хуйня должна делать, а потом пишут код, это так нужно делать?
>>2243492 Ну, это потому, что у тебя контекст может быть null. Поэтому он не может его деструктурировать. Убери юнион с null в createContext, просто напиши createContext<contextType>({} as contextType) + убери вопросик у типа increment.
В общем, пилю возможность выбора стиля сайта. В проекте юзается материал-юи, стили всех компонентов подгружаются через ThemeProvider, в который передается объект с описанием стилей.
Говнокод на пикрелейтеде должен сначала загружать список всех стилей themes из жсона с ссылками на них при рендере аппа, потом в зависимости от выбранного имени стиля themeName искать в themes ссылку на выбранный стиль и по этой ссыке загружать сам стиль thems, который уже передается в ThemeProvider. require потом будут заменены на апи запросы.
И вроде бы эта хуита на пике полностью рабочая, но сам код выглядит как говно в плане поддерживаемости. Надо: 1) Разделить логику загрузки жсона с ссылками на все стили и логику загрузки конкретного стиля по имени из этого жсона. 2) Избавиться от провеки if (themes.length > 0). useMemo срабатывает при первой инициализации стейта thems и в итоге setStyleByName пытается искать ссылку на выбранный стиль в пустом массиве, если этот массив не проверять.
>>2243061 >>2242875 Рякт, да, но я до этого полгода пытался куда-то попасть, ходил на разные собесы, везде слали нахуй, и примерно в то же время, когда мне предложили этот офер параллельно прилетело еще 3-4, так что позадрачивать пришлось перед этим
>>2243517 Плохой код, useMemo абсолютно не по назначению юзаешь. Внутри функции setThemeByName какой-то бред написан с фильтром и попом, у тебя сейчас всё сломается, если передать в эту функцию пустой массив. Используй .find и просто ничего не делай, если он не находит тему (возвращает undefined).
Плюс путаница с тем, какие значения у тебя функция берёт из замыкания, а какие - из аргументов. Либо делай чистую фукнцию, значение которой зависит только от аргументов, либо по возможности все значения из замыкания бери.
По логике просто сделай useEffect с выставлением нужной темы при изменении themes или themeName же.
Реквестирую библиотеку для графиков. Интересует в частности чтоб можно было строить Scatter график, с разбросом точек, то бишь и чтоб можно было его всячески настраивать оси, области, зум скроллом, чтоб при наведении на точки появлялась нужная инфа и так далее.
Нашёл пока что chart.js и ещё какой-то сайт, который прекратит существование в следующем году, лол. Но там вроде нельзя сделать интерактивными эти точки, чтоб перетаскивать их например. Так что если вдруг кто знает что-то получше, то посоветуйте
>>2243860 Какая разница? Ты можешь написать на 100% ООП программу, ни разу не используя наследование, и во всех ОО-языках наследование в 99% случаев является известным антипаттерном, которого стоит избегать.
>>2243900 >Ты можешь написать на 100% ООП программу, ни разу не используя наследование Это получится либо говнокод с композициями, нарушающими приватность данных, либо программа сама по себе не очень сложная.
>>2243919 >Это получится либо говнокод с композициями, нарушающими приватность данных Это где ты такое взял, что композиция нарушает приватность данных? Ты вообще знаешь, что такое композиция или просто с потолка пизданул?
>>2243937 Есть только один способ нарушить приватность внутри класса - это сделать публичным то, что не должно быть публичным. И непонятно, каким образом по-твоему композиция от этого не защищена, а наследование внезапно защищено.
>>2243860 Это врапперы над этими типами имеют методы, а сами примитивные типы - нет. То что у тебя под ковором 'text'.length заменяется на (new String('text')).length, не делает литерал 'text' объектом.
>>2244020 >То что у тебя под ковором 'text'.length заменяется на (new String('text')).length, не делает литерал 'text' объектом. Это еще почему не делает? У тебя есть объект, и набор публичных методов для этого объекта, что там на что заменяется под капотом на уровне языка тебя вообще ебать не должно. По такой логике и замена вызова метода hui.pizda() на вызов функции pizda в прототипе тоже не делает объект объектом, хули.
>>2244034 Сам понял, что высрал? >>2244038 Еще как должно, думаешь почему мы в коде текст чаще всего объявляем как литерал, а не как new String('текст'), потому что во втором случае у тебя будут объекты, который жрут память как не в себя, в отличие от литерала. Прототип как раз делает объект объектом, потому что prototype это property, а у примтивов нет properties.
>>2244024 Все равно не очень понятно. Очевидно дернуть нужный эндпоинт на бэке? Типо get api/startPreparingshitposts Или на вебсокетах. Но это все равно не фронту решать, а бэку. Как сделают, так и будешь тригерить.
Как поставить новую строчку с текстом за предыдущим текстом,но чтобы он не стал потомком предыдущего блока, let p=document.querySelector('p'); function text () { let p2=document.createElement('p'); p2.textContent="New text."; какой тут родитель?.appendChild(p2); }
>>2244127 >Тайпскрипт легче обосновать руководству, чем тесты Потому что вокруг тупоскрипта раздули хайп. При этом все профиты от него только для автокомплита в IDE, а на снижение количества багов и степень говняности кода влияние минимально.
>>2244139 Говняность архитектуры может быть. Ведь тайпскрипт не имеет отношения к архитектуре. Легче искать баги. Намного легче рефакторить чужой и свой код. Легче разобраться в чужом коже. Лучше навигация по коду в IDE. Я на фронте и на беке сам писал нетипизированную лапшу и с чужой работал, и лапшу на тайпскрипте поддерживал. С тайпскриптом в 100 раз легче.
>>2244051 >потому что во втором случае у тебя будут объекты, который жрут память как не в себя, в отличие от литерала С каких пор определением объета стало "жрет много памяти" а определение литерала "жрет мало памяти", поехавший? Объект - это набор полиморфных функций(методов). 'test'.length - это вызов метода на объекте, остальное - твои шизофантазии.
>>2244117 let p=document.querySelector('p'); function text () { let p2=document.createElement('p'); p2.textContent="New text."; >какой тут родитель?.appendChild(p2); >>2244150 appendChild ставит в КОНЕЦ, а тебе надо после определенного элемента. Самый простой вариант: p.replaceWith(p, p2)
>>2244183 >Как правильно написать опцию once? Разработка это не твое, если ты не смог загуглить буквально миллион примеров с once на гитхабе и пошел за советами на куколдач.
>>2244237 как же бесит, когда пишут подобные микрофункции, которые внутри просто вызывают какую-то другую функцию, каждый раз приходится лезть и смотреть, что там внутри наговнокожено
>>2244259 Ну так поищи >Что такое TypeORM и нахуя она нужна? Подцепить рантайм для вебпака также известный как node.js в реляционной бд. И не забыть все это затипизировать, само собой.
>>2244257 ORM - Object Relation Mapper делает из записей в табличке объекты. Может вытащить из БД структуру вложенных объектов. сохрать вложенные объекты как связь в БД
>>2244292 Шиз, то есть ты отличаешь объект от не-объекта по некоему занимаемому количеству памяти как посчитал кстати и сколько байтов считаются объектом, а сколько нет?, а таблетки пить мне?
>>2244324 Я тебе не про таблицу, довен, а про запросы. Даже в простеньком бэкенде на 5-10 таблиц ручное перечисление нужных полей становится проблемой, особенно когда появляются новые. Ты ничего сложнее хеллоуворлда не писал, как я понял?
>>2241590 (OP) Поясните, что по-дефолту подразумевается под "апи на ноде". Я загуглил: есть страпи, кейстон, какая-то еще хуйня, но это все почему-то очень сильно опинионейтед, со своими всратыми недоорм и недорасширениями на хуках.
Есть ли такое, чтобы модель была на ТайпОрм (или че там у вас есть еще), а расширения подставлялись через ДИ?
>>2244334 >а кнопка не работает >Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
>>2244322 У тебя жопоскрипт головного мозга, если ты думаешь, что объект - это обязательно хэшмапа, в которую любой мимопроходящий может напихать говна.
>>2244327 >Я тебе не про таблицу, довен, а про запросы. Так ORM только для добавления полей в таблицы и годится. Всё что сложнее - ORM высирает тонны говённых запросов. >>2244327 >Даже в простеньком бэкенде на 5-10 таблиц ручное перечисление нужных полей становится проблемой, особенно когда появляются новые. Так говоришь, словно у тебя новые поля в таблицах из ниоткуда появляются. >Ты ничего сложнее хеллоуворлда не писал, как я понял? Фуллстэк подал голос. >>2244334 Иди читать сигнатуру Event.addEventListener()
>>2244344 госпади сейчас бы спорить о том, что называть объектом, а что нет, в рамках жаваскрипта очевидно есть разница между примитивами и обёртками над ними, как ты их ни назови
>>2244358 >есть разница между примитивами и обёртками над ними Какая конкретно разница для внешнего потребителя API, т.е для программиста? Он как вызывал методы на этой строке: "string".match(//), так и вызывает, и для него она по всем параметрам объект, а не магическое непонятно что. То, что под интерпретатор делает под капотом с этим кодом - это дело интерпретатора.
>>2244372 >мой поинт был в том, что вы хуйнёй какой-то срёте в трет, ты объект - нет, сам ты объект Эта хуйня называется "программирование", знакомься. И для программирования очень важно знать принципиальное отличие одних конструкций других.
>>2244372 >да, разница в том, что возвращает typeof,
Так у тебя неувязаочка в логике (очеивдно потому что ты не знаешь подкапотное устройство оператора typeof и работу абтрактной операции Type(V)
typeof null это тоже object а typeof Object это function
кстати, какой там typeof document.all?
Где-то ты проебался.
И будешь проебываться постоянно, пока не попытаешься формализовать понятие примитива. Чем примитив отличается от объекта?
А суть в том, что ни в поведении, ни в реализации - ничем. Примитивы - для конечного пользователя - это иммутабельные объекты, класса реализующего паттерн Мультитон - то есть его инстансы обладают сссылочной прозрачностью. ТЫ можешь сам написать такой класс, а потом бегать и рассказывать всем, что его инстансы это не объекты.
Или можешь написать свои классы-синглтоны, с поведением аналогичному значениям null или undefined.
Под капотом примитивы так же, как и объекты хранятс в куче (за исключением разве оптимизаций ввиде тегированнх указателей для SmInt) - строик ранятся в пуле, числа в скопом в куче, символы в куче, бигниты в куче, даже булы время от времени в куче.
Ну так, чем примитив отличается от объекта?
Ой, а если мы еще затронем тему Exotic Objects, ты вообще ахуеешь, наверное.
>>2244330 Какой же ты предсказуемый, когда я писал пост, на который ты ответил, я уже знал, что ты ответишь заморозкой, но даже в этом ты умудрился обосраться. Знаю таких как ты, вас только жизнь научит или темная улица.
>>2244380 >Чем примитив отличается от объекта?А суть в том, что ни в поведении, ни в реализации - ничем. Кроме того что примитивы передаются по значению, а объекты по ссылке, кроме того что примитивы сравниваются по значению, а объекты по ссылке, и куча других кроме в поведении о которых ты либо умалчиваешь, либо не знаешь. Зато можешь выдать фразу: объекты и примитивы хранятся в памяти компьютера, значит это одно и то же. Это как сказать: числа и строки записываются с помощью клавиатуры, значит это один тип данных а не два. Ты же натуральный шизоид.
Тащемта строки - всего-лишь иммутабельные массивы. А массивы - всего-лишь объекты с ключами-числостроками. Объекты же в свою очередь - всего-лишь ассоциативные массивы ключ-значение, в которых ключ - строка, которая тоже иммутабельный массив.
Язык-пидор, вместо сравнения пишут ========, собственное объявление переменных обоссали не снимая штанов. Дай теперь про ссылочную модель данных попиздеть. Эх!
>>2244448 >Кроме того что примитивы передаются по значению
Ты только больше нигде не вздумай ляпнуть, что искренне считаешь что любая операция над примитивом приводит к его копированию на стек из стека, а в памяти у тебя одни и те же строки хранятся во множественных экземплерах.
>>2244460 Во-первых ты сам сказал, что память не аргумент, когда я тебе писал про то что объект по дефолту больше памяти занимает, чем примитив, и это отчасти влияет на ссылочную прозрачность, потому программы выполняются не в вакууме, а на железе, и если в некой программе заменить примитивы, которые let a = 1, на let a = new Number(1), то ссылочной прозрачности не будет, потому что программе не хватит памяти и она выдаст ошибку то есть это уже будет другая программа, замена не проходит, алёёё, потому что объекты в жсе жрут больше чем примитивы, даже чем иммутабельные объекты, к которым ты ошибочно приравниваешь примитивы. И что значит на твоем шизоидном не передаются по значению? Вот это что такое: b=42; foo(b); передача по значению или по ссылке? By value или reference, отвечай!
>>2244462 В жс нет переменных. Все перемееные - это свойства объектов класса Scope. Исполнение жс кода происходит в изолятах. У каждого изолята может один или больше глобальных контекстов исполнения. От каждого глобального констекста наследуются (буквально в prototype-like цепочке) более локальные, вплоть до блочных областей видимости. И каждая "переменная" это всего-лишь слот (свойство) в таком объекте. При лукапе, соответсвенно, проходим от текущего контекста до глобального, а глобальный контекст при этом является обычным host объектом, и моет иметь еще и свою цепочку наследования, выше до Object.prototype и null
В изоляте может быть одновременно несколько глобальных контекстов исполнения - они независисмы друг от луга, за тем исключением, что - каждый изолят в единицу времени может исполняться лишь одним потоком. Поэтому если несколько контекстов находятся в одном изоляте (как например несколько разных ифреймов удовлетворяющих CORS), то они будут подвержены синхронизации исполнения.
При этом разные изоляты могут исполнятьс япараллельно разными потоками, на чем и построены вокеры.
Так как все изоляты исполняются ведином адресном пространстве общего процесса, то память у них общая, и обмениваться они могут данными без копирования, просто передачей владения. Либо шарить ее с использованием тех же мюьтексов (атомиков в жаргоне жс).
Но ладно, очень досадно, что этот тред весьма дилетантский для подобных ликбезов.
>>2244466 >любая операция над примитивом приводит к его копированию на стек из стека не любая, но такие опериации есть, и это еще одно отличие примитива от объекта, ты сам себя и закопал, лол.
>>2244505 Спецификация, исходники v8, исходники SpiderMonkey, исходники JavaScriptCore, статьи на v8.dev, множество обзорных статей от разработчиков v8 и его иследователей (на том же хабре полно как переводов, так есть и статьи от русскоязычных контрибьютероа v8), статьи от разрабов ноды, электрона и nwjs, статьи от разрабов хрома и мозилы. Еще есть множество видео с различных конференцмй где те же разработчики популярно рассказывают всю, как подкапотную, так и абстрактную механику устройства обьектной модели жс и модели его исполнения, и вообще устройства рантаймов.
>>2244505 Еще архивы developer.netscape.com,если тебе интересно с чего на самом деле начинался жс, зачем он был нужен, что из себя представлял жс первых версий (в нем не было ни прототипов ни литералов обьектов ни литералов массивов, только функции-конструкторы, и он сразу мог исполняться на сервере и использовался доя написания бэкенда), и какие у нетскейпа вообще были планы на этот язык и что ему пророчили ( netscape one) - в целом все во что вылился веб сегодня, со всеми spa pwa и повсеместным жс - это то что нетскейп расписали в своих роадмапах еще 1996 году.
>>2244505 А зачем нужно разбираться в подноготной какой-то абстракции, разве абстракции не делаются для того, чтобы их просто юзали и не парились о деталях?
>>2244556 И чо ты мне принес одну из имплементаций движка? А в других чо? А я тебе спеку языка принесу, где черным по белому написано чем примитивы отличаются от объектов, дальше чо?
>>2244592 Ну и зачем ты >пользователю пытаешься объяснить, что там как работает внутри в штуке, которой он пользуется? Ты же просто в пустоту говоришь. Бессмысленный спор абсолютно.
>>2244580 Я прекрасно понимаю, что ради числа 1 создавать объект, это тупо даже если бы v8 делал Денис Попов. Не говоря уже о том, что транспиляция жсных типов данных в движковые сишные конструкции с натяжкой можно привести как аргумент: все типы жс это объекты.
>>2244638 Как удобно писать что два понятия на самом деле являют собой одно и то же, но при этом добавлять за исключением то-то и то-то и не видеть в этом противоречия себе же. Всё с тобой ясно.
>>2244721 Зашипел, у меня в школе по математике дважды была двойка за четверть, я единственный кодером работаю из всей своей залуподрыщенской школы нахуй
>>2244598 Был рейскондишен у двух тасок в селари при определёных условиях образовывалось окно в секунд 30 когда вторую таску нельзя запускать если запущена первая. Локи ставить нельзя было т.к. таски были периодические и задержка ломала СЛА. Надо было математически посчитать матожидание интервала воспроизведения рейса зная размер окна и периоды тасок. На основе этого надо было решать прожимать тесты или воркэраундить последствия в тестах. Фикс требовал много перелопачивать и разрабы не обещали скоро закрытия бага. Подпёрли у себя только на прод энвайроменте. Я посчитал и решил, что проще раз в пару недель редиплоить стэйдж, чем пытаться саткнуть этот баг у нас. Матеша помогла определиться. бэкенд qa мимопроходил
>>2244768 >>2244756 Дело не в оценках, а самом понимании предмета. Из школьноц программы матан ближе всего к программированию. Хорошо решаешь задачи - будешь хорошо программировать, иначе макакить только.
Хороший показатель дерьмого вкатуна - это беспокойство, нужен ли матан.
>>2244791 >Из школьноц программы матан ближе всего к программированию. Информатика. Дрочение синусов и интегралов ни на секунду не приблизит тебя к написанию крудов и перекраске кнопочек.
Как в инлайн стилях реакта можно указать класс, который ты хочешь перезаписать? У меня есть компонент из ант дизайна, там нужно поправить стиль у одного из вложенных элементов, есть пропс, принимающий инлайн стиль, т.е. стиль в виде объекта. Как можно в объектом синтаксисе указать класс, который ты хочешь перезаписать? Если я укажу {'.ant-classname': {border: '1px solid red'}} к примеру, это не работает. Если указывать antClassName, то объектный синтаксис ведь не будет приводить это значение к значению класса, а будет преобразовывать это свойство к названию css свойства типа ant-class-name. Я заебался, стилями обычными не переписать, тут используется styled components, сам компонент в стайледах тоже не переопределить, там комопнент довольно специфичный, стиль применится только к оборачиваемому элементу, а не к самому компоненту-обёртке.
>>2244886 Черти как китайцы - постоянно появляются и исчезают. В лучшем случае можно говорить о диапазоне, в которое с некоторой вероятностью входит их количество. Но это уже не число.
Созрел вопрос. Что бы такое пиздевое скрафтить, чтобы классно выглядело в портфолио и на гите? Есть идеи? Может макеты чего-нибудь прикольного? Недавно сделал дефолтную канбан доску, но со свистоперделками. Ищу что-то попизже теперь. среакт + тс, около мидол
>>2245250 я просто зеленый вкат, не знаю как что работает. Писать в vsc очень удобно, вот и думал что и проверять можно сразу в нем. Ну теперь буду знать.
Господа, я тоже зелёный. И у меня вопросы про npm: 1) В чём профит его использования? Я боюсь, что если я попытаюсь установить что-нибудь то скачается 2 гига 2) Всегда ли можно избегать его использования просто скачивая скрипт вручную?
>>2245298 Проверяй на npmjs.com, 2гб не скачается Нет, смысла качать вручную нет, тебе нужен package.json, можешь использовать yarn вместо npm, он быстрее работает
>>2245298 >1) В чём профит его использования? Я боюсь, что если я попытаюсь установить что-нибудь то скачается 2 гига Тебе ли не похуй? Надо решать проблемы по мере их поступления. >2) Всегда ли можно избегать его использования просто скачивая скрипт вручную? Нет, тот же реакт и vue ты нормально не заведешь без сборки проекта.
>>2245282 Все что ниже очищает всех потомков, включая элементы. div.textContent = "" //это вроде самый быстрый. div.innerHTML = "" [...div.childNodes].forEach(node => node.remove()) Если тебе нужно очистить только текст (только непосредственные потомки), то: [...div.childNodes].filter(node=>node.nodeType === Node.TEXT_NODE).forEach(node => node.remove()) Если тебе надо очистить рекурсивно, то NodeIterator или DocumentWalker используй.
>>2245323 >[...div.childNodes].forEach(node => node.remove()) NodeList уже имеет метод метод forEach, зачем ты его деструктуриурешь в массив? И самое главное зачем ты этому учишь других?
>>2245323 >>2245323 Еще вопрос,есть 2 кнопки,одна генерит рандомную цифру,а вторая очищает,все работает. Но есть нюанс,кнопке-генератору пофиг на 2 кнопку,она сама может менять текущее значение,а мне нужно делать через 2. Ставить reload не камильфо
>>2245354 >зачем ты его деструктуриурешь в массив Прочитай отличии nodeList'а от массива, поймешь. >И самое главное зачем ты этому учишь других? Вкатун, плиз. Не позорься. >>2245356 if(значение существует) {ниче не делать}
>>2245377 Норм, если ты обертку над fetch делаешь для дальнейшего переиспользования. Если у тебя такое говно втречается повсеместно, то лучше используй axios. >>2245379 Вот тебе подсказка: btn.disabled = true; btn2.disabled = false; Дальше сам
Работал ли кто-то с esprima и estraverse, для парсинга файлов, я паршу жс и мне нужны все функции, но только не вложенные, этот код считает вообще все, как это сделать лучше?
Я заебался, какие есть нормальные туториалы по цсс на русском htmlacademy мало того что платное говно, так еще и цены подняли htmlbook говно старое, не рассматриваются детали и подводные камни html5book нечитамая хуета написанная сельдью, читать этот понос просто невозможно, если обезьяне учебник русского дать даже он складнее писать w3chools душная хуйня на ангельском
Можно ли запустить реакт, реакт-дом и реакт-роутер без ноды, но с jsx? Все это вместе с бабелем подключить в html. Просто не хочу ставить ноду на машину, куда буду деплоить свою поделку на 3 страницы.
>>2245678 Это какая-то новая секта свидетелей бандлов по 5гб и ненавистников ноды?
Теоретически собранный билд для запуска не требует ноды. Но вот чтобы его собрать - нода нужна. А при деплое обычно как раз таки сборка и происходит например из репоса
>>2245686 Да нет, просто я новичок во фронте, да и не хотел бы особо много тратить на него время. Я в бек вкатываюсь, мне фронт нужен, чтобы учебные проекты были хоть с каким-то фронтом. Думал просто переписать маленький проект с версткой на чистом жс без всяких бандлеров, с es6 модулями на реакт, тоже без бандлеров. Просто в обычном жсе, как то очень много повторений получается просто засчет накидывания htmla. А потом хочу задеплоить задеплоить поделку на нищий впн, где каждый мегабайт диска и памяти на счету. Если реально нужен весь обвес, пока останусь на голом js. А с реактам полноценно со всеми нужными штуками буду разбираться на следующем проектике. А с бандлерами нпмами-ярнами и вебпаком малость покопался, когда немножко вью трогал и это тогда разбирательство с обвесом у меня норм время убило. А еще получил csrf-проблемы из-за дев-сервера на другом порту и пришлось ковырять еще и nginx и там я вообще проебал кучу времени и не вывез. А почему реакту обязательно нужна сборка? Нельзя ли вообще без поднятия фронтового сервера? Я просто не шарю. Можешь объяснить, почему нельзя сделать так, как я хочу подключить реакт, как три библиотеки в корневом html?
>>2245709 может у меня просто ci/cd головного мозга Да можно. Реакт в итоге собирается в один хтмл и чанки жса и цсса. Так что уже сбилженный проект можешь загрузить на обычный сервак. больше тут - https://create-react-app.dev/docs/deployment/
>>2245760 Тут все осложняется тем, что код внутри файла весь является FunctionExpression, так вот мне надо взять те функции, которые не глубже 1 уровня вложенности.
1 пик так код начинается. 2 пик пример зеленным обведенно, то что он должен считать, а красным нет.
>>2245722 Спасибо. >>2245742 А иначе мне придется в гиг диска на саму ноду + нода модули. И метров 200 памяти на рантайм веб-сервера. И еще nginx-ом ебаться. Попробую сперва с парой метров на хеловорд.
>>2245377 Экспешен так назван не просто так, а потому что он представляет собой исключительное и неожиданное поведение программы в рантайме. То, что тебе с сервера пришел ответ "пользователь не авторизован, перезайдите" или "данные введены неверно" или даже "ошибка сервера" - это не неожиданное и не исключительное поведение, это самый обычный на 100% предсказуемый флоу, который нужно обрабатывать наравне с успешными ответами. И использовать для работы с таким флоу экспешны - классический антипаттерн.
>>2245790 Значит тебе надо сделать условие, по которому блок кода { } будет считаться за корневой и проверять отсутствие FunctionExpression до него
Условие типа "ObjectExpression, который находится во втором аргументе FunctionExpression, которое находится в аргументе ReturnStatement, которое находится в теле FunctionExpression, которое стоит во втором аргументе FunctionExpression, у которого callee == sap.ui.define"
>>2245678 Что значит "запустить", запустить где? Если ты собрался просто сервить свое реакт приложение в обычных html/js/css файлах и собирать его локально, то в самом простом виде это делается через условные две команды yarn build && scp build/* my.server.com:/server/public/directory, никакой ноды на сервере не требуется.
>>2245856 Можно мне ликбез по сборке фронта? Я вроде как ковырялся с вебпаком и ярном, но что-то недопонял. То есть я локально собираю через ярн и вебпак себе весь проект в бандл? А бандл это что? Один большой .js? Я уже его подключаю к корневой html? И потом шлю хтмл + бандл-js на сервак раздаваться? Я правильно понял? Где это можно почитать поподробнее, но не слишком?
Итак, сделал что-то типа валидации формы, подскажите, примерно так и делается или я слишком дохуя Джаваскрипт кода создаю там, где можно сделать проще?
>>2241590 (OP) Привет. А где-то может есть mind-карта с Java-core. Чтобы изучать и повторять его. Мне кажется визуально намного проще будет восстанавливать в голове информацию, которую давно не использовал, а не перечитывать learn js
>>2245883 1. для отправки формы button type submit лучше и отслеживать событие submit на самой форме, у тебя сейчас всё ломается, если нажать enter внутри текстового поля 2. на элементы формы можно вешать атрибут required вместо того, чтобы вручную проверять, заполнены ли поля 3. для скрытия алерта на инпуте лучше событие change отслеживай, а не click 4. лучше textContent, а не innerHTML 5. код выглядит как говно, форма цвета поноса, ещё и жёстко заданная ширина в css, из-за которой появляется скроллинг
на счёт того, не слишком ли дохуя кода, я хз, я знаю только yup для удобной валидации полей формы, но в твоём случае он не нужен
>>2245938 да, наверно надо. не посоветуешь статью? >что такое html-файлы ну в моем представлении html это некая форма сериализации внутренних объектов браузера. >и как в них вдруг появляются жс и стили из других файлов. даже догадок нету честно говоря.
В январе 2021 года в html academy призом в Новогодней битве была профессия фронтенд-разработчик. А сейчас в январе 2022 года разыграют приз за Новогодней челендж - базовый интенсив html, css. Я пиздец как хрюкнул с такого обеднения. В 2021 году в январе расщедрились, а сейчас урезали всё к хуям собачьим. Я хихнул в телеге академии, на меня нормисы набросились мол молодой человек вам никто ничего не обязан дарить, покупайте курсы за свои кровные заработанные.
А я чё? Я даже и не рассчитывал ни на какие подарки. В январе 2021 года какой-то альфач Чед Ерохин олд строитель выиграл профессию фронтед-разработчик. Он тупо 16 часов без перерыва хуячил очки в битве и наебав всю систему угнал приз за несколько суток до финальной битвы. Сейчас я думаю также будет, какой-нибудь Чед Ерохин выиграет. Но уже не профессию, а так интенсив базовый по штмл, ка эс эс
Как понять, что нужно мемоизировать в реакте, а что нет? Вот делаю сейчас библиотеку компонентов, есть кнопка, в которой проверяются пропсы ифами 9 раз. При каждом пуке у меня кнопки ререндерятся, эти ифы на каждый рендер проверяются 9 раз, при этом всю кнопку целиком в useMemo не засунешь, потому что чилдрены все равно игнорят мемоизацию. Думал сами ифы добавить в useMemo, но нужно ли оно? Понимаю что преждевременной оптимизацией занимаюсь, вроде бы в самом компоненте нет дорогих вычислений, но на будущее не знаю сценариев использования
>>2246066 Какую ты там логику в кнопку напихал, что у тебя там 9 ифов в простой кнопке? Да и в любом случае ифы недорогие, успокойся. >При каждом пуке у меня кнопки ререндерятся >чилдрены все равно игнорят мемоизацию Ну, это либо проблема чилдренов, пусть сами мемоизируются. Либо можешь игнорировать изменения чилдренов (второй аргумент React.memo), хотя это как-то тупо.
>>2246076 Нихуя не доходчиво, через жопу пук среньк написано. Например если в массиве зависимостей будет приниматься другой реакт элемент, что этот useMemo будет делать? Почему чилдрен это новый объект, а любой реакт компонент в пропсах не новый? Написано там? А вот и саси жопу
>>2245957 html файл - это просто текст. В этом тексте могут быть директивы вроде "метнись дерни мне скриптов/стилей по такому адресу". И когда браузер, парсящий html-файл, натыкается на эту директиву, он идет и дергает указанные файлы. Больше там ничего нет, никакой магии. Поэтому весь твой сайт может в теории лежать в одной папке, без единой строчки кода на сервере. Просто собери html/js/css файлы и отдавай их любому желающему.
>>2246099 >>2246107 Ну вот например, есть компонент <Comp /> туда я передаю <Comp number={10}>10</Comp> Почему memo может мемоизировать пропс 10, но не может мемоизировать children 10? Почему во втором случае 10 !== 10? Во что превращается эта строка 10 при передаче её как children? Почему бы тогда не забить на children и не передавать их в виде еще одних пропсов?
>>2246120 Даже если в консоль вывести props.children это просто строка же будет, я бы еще понял, если бы у нас в children передавался объект, создаваемый функцией без мемоизации, но почему он даже по дефолту чилдрены игнорит?
>>2246125 >>2246120 Т.е. я так понял memo работает таким образом, что оно вообще нигде не хранит значение, а просто сравнивает ссылки? И будет работать только если мы мемоизировали предварительно пропсы либо использовали какие-то константы за пределами компонентов? Но тогда опять получается, что мемоизировать мы должны были бы все что передаём в пропсы, а это не так
>>2246120 >Почему чилдрен это новый объект, а любой реакт компонент в пропсах не новый? Потому, что: А) Ты не знаешь как работает ванильный JS (ссылки в частности) Б) Ты не знаешь, как работают модули вебпака В) Ты не знаешь, что такое реакт компонент. Мемоизация тут вообще ни причём.
>>2246126 >Там нормисов-то почти нет А кто там в телеге академии? Хекки и титаны кодинга и одиночества? Ну тогда большой респект им, потому что с виду нормальные можно сказать Ерохины.
>>2246145 Спасибо, я вообще забыл о том, что children не мемоизируется если это реакт компонент, а не просто потому что это чилдрен, пиздец блядь, вот так учишь учишь все это говно, устраиваешься на работу и все равно забываешь к хуям собачьим
>>2246351 читал,но нихрена не понял. это типа херня подразумевает,что она определяет класс события(мышь,клава),а потом к ней навешиваю методы типа e.target?
>>2245831 Ну хуй знает. В аксиосе по дефолту все что 400 и выше выбрасывает ошибку. А что мешает типизировать ошибки, кстати? И что в свою очередь мешает наоборот вообще не использовать Error в js а тупо возвращать объект типа { error: true, ... } ? Где грань? Приведи пример ситуации, когда в жс-коде допустимо выбросить исключение.
>>2245380 >Норм, если ты обертку над fetch делаешь для дальнейшего переиспользования. Если у тебя такое говно втречается повсеместно, то лучше используй axios. Что мешает сразу использовать axios?
>>2246356 Не пробовал читать курс дискретной математики, не умея при этом в арифметику? > не понял. Чего ты ожидаешь понять если у тебя нет базовых знаний алфавита?
>>2246380 >Ну хуй знает. В аксиосе по дефолту все что 400 и выше выбрасывает ошибку И? Аксиос та еще говнолиба. >А что мешает типизировать ошибки, кстати Отсутствие болезни конпелятора головного мозга, я думаю. >Где грань? Приведи пример ситуации, когда в жс-коде допустимо выбросить исключение. Рантайм экспешн означает, что дальше выполнение программы продолжить невозможно никаким образом, потому что она находится в неопределенном состоянии. В таких случаях и выбрасывать, но обычно 99% имеющих смысл эксепшенов выбрасываются за тебя на уровне языка, а если ты сам пишешь throw чаще условного раза в полгода, то скорее всего ты что-то делаешь не так.
>>2246430 > >А что мешает типизировать ошибки, кстати > Отсутствие болезни конпелятора головного мозга, я думаю. Мор лайк мешает то, что throwнуть можно всё, что угодно, в том числе в тайпскрипте никаких ограничений на это нельзя повесить. Нельзя поймать конкретный тип. Вмегда ловишь unknown и проверяешь потом в рантайме, что это такое ты поймал.
> Рантайм экспешн означает, что дальше выполнение программы Мор лайк выполнение функции, из которой выбросилось исключение, а не всей программы. Например, если ты передал ей какие-то всратые аргументы, на основе которых она не может вычислить адекватное значение. Конкретно исключения, связанные с плохими аргументами, я согласен, их ловить - это плохо.
Но когда нетворк реквест фейлится, то такое норм бросать и ловить, мне кажется. Вариант с тем, чтобы возвращать какой-то всратый объект по типу {error, value} - ну такое, вообще не лучше ни на сколько.
>>2246463 >Мор лайк выполнение функции, из которой выбросилось исключение, а не всей программы. Функция в вакууме существует или где? Она часть программы, и если часть программы находится в неопределенном состоянии, то принципиально и вся программа находится в этом состоянии. И единственный способ это решить - это ресетнуть состояние до известного: либо до состояния "программе пизда, сворачивайтесь"(unhandled exception, т.е краш), либо до состояния "стартуем заново с сейв поинта"(т.е try/catch) >Но когда нетворк реквест фейлится, то такое норм бросать и ловить, мне кажется. Норм это бросать и ловить потому что фейл нетворк реквеста - это полностью независящее от твоей программы событие, которое ты не можешь обработать никак, кроме "юзер, у тебя пизда интернету, иди чини". С ответом сервера это не сравнивается никаким образом.
И снова я, страдающий с JS после C++. Задача следующая. Есть объект, реализующий symbol.iterator(). По нему реализовано итерирование через for...of.
Мне сказали сделать через lodash/some.
Проблема: Лодаш мгновенно шлет меня нахуй с такими предложениями.
Т.е. код вида: for(const entry of iterator) if(filterfn(entry)) return true
Работает как часы. А код вида some(iterator, filterfn)
Нет. Есть ли способы заставить lodash работать с этим говном, или сказать техлиду что он охуел блять, верните мне С++ суки, я ебал блять, помогите что такой подход невозможен?
>>2246543 Не понимаю, зачем тебя могли попросить написать именно через lodash/some, если лодаш не умеет работать с es6 iterables, то есть если всё равно надо преобразовывать iterable в настоящий массив, то почему не написать [...iterable].some(filterFunction)?
>>2246544 >>2246545 >>2246548 Спасибо! Почему именно так? Жесткий кодстайл. Иными словами - я в душе не ебу. Алсо, вот за что мне не нравится JS - это куча тонкостей которые надо знать. Вот почему Array.from не сработал, а деструктуризация - сработала? Array.from же вроде должен работать по итерируемым объектам? Или он его свойства по итогу и высрал, вместо перебора значений?
>>2246550 >вот за что мне не нравится JS - это куча тонкостей которые надо знать
Канеш. То ли дело в плюсах!
Может проблема в том, что кто-то пытается писать на языке, не изучив его? Жс простой как палка. У меня сыну 12 лет, он его два года назад за месяц буквально изучил, а сейчас во всю уже пишет себе прикладные утилиты, сайтики и калькуляторы для решения систем уравнений из домашних заданий. Ребенок! А у вас все время какие-то проблемы и оправдания собственной лени откоыть доку или хотя бы раз прочитать спецификацию.
>>2246561 >Жс простой как палка. У меня сыну 12 лет, он его два года назад за месяц буквально изучил, а сейчас во всю уже пишет себе прикладные утилиты, сайтики и калькуляторы для решения систем уравнений из домашних заданий Аминь. Для того он изначально и делался.
Аноны, это нормально, что РНБ пэкэдж или РНБ стандарт пекедж полностью убирают точки с запятой в коде? Типа они больше не нужны или шо? Код работает и без них.
Прост скачал эти линтеры, тыкнул контрл Альт Л и все, точек с запятой больше нет вообще. Это норма? я прост новичок
>>2246659 Ну в JS они кое-где нужны, иначе код считает, что следующая строка продолжает текущую, но это не очень частый случай. А еще есть всякие другие линтеры, где точку с запятой надо везде ставить
>>2246560 Блять, в пизду все. Точно помню что вчера этот вариант пробовал и по итогу результата не получил. Толи я ебанулся, толи я не знаю. >>2246561 >Канеш. То ли дело в плюсах! Неиронично - плюсы мне кажутся проще. Возможно дело опыта. >Может проблема в том, что кто-то пытается писать на языке, не изучив его? Когда тебе ставят условие "Либо пиздуй писать на JS, либо иди нахуй" и не дают нормально времени на изучение - это конечно проблема. Сука, добью кандидатскую и съебу из аспы насрав научруку на стол.
Что за колдунство нахуй, сижу тут значит ебусь с типизацией стайлед компонентов, вдруг нахожу пример того, как в стайледах чел подгружает color: ${theme.color.red}. Типизация-то начала работать, всё ок, но откуда он берет theme? Стайлед создаёт глобальный объект? Я до этого импортил темы и пропсы примерно так - color: ${(theme => theme.color.red)} theme ниоткуда не импортируется вообще, что за колдовство там в стайлед компонентах происходит? А если я сменю объект темы в провайдере тем, он тоже его обновит на лету? Или уже хуй сосну? Проверять долго
>>2246992 Т.е. вот то, что вы на картинке видите - валидно, оно работает в рантайме и типизация проверяется, при том что этого theme объекта просто нигде нет в файле, ни импорта, ни аргумента, нихуя. Сама функция используется внутри стайледов, но туда не передается никакой аргумент (во всяком случае явно), только вызывается функция с пропсами, которые не относятся к теме
>>2241590 (OP) Как передавать пропсы через ссылки в react-router? Допустим у меня есть компонент со списком фильмов (айди + название), и я хочу, кликнув по элементу списка переходить на страницу, в которой будет айди и название фильма, которые возьмутся из компонента со списком. Стейт менеджер подключать не хочу.
>>2247006 Учи реакт роутер чтобы не быть баттхертом, там из параметров строки можно дергать параметры, не помню как, но как-то очень просто, в доке у них это 100% есть
Сталкивался ли кто-нибудь с удобной системой именования цветов, для тех случаев, когда цвета в проекте могут меняться либо может смениться тема? Например если в проекте назвать цвета типа red, blue, greenDark и т.д., то если они поменяются потом, или надо будет темную схему писать, то такое несоответствие цветом будет путать. Например если цвет используется в проекте как-то так theme.color.greenDark. А как придумать всем цветам абстрактную систему именования я не знаю, если в проекте больше 50 цветов разных, называть их просто primary-1, 2, 3 тоже не очень удобно. Именовать по ролям я боюсь будет слишком пиздецово, плюс в проекте это будет выглядеть примерно так - theme.button.primary.background.default , что как будто бы слишком большое нагромождение. Как бы сделали вы?
Как создать матрицу nxn из нулей ? Я думал let arr = Array(n).fill(Array(n).fill(0)); , но оно создает один массив размером n и заполняет другой массив ссылками на него. Через Object.assign получаются не массивы. Если написать [...Array(n).fill(0)] , то нихуя не поменяется, всё равно будет создавать один массив. Получилось с Array(n).fill(0).map(()=>Array(n).fill(0)); , но выглядит оче всрато, может лучше как-то можно?
>>2247438 Вот у тебя есть 16 вариантов серого цвета, и как их все назвать? Один из них это цвет тени в обводке, другой на пол тона ярче и это текст заголовка на странице, вот я и ебусь поэтому сижу. Есть конечно ультимейт вариант, это проименовать всё по ролям. Т.е. просто один большой объект в котором каждая сущность проименована и разбита на группы, тогда там даже цвета могут дублироваться, но у всего будет своя роль, но это может стать чем-то монструозным в итоге, будет 40 цветов и 1500 ролей
>>2241590 (OP) Ребят поясните гуманитарию Вот в благославенном начале нулевых сайты на ХТМЛ верстали и сквозь слезы ебались с ксс Щас везде на слуху джаваскрипт. Но это же блядь прогроммирование а не верстка. Зонды свои анальные и говноанимации прогроммируете небось. А верстают на чем щас? До сих пор ручками маргины паддинги свои ебаные расставляют в перерывах от жаваскрипта или конструкторы завезли наконец то?
>>2247442 если у тебя есть 16 вариантов серого цвета, то у тебя явно кто-то свернул не туда. А так: secondary-100, secondary-200, secondary-300 and so on. >>2247441 Array.from({length: n}).map(()=> Array.from({length: n}))
>>2247459 Т.е фронтэндеры вручную не верстают уже а юзают чет типа движков7 А то я просто не представлял как можно совмещать настолько разнополушарные задачи
>>2247470 Обидно за державу что просрали кириллицу в синтаксисе и описательный русский как язык кибернетики. Прочитал щас статью википедии про реакт - она сама как машинным переводом выполнена.
>>2247466 Верстают вручную, но отдельные части страницы (компоненты) и при этом часто ещё на основе каких-то готовых фреймворков, а потом эти компоненты программно собираются в страницу. Но вообще до сих пор есть конструкторы, в которых можно делать шаблоны для страниц, например Tilda.
>>2247480 Надеюсь что физическое уничтожение офисов и акционеров фейсбука с гуглом пластиковыми бомбами и возврат к статичным сайтам чтоб браузер снова сьедал по 5 мегабайт за вкладку.
>>2247450 >До сих пор ручками маргины паддинги свои ебаные расставляют в перерывах от жаваскрипта или конструкторы завезли наконец то? Конструкторы есть, но они пока говно, вот из жопы говно. Сейчас верстают как и раньше, только без таблиц и флоатов с нормальными сетками и особенно важно - адаптивно верстают. Ну а ебаться с ксс и плакать не сильно надо, есть scss, есть сборщики, Pug, облегчающий разметку. Всякие там методологии есть, ксс фреймворки, UI-киты. На UX много внимания стало. Короче смотря что за контора пишет сайт и для чего оно ей надо, ну и сколько плотят разрабам.
Как сделать увеличение длины item по клику на нём? Я хочу увеличить его длину до 100800 пикселей, но пока даже даже прокрутка не появляется, появляется только если добавлять новые item-ы. Могу решить увеличивая min-width, но хочется через width, наверное у меня что-то не так с флексами? https://jsfiddle.net/5vjcaLo7/
>>2247529 Вот, спустя несколько нажатий, 100 пикселей к ширине уже не прибавляется. Также нужно, чтобы item-ы оставались в одной строке и не переносились, поэтому использую флекс.
Сап, аноны. Есть такая хуета, что я в играх суперкомпететив всегда, дрочу на циферки рейтинга и все-такое, так вот мне не хватает во фронтенде такого. Подскажите, что и где можно такое делать, чтобы видеть, что ты среди лучших (ну в разумных пределах)? По алгоритмам знаю есть codewars и все-такое там приятно, а вот именно во фронтенде? Разве что зп приходит на ум, но она почему-то не работает так на эго.
>>2247571 Где интерактивные сайты весящие 5 мегабайт, м? Почему глаза вообще должны отвлекаться на интерактив если я зашел в интернет читать? >>2247557 Сектант, спок. Кстати джаваскриптеры - как вы сами к зондам относитесь собирающими каждый пук с сайта ваш? Положительно? Цифровые фашисты вы.
Нужно отправить массив строчек с фронта. Как выводить массивы понятно, а как водить? Пока только могу попросить пользователя ввести через запятую, а потом получившуюся строчку сплитануть в массив. Но там как то через специальную кнопку добавить новый итем должно делаться.
>>2247735 А хуй свой у пользователя не хочешь попросить отсосать? Сделай нормальный интерфейс: если несколько хуёвин надо ввести, то и сделай так, чтобы было несколько текстовых инпутов.
>>2247816 Так там смысл в том, что в массиве может быть от 0 до десятка строк из 1-2 слов. Функционал чем то похож на прикрепление тегов. Да точно типовая хуита, скажите как называется или дайте ссылку.
>>2247828 Ну в смысле епта. Берешь инпут. В инпут юзер вводит 1 строку (например 1 тег). Потом делаешь кнопку "+" которая добавляет ещё один инпут. И таким образом юзер хуярит сколько ему надо тегов.
Уже се посмотрели крайнее выступление Малькевича? Скоро будут платить по $5k за поверхностные знания ноды и HTML. Хрюшки сами хантить будут всех, кто знает что такое HTML-тег. Web 3.0 уже за порогом, скоро всем довольствие сделают как сеньерским гражданам, главное не бухтеть и ходить на собесы.
>>2247622 >Сектант, спок. Кстати джаваскриптеры - как вы сами к зондам относитесь собирающими каждый пук с сайта ваш? Причём здесь джаваскрипт? Без настроенных корсов-хуёрсов браузер не позволит эти пуки куда-то отправить.
>>2247965 У него какая-то странная манера повествования, будто он под чем-то. Напоминает какого-то бизнес-тренера. Все эти побасенки про дефицит начинающих неумех уже даже не смешны.
>>2247735 Делаешь пандорический захват, лифтишь в монаду, потом строишь рекурсивную схему (здесь подойдёт зигохистоморфный препроморфизм) как монадический трансформер из категории эндофункторов, и метациклически вычисляешь результат. Любой второкурсник справится. А если делать на анафорических лямбдах — так задачка вообще на пять минут.
>>2248091 >чем тебя хмтлакадемия не угодила Не раз встречал мнение, что вся эта семантичность, доступность и прочие атрибуты чистой верстки не нужны, отнимают время и мешают. Но я считаю это полезным, и адаптив у них хорошо сделан. Не понравились разбивки по времени для курсов по жс, где сложному курсу дали столько же времени, чем более простому первому уровню, хотя там очень много затрагивается, и MVP, и паттерны, и принцип SPA. А в курс по реакту еще и тайпскрипт с первых модулей и до конца завезли, жалею, что прошлый поток не пошел
>>2248103 >Не раз встречал мнение, что вся эта семантичность, доступность и прочие атрибуты чистой верстки не нужны, отнимают время и мешают. Конечно говнокодеру, который на бутсрапе всю жизнь расставлял <div class="header row-1 column-2"> это отнимает время и мешает.
>>2248165 MDN, лол. Там хотя бы сразу говорят, что всякие флоаты и таблицы - удел минувших дней и посвящают не больше одной главы на то, как оно там было. А про гриды и флексы подробно рассказывают. В академии тебя сразу заствляют верстать говно на флоатах и позициях.
>>2248168 Ничего там не заставляют, просто показывают, как это работает с припиской, что сейчас редко где нужно. Гридам и флексам там дохуя материала посвящено.
>>2248168 В академии только в тренажёрах есть какое-то упражнение, где тебя ознакамливают с флоатами. А в их интенсивах уже года так с 2017 не заставляют верстать на флоатах. Да, раньше Першин учил на флоатах хреначить, но то было в 2016 году. Теперь у них флексы и гриды.
>>2248091 Тем, что совет смотреть 50 часов видосов по верстке - это самое уебанское, что можно только предложить. Я реально не знаю что может быть более ебанутым в плане изучения.
Установил расширение для браузера React Dev Tools, оно показывает какие сайты используют реакт. Есть один магазин где на главной странице, списке товаров не срабатывает индикатор, а только на странице товара показывается, что тут работает реакт. Что это за приколы такие?
>>2248318 Реакт это библиотека а не фреймворк, поэтому можно подключать точечно и использовать не на всех страницах сайта. В отличии от ангуляра, например, с ним у тебя все страницы строятся фреймворком, при этом ты можешь сразу и реакт в нём использовать.
Простите за дико тупой вопрос, но околонулевые знания не позволяют писать код коротко и правильно, а перфекционизм не дает писать в 15 строк и гору if-ов то, что можно уместить в несколько.
Есть у меня несколько строк document.querySelector('ххх')?.value; с разными селекторами. Все, кроме одного, возвращают undefined, а один возвращает текст. Как максимально коротко сохранить в переменную текст, отбросив все undefined?
>Access to XMLHttpRequest at 'xxx' from origin 'zzz' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Установить заголовок тоже не дает: >Refused to set unsafe header "origin" Как-то это можно пофиксить? Хотел себе переводчик сделать через: translate.google.ru/translate_a/t?client=x&text={textToTranslate}&hl=en&sl=en&tl=ru Но безопасность не даёт. Запускать браузер в небезопасном режиме тоже не хочется. Или лучше забыть про гугл и искать нормальное api?
>>2248375 Спасибо. Только он возвращает селектор, а не текст, но одну строчку дописать не проблема.
Сап, аноны, подскажите, насколько сложно сьебаться зарубеж будучи фронтендером? Особенно Канада интересует, но можно и в Европе что-нибудь. Я сейчас Джуниорю, паралельно учусь в вузе на 3 курсе, но вуз максимально заебал со своими пердежными преподами и с устаревшей программой, только ради переката и терплю
>>2248510 Нет, но ты можешь базовый интенсив выиграть в Новогоднем челендже академии. А в прошлый раз в Новогодней битве приз был профессия Фронтенд разработчик. Но времена настали тяжелые и приз стал намного намного намного меньше.
>>2247735 Ввод тэгов это нерешенная проблема компьютерной науки. Лучше всего сделали стэковерфлоу, но там вроде на ванили и код выдрать сложно. Если тэг переводить в див на вводе запятой то отваливается возможность бэкспейсить и выделить всё, если не переводить интерфейс становится неинтуитивным. Если привлекать кнопки то на каждый тег нужно перекинуть руки на мышь и помышевозить и вернуться на клавиатуру, что пиздец как неудобно.
>>2241590 (OP) Двач-помогач, срочная задача. Есть такая таблица в Google Sheets, надо написать скрипт к ней, чтобы данные сортировались по порядку возрастания во второй колонке(это я сделал), и чтобы удалялись все дубликаты, в которых есть одинаковые значения в третьей или четвертой колонке