Вы видите копию треда, сохраненную 22 июля 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Больше пары строк кода в посте или на скриншоте ведут в ад.
Для программирования на HTML https://codesandbox.io
Для Node.js с консолькой https://repl.it/languages/nodejs
Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Документация - https://developer.mozilla.org
Руководство для вката - https://github.com/acilsd/wrk-fet#javascript
Ну фронт много динамики,будут вебсокеты,регистрация и панель управления.Но чет вариант жс на бэке как то стремно выглядит,не?
>Вопрос не в нагрузке
Как раз таки именно в ней, мой юный фуллстак. Но с таким подходом - твой путь экспресс, там велосипеды отсутствуют в принципе.
Равно как и реакт что не мешает им быть бестпрактис.
Проиграл с кукоретика. В твоей пыже нет асинхронности, в Джанго нет многопоточность. В норде это всё из коробки.
А зачем пыхе асинхроность,он и так не плохо работает
Чел возможность ветвится и в пыхе есть. У тебя в ноде нет инструментов взаимодействия твоих воркеров и шаринга данных как в любом взрослом языке с многопоточкой.
Swool
В пыхе это костыль, в ноде это полноценный функционал. В твоих полноценных многопоточках ты на синхронизацию потратишь кучу времени, а потом окажется, что хуево синхронизировал и у тебя куча ошибок в коде.
Чел, в пыхе любой менеджер php процессов фактически создает пул воркеров? На том же roadrunner делают воркеры для вебсокетов.
s/?/.
Вышел положняк кого сейчас во фронтенд берут. Если вы не из этих групп, то даже не суйтесь.
Хорошо быть бедным славянином-бисесксуалом, покланяющемуся деревьям и духам предков.
Как старообрядец подхожу
А че там всё мутирует в нижней хуйне?
в чём вообще смысл объединять результат вычислений вместе с операциями калькулятора? какой-то говнокод уровня вкатыша, который вчера узнал про классы
В чём сакральный смысл писать этот класс, чтобы из него потом один раз создать объект? Когда можно сразу создать этот один объект!
В чем сакральный смысл писать функции, возвращающие функции, если можно просто сразу написать эти функции шиз? И я тебе открою секрет, но new Calculator() и buildCalculator() это одно и то же ООП, т.е одинаковые способы создавать одинаковые объекты. Спрятав слово класс под синоним ты не избавляешься магическим образом от ООП.
hunchentoot
В обоих случаях ты создаешь один объект и в обоих случаях используешь для этого функцию-конструктор. Вопрос в чем?
Как думаете Recoil потеснит со временем Redux? Все таки высер фейсбука...
Чел учи уже вуе и китайский, если ты не по ту сторону атлантического океана живешь
В жс нет полноценных классов. Наверху просто синтаксический сахарок для жавадебилов.
Наверное из этих классов какие-то другие объекты выходят, которыми надо пользоваться по-другому, не как в любом другом ОО-языке, да, шиз?
Что такое "полноценные" классы? И в чем их не полноценность в жс?
У них своих макак сотни миллионов, зачем им какой-то Иван город Тверь?
Вопрос в том, зачем нужно создавать класс\конструктор, когда он используется только один раз — ради создания только одного объекта, если этот объект можно сразу создать без класса\конструктора?
через {}
А ты сразу знаешь, что он будет использоваться только один раз, твёрдо и четко? Почему тогда не спросил «в чем смысл писать этот код, если его можно заменить console.log(7);
Скажи, манямирок даун
И ведь фп-шиз реально верит, что нечитаемое замудренное дерьмо с его пика хоть по какому-то критерию лучше обычной прямолинейной имплементации. Ебало представили?
Ну очевидно что там нету и намека на ФП, ведь суть шутки была как раз в том, что жс-макаки почему-то считают, что если заменить класс на функцию-конструктор, то ООП внезапно пропадет.
>просто нужно наесться говна, тогда привыкнешь и сможешь его читать, бля буду!
Классика фп-шиза. И да, реальная классическая ФП-имплементация этого же функционала будет как на пике, а у тебя - абсолютно заоверинжениренное, нечитаемое и неюзабельное говно, примерно как сделать ту же реализацию на классах через 10 проксифакторибинов вместо одного обычного класса.
Проиграл. Типичный высер от долбоеба который о фп только слышал и читал страшные посты о нем на дваче.
ФП код всегда легко читается. Твой высер это просто набор шизобреда:
Отнять добавить ноль пять один.
Не говоря уже о ебанутых сигнатурах с их магическим result.
ООП долбоеб пытался, но даже здесь наплодил кучу зависимостей неочевидностей .
>ФП код всегда легко читается. Твой высер это просто набор шизобреда:
Дебилоид, ты же в глаза не видел ни одного ФП языка, если у тебя обычный порядок вызова иммутабельных функций вызывает проблемы с прочтением. Лисп-то видел хоть краем глазика, фпшник мамкин? Наверное вообще бы голова лопнула от него.
И только в мире одебилевшего ФП-каргокультиста с конпелятором вместо мозга вот это может считаться >>41851 очевидной имплементацией, а вот это >>41879 - неочевидной.
В общем, делаю пет-проект, нужен фронт: пробовал Elm, пару недель работал потом на Elmish, ещё Блазор был - всё чтобы не брать JS фреймфорки.
Исчх, с бэком на C# всё хорошо, уже готов костяк проекта, а фронта всё нет.
По итогу везде хуёв насосался, вот пришёл к вам на поклон-с, принимайте. Теперь стоит выбор, какой мейнстримовый фреймфорк брать:
Angular - сразу нахуй.
Остается React (with/out Redux?) или Vue, что посоветуете?
Разумеется typescript, я касаться JS не буду мне похуй. Меня тянет к Реакту, но много слышал, что это кишки-пиздец-гроб.
Чтобы смотреть как что-то "скейлится", нужно иметь полный контекст системы, в которой это что-то реально используется. "Скейлинг" в твоей шизоидной голове по твоим шизоидным выдуманным на коленке правилам никому не интересен.
Бекендеры легче vuejs переваривают. Пыхеры сейчас поголовно вуй знают. typesctript webpack для vue настраивай по гайду майков. https://github.com/microsoft/typescript-vue-starter Можешь поробывать composition api для vue, будет похоже на реакт. Основная фича composition api - распределение кода не по опциям вуе компонента, а по его ответственности за функциональность и улучшение переиспользования
Делай фронт стандартными средствами .NET(что там у вас, вьюхи, темплейты?) с чутком обычного жопоскрипта сверху и не еби никому мозги. С чего ты вообще взял, что можешь просто прийти в незнакомую тебе сферу и за неделю там написать продакшен-левел продукт? Ты же не думаешь, что можешь за неделю освоить свифт и написать приложение в апп стор? Или что можешь за неделю освоить ассемблер и написать драйвер к железяке? Это все одинаково незнакомые тебе большие сферы разработки, и нормально в них освоится займет месяцы с учетом всего предыдущего опыта, но почему-то именно с фронтом и жсом ты по непонятной причине набил себе говна в голову и решил, что там легко тяп-ляп и любая макака справится. Не справишься.
> Angular - сразу нахуй.
Почему, лол? В ангуляре ты будто на шарпе кодишь, только для фронта. Оч удобно. Плюс у ангуляра куча плюшек сразу из коробки, не нужно кучу хуйни искать и ебаться с ней. Просто создал проект и делаешь себе фронт. Еще и какой-никакой DI и вообще половина вещей перекочевала из нормального программирования, а не это вот говно детское, что в том же Vue с Provide/Inject. Опять же структура в ангуляре единообразная, а не как в большинстве других решений, где каждый дрочит как хочет, в итоге даже зная какой-нибудь Vue, React - ты тратишь дохулиард времени, чтобы понять как проект устроен, и это в случае если хоть какая-то архитектура есть, а често ее у жс'еров и нет нихуя.
Я понимаю еще, если бы у тебя там проблемы с размером конечной сборки были, но это решаемо.
Ну или у тебя совсем милипиздрический проект, в котором будет 3,5 активных компонента и дергается 2 апи, тогда да, ангуляр будет оверкиллом тут.
А так, ну Vue - в принципе не настолько говно как реакт. Простой, понятный, другое дело что все еще говно, по сравнению с ангуляром.
Если бы у него стояла цель "изучить JS фронтенд-фреймворк", а не "слепить фронт по-быстрому чтоб был", то рассказ бы не начинался с того, как он перепробовал кучу говна, лишь бы не трогать жс, который его в детстве укусил.
А что на счёт Реакт/Редукса? Мне понравилась модель Elm с иммутабельным апдейтом через сообщения. Я ещё угораю по F# и ФП.
>>42080
Мне как раз хуяк хуяк не интересно, так бы я мог давно уже Razor нахуярить.
> что можешь за неделю освоить
Где я такое написал? Это твои чистые проекции. Более того, я из бэка во фронт не собираюсь перекатываться, я делаю это чисто для себя, для своего пет-проекта.
>>42095
Нет, нет цели изучить JS для вката и нет цели нахуярить фронт по быстрому. Есть цель делать фронт вечерами чтобы нравилось, вот и всё.
>>42093
Ну у меня как раз не энтерпрайз-грейд конюшня, где нужны будут все эти фичи и решения. Даже на бэкэ не юзаю жирные, но проверенные решения, которые могу применять на работе.
>А что на счёт Реакт/Редукса?
Это дело вкуса. В реакте толще экосистема. Но и каждый реактер использует что ему по душе, получается зоопарк. В вуе с этим попроще, но бывает трудно найти красивое решение для проблемы и лепишь костыли. В ангуляре все есть свое, если у тебя что-то не получается ты плохо читал документацию. Эти разделения на сервисы, компоненты в ангуляре предназначены для построения архитектуры. Но сам ангуляр архитектуру не задает, поэтому в проектах без нее выглядит избыточным.
Тогда бери реакт и на выбор редакс либо вообще recoil. Лично я от последнего вообще кайфую
для фронта.
>>42101
Потому что сложный, высокий порог входа, сильно непохож на жс или реакт. А еще джуны ангуляр на хуй никому не нужны. Его в продуктовых компаниях с серьезным проектом используют, туда макакой не войти.
Да ниче он не порешал. Тырпрайз использует как и раньше, большинству проектов оно не надо.
Ну, потому что объективно, ангуляр сложноват для того чтобы закинуть вчерашнего jQuery-лендос мастера на проект, а во времена когда делился рынок - именно такие и были во фронте и они задали вектор развития. Vue еще не существовал, а бекендеров, у которых мозг не убит jQuery - еще не заставляли морфировать в фуллстаков так активно. В итоге - те выбрали, как им казалось, самое оптимальное решение, которое оказалось говном, но что поделать, кучу говна уже насрали, теперь нужно разгребать, еще и из-за того что срали не щадя жопы - там и инструментария сейчас сильно больше чем в остальных решениях, что приводит к тому, что люди, решающие начать новый проект, видят, что, якобы, на реакте уже все что можно порешали, а значит можно брать кучу готового, что опять же выливается в еще больше кучи говна.
Как-то так.
Макаки везде. Просто есть серьезные макаки (макаки с серьезным ебалом) и веселые упругие макаки
Что в одном, что в другом - уебищные пыхошаблоны.
В симфони шаблоны на твиге, у твига свой язык, пыха там ни капли.
автогенерирумая админка на реакте для симфони
https://api-platform.com/docs/admin/
hotwire
https://github.com/symfony/ux-turbo
Продолжим
https://inertiajs.com/ инертия с реактом и вуе для ларки
https://laravel-livewire.com/ livewire - аналог hotwire для ларки
Потому что мелких шаражек с макаками в разы больше, чем Энтерпрайз компаний с грамотными специалистами.
Как будто не бывает мелких шаражек с грамотными специалистами и энтерпрайз компаний с макаками или энтерпрайз шарашек с грамотными макаками
Кот бы говорил про мяумирки...
https://developer.mozilla.org/en-US/docs/Web/API/Element/getElementsByTagName
getElementsByTagName -> HTMLCollection -> for let item of collection -> item.addEventListener
приделать айдишник?
пробывать копировать чужие сайтики, наверное, самый топовый вариант
https://www.frontendpractice.com
import {sayHi} from './sayHi.js';
этот берет только функцию,а если там 2 функции и что такое *as?
slave'ян же в цветных записали, так что все норм
import as karasique from ""
- вайлдкард - экспортирует всё из файла в объект с указанным именем. Т.е. если у тебя в файле 2 экспорта. То они будут вызываться как karasique.sayhi, например
ну так ты можешь открыть сам сайт и посмотреть, как он выглядит, в том числе, как выглядит на разных экранах
нихера не понял,допустим мне надо большой код подключить к основному,там несколько функций.
как это будет выглядеть?
Да, можно. Но не так удобно. И ручками вытаскивать все ассеты
Ты документацию открывать пробовал? Что в ней непонятного написано?
А это не одно и тоже?
Если ты делаешь алерт, то на кой хуй создаешь дом элемент?
Если создал, то делай типа body.appendChild.
Если хочешь к одному элементу обратиться, используй айди и получай element, а не elements или класс уникальный и по селектору ищи, как белый человек.
Нет, в этом и загвоздка
Ты либо про codewars, либо про leetcode
Этого удвоил. Экосистема реакта это какой-то пиздец, в частности стейт манагеры. Короче для асинхронщины юзает thunk. Выучил thunk, оказывается все хуйня, анзле юзают сагу. Выучил сагу - очень хорошо, но всем похуй, теперь все ющают rtk query. А тут недавно еще и фейспук высрал новый стейт менеджер, и через год-два все знания по редуксу будут нахер не нужны никому.
Пидорнули с первой галеры. Это нормально или я тупой?
Пили кулстори. За что пидорнули, как пиьорнули, сколько прораьотал, где накосячил, в подробностях
Ты выдаешь предупреждение строкой "h1". Зачем ты при этом создаешь элемент - хуй его знает
Напиздел, что есть опыт работы, в итоге проебывал таски по времени, делал задачу не так, как хотел заказчик, пм часто возвращал задачи. Не успел изучить ангуляр, когда направили на проект с этим фреймворком, проебывал таски, говнокодил, не успивал в недельный спринт, на другом проекте не смог в бекенд, говнокодил. Работал 3-4 месяца, зп 52к.
И вот не понятно, искать любую дногалеру или изучить рякт, т.к. вакансий намного больше, хотя +- знаю вью, но в прошлый раз не нашел вакансию на него.
<button
className='zhopa'
data-text={props.text}
>
{props.text}
</button>
.zhopa {
font-size: 1px;
&::after {
content: attr(data-text)
font-size: 999rem
}
}
52к это же джун. Либо у тебя галера охеревшая и требует не по зп, либо ты вообще нулевым был. знаю интерна который 40к получал, не выполняя задачи, а тупо учился на работе
Зачем? Он же работает, а то, что работает трогать не стоит.
Ирл ты будешь колбасить как нравится лиду, даже если он хочет все в одну строку писать, иначе твой код не пройдет ревью
Ну этот ментор кинул мне вот эти ссылки и по ним нужно сделать конспект. И он кстати является тимлидом, с которым мне в будущем придется работать, поэтому пытаюсь понять что вообще делать. Походу ему нужно, чтобы все было сделано именно по стандартам
1. Ставишь линтер с эирбнб конфигом
2. Настраиваешь иде на форматирование по этому линтеру
3. ???
4. Вы великолепны
Который юзаем? Не всегда есть время и смысл разбираться. Если есть задача на кастомный скролбар, то мне легче взять из либы и вкрутить его, чем разбираться и свою реализацию пилить.
Да вот в том и дело, что это и есть то решение, которое я нашел, просто тут текст через дата атрибуты передается а не через пропсы в стайледы, и если у меня кнопка принимает не текст, то хз что там может выйти
Просто жёсткие размеры установить не вариант?
Надо много или мало? 28
Ясно. Массив объектов
>52к это же джун
Ну да, первая галера, я бы и собаку за бесплатно.
>либо ты вообще нулевым был
Хз, возможно. Задачки то я решал, почти ничего не спрашивая, да и спрашивать особо не у кого было, просто косячил по времени и не то что хотели делал, часто возвращали на доработки и переделывание.
>знаю интерна который 40к получал, не выполняя задачи, а тупо учился на работе
Кто-то попивая смузи читает доки за 40к, а кто-то днями и ночами хвосты закрывает за 50к, печаль.
Во время самой работы заметил, что время на свои пет-проекты и просто обучение чему-то новому, кроме того, что усвоил на работе, просто не хватает, тупо как овощ после работы идешь и включаешь музыку, и лежишь смотря в потолок, даже игори были не интересны. Как с этим справляться? После окончания спринта вообще кодить не хочится, буквально тошнит.
>повторяешь
>идешь к ментору с ответами
>он указывает на пробелы в знаниях и отправляет в гугл
> цикл запустился по новой
Так у всех или я чего-то недогоняю?
>Хз, возможно
А что вообще смамостоятельно делал во время обучения? Какие пет проекты/мелкие компоненты?
Дай ещё пример типичной задачи, которая у тебя вызывала затруднения и сроки по которой ты проебывал
Нет, так не у всех.
Аодавляющее большинство самостоятельно нахожит ответы на все свои вопросы. Более того, пожавляющее большинство никогда не задают вопросов кому-то и разбираются во всем самостоятельно.
Вопросы разные бывают. На подавляющее большинство сам находил ответы и вообще никого не дергал. Но бывало такое, что прям анал какой-то и неделю сидишь без видимого результата. Но даже в этом случае в итоге сам справился и родил
Дай пример вопросов и мы скажем - зашквар на таком тупить и дергать серьезных дяденек, или норм.
т.е. чтобы для 0 было 0000 для 1 было 0001 итак далее
Класс, спасибо
Потому что 200 OK { "error": "Authorization required" }
Но robots.txt может игнорировать поисковые системы, если захотят, не? Я по идеи могу написать свой гугл, и выкачивать переписки людей?
У ьебя причмнно слелственные связи в постановка вопросов напушены. Как у ткбя возникла идкя что поисковик может прочитать чужую переписку? Какой ход твокй мысли был при этом? Ты что, сам попробовал открыть чью-то переписку и она открылась? Нет, не проьовал. Твоя идея не подкреплена никаким рациональным рассужлением. А раз это так - то ты тупой.
Гипотезы выстраиваются не на ровном месте. А на логческих рассуждениях.
Map это не массив, дурик
>А что вообще смамостоятельно делал во время обучения? Какие пет проекты/мелкие компоненты?
Проектный менеджер(крутая тудушка с линиями, типо трелло), с беком на пхп, чистый жепаскрипт.
Шифратор.
На вуе всякие штуки, спа, тудушки, поиск с апишкой, лендинги.
Бесчисленное кол-во тестовых, сотни их(меньше, но много).
Привет двощ. У меня нетривиальный вопрос.
Допустим, я увеличиваю левый HTML-элемент. Он толкает у меня правый. Когда не остаётся свободного места куда толкать -> получается, что scrollWidth родительского блока больше, чем его offsetWidth, что логично.
Вопрос: можно ли через js как-то отследить момент, что перед увеличением левого HTML-элемента не останется свободного места и scrollWidth будет больше offsetWidth ? Т.е. мне надо узнать, что места не хватит ПЕРЕД ТЕМ, как я изменю длину левого элемента, а не после того, как уже изменил длину. Спасибо
просто не пиши в интерфейс поля, которые тебе не нужны
По ходу надо до устройства на работу как-то придрачиваться к такому ритму настолько, насколько это возможно. Других вариантов нет. Я с перерывами практически целый день сижу что-то пишу или иногда читаю. Но делаю это на расслабоне, если делаю что-то знакомое, то могу фоном включить что-то послушать. Как стахановец я не ебошил. Когда вкачусь а я апизательна фкачюсь! то скорее всего сильно охуею с этого темпа.
Починить поиск, бэк.
Обычная верстка(сказал день, а по итогу два).
Жиквери скрипты, часто там проебывался по времени.
Логика отображдения всякой всячины, от слайдера до выподающих списков, типо в т3 было не так как надо было.
Компоненты на ангуляре, возникали трудности с тп и всякими штуками в самом фреймворке, проебывался по времени, несколько задач вовсе не понял как делать.
Поля объекта приходящего из апи всегда должны иметь тип T | undefined.
Неиспользуемые поля не обозначаешь в интерфейсе.
После получения тайп гардом валидирует поля и делаешь из T | undefined просто T
>Я с перерывами практически целый день сижу что-то пишу или иногда читаю
Обучение и просто писание кода руками на своих пет-проектов отличается от выполнения тасков. Чаще всего, по началу код на проекте абсолютно не понятен(особенно если чистый жс или боже упаси жиквери). Потратить 3 часа на чтение кода, вникая в его суть, это норма, как мне говорил тимлид, а ведь еще надо понять как исправить ошибку. Бывает, что читаешь код час, а потом понимаешь, что тут ошибки нету и надо читать в другом месте. По итогу ты либо проебываешь таск по времени т.к. потратил время впустую на участке кода, который ты не понимал, а потом искал в другом месте.
Бывает, что ты говоришь, что сделаешь за n часов, а делаешь за n2, а пм тебя уже ебет за просрочку, т.к. ее ебет заказчик, мол хули тут n, а уже n2 и таск не решен. Бывает, что заказчик переобувается на ходу, а ты уже сделал фичу, а надо делать совсем не то(но тут время могут и добавить).
Учиться и работать возможно, но надо вникнуть в проект и его код, чтобы было время решить таски, попроебываться, поучиться, а не как я, просрачивая таски и решая до часу ночи, потом уже чисто физически невозможно чему-то учиться.
>Потратить 3 часа на чтение кода, вникая в его суть, это норма
Нихуя себе норма, я на последнем проекте пару недель вникал в жикверипонадусерового тысячефреймворкового гигагусекарася, при том что задачи сами по себе были довольно простыми
> я увеличиваю левый HTML-элемент
Как ты его увеличиваешь, вот там и вызывай обсчет будущих размеров перед увеличением.
Все ясно, это галера в худшем смысле слова.
как это блять вообще? Таски от тебя прям в деплой к заказчику идут? Хуле он то рыпается? Алсо, время всегда надо брать х2 и предупреждать если не успеваешь
Тех кто писал на жиквери к Боженьке без доклада пускают.
Ты понимаешь, что браузер сам решает влезет элемент или нет? Он и рассчитывает их размеры. Элементы HTML адаптивные, но их контент не резиновый (текст и др.). Я не могу узнать на следующем ресайзе влезет элемент или нет, потому что браузер работает с адаптивными элементами.
Не уверен что это поможет, но посмотрю. Может там есть API, о котором я не в курсе и сможет решить мою проблему. Энивей спасибо
жуквэри
Грустно такое читать, конечно, но ты молодец или повезло, но kpacubo в любом случае.
Я даже теоретически не читал про тесты, но разве Jest тому же есть разница, жс или нода?
Тогда приучайся к postgresql. На больших проектах что реляционки, что nosql превращаются в говно. Но первое говно хотя бы читабельное, в отличие от портянок джейсон-запросов.
>приучайся к postgresql
Насколько хорошо нужно им владеть? На уровне базовых "SELECT hui FROM govno WHERE pizda" и прочих INSERT INTO?
Или со всякими "CREATE FUNCTION" и "OWNER TO" заморачиваться?
Но я не понимаю в какой момент мне вообще нужно что-то проверять и что именно проверять.
Видел про ТДД, что сначала пишут тесты для любой хуйни с описанием что вообще эта хуйня должна делать, а потом пишут код, это так нужно делать?
Спасибо, почитаю.
Нет
Создаю контекст -> Передаю в value значения -> Пытаюсь получить эти значения в компоненте, но получаю блять эррор, хотя все работает.
https://codesandbox.io/embed/pedantic-breeze-01v7h?fontsize=14&hidenavigation=1&theme=dark
Вот код, комменты в context.tsx
Пикрандом, с меня как всегда.
Ну, это потому, что у тебя контекст может быть null. Поэтому он не может его деструктурировать. Убери юнион с null в createContext, просто напиши createContext<contextType>({} as contextType) + убери вопросик у типа increment.
Говнокод на пикрелейтеде должен сначала загружать список всех стилей themes из жсона с ссылками на них при рендере аппа, потом в зависимости от выбранного имени стиля themeName искать в themes ссылку на выбранный стиль и по этой ссыке загружать сам стиль thems, который уже передается в ThemeProvider. require потом будут заменены на апи запросы.
И вроде бы эта хуита на пике полностью рабочая, но сам код выглядит как говно в плане поддерживаемости. Надо:
1) Разделить логику загрузки жсона с ссылками на все стили и логику загрузки конкретного стиля по имени из этого жсона.
2) Избавиться от провеки if (themes.length > 0). useMemo срабатывает при первой инициализации стейта thems и в итоге setStyleByName пытается искать ссылку на выбранный стиль в пустом массиве, если этот массив не проверять.
Как красиво сделать все перечисленное?
Плохой код, useMemo абсолютно не по назначению юзаешь. Внутри функции setThemeByName какой-то бред написан с фильтром и попом, у тебя сейчас всё сломается, если передать в эту функцию пустой массив. Используй .find и просто ничего не делай, если он не находит тему (возвращает undefined).
Плюс путаница с тем, какие значения у тебя функция берёт из замыкания, а какие - из аргументов. Либо делай чистую фукнцию, значение которой зависит только от аргументов, либо по возможности все значения из замыкания бери.
По логике просто сделай useEffect с выставлением нужной темы при изменении themes или themeName же.
просто не коммить этот файл, лол
Ты чо, всегда делаешь git add . ?
Слева есть иконка гита и там можно не нужный файл убрать из staged и просто его не коммитить
В си нет понятия объект в принципе, а в жсе объектом является все, и даже якобы примитивные типы имеют встроенные методы.
Есть. Но у него свой, особый путь.
Нашёл пока что chart.js и ещё какой-то сайт, который прекратит существование в следующем году, лол. Но там вроде нельзя сделать интерактивными эти точки, чтоб перетаскивать их например. Так что если вдруг кто знает что-то получше, то посоветуйте
Какая разница? Ты можешь написать на 100% ООП программу, ни разу не используя наследование, и во всех ОО-языках наследование в 99% случаев является известным антипаттерном, которого стоит избегать.
>Ты можешь написать на 100% ООП программу, ни разу не используя наследование
Это получится либо говнокод с композициями, нарушающими приватность данных, либо программа сама по себе не очень сложная.
>Это получится либо говнокод с композициями, нарушающими приватность данных
Это где ты такое взял, что композиция нарушает приватность данных? Ты вообще знаешь, что такое композиция или просто с потолка пизданул?
Сама по себе она конечно никак не нарушает приватность. Но тот, кто будет её неправильно использовать, тот нарушит
Есть только один способ нарушить приватность внутри класса - это сделать публичным то, что не должно быть публичным. И непонятно, каким образом по-твоему композиция от этого не защищена, а наследование внезапно защищено.
Нет. пикрил - сурс контрол в вскоде. Там можно убрать/добавить файл в стэйджед
Вау, сколько ж говна. Спасибо, буду искать.
Это врапперы над этими типами имеют методы, а сами примитивные типы - нет.
То что у тебя под ковором 'text'.length заменяется на (new String('text')).length, не делает литерал 'text' объектом.
>То что у тебя под ковором 'text'.length заменяется на (new String('text')).length, не делает литерал 'text' объектом.
Это еще почему не делает? У тебя есть объект, и набор публичных методов для этого объекта, что там на что заменяется под капотом на уровне языка тебя вообще ебать не должно. По такой логике и замена вызова метода hui.pizda() на вызов функции pizda в прототипе тоже не делает объект объектом, хули.
Сам понял, что высрал?
>>44038
Еще как должно, думаешь почему мы в коде текст чаще всего объявляем как литерал, а не как new String('текст'), потому что во втором случае у тебя будут объекты, который жрут память как не в себя, в отличие от литерала. Прототип как раз делает объект объектом, потому что prototype это property, а у примтивов нет properties.
Чтобы был в staged: на + в файлах под changes.
Убрать перед коммитом: на - в файлах которые в staged
Все равно не очень понятно.
Очевидно дернуть нужный эндпоинт на бэке? Типо get api/startPreparingshitposts
Или на вебсокетах. Но это все равно не фронту решать, а бэку. Как сделают, так и будешь тригерить.
Всё понял. Спасибо большое. Выручил
TDD или Typescript?
let p=document.querySelector('p');
function text () {
let p2=document.createElement('p');
p2.textContent="New text.";
какой тут родитель?.appendChild(p2);
}
Если увидишь коммерческий жс проект с тдд сообщи.
Тайпскрипт легче обосновать руководству, чем тесты
>Тайпскрипт легче обосновать руководству, чем тесты
Потому что вокруг тупоскрипта раздули хайп. При этом все профиты от него только для автокомплита в IDE, а на снижение количества багов и степень говняности кода влияние минимально.
p.parentElement?
Говняность архитектуры может быть. Ведь тайпскрипт не имеет отношения к архитектуре. Легче искать баги. Намного легче рефакторить чужой и свой код. Легче разобраться в чужом коже. Лучше навигация по коду в IDE. Я на фронте и на беке сам писал нетипизированную лапшу и с чужой работал, и лапшу на тайпскрипте поддерживал. С тайпскриптом в 100 раз легче.
function text () {
var p2=document.createElement('p');
p2.textContent="New text.";
p.parentNode.after(p2);
>}
>потому что во втором случае у тебя будут объекты, который жрут память как не в себя, в отличие от литерала
С каких пор определением объета стало "жрет много памяти" а определение литерала "жрет мало памяти", поехавший? Объект - это набор полиморфных функций(методов). 'test'.length - это вызов метода на объекте, остальное - твои шизофантазии.
>Как правильно написать опцию once?
Разработка это не твое, если ты не смог загуглить буквально миллион примеров с once на гитхабе и пошел за советами на куколдач.
Автокомплит не нужен если, если ты кабанчик.
function once (elem, type, listener) {
elem.addEventListener(type, handleOnce)
function handleOnce (evt) {
elem.removeEventListener(type, handleOnce)
listener(evt)
}
}
once(btn, 'click', (evt) => console.log('click event', evt))
как же бесит, когда пишут подобные микрофункции, которые внутри просто вызывают какую-то другую функцию, каждый раз приходится лезть и смотреть, что там внутри наговнокожено
1. Говнокод
2. Для реализации подобного функционала есть once и signal
3. this проебан
4. Говнокод
5. Проебана возможность сделать обработчик пассивным
6. Проебана возможность сделать обработчик фазы захвата
Ну так поищи
>Что такое TypeORM и нахуя она нужна?
Подцепить рантайм для вебпака также известный как node.js в реляционной бд. И не забыть все это затипизировать, само собой.
ORM - Object Relation Mapper делает из записей в табличке объекты. Может вытащить из БД структуру вложенных объектов. сохрать вложенные объекты как связь в БД
7. Проебана возможность для конфигураций обработчика, которая может появится в будущих версиях стандарта
btn.addEventListener('click', evt => console.log('click event', evt), { once: true })
Шиз, то есть ты отличаешь объект от не-объекта по некоему занимаемому количеству памяти как посчитал кстати и сколько байтов считаются объектом, а сколько нет?, а таблетки пить мне?
Вот добавил ты новое поле в таблицу. Будешь добавлять его в десятки sql запросов, где оно используется? Тебе делать больше нехуй?
Я тебе не про таблицу, довен, а про запросы. Даже в простеньком бэкенде на 5-10 таблиц ручное перечисление нужных полей становится проблемой, особенно когда появляются новые. Ты ничего сложнее хеллоуворлда не писал, как я понял?
Поясните, что по-дефолту подразумевается под "апи на ноде".
Я загуглил: есть страпи, кейстон, какая-то еще хуйня, но это все почему-то очень сильно опинионейтед, со своими всратыми недоорм и недорасширениями на хуках.
Есть ли такое, чтобы модель была на ТайпОрм (или че там у вас есть еще), а расширения подставлялись через ДИ?
>а кнопка не работает
>Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Потому что ты вызываешь getRandomNumber для того чтобы результат вызова (undefined) присвоить в качестве листенера клик ивента на кнопке
У тебя жопоскрипт головного мозга, если ты думаешь, что объект - это обязательно хэшмапа, в которую любой мимопроходящий может напихать говна.
Что бы при нажатии кнопки появлялся алерт с числом,а он появляется сразу при загрузке,а кнопка ниче не делает
>Я тебе не про таблицу, довен, а про запросы.
Так ORM только для добавления полей в таблицы и годится. Всё что сложнее - ORM высирает тонны говённых запросов.
>>44327
>Даже в простеньком бэкенде на 5-10 таблиц ручное перечисление нужных полей становится проблемой, особенно когда появляются новые.
Так говоришь, словно у тебя новые поля в таблицах из ниоткуда появляются.
>Ты ничего сложнее хеллоуворлда не писал, как я понял?
Фуллстэк подал голос.
>>44334
Иди читать сигнатуру Event.addEventListener()
Чтобы стрелки перевезти, очевидно же.
госпади сейчас бы спорить о том, что называть объектом, а что нет, в рамках жаваскрипта очевидно есть разница между примитивами и обёртками над ними, как ты их ни назови
И? Разница только в поведени typeof? То есть по-твоему функция это тоже не объект?
>есть разница между примитивами и обёртками над ними
Какая конкретно разница для внешнего потребителя API, т.е для программиста? Он как вызывал методы на этой строке: "string".match(//), так и вызывает, и для него она по всем параметрам объект, а не магическое непонятно что. То, что под интерпретатор делает под капотом с этим кодом - это дело интерпретатора.
>Если вам нужно передать параметры в обработчик, вы можете использовать анонимные функции
сука,не внимательно я читал гайд
Как у тебя только ошибку не выдает? btn не объявил нихуя
>мой поинт был в том, что вы хуйнёй какой-то срёте в трет, ты объект - нет, сам ты объект
Эта хуйня называется "программирование", знакомься. И для программирования очень важно знать принципиальное отличие одних конструкций других.
>да, разница в том, что возвращает typeof,
Так у тебя неувязаочка в логике (очеивдно потому что ты не знаешь подкапотное устройство оператора typeof и работу абтрактной операции Type(V)
typeof null это тоже object
а typeof Object это function
кстати, какой там typeof document.all?
Где-то ты проебался.
И будешь проебываться постоянно, пока не попытаешься формализовать понятие примитива. Чем примитив отличается от объекта?
А суть в том, что ни в поведении, ни в реализации - ничем.
Примитивы - для конечного пользователя - это иммутабельные объекты, класса реализующего паттерн Мультитон - то есть его инстансы обладают сссылочной прозрачностью. ТЫ можешь сам написать такой класс, а потом бегать и рассказывать всем, что его инстансы это не объекты.
Или можешь написать свои классы-синглтоны, с поведением аналогичному значениям null или undefined.
Под капотом примитивы так же, как и объекты хранятс в куче (за исключением разве оптимизаций ввиде тегированнх указателей для SmInt) - строик ранятся в пуле, числа в скопом в куче, символы в куче, бигниты в куче, даже булы время от времени в куче.
Ну так, чем примитив отличается от объекта?
Ой, а если мы еще затронем тему Exotic Objects, ты вообще ахуеешь, наверное.
Какой же ты предсказуемый, когда я писал пост, на который ты ответил, я уже знал, что ты ответишь заморозкой, но даже в этом ты умудрился обосраться. Знаю таких как ты, вас только жизнь научит или темная улица.
>Чем примитив отличается от объекта?А суть в том, что ни в поведении, ни в реализации - ничем.
Кроме того что примитивы передаются по значению, а объекты по ссылке, кроме того что примитивы сравниваются по значению, а объекты по ссылке, и куча других кроме в поведении о которых ты либо умалчиваешь, либо не знаешь. Зато можешь выдать фразу: объекты и примитивы хранятся в памяти компьютера, значит это одно и то же. Это как сказать: числа и строки записываются с помощью клавиатуры, значит это один тип данных а не два. Ты же натуральный шизоид.
Значение знаешь?
Ты часть про мультитон и про то, как устроены примитивы под капотом намерено пропустил?
Примитивы не передаются по значению - все примитивы - это указатели на данные в куче. man v8 source code
Инстансы классов тоже могут обладать ссылочной прозрачностью. man multiton
>Кроме того что примитивы передаются по значению
Ты только больше нигде не вздумай ляпнуть, что искренне считаешь что любая операция над примитивом приводит к его копированию на стек из стека, а в памяти у тебя одни и те же строки хранятся во множественных экземплерах.
Во-первых ты сам сказал, что память не аргумент, когда я тебе писал про то что объект по дефолту больше памяти занимает, чем примитив, и это отчасти влияет на ссылочную прозрачность, потому программы выполняются не в вакууме, а на железе, и если в некой программе заменить примитивы, которые let a = 1, на let a = new Number(1), то ссылочной прозрачности не будет, потому что программе не хватит памяти и она выдаст ошибку то есть это уже будет другая программа, замена не проходит, алёёё, потому что объекты в жсе жрут больше чем примитивы, даже чем иммутабельные объекты, к которым ты ошибочно приравниваешь примитивы. И что значит на твоем шизоидном не передаются по значению? Вот это что такое: b=42; foo(b); передача по значению или по ссылке? By value или reference, отвечай!
В жс нет переменных. Все перемееные - это свойства объектов класса Scope. Исполнение жс кода происходит в изолятах. У каждого изолята может один или больше глобальных контекстов исполнения. От каждого глобального констекста наследуются (буквально в prototype-like цепочке) более локальные, вплоть до блочных областей видимости. И каждая "переменная" это всего-лишь слот (свойство) в таком объекте. При лукапе, соответсвенно, проходим от текущего контекста до глобального, а глобальный контекст при этом является обычным host объектом, и моет иметь еще и свою цепочку наследования, выше до Object.prototype и null
В изоляте может быть одновременно несколько глобальных контекстов исполнения - они независисмы друг от луга, за тем исключением, что - каждый изолят в единицу времени может исполняться лишь одним потоком. Поэтому если несколько контекстов находятся в одном изоляте (как например несколько разных ифреймов удовлетворяющих CORS), то они будут подвержены синхронизации исполнения.
При этом разные изоляты могут исполнятьс япараллельно разными потоками, на чем и построены вокеры.
Так как все изоляты исполняются ведином адресном пространстве общего процесса, то память у них общая, и обмениваться они могут данными без копирования, просто передачей владения. Либо шарить ее с использованием тех же мюьтексов (атомиков в жаргоне жс).
Но ладно, очень досадно, что этот тред весьма дилетантский для подобных ликбезов.
Года идут, аудитория не растет.
Я даже отвечать на это не стану, потому что в этом посте написано просто несустветная дичь, уровня - "оно само". Развивайся, чувак.
>любая операция над примитивом приводит к его копированию на стек из стека
не любая, но такие опериации есть, и это еще одно отличие примитива от объекта, ты сам себя и закопал, лол.
Похуй на отступы, линтеры новых нарожают!
Спецификация, исходники v8, исходники SpiderMonkey, исходники JavaScriptCore, статьи на v8.dev, множество обзорных статей от разработчиков v8 и его иследователей (на том же хабре полно как переводов, так есть и статьи от русскоязычных контрибьютероа v8), статьи от разрабов ноды, электрона и nwjs, статьи от разрабов хрома и мозилы. Еще есть множество видео с различных конференцмй где те же разработчики популярно рассказывают всю, как подкапотную, так и абстрактную механику устройства обьектной модели жс и модели его исполнения, и вообще устройства рантаймов.
А, еще твиттер Айка. Он там частенько отписывается что к чему и почему юыло надо, с концептуальной точки зрения.
Еще архивы developer.netscape.com,если тебе интересно с чего на самом деле начинался жс, зачем он был нужен, что из себя представлял жс первых версий (в нем не было ни прототипов ни литералов обьектов ни литералов массивов, только функции-конструкторы, и он сразу мог исполняться на сервере и использовался доя написания бэкенда), и какие у нетскейпа вообще были планы на этот язык и что ему пророчили ( netscape one) - в целом все во что вылился веб сегодня, со всеми spa pwa и повсеместным жс - это то что нетскейп расписали в своих роадмапах еще 1996 году.
Да, но не в вебе
А зачем нужно разбираться в подноготной какой-то абстракции, разве абстракции не делаются для того, чтобы их просто юзали и не парились о деталях?
И чо ты мне принес одну из имплементаций движка? А в других чо? А я тебе спеку языка принесу, где черным по белому написано чем примитивы отличаются от объектов, дальше чо?
И в других то же самое, долбоёб.
И так было с самой первой имплементации написанной в 95ом самим айком, отсюда и typeof null == object
В общем, ты катастрофически тупой,даже чтобы понять спецификацию.
Тлей дальше.
Потому что все делятся на пользователей и создателей.
Те, кто хочет создавать, изучают то, что уже создано.
А те, у кого ошибка в ДНК, не понимают. зачем кто-то там изучает вообще наличие какой-то подноготной ДНК - все же и так работает.
Создал тебе за щеку, изучай.
Ну и зачем ты >пользователю пытаешься объяснить, что там как работает внутри в штуке, которой он пользуется? Ты же просто в пустоту говоришь. Бессмысленный спор абсолютно.
Я прекрасно понимаю, что ради числа 1 создавать объект, это тупо даже если бы v8 делал Денис Попов. Не говоря уже о том, что транспиляция жсных типов данных в движковые сишные конструкции с натяжкой можно привести как аргумент: все типы жс это объекты.
Как удобно писать что два понятия на самом деле являют собой одно и то же, но при этом добавлять за исключением то-то и то-то и не видеть в этом противоречия себе же. Всё с тобой ясно.
Очевидный геймдев.
Nest.js если в рамках Node.JS фреимворков.
Конечно код на Go или Rust будет лучше.
PHP это даунгрейд.
Зашипел, у меня в школе по математике дважды была двойка за четверть, я единственный кодером работаю из всей своей залуподрыщенской школы нахуй
Ну ты в курсе что оценки в школе в целом не репрезентативны и то что кодинг !== программирование
Разработка это не твое.
У меня была тройка. В итоге я в некоторых локальных олимпиадах по спортивному программированию даже побеждал в студенчестве.
Был рейскондишен у двух тасок в селари при определёных условиях образовывалось окно в секунд 30 когда вторую таску нельзя запускать если запущена первая. Локи ставить нельзя было т.к. таски были периодические и задержка ломала СЛА. Надо было математически посчитать матожидание интервала воспроизведения рейса зная размер окна и периоды тасок. На основе этого надо было решать прожимать тесты или воркэраундить последствия в тестах. Фикс требовал много перелопачивать и разрабы не обещали скоро закрытия бага. Подпёрли у себя только на прод энвайроменте. Я посчитал и решил, что проще раз в пару недель редиплоить стэйдж, чем пытаться саткнуть этот баг у нас. Матеша помогла определиться.
бэкенд qa мимопроходил
>Из школьноц программы матан ближе всего к программированию.
Информатика. Дрочение синусов и интегралов ни на секунду не приблизит тебя к написанию крудов и перекраске кнопочек.
Писать всю инфраструктуру на го извращение
Почему не +Infinity? Если черти нематериальны, то это не значит что их нельзя перечислять.
Черти как китайцы - постоянно появляются и исчезают. В лучшем случае можно говорить о диапазоне, в которое с некоторой вероятностью входит их количество. Но это уже не число.
Непонятно, но интересно.
Что бы такое пиздевое скрафтить, чтобы классно выглядело в портфолио и на гите?
Есть идеи? Может макеты чего-нибудь прикольного?
Недавно сделал дефолтную канбан доску, но со свистоперделками. Ищу что-то попизже теперь.
среакт + тс, около мидол
Спасибо, сейчас посижу поизучаю.
Чтобы раннить джаваскрипты прямо в VSC нужно установить node.js?
Да
Это плохая идея, надо в браузере смотреть, иногда в консоль IDE нормальный вывод, а в браузере все сломано.
я просто зеленый вкат, не знаю как что работает. Писать в vsc очень удобно, вот и думал что и проверять можно сразу в нем. Ну теперь буду знать.
Я тоже когда начинал, в вебшторме пользовался такой фичей, пока не обосрался.
remove все удаляет
Или сделать перезапись содержимого div1.textContent="";?
1) В чём профит его использования? Я боюсь, что если я попытаюсь установить что-нибудь то скачается 2 гига
2) Всегда ли можно избегать его использования просто скачивая скрипт вручную?
Проверяй на npmjs.com, 2гб не скачается
Нет, смысла качать вручную нет, тебе нужен package.json, можешь использовать yarn вместо npm, он быстрее работает
>1) В чём профит его использования? Я боюсь, что если я попытаюсь установить что-нибудь то скачается 2 гига
Тебе ли не похуй? Надо решать проблемы по мере их поступления.
>2) Всегда ли можно избегать его использования просто скачивая скрипт вручную?
Нет, тот же реакт и vue ты нормально не заведешь без сборки проекта.
Все что ниже очищает всех потомков, включая элементы.
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 используй.
>скачается 2 гига
Допустим. У тебя эти 2 гига все равно в полном объеме не попадут в бандл если ты не совсем круворукя макака
>[...div.childNodes].forEach(node => node.remove())
NodeList уже имеет метод метод forEach, зачем ты его деструктуриурешь в массив? И самое главное зачем ты этому учишь других?
Блядь, пользуйся npm-ом
>NodeList уже имеет метод метод forEach
Ты обосрался. Попробуй поменять потомков элемента, пока итерируешься через forEach по childNodes.
я решил по другому,в первой функции отключает кнопку,а во второй с перегрузкой удаляем атрибут дизаблет
>childNodes.forEach(i => i.remove())
Ты видимо тупостью троллишь.
Я тебе даже демо запилил : https://codesandbox.io/s/musing-sunset-rpqpw?file=/index.html
htmlacademy мало того что платное говно, так еще и цены подняли
htmlbook говно старое, не рассматриваются детали и подводные камни
html5book нечитамая хуета написанная сельдью, читать этот понос просто невозможно, если обезьяне учебник русского дать даже он складнее писать
w3chools душная хуйня на ангельском
mdn + google translate
только есть странный косяк,иногда 2 карточка не появляется
Просто не хочу ставить ноду на машину, куда буду деплоить свою поделку на 3 страницы.
Это какая-то новая секта свидетелей бандлов по 5гб и ненавистников ноды?
Теоретически собранный билд для запуска не требует ноды. Но вот чтобы его собрать - нода нужна. А при деплое обычно как раз таки сборка и происходит например из репоса
Да нет, просто я новичок во фронте, да и не хотел бы особо много тратить на него время. Я в бек вкатываюсь, мне фронт нужен, чтобы учебные проекты были хоть с каким-то фронтом.
Думал просто переписать маленький проект с версткой на чистом жс без всяких бандлеров, с es6 модулями на реакт, тоже без бандлеров. Просто в обычном жсе, как то очень много повторений получается просто засчет накидывания htmla. А потом хочу задеплоить задеплоить поделку на нищий впн, где каждый мегабайт диска и памяти на счету.
Если реально нужен весь обвес, пока останусь на голом js. А с реактам полноценно со всеми нужными штуками буду разбираться на следующем проектике.
А с бандлерами нпмами-ярнами и вебпаком малость покопался, когда немножко вью трогал и это тогда разбирательство с обвесом у меня норм время убило. А еще получил csrf-проблемы из-за дев-сервера на другом порту и пришлось ковырять еще и nginx и там я вообще проебал кучу времени и не вывез.
А почему реакту обязательно нужна сборка? Нельзя ли вообще без поднятия фронтового сервера? Я просто не шарю. Можешь объяснить, почему нельзя сделать так, как я хочу подключить реакт, как три библиотеки в корневом html?
может у меня просто ci/cd головного мозга
Да можно. Реакт в итоге собирается в один хтмл и чанки жса и цсса. Так что уже сбилженный проект можешь загрузить на обычный сервак.
больше тут - https://create-react-app.dev/docs/deployment/
Хелло ворлд будет веситьь нескольколько мегабайт. Сам решай, нужно тебе или нет.
в оппосте есть песочницы, где нода работает удаленно
for (let i = 1; i < arr.length; i++){}
arr.forEach((el, i) =>{if (i === 1) return;}
for (const [i, el] of arr.entries()){
if (i === 1) continue;
}
Проебался.
arr.forEach((el, i) =>{if (i === 0) return;}
for (const [i, el] of arr.entries()){
if (i === 0) continue;
}
Тут все осложняется тем, что код внутри файла весь является FunctionExpression, так вот мне надо взять те функции, которые не глубже 1 уровня вложенности.
1 пик так код начинается.
2 пик пример зеленным обведенно, то что он должен считать, а красным нет.
>Тут все осложняется тем, что код внутри файла весь является FunctionExpression
Я тут тупо высказался, имел ввиду, что у всех функций parent имеет тип FunctionExpression.
Экспешен так назван не просто так, а потому что он представляет собой исключительное и неожиданное поведение программы в рантайме. То, что тебе с сервера пришел ответ "пользователь не авторизован, перезайдите" или "данные введены неверно" или даже "ошибка сервера" - это не неожиданное и не исключительное поведение, это самый обычный на 100% предсказуемый флоу, который нужно обрабатывать наравне с успешными ответами. И использовать для работы с таким флоу экспешны - классический антипаттерн.
Для тебя проблемой является выделение 200 мб оперативы и пары ГБ на диске в 2022?
Значит тебе надо сделать условие, по которому блок кода { } будет считаться за корневой и проверять отсутствие FunctionExpression до него
Условие типа "ObjectExpression, который находится во втором аргументе FunctionExpression, которое находится в аргументе ReturnStatement, которое находится в теле FunctionExpression, которое стоит во втором аргументе FunctionExpression, у которого callee == sap.ui.define"
Что значит "запустить", запустить где? Если ты собрался просто сервить свое реакт приложение в обычных html/js/css файлах и собирать его локально, то в самом простом виде это делается через условные две команды yarn build && scp build/* my.server.com:/server/public/directory, никакой ноды на сервере не требуется.
Можно мне ликбез по сборке фронта? Я вроде как ковырялся с вебпаком и ярном, но что-то недопонял.
То есть я локально собираю через ярн и вебпак себе весь проект в бандл?
А бандл это что? Один большой .js? Я уже его подключаю к корневой html? И потом шлю хтмл + бандл-js на сервак раздаваться?
Я правильно понял? Где это можно почитать поподробнее, но не слишком?
Итак, сделал что-то типа валидации формы, подскажите, примерно так и делается или я слишком дохуя Джаваскрипт кода создаю там, где можно сделать проще?
Нет, только порядок
Привет. А где-то может есть mind-карта с Java-core. Чтобы изучать и повторять его. Мне кажется визуально намного проще будет восстанавливать в голове информацию, которую давно не использовал, а не перечитывать learn js
JS-кор, сорян
1. для отправки формы button type submit лучше и отслеживать событие submit на самой форме, у тебя сейчас всё ломается, если нажать enter внутри текстового поля
2. на элементы формы можно вешать атрибут required вместо того, чтобы вручную проверять, заполнены ли поля
3. для скрытия алерта на инпуте лучше событие change отслеживай, а не click
4. лучше textContent, а не innerHTML
5. код выглядит как говно, форма цвета поноса, ещё и жёстко заданная ширина в css, из-за которой появляется скроллинг
на счёт того, не слишком ли дохуя кода, я хз, я знаю только yup для удобной валидации полей формы, но в твоём случае он не нужен
Тебе нужно почитать не по сборке фронта, а по тому, что такое html-файлы и как в них вдруг появляются жс и стили из других файлов.
при нажатии на Ентер я попадаю куда-то где написан текст
>Referred from Pen ExwwEBJ
>What happened?
>A link in this Pen has a missing `href` value, or this Pen is trying to change the document.location more details
>Take heart, you can just go back. Refresh the Pen to return to the previous page.
А хотелось бы чтоб имя добавилось при нажатии на ентер
Щас страницы весят оч много и никого не парит
да, наверно надо. не посоветуешь статью?
>что такое html-файлы
ну в моем представлении html это некая форма сериализации внутренних объектов браузера.
>и как в них вдруг появляются жс и стили из других файлов.
даже догадок нету честно говоря.
А я чё? Я даже и не рассчитывал ни на какие подарки. В январе 2021 года какой-то альфач Чед Ерохин олд строитель выиграл профессию фронтед-разработчик. Он тупо 16 часов без перерыва хуячил очки в битве и наебав всю систему угнал приз за несколько суток до финальной битвы. Сейчас я думаю также будет, какой-нибудь Чед Ерохин выиграет. Но уже не профессию, а так интенсив базовый по штмл, ка эс эс
Вот делаю сейчас библиотеку компонентов, есть кнопка, в которой проверяются пропсы ифами 9 раз. При каждом пуке у меня кнопки ререндерятся, эти ифы на каждый рендер проверяются 9 раз, при этом всю кнопку целиком в useMemo не засунешь, потому что чилдрены все равно игнорят мемоизацию. Думал сами ифы добавить в useMemo, но нужно ли оно? Понимаю что преждевременной оптимизацией занимаюсь, вроде бы в самом компоненте нет дорогих вычислений, но на будущее не знаю сценариев использования
>Как понять, что нужно мемоизировать в реакте, а что нет?
Официальная документация вполне доходчиво отвечает на этот вопрос
Какую ты там логику в кнопку напихал, что у тебя там 9 ифов в простой кнопке? Да и в любом случае ифы недорогие, успокойся.
>При каждом пуке у меня кнопки ререндерятся
>чилдрены все равно игнорят мемоизацию
Ну, это либо проблема чилдренов, пусть сами мемоизируются. Либо можешь игнорировать изменения чилдренов (второй аргумент React.memo), хотя это как-то тупо.
Нихуя не доходчиво, через жопу пук среньк написано. Например если в массиве зависимостей будет приниматься другой реакт элемент, что этот useMemo будет делать? Почему чилдрен это новый объект, а любой реакт компонент в пропсах не новый? Написано там? А вот и саси жопу
html файл - это просто текст. В этом тексте могут быть директивы вроде "метнись дерни мне скриптов/стилей по такому адресу". И когда браузер, парсящий html-файл, натыкается на эту директиву, он идет и дергает указанные файлы. Больше там ничего нет, никакой магии. Поэтому весь твой сайт может в теории лежать в одной папке, без единой строчки кода на сервере. Просто собери html/js/css файлы и отдавай их любому желающему.
Челикс, ты какой-то бессвязный бред несёшь, иди почитай про джаваскрипт что ли. Что такое объекты и ссылки, например.
>>46107
Ну вот например, есть компонент <Comp />
туда я передаю <Comp number={10}>10</Comp>
Почему memo может мемоизировать пропс 10, но не может мемоизировать children 10? Почему во втором случае 10 !== 10? Во что превращается эта строка 10 при передаче её как children? Почему бы тогда не забить на children и не передавать их в виде еще одних пропсов?
Даже если в консоль вывести props.children это просто строка же будет, я бы еще понял, если бы у нас в children передавался объект, создаваемый функцией без мемоизации, но почему он даже по дефолту чилдрены игнорит?
>>46120
Т.е. я так понял memo работает таким образом, что оно вообще нигде не хранит значение, а просто сравнивает ссылки? И будет работать только если мы мемоизировали предварительно пропсы либо использовали какие-то константы за пределами компонентов? Но тогда опять получается, что мемоизировать мы должны были бы все что передаём в пропсы, а это не так
>Почему чилдрен это новый объект, а любой реакт компонент в пропсах не новый?
Потому, что:
А) Ты не знаешь как работает ванильный JS (ссылки в частности)
Б) Ты не знаешь, как работают модули вебпака
В) Ты не знаешь, что такое реакт компонент.
Мемоизация тут вообще ни причём.
надо ее превратить именно в цифру чтобы к ней прибавить другую?
>Там нормисов-то почти нет
А кто там в телеге академии? Хекки и титаны кодинга и одиночества? Ну тогда большой респект им, потому что с виду нормальные можно сказать Ерохины.
Хуилки
https://codesandbox.io/s/confident-mountain-0d7rn?file=/src/App.js
Функция Child вызывается только один раз. Про что ты вообще, что у тебя там не мемоизируется? Код бы хотя бы свой показал.
Спасибо, я вообще забыл о том, что children не мемоизируется если это реакт компонент, а не просто потому что это чилдрен, пиздец блядь, вот так учишь учишь все это говно, устраиваешься на работу и все равно забываешь к хуям собачьим
Да я про активных серунов, коих штук 20 максимум, остальные просто висят или это новички, задающие вопросы и уходящие в закат.
https://github.com/tornadoweb/tornado/blob/2047e7ae3c825bf52dad10cc8402d09e11091bc1/demos/chat/static/chat.js#L102
(лень разбираться подымать запускать тыкать, спрошу анона)
они JSON.parse не разглядели или он не везде есть или там жсон инвалидный?
Потому что говнокод
>Copyright 2009 FriendFeed
Мне кажется, что на тот момент далеко не во всех браузерах был встроенный JSON-парсер.
Спасибо, я так и подумал, но зачем-то все равно так написал тогда. Сейчас поправил
лютый
Где ты нашёл букву e?
читал,но нихрена не понял.
это типа херня подразумевает,что она определяет класс события(мышь,клава),а потом к ней навешиваю методы типа e.target?
Пиздуй читать курс вкатуна на том же MDN. Ты блять даже метод от свойства отличить не можешь, куда ты лезешь?
Поддвачну
Ну хуй знает. В аксиосе по дефолту все что 400 и выше выбрасывает ошибку. А что мешает типизировать ошибки, кстати? И что в свою очередь мешает наоборот вообще не использовать Error в js а тупо возвращать объект типа { error: true, ... } ? Где грань? Приведи пример ситуации, когда в жс-коде допустимо выбросить исключение.
>>45380
>Норм, если ты обертку над fetch делаешь для дальнейшего переиспользования. Если у тебя такое говно втречается повсеместно, то лучше используй axios.
Что мешает сразу использовать axios?
Бамп
Не пробовал читать курс дискретной математики, не умея при этом в арифметику?
> не понял.
Чего ты ожидаешь понять если у тебя нет базовых знаний алфавита?
>Ну хуй знает. В аксиосе по дефолту все что 400 и выше выбрасывает ошибку
И? Аксиос та еще говнолиба.
>А что мешает типизировать ошибки, кстати
Отсутствие болезни конпелятора головного мозга, я думаю.
>Где грань? Приведи пример ситуации, когда в жс-коде допустимо выбросить исключение.
Рантайм экспешн означает, что дальше выполнение программы продолжить невозможно никаким образом, потому что она находится в неопределенном состоянии. В таких случаях и выбрасывать, но обычно 99% имеющих смысл эксепшенов выбрасываются за тебя на уровне языка, а если ты сам пишешь throw чаще условного раза в полгода, то скорее всего ты что-то делаешь не так.
>Выкидываешь ошибки по всей приложухе
>На верхнем уровне отлавливаешь и обрабатываешь
И в чем я не прав?
> >А что мешает типизировать ошибки, кстати
> Отсутствие болезни конпелятора головного мозга, я думаю.
Мор лайк мешает то, что throwнуть можно всё, что угодно, в том числе в тайпскрипте никаких ограничений на это нельзя повесить. Нельзя поймать конкретный тип. Вмегда ловишь unknown и проверяешь потом в рантайме, что это такое ты поймал.
> Рантайм экспешн означает, что дальше выполнение программы
Мор лайк выполнение функции, из которой выбросилось исключение, а не всей программы. Например, если ты передал ей какие-то всратые аргументы, на основе которых она не может вычислить адекватное значение. Конкретно исключения, связанные с плохими аргументами, я согласен, их ловить - это плохо.
Но когда нетворк реквест фейлится, то такое норм бросать и ловить, мне кажется. Вариант с тем, чтобы возвращать какой-то всратый объект по типу {error, value} - ну такое, вообще не лучше ни на сколько.
>Мор лайк выполнение функции, из которой выбросилось исключение, а не всей программы.
Функция в вакууме существует или где? Она часть программы, и если часть программы находится в неопределенном состоянии, то принципиально и вся программа находится в этом состоянии. И единственный способ это решить - это ресетнуть состояние до известного: либо до состояния "программе пизда, сворачивайтесь"(unhandled exception, т.е краш), либо до состояния "стартуем заново с сейв поинта"(т.е try/catch)
>Но когда нетворк реквест фейлится, то такое норм бросать и ловить, мне кажется.
Норм это бросать и ловить потому что фейл нетворк реквеста - это полностью независящее от твоей программы событие, которое ты не можешь обработать никак, кроме "юзер, у тебя пизда интернету, иди чини". С ответом сервера это не сравнивается никаким образом.
Задача следующая. Есть объект, реализующий symbol.iterator(). По нему реализовано итерирование через for...of.
Мне сказали сделать через lodash/some.
Проблема:
Лодаш мгновенно шлет меня нахуй с такими предложениями.
Т.е. код вида:
for(const entry of iterator)
if(filterfn(entry))
return true
Работает как часы. А код вида
some(iterator, filterfn)
Нет.
Есть ли способы заставить lodash работать с этим говном, или сказать техлиду что он охуел блять, верните мне С++ суки, я ебал блять, помогите что такой подход невозможен?
Не понимаю, зачем тебя могли попросить написать именно через lodash/some, если лодаш не умеет работать с es6 iterables, то есть если всё равно надо преобразовывать iterable в настоящий массив, то почему не написать [...iterable].some(filterFunction)?
>>46545
>>46548
Спасибо!
Почему именно так? Жесткий кодстайл. Иными словами - я в душе не ебу.
Алсо, вот за что мне не нравится JS - это куча тонкостей которые надо знать. Вот почему Array.from не сработал, а деструктуризация - сработала? Array.from же вроде должен работать по итерируемым объектам? Или он его свойства по итогу и высрал, вместо перебора значений?
>вот за что мне не нравится JS - это куча тонкостей которые надо знать
Канеш. То ли дело в плюсах!
Может проблема в том, что кто-то пытается писать на языке, не изучив его? Жс простой как палка. У меня сыну 12 лет, он его два года назад за месяц буквально изучил, а сейчас во всю уже пишет себе прикладные утилиты, сайтики и калькуляторы для решения систем уравнений из домашних заданий. Ребенок! А у вас все время какие-то проблемы и оправдания собственной лени откоыть доку или хотя бы раз прочитать спецификацию.
>Жс простой как палка. У меня сыну 12 лет, он его два года назад за месяц буквально изучил, а сейчас во всю уже пишет себе прикладные утилиты, сайтики и калькуляторы для решения систем уравнений из домашних заданий
Аминь. Для того он изначально и делался.
Прост скачал эти линтеры, тыкнул контрл Альт Л и все, точек с запятой больше нет вообще. Это норма? я прост новичок
Не, на 26
Ну в JS они кое-где нужны, иначе код считает, что следующая строка продолжает текущую, но это не очень частый случай.
А еще есть всякие другие линтеры, где точку с запятой надо везде ставить
Вроде используют стандарт и рекоммендед обычно. Или ошибаюсь? Мне ментор указал на рекоммендед
Блять, в пизду все.
Точно помню что вчера этот вариант пробовал и по итогу результата не получил. Толи я ебанулся, толи я не знаю.
>>46561
>Канеш. То ли дело в плюсах!
Неиронично - плюсы мне кажутся проще. Возможно дело опыта.
>Может проблема в том, что кто-то пытается писать на языке, не изучив его?
Когда тебе ставят условие "Либо пиздуй писать на JS, либо иди нахуй" и не дают нормально времени на изучение - это конечно проблема. Сука, добью кандидатскую и съебу из аспы насрав научруку на стол.
theme ниоткуда не импортируется вообще, что за колдовство там в стайлед компонентах происходит? А если я сменю объект темы в провайдере тем, он тоже его обновит на лету? Или уже хуй сосну? Проверять долго
Т.е. вот то, что вы на картинке видите - валидно, оно работает в рантайме и типизация проверяется, при том что этого theme объекта просто нигде нет в файле, ни импорта, ни аргумента, нихуя. Сама функция используется внутри стайледов, но туда не передается никакой аргумент (во всяком случае явно), только вызывается функция с пропсами, которые не относятся к теме
Как передавать пропсы через ссылки в react-router? Допустим у меня есть компонент со списком фильмов (айди + название), и я хочу, кликнув по элементу списка переходить на страницу, в которой будет айди и название фильма, которые возьмутся из компонента со списком. Стейт менеджер подключать не хочу.
Учи реакт роутер чтобы не быть баттхертом, там из параметров строки можно дергать параметры, не помню как, но как-то очень просто, в доке у них это 100% есть
class Govno extends EventTarget{}
useParams
Советую начать с прочтения оппоста.
Я думал 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)); , но выглядит оче всрато, может лучше как-то можно?
Вот у тебя есть 16 вариантов серого цвета, и как их все назвать? Один из них это цвет тени в обводке, другой на пол тона ярче и это текст заголовка на странице, вот я и ебусь поэтому сижу. Есть конечно ультимейт вариант, это проименовать всё по ролям. Т.е. просто один большой объект в котором каждая сущность проименована и разбита на группы, тогда там даже цвета могут дублироваться, но у всего будет своя роль, но это может стать чем-то монструозным в итоге, будет 40 цветов и 1500 ролей
Ребят поясните гуманитарию
Вот в благославенном начале нулевых сайты на ХТМЛ верстали и сквозь слезы ебались с ксс
Щас везде на слуху джаваскрипт. Но это же блядь прогроммирование а не верстка. Зонды свои анальные и говноанимации прогроммируете небось.
А верстают на чем щас? До сих пор ручками маргины паддинги свои ебаные расставляют в перерывах от жаваскрипта или конструкторы завезли наконец то?
Пчел, сейчас 99,99% страниц в интернетах сгенерированы программного. От новостных лент и блогов заканчивая мейлачем
Т.е фронтэндеры вручную не верстают уже а юзают чет типа движков7 А то я просто не представлял как можно совмещать настолько разнополушарные задачи
>А верстают на чем щас?
На том же хатиэмеле, но только в виде шаблонизаторов, например, ejs, jsx, vue sfc
Обидно за державу что просрали кириллицу в синтаксисе и описательный русский как язык кибернетики. Прочитал щас статью википедии про реакт - она сама как машинным переводом выполнена.
Верстают вручную, но отдельные части страницы (компоненты) и при этом часто ещё на основе каких-то готовых фреймворков, а потом эти компоненты программно собираются в страницу. Но вообще до сих пор есть конструкторы, в которых можно делать шаблоны для страниц, например Tilda.
И всё в реакт пихают, я правильно понял? Ну теперь понятно почему интернет так лагать стал в последние лет 8.
Надеюсь что физическое уничтожение офисов и акционеров фейсбука с гуглом пластиковыми бомбами и возврат к статичным сайтам чтоб браузер снова сьедал по 5 мегабайт за вкладку.
База.
>До сих пор ручками маргины паддинги свои ебаные расставляют в перерывах от жаваскрипта или конструкторы завезли наконец то?
Конструкторы есть, но они пока говно, вот из жопы говно.
Сейчас верстают как и раньше, только без таблиц и флоатов с нормальными сетками и особенно важно - адаптивно верстают.
Ну а ебаться с ксс и плакать не сильно надо, есть scss, есть сборщики, Pug, облегчающий разметку. Всякие там методологии есть, ксс фреймворки, UI-киты. На UX много внимания стало. Короче смотря что за контора пишет сайт и для чего оно ей надо, ну и сколько плотят разрабам.
Могу решить увеличивая min-width, но хочется через width, наверное у меня что-то не так с флексами?
https://jsfiddle.net/5vjcaLo7/
Вот, спустя несколько нажатий, 100 пикселей к ширине уже не прибавляется.
Также нужно, чтобы item-ы оставались в одной строке и не переносились, поэтому использую флекс.
p.s. я джун если что
>возврат к статичным сайтам
Нахуй не нужно. Не умеешь верстать - учись, адаптивная графика там, хуе-мое.
>Пчел
>спок
Ты опять выходишь на связь, не умеющий гуглить, не знающий английский, неосилятор-зумер с погонялом fonящий?
Пользуйся сайтами с открытым исходным кодом и без зондов. В чём проблема? Тут же как и с любым софтом.
А хуй свой у пользователя не хочешь попросить отсосать? Сделай нормальный интерфейс: если несколько хуёвин надо ввести, то и сделай так, чтобы было несколько текстовых инпутов.
Так там смысл в том, что в массиве может быть от 0 до десятка строк из 1-2 слов. Функционал чем то похож на прикрепление тегов.
Да точно типовая хуита, скажите как называется или дайте ссылку.
Ну в смысле епта. Берешь инпут. В инпут юзер вводит 1 строку (например 1 тег). Потом делаешь кнопку "+" которая добавляет ещё один инпут. И таким образом юзер хуярит сколько ему надо тегов.
Да, точно. Дополнительное поле, вызываемое кнопкой-плюсиком.
Спасибо, именно то чего я и хотел.
>Сектант, спок. Кстати джаваскриптеры - как вы сами к зондам относитесь собирающими каждый пук с сайта ваш?
Причём здесь джаваскрипт? Без настроенных корсов-хуёрсов браузер не позволит эти пуки куда-то отправить.
Я начало посмотрел, не верится что-то особо.
Возбудился от твоей истории, ИДЭ скачивается, щас вкатываться начну.
У него какая-то странная манера повествования, будто он под чем-то. Напоминает какого-то бизнес-тренера. Все эти побасенки про дефицит начинающих неумех уже даже не смешны.
Норм список нужной хуйни?
Делаешь пандорический захват, лифтишь в монаду, потом строишь рекурсивную схему (здесь подойдёт зигохистоморфный препроморфизм) как монадический трансформер из категории эндофункторов, и метациклически вычисляешь результат. Любой второкурсник справится. А если делать на анафорических лямбдах — так задачка вообще на пять минут.
> это куча тонкостей которые надо знать
Это классика. От бомбяжа до шуток над новичками один шаг, как говорится.
Шапка устврела + там есть дерьмовые советы (вроде изучения верстки по хтмлакадемии)
>Шапка устврела
Мнение вкатыша более актально.
> там есть дерьмовые советы
?
>вроде изучения верстки по хтмлакадемии
Вообще не понял чем тебя хмтлакадемия не угодила.
>чем тебя хмтлакадемия не угодила
Не раз встречал мнение, что вся эта семантичность, доступность и прочие атрибуты чистой верстки не нужны, отнимают время и мешают.
Но я считаю это полезным, и адаптив у них хорошо сделан. Не понравились разбивки по времени для курсов по жс, где сложному курсу дали столько же времени, чем более простому первому уровню, хотя там очень много затрагивается, и MVP, и паттерны, и принцип SPA. А в курс по реакту еще и тайпскрипт с первых модулей и до конца завезли, жалею, что прошлый поток не пошел
>Не раз встречал мнение, что вся эта семантичность, доступность и прочие атрибуты чистой верстки не нужны, отнимают время и мешают.
Конечно говнокодеру, который на бутсрапе всю жизнь расставлял <div class="header row-1 column-2"> это отнимает время и мешает.
MDN, лол. Там хотя бы сразу говорят, что всякие флоаты и таблицы - удел минувших дней и посвящают не больше одной главы на то, как оно там было. А про гриды и флексы подробно рассказывают. В академии тебя сразу заствляют верстать говно на флоатах и позициях.
Одно не заменяет другого. Заплатить какое-то копьё и за месяц пройти всю верстку - имхо сделка заебись
Ничего там не заставляют, просто показывают, как это работает с припиской, что сейчас редко где нужно. Гридам и флексам там дохуя материала посвящено.
В академии только в тренажёрах есть какое-то упражнение, где тебя ознакамливают с флоатами. А в их интенсивах уже года так с 2017 не заставляют верстать на флоатах. Да, раньше Першин учил на флоатах хреначить, но то было в 2016 году. Теперь у них флексы и гриды.
Тем, что совет смотреть 50 часов видосов по верстке - это самое уебанское, что можно только предложить. Я реально не знаю что может быть более ебанутым в плане изучения.
Реакт это библиотека а не фреймворк, поэтому можно подключать точечно и использовать не на всех страницах сайта. В отличии от ангуляра, например, с ним у тебя все страницы строятся фреймворком, при этом ты можешь сразу и реакт в нём использовать.
Есть у меня несколько строк document.querySelector('ххх')?.value; с разными селекторами.
Все, кроме одного, возвращают undefined, а один возвращает текст. Как максимально коротко сохранить в переменную текст, отбросив все undefined?
Понятно, спасибо
const selectors = [“first”, “second”]
const text = selectors.find(document.querySelctor, document);
ASI
>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?
>>48375
Спасибо. Только он возвращает селектор, а не текст, но одну строчку дописать не проблема.
Нет, это же вообще простейшие вещи, осваиваются самостоятельно за неделю. Или ты потом в каждой сложной ситуации будешь себе коуча искать?
Нет, но ты можешь базовый интенсив выиграть в Новогоднем челендже академии. А в прошлый раз в Новогодней битве приз был профессия Фронтенд разработчик. Но времена настали тяжелые и приз стал намного намного намного меньше.
Всё, отбой, через cors-anywhere.herokuapp.com обошел.
Ввод тэгов это нерешенная проблема компьютерной науки. Лучше всего сделали стэковерфлоу, но там вроде на ванили и код выдрать сложно.
Если тэг переводить в див на вводе запятой то отваливается возможность бэкспейсить и выделить всё, если не переводить интерфейс становится неинтуитивным. Если привлекать кнопки то на каждый тег нужно перекинуть руки на мышь и помышевозить и вернуться на клавиатуру, что пиздец как неудобно.
Двач-помогач, срочная задача. Есть такая таблица в Google Sheets, надо написать скрипт к ней, чтобы данные сортировались по порядку возрастания во второй колонке(это я сделал), и чтобы удалялись все дубликаты, в которых есть одинаковые значения в третьей или четвертой колонке
new Set(...table indexes)
Вы видите копию треда, сохраненную 22 июля 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.