Это копия, сохраненная 11 мая 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Больше пары строк кода в посте или на скриншоте ведут в ад.
Для программирования на HTML https://codesandbox.io
Для Node.js с консолькой https://repl.it/languages/nodejs
Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Документация - https://developer.mozilla.org
Руководство для вката - https://github.com/acilsd/wrk-fet#javascript
Какой аналог angular elements есть в реакте?
Пидорнули с интервью после реализации бинарного поиска, в чем неправ?
Фидбек не дали, может тут кто поправит.
Не прав в том, что стал это реализовывать, а не спросил "нахуя и как часто у вас на работе приходится писать собственные алгоритмы поиска?".
Вроде что-то высрал, но результат не считается. Чяднт?
1) Зачем ты нагородил всю эту ебаторию с binSearch = {} и getResult(), что мешало сделать просто одну функцию?
2)
> let [left, mid, right] = [...]
Зачем ты приплел сюда деструктуризацию массива, вместо обычной инициализации через запятую?
3)
> mid = Math.round((right - left) / 2) + left
Херовато
Норм: mid = Math.floor((left + right) / 2)
4) Зачем ты возвращаешь объект { left, right, target } в случае находа? Это лишний бесполезный мусор. От функции поиска ждут что она вернет индекс найденного элемента.
Короче реально хуита
* на жс. Писать бинпоиск и вообще числомололки на джаваскрипте значит делать или личный проект, или хуйню. Вангую что собес ещё был в ООО "Рога и копыта"
>вообще числомололки на джаваскрипте
Числомолотилки на жс вполне можно оффлоадить на воркер или на GPU.
Нахуя оффлоадить числомолотилки, если они и так быстро работают? Разница с крестамит всего в 2-3 раза
Зато оно довольно глубокое и многуровневное на самом деле.
Ну я не буду палить контору, но топ 20 работодателей по версии хх
Я его даж упростил, для вкатунов жи.
Зато можно посмотреть как вкатун будет вертеться.
Я там в дисклеймере ж написал что оно нарочито ебаное.
Да можно, токма ЗОЧЕМ? ЖС - язык высокого уровня с кучей библиотек, а пишущий числомололку в 99% случаев на самом деле изобретает уже существующий велосипед, не имея к тому же для этого квалификации.
>>76877
Это двачую кстати. Для неудачных случаев там конечно и побольше бывает, но в целом жс - очень быстрый язык с хорошим JIT-компилятором. Получше той же джавы например, лол.
Я просто к тому что эээ, а чего в нём такого сложного? Даже особой всратости не вижу. Сляпать можно за пару часов. Мне пора менять работу?
>Ты подпивас?
Давно не пью пиво. Года с 18, наверное.
>Как связаны либы с макетом?
Тем, что можно нахуячить быстро без макетов, на одних только UI либах, не? Ты совсем тугой и упругий?
Это вопрос твоего умения оценивать кандидата. Сложного там ничего. Но одно твоё "за пару часов" уже говорит о многом.
Либо о том что у тебя под рукой есть типовой проект который ты скопипастишь. Либо о том что ты не умеешь оценивать задачи и не чуешь что лежит под поверхностью простого казалось бы вопроса.
Я например, не имея типового решения, только 3 часа делал архитектуру и моки. Что моков нет ты, например, заметил? Или делал бы без моков?
Короче тут суть не в забубенности задания, а в том что можно оценить подходы соискателя...
> быстро без макетов, на одних только UI либах, не?
Можно и без ui либ нахуячить быстро за ~50 строк CounterStrikeSource и че?
Чел...
Хочу все, связанное с формами в хтмл темплейте пиздолить. Имея там 1 модель.
Зачем мне это вот еще в тайпскрипте описывать?
Удебил. Сам о THREE.js подумал. Но это всё-таки немного извращение.
И вот где-то тут ты со своим покровительственным тоном идёшь нахуй, потому что рот ебал я с такими ЧСВшниками работать. Пара часов в данном случае - это фигура речи, означающая "ну не очень долго". Но ты главное продолжай оценивать подходы, вызвать у соискателя желание съездить тебе по ебалу за высокомерие - это всегда хорошая мысль.
Двач, сука. Двач невер ченджс.
Ангуляро-боярин в треде.
Положняк такой, что бОльшая часть смузихлебов сидит на реактивных формах.
Поясняю по рабоче-корестьянске.
Темплей драйвен - работают с данными напрямую.
Реактивные - делают под капотом данные иммутабельными. Ит эст объебаться сложнее.
Темплейт драйвен - проще если ты смотришь на мир от вида морды. Типа вот элемент вот его связанное значение.
Реактивные проще если ты в голове продумал вложенность элементов как модель.
>Зачем мне это вот еще в тайпскрипте описывать?
CСложные процедуры валидации изкаропки. В нормально написанных библиотеках ЮАЙ ненадо делать код который отрисовывает эрроры
Темплейты ты валидируешь навешивая на них директивы, и можно реально заураться в собственных ногах. В реактивгной форме ты передаешь массив функций валидаторов, которые могут быть асинхронные и возвращать ре-т проверки например с бэка.
Ну и как вишенка на торт
this.yobaForm.value
this.yobaForm.rawValue()
this.yobaForm.invalid
>. Но ты главное продолжай оценивать подходы, вызвать у соискателя желание съездить тебе по ебалу за высокомерие - это всегда хорошая мысль.
Заметь, и это тоже вполне себе проверка чела на адекватность.
Вот к примеру я тебе хотел от души раскрыть секреты мастерства, а ты сагрился как школота с двоча (oh wait~)
В общем, мы вам перезвоним.
А вкатунов ласково просимо писать как они видят эту задачку. Разложим за всю хурму.
Я хотел посмотреть, вижу мозгоебство, для вкатуна наверное сложно будет. сколько же может быть багов там
Да это же блядь первая функция подобных заданий.
Отсеять тех кто "Ой ну нафиг мозгоебство" и найти тех кто "Я явно не успею, но похер. Сделаю что смогу"
Лично я, когда такое вижу, прикидываю сколько времени я готов потратить на тех кто мне дает такое. Прошлый раз, к примеру, положил себе 2 дня. А бывало что и 4 часа, а бывало и неделю. Зависит что за контора и насколько мне самому было важно разобраться.
Так вот, оценить свои возможности и сделать исходя из них минимально рабочий результат это очень важный скилл.
Пасиба за ответ.
>Темплей драйвен - работают с данными напрямую.
>Реактивные - делают под капотом данные иммутабельными. Ит эст объебаться сложнее.
Нипонел. А какая нам от этого разница? Почему обьебаться сложнее?
>Реактивные проще если ты в голове продумал вложенность элементов как модель.
Нипонел(2). И там, и там модель во главе угла, не?
>CСложные процедуры валидации изкаропки. В нормально написанных библиотеках ЮАЙ ненадо делать код который отрисовывает эрроры
>
>Темплейты ты валидируешь навешивая на них директивы, и можно реально заураться в собственных ногах. В реактивгной форме ты передаешь массив функций валидаторов, которые могут быть асинхронные и возвращать ре-т проверки например с бэка.
Так и в директивах все тоже самое можно сделать, не?
В общем, я вижу, что да темплейт дривен немного урезан по коробочному ф-ционалу и сейчас все ебают реактивные. Но какой-то копипаст получается.
К чему ты мне это расписал вообще, я что у тебя на работу попросился или что?
А про
> "Я явно не успею, но похер. Сделаю что смогу"
Если ты так в жизни в целом думаешь то земля пухом.
> ласково просимо писать как они видят эту задачку.
Да нихуя она не простая, да.
Я вот недавно делал тествое на фулстака и охуел сколько времени уходит чтобы просто действительно архитектуру заложить, даже типовую и стандартную для себя. Дня два потритил. Конечно, начинаешь думать, "да сделаю как всегда, но может тут можно лучше" и на такой мелочи можно застрять на пол дня. Я так застрял на создании юнитофворк на пол дня, хотя, в принципе, боевое решение было у меня под рукой кста, все решения, которые я видел в инете - полное говно. на джаве только было норм, но мне стало лень его адаптировать
Ну и по задаче, такую задачу надо давать бекендеру. Ибо там больше сложности в том как построить работу с данными, изменения, историю, отмены, вот это все. Туда что-то типа евент сорсинга должно подойти кста. Разве это задача фронтов?
А если на фронте уже кушать модельки - то хуита.
Есть форма, где куча чекбоксов и дататаймов, при отправке формы у активных чекбоксов значение 'on', неактивные не отправляются, а у дат обычная строка, когда нужен ISO формат.
На бэке бд mssql, при получении идёт валидация жсона, т.е. чекбоксовые поля должны иметь значения 1/0 или true/false, а датавремя должно быть кастуемое в datetime тип.
Соответственно, сейчас всё это делаю перед отправкой, чтоб валидация проходила.
Или надо на бэке переписывать валидацию и там это делать?
Вы молодец и мы с удовольсвитем обсудим с вами зарплату и соцпакет =)
Не можно, а нужно. Это абсолютно нормально для сервера слать нахуй клиента, когда тот присылает какую-то невалидную дичь.
>Охуеть мастерство - КРУД нахуярить.
Спасибо за удиленное нашей компании время, мы вам дадим ответ до конца недели. В любом случае, надеемся что наше собеседование было вам полезным
>Нипонел. А какая нам от этого разница? Почему обьебаться сложнее?
Ну вон на примере типовго круда сверху. Твоя задача отсылать форму на бэк _только_ если данные содержательно менялись.
Т.е. было вася стало миша. Как ты это сделал бы иммутабельно и мутабельно?
>Нипонел(2). И там, и там модель во главе угла, не?
Ну как правило в реактивном стиле ты пишешь форму как она иерархически повторяет модель. В шаблнном мире ты можешь в качестве модели сунуть десяток моделей, потом будешь сводить их в одно отдельным метдодом.
>Так и в директивах все тоже самое можно сделать, не?
И тебе надо 28 раз написать ng g directive уложить их по папочкам
а потом еще в шаблоне ебливо писатть
<app-yoba adppDecimal, appNonZero, appNebo, appAlLat> при этом, лично я не уверен гарантирован ли порядок исполнения директив в ангуляре, и не будет ли каких нито безумных спецэффектов связанных с наличием других деректив.
{initialState,[ validator.Requared, validator.IsYoba]} в коде тс вроде как легче отследить и отдебажить.
>Но какой-то копипаст получается.
Да, супе ебано выходит но ты модешь сделать
constructor(private _fb:FormBuilder)
ну и далее побырикуу
_fb.Conttrol
_fb.Group
и так далее
Для меня самое удобное в этой залупе именно отрисовка эрроров внутри формы если форма невалидна ( что amgular material делает сам например) и киллерфича .value и .rawValue()
Не, я понимаю твою боль. И сам долго впитывал эти реативные формы. Особенно там есть совершенно ебаный механизм массивов который инициируется через анал. Но это надо несколько раз попотеть подумать, а потом уже как по маслу пойдет.
Эта хурма дает большое могущество когда у тебя сложная форма с изменением видимости в завичсимости от потока данных .
Кстати вот еще кейс, очень удобно делать в КОДЕ
this.yobaGroup.controls.yobaInput.disabled = true
гораздо пизже чем делать ебилион полей для темплеййта в стиле
isYobaInputDisabled
А когда делаешь очередной логин скрин с имейлом пасвордом
или "введите фио" то конечно реактивные формы не очень нужны
>Нипонел. А какая нам от этого разница? Почему обьебаться сложнее?
Ну вон на примере типовго круда сверху. Твоя задача отсылать форму на бэк _только_ если данные содержательно менялись.
Т.е. было вася стало миша. Как ты это сделал бы иммутабельно и мутабельно?
>Нипонел(2). И там, и там модель во главе угла, не?
Ну как правило в реактивном стиле ты пишешь форму как она иерархически повторяет модель. В шаблнном мире ты можешь в качестве модели сунуть десяток моделей, потом будешь сводить их в одно отдельным метдодом.
>Так и в директивах все тоже самое можно сделать, не?
И тебе надо 28 раз написать ng g directive уложить их по папочкам
а потом еще в шаблоне ебливо писатть
<app-yoba adppDecimal, appNonZero, appNebo, appAlLat> при этом, лично я не уверен гарантирован ли порядок исполнения директив в ангуляре, и не будет ли каких нито безумных спецэффектов связанных с наличием других деректив.
{initialState,[ validator.Requared, validator.IsYoba]} в коде тс вроде как легче отследить и отдебажить.
>Но какой-то копипаст получается.
Да, супе ебано выходит но ты модешь сделать
constructor(private _fb:FormBuilder)
ну и далее побырикуу
_fb.Conttrol
_fb.Group
и так далее
Для меня самое удобное в этой залупе именно отрисовка эрроров внутри формы если форма невалидна ( что amgular material делает сам например) и киллерфича .value и .rawValue()
Не, я понимаю твою боль. И сам долго впитывал эти реативные формы. Особенно там есть совершенно ебаный механизм массивов который инициируется через анал. Но это надо несколько раз попотеть подумать, а потом уже как по маслу пойдет.
Эта хурма дает большое могущество когда у тебя сложная форма с изменением видимости в завичсимости от потока данных .
Кстати вот еще кейс, очень удобно делать в КОДЕ
this.yobaGroup.controls.yobaInput.disabled = true
гораздо пизже чем делать ебилион полей для темплеййта в стиле
isYobaInputDisabled
А когда делаешь очередной логин скрин с имейлом пасвордом
или "введите фио" то конечно реактивные формы не очень нужны
А еще ты можешь писать динамический генератор форм. Где с темплейтами ты охуеешь инфа соточка, а с реактивными формами будешь красавчиком.
Верстатель лэндосов, плиз
>классы, декораторы, ДИРЕКТИВЫ, ПАЙПЫ В ВИДЕ КЛАССОВ, МАГИЧЕСКИЕ ОБСЕРВАБЛЫ, МАГИЧЕСКИЕ ДЕТЕКШН СТРАТЕГИИ И ЕЩЕ КУЧУ ХУЕТЫ
У вас - нет, вот вы и беситесь.
Сами по себе они функциональные, но так как они используются в ангуляре - кринж
Промис? Какой еще промис?
Ну да, я обещал, что сделаю эту фичу неделю назад, но мне было некогда, надо было попускать ангуляроблядков ибо онгуляр умер.
А пайпы я в своем бабушатнике через 5 лет только с такой ЗП поменять смогу. Может хватит даже декораторм заплатить - "хочу символ реакта на стенке нарисовать.
Ох ты блядь, какой ты клёвый. Окей вот тебе вопрос.
Есть область на экране, ну пусть будет див.
Твой юзер атомно шерудит мышкой.
Твоя задача каждые 300милисекунд делать 2 пакета кликов. Один для тех что были внутри дива один для всех остальных. И отсылать эти пакеты на 2 разных урл бекенда.
Внимательно слушаю про решение на промисах.
>Твоя задача отсылать форму на бэк _только_ если данные содержательно менялись.
На первом ангуляре у нас была ф-ция, которая сравнивала инит велью с измененным. Когда лень - просто по дети проперти.
А в чем тут реактивные помогут? Быстр опогуглил - все те же костыли. Что я упескаю.
И да, вспомнил, что вот эти вот this.form.patchValue бесили.
>Ну как правило в реактивном стиле ты пишешь форму как она иерархически повторяет модель. В шаблнном мире ты можешь в качестве модели сунуть десяток моделей, потом будешь сводить их в одно отдельным метдодом.
Ну блин, я не пони((((. Иерархически но ебну в rootModel.child.child в темплейте.
>Эта хурма дает большое могущество когда у тебя сложная форма с изменением видимости в завичсимости от потока данных .
Да тот же иф хайд будет в коде, а не в темплейте, не?
>this.yobaGroup.controls.yobaInput.disabled = true
>гораздо пизже чем делать ебилион полей для темплеййта в стиле
>isYobaInputDisabled
disabled = isInputDisabled(input)
>>77059
>А еще ты можешь писать динамический генератор форм. Где с темплейтами ты охуеешь инфа соточка, а с реактивными формами будешь красавчиком.
Ну, как часто надо еба-динамические формы? Как правило все заканчивается макс циклом. Но может я вообще не понимаю что такое "динамические формы" в таком контексте.
Но ладно, я тебя услышал, буду пробовать в реактивные, если будет проект на ангуляре.
По остальной базе что скажешь?
1. OnPush - всегда?
2. Сторы не нужны?
В консоли:
Loading failed for the <script> with source “file:///js/chunk-vendors.a5edaf2d.js”. index.html:1:1
Loading failed for the <script> with source “file:///js/app.4895ad3e.js”.
Странно, на лисе по какой-то пиюричина опасити 0.05 появился. В девелопер лисе и Гугле нету. Юзерчтиои не шатал.
Вот с ним и ебись. Насколько я понял оно сделано поверх вебпака
Опасити 0.05 на всех фотках.
Выключи NSFW режим.
Как реализуется динамическая подгрузка элементов на странице? Вот например есть твиттер, когда на него заходишь, левая менюха подгружается сразу (она статична), в середине лента с твитами и справа плашки с фильтрами подгружаются постепенно и асинхронно (они динамичные), пока они подгружаются страница не лочится, твиты подгружаются порционно.
Пилю веб-приложение, данные тоже нужно отрисовывать в виде ленты динамичной, но у меня пока получилось, что запрос с бэка прилетел, но пока лента вся не прогрузится, страница лочится. Как сделать динамическую подгрузку? Надо между отрисовкой каждого элемента ленты сетТаймаут добавлять?
Апи должен уметь в пвгинацию. Отправляешь на него по скроллу окно фильтра. Подгружаешь по событьке (например по слайдеру) следующие n постов
У тебя есть модель данных из которых рендерится любое отображение этих данных. Соответственно подгружаешь данные для динамических элементов и на них рендеришь новое отображение.
Сорян за ответ в стиле "Типикал ру комунити" но онпуш и сторы нужны там где нужны и не нужны там где не нужны. Тут надо не торопиться а посидеть и подумать.
С он вполне ок если ты оперируешь такой абстракцией как сессия или надо хранить рез-т работы пользователя.
Например марьвана из бухгалтерии заполняет форму на 40 полей. Потом идёт пить чай. Поскольку ты подумал о корпоративной безопасности, ты через 3 минуты без активностей нахер разлогинил марьванну, а поля формы которые она нашлепала, скинул в стор.
Марьивана приходи. Через час после чая, логиниться и...продолжает работу с того места где окончила. И думает какой мол молодец кто эту прогу писал...
Всю дорогу онпуш хороший план с точки зрения перформанса и не очень с точки зрения поддержки прилады. Надо хорошо понимать что где может отвалиться. Я сходу не помню и надо по звучать, но кажется там пайп asynk отваливается и ещё что-то
Вот вроде норм статья по онпушам
https://habr.com/ru/company/infopulse/blog/358860/
Можно, но нельзя. Ну прикинь каждая криворукая макака будет в твою оперативку все подгружать потому что ей так проще.
А если у человека трафик платный? А если он с мобилы капчует, у которой из 3х гигов рама полтора занято системой и хромом?
И сколько у тебя может быть этого всего? 2к постов с картинками, чтоб морду разорвало нахер?
2 жсона (пока) по 200 элементов (потоки nifi), обёрнуты в 2 таба, между ними переключаешься, и вот когда страницу загружаешь, хочу сделать, чтоб карточка каждого потока подгружалась динамичечки, а не по очереди и сразу все
Еблан, ты нахуя файл на диске открываешь? Иди прочитай первую страницу лерн джаваскрипт для начала.
Так вон реактеры везде сторы пихают и говорят, что без стора - говнокод.
И я имел ввиду редаксы и производные, если вдруг недопонимание.
Для марьиванны за чайком мы просто попап логин выебывали и она могла залогинится обратно и продолжить форму вбивать.
>Так вон реактеры везде сторы пихают и говорят, что без стора - говнокод.
Ну может они в массе не умеют кодить?
Я вот не понимаю зачем стор, когда есть обсы и сабжекты.
>Я вот не понимаю зачем стор, когда есть обсы и сабжекты.
Реакт не играет хорошо с push-based стримами, ибо у того свой скедулер под капотом. Реакт это про пулл, а не пуш.
>Я вот не понимаю зачем стор, когда есть обсы и сабжекты.
Ну и да, держать состояние в обзервабл тот еще пиздец. Плавали, знаем. Хотя если вам зашло, то збс.
1) Библиотека reselect используется в современном продакшне на реакте и как часто?
2) Как часто используется Context API?
> ибо у того свой скедулер под капотом.
Фига. И при этом реактопетухи вопять что не фреймворк? твёрдо и чётко!
Конечно. Еще посмотри про C, C++, asm , Rust, Go, PHP, Python тоже для общего развития.
Для начала SICP закури, без него вход в JS закрыт.
Лучше напиши что-нибудь. Похуй на каком ЯП. Всяко больше пользы, чем видосики смотреть.
Ну как пиздец. По моему идея в том чтоб не держать состояние. Нк или тебе, RXJS даёт subject и behaviour subject.
Реальные проблемы бывают на стыке подходов, когда кто-то че-то недопонял и прикрутил сбоку стейт(не как либу а концептуально) на полшишечки.
Я за себя так скажу. Когда я работал под руководством крутого архитектора который сразу заложил что прилад будет стейтлесс, все было чики чики.
Когда я сам чёт хуеверчу, я очень часто срываюсь на свинособачий нахрюк потому что в моменте мне так проще.
Поэтому когда я говорю что ряктоскам не умеет в реактивное погромирование я сужу по сути по своему опыту.
Просто у меня есть смелость признать что я слабоват, а они визжат про некат лэвэл синкинг... нпхрюкивая свои ссаные хуки
Рыкса хороша, но мы пересели на кукан most/core. Оставили его только для декларативной обработки ивентов. Стейт сбоку есть, но он pull-based. Сейчас стало кайфово, никаких хитровыебанных комбайнов на дюжину строк и визЛейтестФром с вечными затыками в самый неудобной момент. Вообще, сделал для себя вывод, что концепцию стримов интуитивно понять многим гораздо легче, чем научиться грамотно с ними работать. Грамотно - это хотя бы без неожиданных затыков в стримах.
>>77506
Сага же на генераторах, не? Если да, то ей духовно ближе IxJS, там все pull-based.
>Рыкса хороша, но мы пересели на кукан most/core.
А вот вы когда с кукана на кукан прыгаете вы какие то исследования проводите?
Вот к примеру rxjs 1 зависимость от tslib, этот ваш кор зависит от 4 пакетов.
>pull-based
Что тут имеется ввиду? Не работал с most/core, немного с Рх.
Тоесть ты сам должен запросит ьу стора данные? Ну и стор по-сути только стор без всяких ивентов?
У потоков данных есть 2 подхода. Пул и пуш бейсед.
Пул бэйсед это я к тебе подхожу и спрашиваю "пчёл сколько время"
Пуш это ты стоишь на площади и орёшь "эй псы, настало полвторого" кто то тебя слушает кому то похер
>Пул бэйсед это я к тебе подхожу и спрашиваю "пчёл сколько время"
Ну посути, просто ГЕТ. Почему это тогда поток, просто карент стейт, не?
Потому что меняется во времени?
В одном случае конкретно ты определяешь в какой момент времени ты этот карент стейт получаешь. В другом случае ты просто сидишь свесив ножки и ждёшь когда тебе стейт пришлют.
БТВ хорошая заметка: https://github.com/funkia/hareactive#now
>>77575
>А вот вы когда с кукана на кукан прыгаете вы какие то исследования проводите?
Перформит лучше, меньше стандартная либа.
Я имел в виду какая у вас процедура пересаживания на другой кукан? Мыж серьезные судари, а не пориджи. Выьоры должны быть обоснованы.
>Я имел в виду какая у вас процедура пересаживания на другой кукан?
Ретроспективная оценка опыта работы с технологией на предыдущих проектах.
Далее по критериям, как я описал:
- перф;
- дх;
- э-ко-ко-система, поддержка, матурность проекта.
Коллективно решаем, оставляем технологию или рассматриваем альтернативу. В конце техлид конфермит.
В общем-то, в моем случае, мост нормальный. Но,
- тестового скедулера нет искаропки. Пришлось брать сторонний, но от корного контрибьютора;
- вывод типов иногда хромает.
1 видел, но не так чтобы часто
2 используется часто, когда подъедет https://github.com/reactjs/rfcs/pull/119
Есть смысл посмотреть CS курс какой-нибудь, а не прыгать по языкам.
АХ ТЫ СОДОМИТ
Это пиздец.
Никогда не пиши транслит и никогда не пиши var.
Если кроме транслита ничего не можешь, пиши test, test1, test2, ...test999
Ты, блядь, троллишь тут, или что?
На, почитай:
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
Хуй будешь?
Похоже не зря я дальше фора не читал, пожалуй и не буду.
Питон охуенный язык. Позволяет писать в естественно-императивном стиле без задней мысли. Проблемо-ориентированный язык.
1. Питонист не будет писать циклы через нативный for
2. Питонист будет объявлять ключи объекта через кавычки
Чтобы я в качестве параметра ввёл часть названия города и сервер мне вернул названия городов с совпадающим введённым текстом.
Желательно, чтобы работало с русским вводом
Для петпрожектов - нет, так как слишком громоздко тащить этот комбайн. А за пределами петпрожектов никто всерьёз монгу не использует.
https://youtu.be/iobi3GEw6lY?t=2479
>ангуляром уже года три не пользуются
>везде реакт
Че за хуйню несешь? Ангуляр дохуя где используется
Вот и было начал использовать по неопытности, но теперь думаю перекатываться на постгрес, либо мускуль.
>>77935
Почитай
https://mongoosejs.com/
У нее есть узкая ниша применения для хранения данных, которые не имеют четкой структуры и для которых заранее схему/таблицу не напишешь. Например логи или ML. И то, во многих таких случаях с головой хватает JSON полей в каком-нибудь постгресе, где для них уже давно сделана нормальная поддержка с возможностью делать выборки, индексировать и т.д, дающая монге пососать. Но поскольку жопоскриптеры - это вредные невоспитанные дети, которые хотят просто чтобы было НИКАК У ВЗРОСЛЫХ, без оглядки на объективные плюсы и минусы или контекст задачи, то они схватили новое и модное и решили заменить им дидовое и старое. В итоге родилась очередная догма "монга - модный флекс, реляционные БД - кринж для дидов", рядом с догмами про ООП/ФП или тайпскрипт. Но сейчас хайп уже подумер, столкнувшись с суровой реальностью, и вряд ли кто-то всерьез будет монгу для обычного проекта защищать, когда рядом есть охуенный постгрес, разве что по незнению
>вряд ли кто-то всерьез будет монгу для обычного проекта защищать,
Пчел на монго построена целая экосистема приложений для диабетиков
А на джаве-то знаешь сколько приложений построено? Почему еще не перекатился?
Это потому что все годные девелоперы свалиливают с ангуляроболота
я хорошо в политиен?
ангуляр - топчик
Охуенчик.
В свое время я комплексовал бо не умею в монгу.
А теперь и не надо.
Еще бы такого с докером/микросервисами дождаться.
Ну у меня друг на спринг буте фуллстачил, в прошлом году ушел на дотнет чистым бэкендером, а вот сейчас на го пишет. Говорит джава вообще непригодна для бэка
>Говорит джава вообще непригодна для бэка
Почему? А го пригодный блядь? Урезанная отрыжка, да даже ответить сложно, С + С# + javascript / 100
Я думаю, го надо переждать. Тупо на хайпах вот такое вот "ГО заменил %платформанейм%" высираются.
>Посмотрел видео по HTML и JavaScript. Есть ли смысл посмотреть еще и Pascal, для общего развития, прежде чем штурмовать толстые книги по JavaScript?
А что скажете про C? А еще лучше Java? Что может в работе пригодиться?
Обязательно учи vbs, flash, activex, java applets. Это все вебе используется.
Абсолютно все языки могут пригодиться в работе, работа разная бывает.
Че ты мозги ебешь, распаляться смысла нет и для фронта нужно HTML5, CSS3 и JS.
В этом всем дохуя различных технологий, которые будут нужны работодателям.
HTML - не лишним будет Pug
CSS - строго рекомендуется еще освоить SASS, по желанию Tailwind, Bootstrap
JS - в дополнение обязательно React, к нему Redux или MobX, так же везде надо Typescript.
Этого тебе хватит на год загрузиится, если без рофлов. Хотя ты скорее всего зеленый и тупо не читаешь ответы.
Проще для понимания, джейсоны 1:1 джс обьекты и т.д., постгрес и мускул это отдельный мир. Если ты не понял, в последние 5 лет на фронте в тренде все, что проще и имеет низкую кривую обучения. Отсюда срякт, хуки и миллионы статей от вкатышей "что такое useState", "writing simple node + react app in 10 min" и т.д. Последние 2 года Редакс, который прост как пробка, уже оказывается сложный и пориджам сложно понять зачем есть разделения на экшны и редьюсеры и почему чистые функции это круто, им теперь нравится мобкс потому што "меньше кода надо писать", лел.
То же касается монги, базы данных нужны, учить постгрес никто не будет. Монга простая и справляется с большинством средних приложений.
Для того, что бы перехватывать запросы раз.
Для того, что бы сохранить все твое SPA на утройство клиента два.
Императивно:
Славик, сбегай за пивом.
Вася, помой руки перед едой.
Леша, иди делай уроки.
Декларативно:
Сычев, там прод упал.
ФункциАнально:
???
>Bootstrap
устарел морально, даже 5 версия
>в дополнение обязательно React
Нет, дурожочек. В дополнение обязательно англуяр и/или вью, что бы знать как работают нормальные фреймворки без ограничений и костылей.
>к нему Redux
проиграл с этого говнокодера
>везде надо Typescript
нет
Кто в чем не разбирается, монада ты лобковая?
Где не требуется тайпскрипт там не следует работать. Без тайпскрипта сейчас на жиэсера устраиваться, это как на вордпрес с жиквери.
Ангуляр/Вью это легаси для интернет-магазинов уже, все адекватные и новые продукты пишутся на Реакте. Ангуляр это Backbone современности. Просто не нужен со своими темплейтами и кучей нагроможденной логики, когда есть элегантные хуки и кастомизация.
TypeScript де-факто стандарт отрасли, без типов ни один нормальный проект сейчас писаться не будет.
На нативном драйвере, который уж изкаробки идёт с тайпскриптовскими типами. Плюс у гуся идёт расхождение с поддержкой фич свежей монги, что добавляет ещё оверхеда.
>>78272
Для оффлайн-фёрст экспиренса. Ну и для всяких фоновых тасок, которые надо за пределами основного потока делать, это же воркер.
А зачем их перехватывать?
>Для того, что бы сохранить все твое SPA на утройство клиента два.
Так и без воркеров это можно с помощью хедеров сделать.
>элегантные хуки
>Реакт
Проиграл.
>кастомизация
Ты имеешь в виду прикручивание костылями того, что должно быть в реакте изначаль? стили
>без типов ни один нормальный проект сейчас писаться не будет
Ты скозал?
>с помощью хедеров сделать
Нука, расскажи как из SPA мне приложение сделать с помощью хедеров?
>А зачем их перехватывать?
Ну самый частый кейс - когда в браузере открыты несколько вкладок и они через сокет подключены к серваку и слушают на получение уведомлений. Через вебворке можно без особой ебани без броадкаста по табам перехватывать все сокеты кроме одного. Еще часто используется как еще один слой кеширования помимо встроенного в браузер.
>Нахуй стили в таких фреймворках?
Согласен, можно ориентироваться на встроенные в браузер и юзерагент стили при разработке. А если серьезно, как блять ебланы цукерберга разрабатывая фреймворк для ВЕБа забыли добавить нормальную поддержку стилей? Почему какой-то азиат и сойбои с гугла додумались?
Какое приложение?
Браузерный кеш и так работает.
Раньше мы делали оффлайн апу без никаких воркеров.
Но сейчас пишут, что да, воркеры лучше.
Я не понял что ты имеешь ввиду. Я думал, ты хочешь какие-то дефолтные стили иметь. Типа встроенного бустрапа/матириала
Я хочу создавать компоненты используя стили с ограниченной областью видимости и/или css модули. Пчоему для этого мне нужно устанавливать хуеву тучу зависимостей? Почему во vue и angular это есть из коробки?
>Пчоему для этого мне нужно устанавливать хуеву тучу зависимостей?
Чё ты вообще несёшь, наркоман? Дефолтный конфиг вебпака поддерживает css модули изкаробки. И соответственно его поддерживают cra и nextjs.
>Почему во vue и angular это есть из коробки?
Хуй знает про ангуляр, но в вуе максимум уёбищная модульность, которая добавляет специфичность в конечный результат, и об этой МАГИИ тебе нужно знать заранее, взглядом в вуешаблоны ты об этом не догадаешься.
>Дефолтный конфиг вебпака поддерживает css модули изкаробки
Ты ебанулся? Дефолтный конфиг вебпака не поддерживает ничего, кроме чистого js.
>об этой МАГИИ тебе нужно знать заранее
Тебе в любом случае нужно знать, как работают css модули, никакой лишней магии во вуе нет.
>Пчоему для этого мне нужно устанавливать хуеву тучу зависимостей
Потому что ты долбоеб неосиливший shadow dom.
Отличное замечание, вот только в реакте нет нормального функционала для работы с shadow dom, лол. Я сомневаюсь, что в реакте вообще есть костыли по работе с веб компонентами.
Не подойдёт. Там нужно указывать country code, а я хочу доступ к городам всего мира
Потому что реакт это не полноценный фреймворк, а либа которая строит дерево UI как функцию от пропсов и стейта. Стили тут вообще мимо кассы. От даже к DOM отдельно прикручивается. А стили можно прикрутить любым из способов который нравится, я лично вообще предпочитаю дефолтный scss отдельно от всего.
Согласен, но даже тут реакт обосрался, не реализовав интеграцию с custom elements и тем самым shadow dom.
> ебланы цукерберга разрабатывая фреймворк
Это не фреймворк. Реакт - библиотека. Это прямо написано на сайте документации. И челикам из фейсбука это явно виднее.
> забыли добавить нормальную поддержку стилей?
Никто не мешает тебе собрать всё в вебпак и подключить нужные тебе плюшки для стилей. Вообще в create-react-app есть scoped - modules, почти как в vue или svelte. Жаль только что отдельный лоадер для этого, совместимый с вебпак 5 пока никто не придумал.
> Почему какой-то азиат и сойбои с гугла додумались?
Потому что азиат всё копирует с Реакта и пытается сделать это лучше, убрав огрехи реакта. Как пример: во Vue ререндер компонентов происходит только там, где действительно произошли изменения. Дочерние компоненты не затрагиваются, как в реакте. Те же scoped стили в Vue работают прекрасно, по сравнению с React. Во Vue 3 появился Composition API. Знаешь что это такое? Это блядские ХУКИ ИЗ РЕАКТА! Атрибуты key для списка Vue дерева, refs и т.д. и т.п. всё нагло спизжено, но сделано это с умом. Эван Ю молодец, это правда. Лучше учиться на чужих ошибках, чем на своих.
>Ты ебанулся? Дефолтный конфиг вебпака не поддерживает ничего, кроме чистого js.
npm init --force && npm install webpack webpack-cli --save-dev && npx webpack init test и любой вариант связанный с css поддерживает css модули без лишних конфигов.
>Тебе в любом случае нужно знать, как работают css модули, никакой лишней магии во вуе нет.
Ты блять даже не понимаешь, о чём я говорю. В вуе своя маняреализация css модулей, не имеющая отношения к css модулям.
>>78502
Так бейслайн рякта - ES5, а веб-компоненты и по сей день - минное поле совместимостей с браузерами.
https://twitter.com/rometools/status/1422616144763097091
https://twitter.com/buildsghost/status/1440365394137550860
Кто-то им пользовался вообще? Ну пусть переписывают, вообще похуй. Вон vite вроде тоже со своим компилятором на go работает значительно быстрее вебпака.
>В вуе своя маняреализация css модулей, не имеющая отношения к css модулям.
В чем отличии вьюшных css модулей от твоих "правильных"? Там даже тот-же лоудер используятся после вьюшного.
>npm init --force && npm install webpack webpack-cli --save-dev && npx webpack init test
Хватит маняврировать, ты покажи мне где на дефолтном конфиге есть поддержка чего-либо кроме обычно .js.
Так наоборот теперь солидный системный язык под капотом будет, а не дрисня что до этого.
Ее нет. Для этого нужен css-loader, вебпак не поддерживает из коробки ничего, кроме JS.
Так нахуя мне ты или другой анон пытаетесь доказать, что css модули поддерживаются реактом и вебпаком из коробки без установки дополнительных зависимостей?
Это не я, я вообще впервые из рид онли вылез
На ангуляре обычно продуктовые компании что-то делают, а им джуны чаще всего не нужны.
Тоже так подумал, спасибо за ответ.
Хочу примерно понять стоит искать работу сейчас или поучиться еще.
Стек: жс, хтмл\цсс, сасс, реакт (немножк)
Как быстро меня пидорнут с конторы, если я не смогу/очень долго буду делать заданный таск?
>create-react-app
Чел, в реакте есть нативная поддержка работы со стилями, по аналогии с vue или angular? Нет. Поэтому ты идешь нахуй, м свою поделку с 2к зависимостей захвати заодно.
От конторы зависит. С галеры в течении пары недель пизданут но там прямо совсем ебланом быть надо, в норм шараге могут пару месяцев потерпеть пока ты вольештся в воркфлоу, потом на третий месяц пидоранят.
>Какие самые частые таски у мидла?
Зависит от галеры. Может быть продвинутая верстка с анимациями, может - написание компонентов.
> а веб-компоненты и по сей день - минное поле совместимостей с браузерами.
Работают везде кроме IE
Причем здесь react-create-app к "дефолтному конфигу вебпака". Это совсем отдельный мутант с 1000 конфигураций и зависимостей внутри.
Чистый реакт это просто библиотека для UI. Стили это отдельная тема, не имеющая отношения к ней, которую нужно отдельно настраивать (вебпак НЕ поддерживает из коробки ничего). create-react-app это заранее подготовленный шаблон, который добавляет к реакту всякие фичи, чтобы "из коробки" можно было на нем писать современное приложение.
>>78657
Потому что на ангуляре либо легаси, либо большие энтерпрайз приложения где джунам не место. Плюс само по себе понятие "ангуляр джун" немножко смешное, т.к. грубо говоря если ты можешь продуктивно писать на ангуляре с использованием всех его возможостей, то ты уже не джун по скиллам.
>>78691
Это не библиотека, а отдельный язык, который компилируется в JavaScript.
Да, чем больше приложение, тем сильнее выгода от TS. Джуны часто не понимают зачем и что это, но типизация это большая отдельная тема в языках программирования. Статическая типизация ускоряет рефакторинг и предотвращает ряд ошибок еще на этапе написания кода. С опытом поймешь.
Володин, спок
Нет, я бы на вашем месте вообще отказался от битрикса на фронте. Слишком большой перформанс оверхед он добавляет.
640x360, 0:11
Неужели свою цмску писать если хочу использовать вью? Или есть другие варианты для этого?
Ну битрикс не только на фронте крутится, делай выводы.
Свою ЦМСку написать вообще не проблема, если бэкэндмакаки сделают круды.
Ты еблан? Во Vue нет нативной поддержки css-modules, если ты не создаёшь приложение, через vue-cli с помощью vue create. В vue create поддержка scoped стилей есть, но она также есть и в create react app. Поставь себе vue с зависимостями, накати вебпак с vue loader и сам посмотри. Фичи со стилями будут тогда, когда сам их пропишешь и настроишь в вебпаке.
Понял, спасибо
Пидорнут только если ты каждый следующий таск будешь делать не быстрее предыдущего.
От джуна никто не ждёт эффективной работы сразу, ждут роста эффективности.
Ну, у нас есбилд и роллап на проекте.
Тут на них натянули иконку и упаковали в пакет.
Так что трогал до того как он появился, всё заебись.
>Так что трогал до того как он появился, всё заебись
Чё там с пердолингом? Было что-то, что можно было сделать только в вебпаке, а у вас были затруднения?
>Не подойдёт. Там нужно указывать country code, а я хочу доступ к городам всего мира
Совсем тупой что ли? Запрашиваешь список стран. https://vk.com/dev/database.getCountries
Потом список городов каждой страны.
>>78520
>В украине работать не будет лол
Не хуй резолвить данные из стороннего сервера с клиента. Ты в любом публичном апи наткнешься на недоступность у кого-то, а так же на боттлнек в виде скорости доступа к серверу расположенного в другой стране.
Ну, вепбака вообще не было.
Когда надо было выбирать чем собирать проект все такие наперебой: "только не вебпак!". Так и порешали.
С d.ts какая-то фигня была – у роллапа два плагина для них и кажется у обоих есть какие-то фичи которых нет у другого.
С монорепой больше всего говна пожрали, но это скорее потому что на нпме сделали да из-за специфики проекта и инфраструктуры CI/CD.
Есть ваканскии на Ангуляр джунов - просто на фоне вакансий на Реакт, кажется что нетуб но вкатиться джуном можно и на Реакт и на Ангуляр.
В ангуляр настолько высокий порог входа, что как только ты его переступишь ты уже как минимум прошренный джун уровня pre-middle или выше
Ну компонент тебе может сварганить любой человек, который даже с программированием на JS особо не знаком. Тут уже вопрос в том, как хорошо он его напишет
Лучше, чем в реакте, лол. Тут за него, хотя бы, подумали и в рамки поставили.
Ну с чем он может проебаться в ангуляре, с чем не проебется в реакте?
Разве что с РхЖс нагородить ужасный клубень, но если он пугливый, то и юзать не станет.
Снимаю шляпу перед сеньерами и прошу помощи !
function printBookmarks(id) {
chrome.bookmarks.getChildren(id, function(children) {
children.forEach(function(bookmark) {
if (!bookmark.url) {
document.getElementById("Output").innerHTML=bookmark.title+"<br>";
printBookmarks(bookmark.id);
console.log(bookmark.title);
}
});
});
Вот эта функция должна рекурситя в фор ич лупе. Так и происходит, но функция как будто перед тем как запуститься рекурсивно таки проходит полностью по циклу и только затем начинает выводить элементы из середины\начала....
пробовал заменить forEach на for (bookmark of children). все также...
1. Ты выносишь getElementById вверх, т.к. у тебя иначе браузер тратить время на поиск одного и того же элемента
2. условие if (bookmark.url) ты переносишь в .filter()
3. innerHTML используй только в крайне важных случаях, это пиздец медленная залупа
4. Вместо <br> используй блочные элементы
5. Вместо одно грязной функции сделай её чистой, таким образом, что бы она не мутировала DOM, а просто возвращала массив результатов, с которым ты можешь сделать че хочешь.
>только затем начинает выводить элементы из середины\начала
Что ты под этим подразумеваешь? Т.е. у тебя на странице они не сразу отображаются? Если да - то это нормально, браузер будет рендерить контент на страницы только когда основной поток свободен, за редкими исключениями.
>Чел, в реакте есть нативная поддержка работы со стилями, по аналогии с vue или angular?
Дефайн "нативная". Если ты подрубаешь css-loader, то у тебя уже будет "нативная" поддержка модулей в любом конфиге вебпака.
>Нет. Поэтому ты идешь нахуй, м свою поделку с 2к зависимостей захвати заодно.
У вуя тыща с лишним зависимостей лол. Ангуляр вообще упал, так как ожидал данные для гита в глобальных переменных. Сразу видно утырки из гугла его делали. Но он тоже в 1300 пакетов.
У рякта есть некстжс, который полноценный вротенд сервер, а не огрызок для отрисовки шаблонов, и у него в районе 500 пакетов. Тут ты соснул с проглотом, ангуляродебил, так что можешь обрадно пиздовать в свой опенспейс писать очередной интерфейс для абстрактной фабрики, чтобы ублажить конпелятор.
>>78964
>У вуя тыща с лишним зависимостей лол. Ангуляр вообще упал, так как ожидал данные для гита в глобальных переменных.
Так причем тут вуй и ангуляр, если речь идет про кривые поделки макаками, которые не осилили npm init <templatename> или yarn create <templatename>?
>полноценный вротенд сервер
Ну и хуйня, пиздец. Вместо оптимизации FCP просто сервер еще один ставят.
Благодарю за советы. Причесать действительно нужно, однако сейчас требуется добиться нужной функциональности, мб это все будет стерно навсегда.
>Что ты под этим подразумеваешь?
Постараюсь объяснить. Условие у меня чтобы понять это закладка или папка с закладками. У меня задача вывести иерархию папок без самих закладок. Сейчас у меня выводятся все папки но не иерархично а тупо сначала все первого уровня потом все остальное также не по порядку. Что нелогично так как для каждой папки в коде рекурсивно запускается функция это должно приводить к проходу в глубину прежде чем идти дальше по первому уровню...
Как у тебя вообще выводиться больше одного названия, если у тебя innerHTML каждый раз заменяется на новый? Мб в этом проблема? Пришли полный код, мы созвонимся с другими синьор-пиздаболами и посмотрим более детально.
>>78975
chrome.bookmarks.getChildren асинхронная функция, ты вместо того, что бы ждать завршения получения потомков сразу дальше в цикле бежишь.
Тебе нужно написать функцию по типу этой:
const getBoomarksChildrensPromise = (id) => new Promise (r =>chrome.bookmarks.getChildren(id, r ))
И использовать оператор await
>chrome.bookmarks.getChildren асинхронная функция, ты вместо того, что бы ждать завршения получения потомков сразу дальше в цикле бежишь.
хорошо. теперь мне хотябы ясно такое поведение.
>Тебе нужно написать функцию по типу этой:
const getBoomarksChildrensPromise = (id) => new Promise (r =>chrome.bookmarks.getChildren(id, r ))
если честно я в этой строчке нихуя не понимаю. функция гетчайлдрен вообще должна функцию обработки получать, что она сейчас получает под r ? await как я понял нужно писать перед рекурсивным вызовом функции. алсо где тело функции обработки гетчайлд должно быть ?
>chrome.bookmarks.getChildren
принимает наименование и функцию, которая будет выполнена после того, как он найдет потомков с этим именем.
r это сокращение от resolve, смотри документацию по Promise и async/await на лерн джаваскрипт
Так вот, должно быть так:
const childrens = await getBoomarksChildrensPromise(id);
//обрабатываешь массив потомков
конечно ты очень неудачно решил залететь в разработку расширений с такой базой
>функция гетчайлдрен вообще должна функцию обработки получать
Короче, сейчас она по сути получает определенную функцию, которая передает результат оператору await слева.
И еще, суть в том, что у тебя дальше не будет выполняться твой код, пока оператор await Не получит данные (из его названия это очевидно)
>>78979
АНОН, ТЫ ЕБАННЫЙ ВОЛШЕБНИК.
ПИЗДА, Я ВООБЩЕ НЕ ПОНИМАЮ ПОЧЕМУ НО ЭТО РАБОТАЕТ ТАК КАК НАДО. ЕБАНУТЬСЯ. СПАСИБО ТЕБЕ ОГНОМНОЕ.
обновил код в https://rentry.co/abdulov сейчас буду пытаться фиксить те моменты на которые ты указал ранее.
хотя с моей базой, как ты говоришь
>вкатываться
я не вкатываюсь, я пишу мини расширения\узерскрипты исключительно для личного пользования. начал в 2017 уже с десяток набралось. все это время мне хватает плюс+минус базового программирования на высшых языках+гугление. ну и время от времени советы\прямые коды от таких мудрых анонов.
>сейчас буду пытаться фиксить
Поставь себе нормальный редактор и форматировщик, а то поехавшие скобки выглядят ущербно
>СПАСИБО ТЕБЕ ОГНОМНОЕ.
Рад, что получилось
>хотя с моей базой, как ты говоришь
Ну, ты вместо let и var используешь const, значит еще не все потеряно. Крайне рекомендую изучить промисы и асинхронные функции, намного себе жизнь упростишь.
У меня есть только emacs, он все, кроме хорошего текстового редактора, как говориться. пишу прямо из него бтв.
>>78984
Я бы рад... Вот в выходные в свое удовольствие позанимался... а потом снова на работу. некогда короче стремиться к хорошему... очень жаль конечно. уже сейчас надо спать ложиться а то собъю режим. а завтра еще нужно чем - то помиму пк заняться....... а там и помирать уже не скоро...
https://www.youtube.com/watch?v=b8k0FLrW4xw
Пиздец, у челика натуральный словесный понос. 0 конкретики
Просто ты задрот. Для нормальных челиков там много полезной информации. Например если тебе дают древний проект на джаве куда надо запихнуть риакт, то сразу увольняйся.
Видел вроде его у ойти бороды. Чел - лид, он уже сто лет не код пишет, а разглядыват журналы с тачками, выбирает себе какую субару купить. Естественно если его попросили доклад сделать, он будет про то как космические корабли бороздят большой театр. Поучился бы ты лучше софтскилам, чел, чтобы тоже лидом стать, когда-нибудь.
Не продал
Понадобилось установить кое-что из npm макет pyright для вима и советуют значит это делать так:
npm -g install pyright
Ну т.е. он высрется мне в /usr/local по дефолту. И, на самом деле, многие пакеты с исполняемыми файлами так рекомендуют делать при установке. Но это же полный пиздец, система превращается в Слаку. Зачем так делать, если можно задать prefix, например
npm config set prefix ~/.local/lib/node
и добавить ~/.local/lib/node/bin в $PATH. Я что-то не понимаю, есть какие-то подводные камни?
Она остаётся между перезагрузками. Вешай выше по дому и ползи по стеку.
Ну или в сам фреймворк сходи и почитай как его отлаживать.
Ну так и задай.
А лучше сразу поставь n, nvm или что-то там ещё третье. Первое что они делают – это префиксы создают именно в хоуме. Без них всё равно ноду обновлять больно.
Ты сам ноду видимо поставил в /usr/local, туда она тебе модули и складывает. Надо было указывать NODE_PATH при установке куда хотел.
> А лучше сразу поставь n, nvm или что-то там ещё третье.
А какой сейчас лучше пакетный менеджер для js?
yarn
Нет никакого мидла в вакууме, пойми. Надо брать конкретную компанию, команду и проект.
Суть вопроса не в этом, в хуках та же самая фишка
Мне насрать
Ну очередной айти цыган. Такие были есть и будут.
Ну и это ж сраная конфа. Они ж в принципе нужны только для того чтоб затусить забухать, найти знакомства. И уж точно не для повышения проф. навыков.
Тебе блять черным по белому написано, что this.state может поменяться в тот момент, когда ты этого не ожидаешь и полагаться на него не стоит
В крупных проектах даже ноду не используют кроме как прокладкой между сервером и фронтом, а тебе дино прям подавай.
Отвратительный персонаж. Популист и говно.
Простомтрел пол часа со скоростью 1.75, жалею о потраченом времени обычно я капчую 24/7 и жалею меньше
Всякий контент-мейкер популист, он мне не отвратителен, но лишнюю гривну все хотят.
>что это вообще
Это переводчик.
>как такое написать самому например
man Теория языков программирования.
Спишешь лексер по заданным синтаксическим правилам, строишьпарсорм AST, применяешь к нему преобрахования, сериализуешь в целевой код.
>как
В самом начале еаучись открывать энциклопедию и читать.
Хз, куда спросить, спрошу здесь, кто как тренировал усидчивость и концентрацию? Хотелось бы услышать мнение именно тех, кто познал дзен и может продуктивно отхуярить часа 3-4. Все пробовал, телефоны отключал, пхаб блокировал, но сидя дома очень большая проблема сидеть долго и продуктивно, на работе тоже залипал в телефон много, думаю не в обстановке дело. Есть ли рабочие методы?
Классовые компоненты это кринж конечно, но вот тебе пример. Когда у тебя происходит в коде постоянное
...
this.setState()
...
this.setState()
...
this.setState()
...
Ты можешь потерять текущее значение state из-за асинхронной природы React. Чтобы этого избежать - тебе надо использовать callback внутри setState. Из callback можно ЖЕЛЕЗНО 100% УВЕРЕННО вытащить текущее значение state, а не то, которое ты получил не в правильном месте не в правильное время. Вообще хз что тебе было непонятно, в документации, насколько я помню, хорошо этот момент освещён, но я не осуждаю. Надеюсь чем-нибудь помог
спс
Ну ладно, а если опустить планку с "используется на проде" до "разрабатывается?"
Я никак не тренировал, просто нашел работу где можно 1 час в день поработать, а остальное время играть в доту и капчевать
>как такое написать самому например
В курсе яндекса на мидл вротендера вроде рекламировалось, что они там свой шаблонизатор будут писать. Можешь поискать на торрентах
>А зп какая?
120к, фулл удаленка
>Хочу вот перекатываться в галеру, а там вроде за каждые проебанные 5 минут ебут
Ни разу не работал на галерах, только на продукте.
По поводу внимания, я когда пил нейролептики + АД у меня все нормально с ним было, но спать хотелось пиздец как + я разжирел как свинота, поэтому перестал.
Ну вообще мне предлагают уже перекатываться на 150к в другую контору, но учитывая, что я живу с родителями мои месячные расходы составляют около 10-15к, поэтому перекатываться смысла не вижу.
Уровень у меня премидл, 2 года в разработке.
По двум критериям: постер, на двоче.
Всë просто. В РФ максимальная зарплата 50К, если кто-то утверждает что он получает больше - он врëт.
Это только в Москве в пределах садового кольца. Дальше - 9к максимум. И то платят не каждый месяц.
Да почти никак, транспилятор – это громко сказано.
На этапе сборки проверяются типы, а потом всё надмножество жс просто утилизируется за редкими исключениями вроде енумов.
Написать просто – пройди по AST дереву и выкинь лишние ноды.
Это одна из первых вещей, которую я тестил, тупо забиваю на таймер после второй помидорки. Видимо я действительно развил сдвг у себя, отвлекаясь постоянно на всякую хуйню, хотя в детстве всегда был спокойный и усидчивый, собственно так и вкатился в профессию. Очень сильно мешает эта хуйня, чувствую, что могу гораздо больше, но отсутствие фокуса все портит.
Попробуй медитацию.
Про async await слышал?
Попробовал вот так:
const json = require( "./json/list.json" )
writeFile( "./json/list.json", json.list.push( 300 ).toString() )
Но это просто перезаписывает полностью файл с числом 3 и всё
>сядьте глубоко вздохните 5 раз, заведите таймер на 20 минут
>шиз с тревожным расстройством, ну ок
>.toString()
toString не делает из объекта json
>writeFile( "./json/list.json", json.list.push( 300 ).toString()
Ты посмотри, что возвращает функция Array.protoype.push, реузльтат которой ты пытаешься засунуть в файл
const fs = require("fs/promises");
const FILE_NAME = "./list.json";
const parsed = require(FILE_NAME);
parsed.list.push("абу хуесос");
fs.writeFile(FILE_NAME, JSON.stringify(parsed));
ты скозал?
Предложили халтурку поделать, спросили сколько будет почасовая ставка, а я даже не в курсе какие расценки будут разумными. Раньше не было опыта. Проект React/Typescript/Mobx и т.п.
Собственно вопрос, сколько просить
За пару недель как нефиг, а то даже за одну
Смотря какой грейд (качество кода). На апворке помнится начальная ставка 5 баксов, за нее пишут код индусы, которые на ходу читают гайды по языку и сразу пишут код. Мидлы берут от 30-40 в час, это поддерживаемый, читабельный код, худо бедно покрытый тестами. Сеньоры меньше 100 в час даже задание читать не будут. Как то так.
То есть функция написана, ее не вызывали, однако paths и fallback такие, как будто ее вызывали.
Это какая-то специфика async/await?
>почему значения (paths и fallback), которые возвращает эта функция, присутствуют в остальном коде как бы по умолчанию, без вызова этой самой функции.
Что блять? Показывай этот "остальной код".
Есть сайт, в котором есть iframe с другим доменом.
Есть темперманки скрипт, который @match обе страницы
Есть функция, которая берет ссылки из фрейма, сравнивает с ссылками из LocalStorage макаки и возвращает нужные.
Есть window.addEventListener, который ловит нажатие кнопки и воспроизводит эту функцию.
Все работает заебись, за исключение того, что записать в LocalStorage через GM_setValue нихуя не получается в этом листенере. В самой функции запись работает, вне функции тоже, а в листенере нихуя.
Гугл вообще не помогает, за исключением 1 ответа по поводу передачи JSON строк по нажатию кнопки через window.postMessage в другую функцию и там уже их GM_setValue, что блядь тоже не сработало. Как дышать в такой ситуации?
Да я уже разобрался. Это функции Next.js для data fetching'а, они так работают.
https://nextjs.org/docs/basic-features/data-fetching
Что не так с курсами, анончик?
Потому что этот китаец сам ничего придумать не может, только спиздить готовое из ангуляра или реакта
курсы скилл бокс
>Он реактивный просто ты не умеешь
Я не он, но по ходу я вообще не видал ряктоблядей которые умеют.
Есть примеры опрятно оформленой прилады на рякте реактив стайл?
Читнул бы ГИТЦА с удовольствием
Показал на собесе hrке в ютубе просмотренные видосы и подписку на минина сразу взяли тимлидом. Задавайте ответы
какой проект намутить, чтобы показать свои знания в реакте, редаксе, роутере?
if (this.state.status === 1) {
this.setState({ ... })
}
Или:
this.setState(state => {
if (state.status === 1)
return { ... }
});
Вообще первое. В классовых компонентах стейты - это кал говна, они не мемоизированны. Даже если ты возвращаешь тот же стейт во втором примере - всё равно будет происходить ререндер компонента, который тут не нужен.
И да, ты реально заебал использовать классы.
В некоторых случаях лучше использовать классы, иначе код превратиться в макароны с usecallback'ами с usestate'ами и useref'ми
А потом ты проснулся.
Это подразумевает, что БД уже есть и тебе не надо писать функцию добавления билета, правильно?
Я честно не знаю, пока верстку подтягиваю, позже реакт начну, тогда и буду ебаться с этим. Оно хорошо описано, с готовыми стилями, тупо реактнуть надо. В каком-то чатике сбрасывали.
Кек, у меня было такое же, но без фигмы, без сервера, в общем тупо архив, в нем json на 20 мегабайт и ТЗ в .odt.
А еще в архиве лежала табличка в .odt со списком вопросов типа что такое doctype и пустым местом под ответы.
Почти доделал, но забил нахуй, потому что пришли тестовые от других компаний.
использовал 20 лет назад, хуй тогда еще стоял колом
Нахуй не надо.
У нас универский сайт был на нем "написан". Темлейт и всякие шаблоны в дримвивере, что-то изменил - перегенерячил хтмл и вперед. Молниеносный перфоманс лол.
Там шо, пидарнули Бориса с его самописным недофреймворком?
Просишь показать проект, тебе говорят смотри на функцию.
Всё таки js макаки натурально обезьяны, а ряктомакаки из них самые тупые.
>показать проект
Придурочка, в доке редакса есть рабочие примеры с пояснениями. Не можешь сложить два и два? Может стоит вернутся за фрезерный?
Пидарас что ли?
Сам сейчас на нем пилю, пиздец как я жил раньше без него хз
Так
Смотри тайминги, ререндеры, установи реактдевтулс
>ни один проект так и не доделывал
Попробуй сделать что-нибудь по курсам. А потом то же самое, но самостоятельно.
Главное, выбирай курс на английском и не по 40-60 часов, а по 15-20 или даже меньше. Могу посоветовать курсы Brad Traversy, The Net Ninja и freeCodeCamp.
:not
Фактически там вся вступительные часть про то, что "пользователи реакта в массе тупые и не могут спланировать архитектуру", затем про то, что "мы все вместе тупые и не можем писать реактивно" и потом "вот вам заплатки в виде хуков правда работает ещё не всё"
Это ж натурально цирк с понямм.
Над ещё выдать годик, подождать пока эти дебсы наконец изобретут паттерн mvvm, сделают диай со скоупами и признают наконец свою помойку фреймворком
Мимо-дед-на-ангуляре
Ангуляродебилы целые паттерны изобретают, чтобы передать переменную в область видимости функции.
Ты лучше скажи когда ты собираешься идти на собесы.
По реакту и тс, как бы достаточно посмотреть/почитать обзор, что это такое, нахуй нужно, ну и можно кликер написать.
А, так это ты местный дежурный ряктодебс, который даже в значения слов не умеет.
Я тебя узнал. Ну не, ты то конченный, с тобой речь вообще вести смысла нет.
Страшно, потому что ты думаешь, что это кастинг, а это нихуя не кастинг, это лотерея.
Страшно, потому что кажется, что не готов.
Можешь назвать по блокам, что спрашивается на собесах? Бывает ли обычно ванильный JS и алгоритмы?
мимофлутсак, и тебе, скорее всего, нерелевантно, но.
По ДЖсу:
замыкания (классика).
hoisting и области видмости.
чем стрелочная ф-ция отличается от обычной.
"2"+ "2" - "2"
Знание всяких .map/filter/reduce говори с надменным тоном, что фор/форич - устарел и ненужен лол
event loop
Promises/async (не совсем ЖС, но любят спрашиват чем промис от обсервабла отличается)
По тайпскрипту:
декораторы
интерфейс вс тайп вс класс.
"кто во что преобразуется"
Спасибо.
В одном чатике советовали вот этот курс - https://frontendmasters.com/courses/javascript-hard-parts-v2/
Сейчас глянул содержание, там вроде все эти темы затрагиваются. Буду смотреть.
>сделают диай со скоупами
Закопался в вопрос, оказывается реактокоманда уже реализовала диай где-то под капотом, просто не даёт его рядовому пользователю ибо тупые "может смутить".
И эти комменты "мы запретили хуки в лупах потому что вам будет тяжело дебажить"
Такая умилительная забота о кодмакаках.
https://github.com/reactjs/rfcs/pull/68#issuecomment-439314884,
На рутрекере есть.
В смысле просто передаешь. Я не хочу передавать, я хочу, чтоб некий резолвил сам за меня решил что где взять, и сам же и задеспозил потом где надо.
Чувак, диай это не только про передачу ссылочки на сервис. Диай это еще и про управление видимостью и временем жизни.
Ну знаешь там
.AddSingletone<IYobaService>()
.AddTransient<IYoba, SupaServiceClass>()
Так вроде конструкцию with считают дурной в современном JS мире
кстати с той же потешной формулировкой что "пользователи путаются"
Я реально угараю с этой темы, никогда не встречал такой "экосистемы языка", где на уровне доков декларируется, что её пользователь - свинособака.
>Мимо-дед-на-ангуляре
Подписался на разьеб реактеров.
Мимо тоже дед ексангулярщик фулстек
>>81705
Какая вхуй разница, динамический или нет?
"передаешь" - окей, предположим у тебя есть IoC.
Почему бы не дополнить его DI контейнером, который бы сам "передавал"? Как плюс у нас будет единая точка конфигурации.
Ну не хочешь - распердоливай цепочку вручную, но мы то знаем, что всем будет лень и хуй забьют.
Двачую. Тоже наделал уже всякой пет-хуйни, но на собес идти как-то стремно. Боюсь что ничего не знаю и обоссут с ног до головы на каком-нибудь тупом вопросе типа "что выдаст NaN === 0" И прочую хуйню, которая нигде не пргиодится, но это не точно
Лично мне - нравицца.
И кто носится-то? Тут 90% реактеры. Нужно же немного честь любимого фреймворка зощитить.
Поддерживаемость кода, бро. Когда ты не юноша с очами горящими, а степенный сэр, который видал уже некоторое говно, ты понимаешь , что
Нихуя ты не читал, иначе порвался бы уже от обязательности порядка вызова и как следствие невозможности хуки вызывать в условиях или циклах.
>Вот вы носитесь со своим ангуляром
Поддерживаемость кода, бро. Когда ты не юноша с очами горящими, а степенный сэр, который видал уже некоторое говно, ты понимаешь , что пикрил не занудное старперство, а способ сделать так, чтоб пиздюки после тебя быстро въехали где чо пилить.
Что разделять представление /модель/контроллер по разным файлам это круто, хотяб для того, чтоб файл с логикой не попадал в историю изменений, когда поменял стиль.
Ангуляр классный инструмент когда пилишь большую йобу которую надо поддерживать и возможно масштабировать не один год.
Грамотно написаный компонент в ангуляре вообще без проблем выносится в библиотеку , которая кладется в ваш локальный npm и вы ваще красавчики. У вас везде один и тот же поддерживаемый <app-yoba> а не копипаста копипасты как у чуваков в рякте.
Ангуляр заставляет тебя организовать проекь более-менее сносно.
Потом отдаешь это чуваку который вообще фронтом не занимался, и он за пару дней доделывает нужное, просто гляда на то как ты сделал основу.
Это довольно крутое могущество
>некий резолвил сам за меня решил что где взять
>Почему бы не дополнить его DI контейнером, который бы сам "передавал"?
Шизики, верующие в магию, вы? Никаких "сам передавал" не существует, все конфиги нужно будет прописывать вам лично, из воздуха они не появятся и сами не догадаются, куда и когда что инжектить.
>читал, иначе порвался бы уже от обязательности порядка вызова и как следствие невозможности хуки вызывать в условиях или циклах.
Если бы ты читал, обезьяна, тыб не путал порядок вызова и требования к постоянности этого порядка.
Hooks doesn't care about which order you put them, it cares that they have persistent order. Same one every time. This is very different from implied dependency between calls.
It would be better not to have to rely on persistent order - all things being equal. However, there are tradeoffs. E.g. syntax noise or other things being confusing.
Да и не вижу я с чего тут рваться. Чуваки адово лепят заплатку для рукожопых типа тебя. Конечно же онни на старте сделают миллион ограничений, чтоб вы себе хуи не ломали, тыкая ими рандомно во все щели.
Отладят технологию, будет посвободнее. А пока вам нихуя нельзя
ps
Отдельно ору, что вам прямым текстом диктуют что делать и что не делать, как называть и не называть методы
при этом не какой то там злючий фреймворк, а вери анопиниэтед лайбрари. Твердо и чётко.
Дебс, хуки - это по сути стейт контейнер реакта, и ты можешь им не пользоваться, а написать свой, если тебя не устраивают ограничения, но все равно придется прокинуть его интерфейс либо в хук, либо в setState. И да, ты можешь их вызывать хоть из цикла, хоть из своей жопы, до тех пор, пока порядок вызова тот же самый.
>Отладят технологию, будет посвободнее
Если бы ты понимал, как хуки работают, то не молол бы подобной хуйни. Эти ограничения связаны с особенностью реализации и обойти их нельзя.
Долбоеб, корона не жмет?
Читать умеешь? Видно, что нет, так бы ты заметил в моем посте:
>Как плюс у нас будет единая точка конфигурации
Говна тебе на рыло. Вкатун дебилятор что-то там орет о шизиках. Уже не говоря о том, что дебилятор не вкурсах, что можно, на пример, рефлексивно по неймконвеншенам "настраивать" (не говорю, что так надо).
>Как плюс у нас будет единая точка конфигурации
Только это нихуя не плюс, когда кусок твоего приложения не может заработать без инжекта зависимости, а инжект зависимости делается из жопы, да еще и вместе с десятком других зависимостей. Это пиздец какое архитектурное усложнение лишней абстракцией и оно требует очень хорошего оправдания, которого 99% приложений дать не могут.
Амиго, я те говорю, это местный ряктошиз-борцун.
Посмотрел пару видосов, написал тудушку с чатиком, и думает что весь такой дохуя прогрессивный и может ссать старперам головы.
Читать, при этом, не умеет.
Молодо-зелено, хули
Его проще игнорировать чем отвечать предметно
Я уверен, что пишу код в два раза больше годков, чем ангуляродурачок, строящий из себя деда. Сколько там у тебя опыта, лет 5-6? Алсо, серанул с
>проще игнорировать неприятные аргументы, чем пытаться на них отвечать своими
Так может же. Не хочешь юзать контейнер - ну инстанцинируй вручную. Хотя я такого кейса представить не могу. Мы же за инжекшн в конструктор говрим.
Или что ты имеешь ввиду?
>да еще и вместе с десятком других зависимостей
Если ты о перфомансе, то не вместе. Если о том, что настраивать в одном месте - так в этом и принцип IoC, мы инверсим и теперь у нас нижний слой-потребитель решает что ему и как надо.
А пиструн у тебя сколько СМ?
Я говорю про то, что ты добавляешь в свой проект глобальную 3rd-party магию, без которой код работать не будет в принципе. Магию, которая будет растащена по конструкторам, классам, по всему. И в большинстве случаев такая магия не нужна. А там, где она нужна, всегда хватает либо обычной фабрики/синглтона, либо просто-напросто аргумента в конструкторе. DI и IoC как таковые не требуют глобального монстра, который перемалывает все на свете и выблевывает кусками по приложению. Старое доброе правило гласит, что если ты используешь DI-фреймворк в жава-проекте, то ты скорее всего долбоеб. А если ты используешь DI-фреймворк в динамическом языке, где можно в рантайме заинжектить хоть аллаха в очко мухаммеда, то ты медицински даун.
> И в большинстве случаев такая магия не нужна. А там, где она нужна, всегда хватает либо обычной фабрики/синглтона, либо просто-напросто аргумента в конструкторе.
А что там за магия в спринге и зачем она? Он вроде как создаёт наследников всех твоих классов и вместо инстансов твоих классов подсовывает тебе какие-то прокси, так? Зачем это?
Что ты там себе в головушке нафантазировал-то? О каком монстре ты говоришь?
Никакой магии в твоих классах не будет, да, просто у конструктора будут аргументы ты вообще читаешь пост на который отвечаешь?
>динамическом
Какая. Нахуй. Разница. Динамический он или нет? ажтрисет
>Это пиздец какое архитектурное усложнение лишней абстракцией и оно требует очень хорошего оправдания
Например, DI на ридерах хорошо композится и зависимости мержатся. А еще, а еще, можно останавливать всплытие зависимости и в нужном месте в рантайме оверрайдить её (зависимость).
Так что твой аргумент инвалид.
>ажтрисет
С добрым утром. Братишка, ну прекрасти. Он же не читает то, с чем спорить.
Ты на голубя агришся, который клювом по клаве стучит.
>Сколько там у тебя опыта, лет 5-6?
С 2005 программирую помаленьку, еще на 5м курсе (220200) начал работать в ойти
>Что учить?
ВЕРСТКА
https://developer.mozilla.org/ru/docs/Web/CSS
Раскрою чуть по областям.
HTML и CSS азы, чтоб понимать чем <span> отличается от <div> и
уметь в div > li
Точно надо узнать чем верстка на флексбоксах отличается от верстки на гридах от верстки на таблице
ИНСТРУМЕНТЫ
TypeScript - https://www.typescriptlang.org/docs/handbook/
Обязательна база, дженерики , классы
Операции с типами на старте ненад
RxJS - Observable, Subject, BehaviourSubject
отдельно заострить внимание на операторах RxJS
pipe, tap, map вот это вот все
Доки по ангуляру хороши сами по себе
https://angular.io/tutorial
Ну и на самом деле там не так уж и много "учить", там совершенно нормально, и лет 20 назад для вката надо было учить горадо больше.
Это просто у ряктодебилов такая мулечка что де "ангуляр сложный а у нас то всё просто", но это пездеж чистой воды.
Верстку и JS/TS (более менее) шарю. По RxJS понял, надо учить. Мне интересно по поводу ООП, паттернов проектирования, Чистые коды и прочее. По идее это же все нужно в Ангуларе. Это же тоже стоит глянуть?
А смысол?
Дабы его енкриптить нужен ключ. Откуда ты его брать будешь? С бека? Так в чем тогда сакральный смысол?
Ты же знаешь, что хттпС так все ширует?
>Мне интересно по поводу ООП, паттернов проектирования, Чистые коды и прочее. По идее это же все нужно в Ангуларе. Это же тоже стоит глянуть?
Без всякого сомнения. Хотя бы обзорно надо понимать.
Классы, Интерфейсы, Наследование , Инкапсуляция.
Это в целом, пофиг на каком языке. Хоть бы и на Object Pascal.
Скорее всего с какими-то базовыми концепциями ты даже уже знаком
Также на базовом уровне надо понимать что такое Инверсия Управления https://ru.wikipedia.org/wiki/Инверсия_управления
У меня бэк на JS
>Н-н-но нельзя писать бэк на JS, потому что Срёт в штаны
Этот тред для JSИисусов, отсань со своей парашей.
У меня есть апи который откидывает мне даты. Даты всегда в нулевом часовом поясе и поэтому на фронте я их с помощью date-fns format() подгоняю под юзера.
Но теперь возникла задача кидать даты в этот апи и мне нужно их как-то форматнуть в нулевой часовой пояс с учётом пояса юзера.
Это можно по человечески через date-fns провернуть?
Если да, то как.
1) "Подгонять под юзера" даты не надо, если ты распарсишь ее в Date объект(через date-fns/parseISO например), то он по умолчанию будет в локальном времени.
2) Нормальному API должно быть похуй, какой у даты часовой пояс, главное чтобы он в принципе был указан. Для начала попробуй просто в свое API передавать дату, отформатированную через date-fns/formatISO или Date#toISOString
3) Если по какой-то причине API так работать не будет, до добро пожаловать в еблю с таймзонами, смотри в сторону Date.UTC или date-fns-tz
Ты свой обсер в штаны как аргумент всегда используешь?
И тебе не шифрование нужно, а хеширование.
Юзай лучше свой глюкавый бкрипт, а то обосрешься сесурити это сложно - гарантия.
Сап аноны, подскажите, как пофиксить? Хочу кнопку с общими стилями для разных типов сделать
Логично, но я не понимаю как должна выглядеть эта функция...
В компоненте App у меня есть стейт [todos, setTodos] = useState([]), в контекст я прокидываю объект {todos, setTodos}. Далее в отдельном компоненте todo я принимаю todos и setTodos через контекст, что дальше делать не пойму, понимаю, что надо использовать setTodos и выбрать оттуда этот отдельный туду и поменять ему поле, но как конкретно это сделать...
Так мне и не нужна строка, мне нужно чтоб тип именно типом кнопки был
Тайп что, сука? Что тайп то ?
type ? всегда тру, потому, что он у тебя физически существует и он не булеан.
Почему, блядь, вы не можете просто прочитать подсказку?
дед-на-ангуляре
// eslint-disable
Ты Кантора жопой читал?
У примитивов нет методов. Методы есть у объектов.
Когда ты делаешь "хуй".toUpperCase() под капотом происходит
new String("хуй").toUpperCase(). Это просто синтаксический сахар навываемый autoboxing
А как быть, если наоборот надо показать дату как есть без перевода в локальное? День рождения, например. С сервера приходит 00:00:00Z
Реакт абсолютно никакого отношения к редуху не имеет, и чтобы в твоем реакт-приложении был редух ты должен его сам туда добавить ручками. Можешь не добавлять и добавить любой другой стейт менежер, разрешаю.
Ну это и есть кал, надо или сервер чинить чтобы даты присылал без времени и таймзоны, или форматировать дату в присланной таймзоне. Intl.DateFormat справится наверн
Окей. Другой вопрос, а как тогда отправлять дату типы дня рождения?
Фронт присылает сука таймзону и оно на беке может привестись к другой дате.
Тоже самое? Бек виноват?
Ну если вы даты передаёте то их правильнее передавать без таймзоны по причинам выше.
Если бэк не поменять то отправляй 12:00:00 чтобы хотя бы другие не ебались с конвертацией все равно поебаться то придётся, хех
Самая мякотка - катать датувремя без таймзоны и чтобы ещё ошибка конвертации накапливалась. Все это на машинах без своевременных обновлений об таймзонах, чтобы ещё и парсилось неправильно.
Дата рождения – это не время и тем более не таймстемп.
Если у тебя день рождения 14 октября, то ты его празднуешь 14 октября везде нахуй, а не 13го в соседнем часовом поясе.
Проще всего вообще не использовать кодирование времени, просто месяц и число, год. Ну или UTC, на то оно и Универсальное Координационное.
Node.js
Vue.JS
Angular
TypeScript
На чем надо вкатываться чтобы с меньшей вероятность обосраться? Чем это все отличается?
jQuery
Учить тайпскрипт и vue js, переезжать в Китай и работать там за кошачью жену и много риса.
спасибо большое
Звучит как план
Учишь JS и React => ходишь на собесы
function deleteItem(arr, i) {
return [
...arr.slice(0, i),
arr,
...arr.slice(i + 1),
];
}
let arr = [1, 2, 4, 3, 4];
console.log(deleteItem(arr, 2));
console.log(arr);
Вероятность обосраться не зависит от инструментов. Представь, что ты собираешься стать условным слесарем, пришёл такой и спрашиваешь: молоток, пила, плоскогубцы. Что надо учить, чтобы не обосраться?
> Вкатыш не знающий что такое ts, спок.
Чмоня, нахуя мне твоя надстройка над js, если её легко обмануть?
Не стаёт. Где ссылки на ES в качестве пруфов?
Ну и как связан массив arr с массивом, который твоя функция возвращает? Не говоря уже о том, что внутри неё хуйня происходит.
Аргументируй что ли. Всё перечисленное - инструменты. Неплохо было бы начать с основ CS и какой-никакой базы, а потом хвататься за технологии. В СНГ вакансий на React и правда много. Но технология не зависит от того, обосрётся он, или нет. Всегда смешно собеседовать челиков, которые дальше JS и React ничего не знают, потому что в этом случае они и их знают крайне поверхностно.
>Неплохо было бы начать с основ CS и какой-никакой базы
Да что уж там. Пока SICP не прошел путь в JS закрыт
>Но технология не зависит от того, обосрётся он, или нет
Нет, чем выше спрос, тем проще попасть при должной подготовке
>Всегда смешно собеседовать челиков, которые дальше JS и React ничего не знают
Это уже от уровня знаний зависит. На работу реактомакакой скорее возьмут челика, который хорошо разбирается в Реакте, чем того, кто поверхностно нахватался из разных фреймворков. речь как раз и идет о том, что выбирать надо что-то конкретное и оттачивать навык в этом, а не распыляться на все подряд.
>Да что уж там. Пока SICP не прошел путь в JS закрыт
Ты рофлишь что ли? Я говорю про базовый уровень CS, понимание браузеров, сетей, протоколов. Базовое. Откуда у тебя этот максимализм? Школьник что ли?
>Нет, чем выше спрос, тем проще попасть при должной подготовке
Ты сам пишешь про должную подготовку, это иронично. Проще попасть - так себе аргумент. Если цель как угодно влезть в индустрию, то так конечно можно. Только вот при этом спустя некоторое время есть шанс понять, что это и близко не твоё, и роста нет, а уровень стресса выше крыши.
>Это уже от уровня знаний зависит
Спасибо, что в очередной раз подтверждаешь важность уровня знаний, а не инструментов. Кто-то говорил про распыляться разве? Конечно в начале пути важно выбрать пару технологий, в которых качаться. Но из списка, который чел принёс, можно явно сделать вывод, что его понимание находится на очень странном уровне, раз он ноду/реакт/тс вообще в один список принёс. Был бы вопрос про ангуляр/реакт/вью, ответить было бы проще. Выбросить ангуляр и на считалочку выбрать из оставшихся, если не смущает, что на вью меньше вакансий в СНГ.
Числа то там есть? 14, 10 и 2021.
За такое говно в проде не сильно ебут? не функционалошизик, а питухонист
>Только вот при этом спустя некоторое время есть шанс понять, что это и близко не твоё, и роста нет, а уровень стресса выше крыши
Толи дело работать в пятере, в каких-нибудь продажах или мелким клерком. Вот уж работа мечты. Нет никакого "твое-не твое", есть оптимальные варианты, меньшее из зол. В айти меньше распидяйства, лучше заработок и есть хоть какие перспективы. Можно даже искренне ненавидеть программирование, но осознавать, что все остальное еще хуже в наших текущих реалиях.
мимо
Поменяй на fl.map(fl => fl.split('_').map(capitalize)), тогда будет поприличнее смотреться.
Ни на что не влияет, встроенный sort() всё равно не устойчивая сортировка
>Я говорю про базовый уровень CS, понимание браузеров, сетей, протоколов
Проиграл. Давно тебе это пригождалось в клепании серверов на ноде, не говоря уж про фронтенд-фреймворки, поехавший? Ну и формулировка тоже шизоидная, "понимание браузеров" звучит как "уверенное владение компьютером", конкретика где? Типичный диванный дурачок, который думает, что если начать учить абсолютно оторванные от будущей работы вещи, которые никогда на практике не пригодятся(алгоритмы, протоколы, математику, ассемблер), то это внезапно каким-то магическим образом станет "базой" или "сформирует мышление".
Прод проду рознь. Нейминг fl хреновый, ну и лучше вынести в функцию с говорящим названием, да.
>>83290
Это ты сейчас своими страхами поделился? Спасибо конечно. Но тенденция того, что "войти в айти" пытаются даже те люди, которым туда не надо, тревожная.
>>83348
Удачи пройти собеседование в нормальную компанию без протоколов, алгоритмов и общего понимания. Но если тебе ок в месте, где нужна любая макака, которая чуток умеет в реакте формочки клепать, то дело твоё. Про математику и асм речи, кстати, не было, это твой школьный максимализм опять проснулся. Смешно от тебя слышать про "диванного дурачка". Как говорится, покажи на человека пальцем, и три пальца укажут на тебя самого.
Неплохо сначала определиться хотя бы с - фронт или бэк. Во всём списке нет ничего ебанутого, но из него видно, что человек вообще не понимает, что про спрашивает. Для него это не инструменты, а набор букв, чтобы "вкатица".
>Удачи пройти собеседование в нормальную компанию без протоколов, алгоритмов и общего понимания
То есть ты не споришь, что в реальной работе это не нужно, а нужно только чтобы пройти собеседование в говнокотору уровня яндекса, где тебя закомплексованные 40-летние олимпиадники-анальники будут ебать алгоритмами на собесе, после чего об этих алгоритмах ты и не вспомнишь, правильно?
Ну вот и зачем жизнь так делает?
Вот это тебя кроет конечно. Понимаешь, какое дело, то, что ты называешь говноконторой, делает продукты, которыми пользуются и в СНГ и за его пределами. Более того, тот же Яндекс в найме использует "западную" модель. Если ты не в курсе, то все нормальные компании в Европе и США нанимают через секции. И среди них с высокой долей вероятности будет и HTML/CSS/JS, и условный React, и алгоритмы, и system design. И каждая секция редко занимает меньше часа.
Но повторюсь - если тебе нравится сидеть в компании, куда берут просто за "я знаю риякт", вопросов нет.
Офер тебя не обязывает. Согласись на 115 и не делай голову.
>Удачи пройти собеседование в нормальную компанию без протоколов
Постоянно захожу в нормальные компании без этого говна.
На прошлой работе говорил в стиле "тут хуй знает но можно просто загуглить"
На текущей (топ 5 ит контор РФ) просто показал свою репку с пет проектами. Ну и демки на файрбейзе.
Душнили с алгоритмами и протоколами нах не нужны
Дед-на-ангуляре
Удачи прожить какое-то время на ангуляре. И у меня и у знакомых большую часть кода переписывают на реакт, тк ангуляр фактически признан легаси. Не трогают только совсем большие штуки, и нового ничего на ангуляре не делают. А про душнил говорят обычно те, кто боятся, что не потянут :)
На вопрос все еще не ответил, мань. Нужны лохоритмы в работе или нужны только чтобы собеседование пройти? Примерно почувствовать можешь? Когда последний раз лохоритм писал сам? Потому что если не нужны, то твой совет "сначала учи сети и лохоритмы" отправляется в мусорку, так как очевидно нужно прежде всего учить то, с чем ты реально будешь работать(например конкретный фреймворк), а только потом разбираться с удовлетворением иррациональных фетишей собеседующих.
Про психологию ты верно отметил. И специально задрочил жс когда перекатывался, чтоб проходить душнил. Ну типа как борьба с собой и страхами.
И я те скажу что все равно это хуйня и игра в собес. Потому что задроты просто не умеют в собеседования (на то они и задроты), и катают по накатанной. Покажи что знаешь про зис, покажи что знаешь про микротаски и прочее.
Сейчас я без проблем отвечаю на душные вопромэсы типа "напишите нам каррирование от произвольного количества аргументов" при этом
Всё щё считаю что душнил не нужны.
Касаемо моих удач. Братишь, я за 17 лет в индустрии столько раз видал как "хайпнейм" приходит и уходит, что совершенно никуда не тороплюсь.
Пока достойной работы на ангуляре валом, комунити очень толковое.
Пока у рякта есть набор фундаментальный хуйни которую даж рякторазрабы признают.
Не вижу повода дёргаться.
Этого двачую
Давай пример.
Держи, для общего развития.
Раз: https://www.youtube.com/watch?v=ip66mO6sdf8
Два: https://www.youtube.com/watch?v=g0I4kh8zr2o
И помните, жизнь слишком коротка, чтобы быть базоебом.
типа Было [[1,5] [1,3] [3, 5] [2,5] [2,4]]
стало [[1,3] [1,5] [2,4] [2,5] [3,5]]
Ладно, это оказалось проще, чем я думал
https://codesandbox.io/s/clever-wu-53qec?file=/src/index.js
Угу
Да ладно, в принципе, я тоже не ожидал.
У меня вот сегодня собеседование было. Я очень долго задачу решал. Не люблю когда смотрят над моим решением, так что я не сильно лучше тебя. Хотя пихуй, я всё равно к ним на работу не пошёл бы
Ты шаришь в нексте? Он действительно за тебя всё делает в плане SSR? Некст вообще ближе к фронту или бэку, вот это нихуя не понятно
onChange={(date: Date) => setEndDate(date)}
datepicker отсюда взял https://reactdatepicker.com/
Это ваш ебучий тайпскрипт, когда дело доходит до подключения сторонних библиотек
>Как из вкладки network вытащить данные?
https://qna.habr.com/q/476316
Ты же получаешь эти данные в response
[key in Abu]: boolean;
};
Как сделать чтобы object.entries(2ch) возвращал не [string]: boolean а тоже что и 2chType?
Ты как-то не умеешь вопрос формулировать, чтобы можно было тебя понять. Object.entries() возвращает массив вида:
[
0: [key, obj[key]
]
Ты Понимаешь, что ты такому типу данных хочешь присвоить свой 2chType? У тебя как минимум твой boolean не равен [key, obj[key]
В общем либо корректней пример показывай (желательно ссылкой на codesandbox), либо формулируй конкретней
https://codesandbox.io/s/pensive-zeh-7dkk3?file=/src/index.ts
Переписал, правда тут entries не работает почему-то
Во-первых, возвращая новое значение из функций.
Во-вторых, никто не говорит что мутации нельзя - просто их нужно изолировать и минимизировать.
На скрине говнокод.
>>83758
type Entries<T> = { [K in keyof T]: [K, T[K]] }[keyof T];
function ObjectEntries<T extends object>(t: T): Entries<T>[] {
return Object.entries(t) as any;
}
https://stackoverflow.com/questions/62053739/preserve-type-when-using-object-entries
Смог через это решить, но вроде как это не особо желательно решать так
Выглядит как какая то залупа. Это не в твою сторону упрёк, а в сторону тайпскрипта
Говнокод - это контекстуальное понятие и никто в жизни тебе не скажет, говнокод на скрине или нет, не зная предварительно, что этот код делает и в каком окружении он существует, т.к все, что тут видно - это пару условий без контекста, судить тут нечего. Поэтому на тебя и накинулись только ваннаби фп-шизики с религиозными догмами уровня НЕ УКРАДИ, НЕ МУТИРУЙ, НЕ ИСПОЛЬЗУЙ THIS, НЕ УБЕЙ, НЕ ВКЛАДЫВАЙ ИФЫ, которые в их мозгу существуют в отрыве от любого контекста и якобы применимы всегда.
>Поэтому на тебя и накинулись только ваннаби фп-шизики
Молвил как божечка.
Лучик света в этом царстве мамкиных какбэ функциональных какбэ программистов.
Братишка, за я тебе расскажу за всю хурму.
Что такое говнокод?
- это код который делает сложно там где можно сделать просто.
10 ифов вместо 1 кейса там, где это уместно, это говнокод.
- это код который тяжело понять тому, кто его не писал. Подумай какого будет тому кто после тебя...
- это код который не следует принятой в твоем коллективе конвенции по именованию и форматированию
- это код который делает чрезмерно много вещей для простой задачи (из пушки по воробья)
- это код который отвечает сразу за все. 1 метод дуДжоб на 2 экрана это помойка, 20 методов которые делают конкретное и называются соответственно, это хорошо
- функциональщина ради функциональщины это говнокод(это кстати вытиуает из первых пунктов)
В любом языке на котором ты пишешь, есть тн Best Practices и следовать им хорошо. Например в мануале того ж тайпскрипта естб раздел
https://www.typescriptlang.org/docs/handbook/declaration-files/do-s-and-don-ts.html
Изучи его, и буть молодцом
Ps
Код который ты написал без понимания (копипаста с соседнего проекта, со стаковерфлоу) - говнокод по-умолчанию
Типа по скрину непонятно, что у него в этих ифах логика переключения слайдеров
Кроме того, не нужно знать контекст, чтобы сказать что мутации и this'ы это плохо. This'ы, например, НИ В ОДНОМ контексте не нужны.
Функциональная сучка заголосила
Есть подозрение что вплоть до мидл+ тебе эти махинации с типами из типов просто не нужны.
Более того, я глубоко убеждён что они всегда не нужны, потому, что генерировать типы динамически, это уже такое мета программирование которое делает твои программы более сложными в понимании.
Реально я в жизни никогда не видал, чтоб кому то по производственной необходимости (а не блажи ради) писать вот это вот все:
type OptionsFlags<Type> = {
[Property in keyof Type]: boolean;
};
Вместо этой мути, лучше обмазываться интерфейсами на каждый чих. Тогда будешь гарантированно молодцом.
Дед-на-ангуляре
>Кроме того, не нужно знать контекст, чтобы сказать что мутации и this'ы это плохо
Как тебе уже сказали, программ без мутаций стейта не существует в принципе. Программа, которая не изменяет стейт - это программа на листке бумаги, а не в компьютере. То есть первая дебильная догма летит в окно.
>This'ы, например, НИ В ОДНОМ контексте не нужны.
Нужны, в контексте использования классов и ООП. Если ты кукарекнешь, что в объектно-ориентированном жсе ты не используешь ООП, то ты долбоеб и пиздабол, который думает, что если new Calculator() поменять на buildCalculator(), то ООП резко пропадет.
Ну давай ещё какой баян притащи. Ты во всё субъективное говно, которое подкрепляет твою маня-точку зрения с ютуба веришь? Про когнитивные искажения чё-нить слышал?
No-code решения будут тебе генерить говнокод. Не ной и выучи вёрстку, это не рокет сайнс.
Понял. Спасибо дедушка, мне стало немножко легче. В принципе, я так и делаю, как ты говоришь, проблем не знаю. Просто нашёл задачки по этой ссылке и мне действительно сложно что-то написать. В некоторых случаях я просто не понимаю конвенцию Typescript
https://github.com/type-challenges/type-challenges
А как вообще проходить эти челленджи? песочница открывается с ошибкой импорта, run ничего не делает.
На первом пикче кнопки разноцветные. Это задания. Кликай на какую хочешь. Выходишь на страницу задания. Нажимаешь на кнопку Take the challenge и тебя кидает в песочницу. Пишешь только в области, где написано "Your Code Here" (пикча 3). У меня не было никаких проблем
Открываю, а там:
Cannot find module '@type-challenges/utils' or its corresponding type declarations.(2307)
Дядька Боб, Макконнел, SOLID, DRY и прочее это такая же субъективщина, но базоебы этого не понимают.
Ну, допустим. Хотя нигилизм, как правило, лишь оправдание. Какой у тебя опыт в индустрии, и на позиции какого уровня работаешь сейчас?
Пчол, как раз для таких случаев придумали тип any. Серьёзно, на разбирательстве внутренних типов ты потратишь время и скорее всего ситуацию не решишь. Я благословляю тебя на его использование.
А ты прав, так и сделаю
>Просто нашёл задачки по этой ссылке
Ну я тебе так скажу.
Я там сам нихуя не понимаю, дальше бейсика. При этом свои 200+ кк наносек имею.
Не забывай, что пограммирование это все же ремесло для большинства. Непростое, но ремесло.
А конкретно эти челинджи про иксусство.
Я вообще, сторонник поступательного развития. Прежде всего надо понимать обзорно многие концепты. Потом надо постоянно думать как бы сделать свой код получше (а не повыебитстее)
И тогда, если у тебя есть кругозор, ты начнешь понимать как применить те или иные штукидрюки.
Ну типа вот прочитал ты forkJoin из RxJS и такой "нипонял, хуня какая то"
А потом встала реальная задача перед отображением страницы дождаться когда 7 дропдаунов из апи приедут. И ты такой , юля ну точно!
Так и с этими продвинутыми типоштуками. Ты в принципе должен знать что есть там keyof, всякие служебные типы, аля Required<T> Partial<t>
и когда придет нужда ты наверняка вспомнишь что что то такое было
Не пытайся объять необъятное, сейчас не 2002й чтоб весь справочник по языку в голове држать.
У тебя в доке TypeScript четко написано для чего нужен эни.
Вполне легально, если рядом написать
TODO: implemet correct interface
Это копия, сохраненная 11 мая 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.