Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
>>2184147 (OP) Посоветуйте мне пожалуйста именно видео-уроков по вкату в жс (не фреймворки, не jquery/typescript а самый именно чистейший жс). Азы на SoloLearn и Жаваскрипт.инфо прочитал, все забывается тут же. Нужны именно видеогайды.
>>2184274 Мне кажетса, что чтобы не забывалось, надо решать задачи на каком-нибудь кодварсе или литкоде. Кодварс более прост, лучше юзать его для начала, потом перейти на литкод, т.к. там более сложные задачи и обычно их дают на собесе. Сам я решил почти 300 задач на кодварсе: 8 кую - 100, 7 кую - 150, 6 кую - 30, 5 кую - 20. Очень сильно помогает не забывать встроенные функции. Ну и узнавать новые тоже.
>>2184309 Зачем читать на ангельском, если есть возможность читать на русском? Чтобы что? Чтобы ты типа неебаца крутой, знаешь английский B2, можешь на изи читать на нем тех. литературу? По факту на нейтив языке легче воспринимается, нагрузка на моск меньше и профита больше. Ресурс что на русском, что на английском одинаков.
>>2184317 >нагрузка на моск меньше Тогда незачем идти в IT. Есть тысячи сфер деятельности, где не нужно "напрягать мозг".
>профита больше Профита в чтении на русском меньше. Читая на английском, ты повышаешь скилл владения английским. Этот скилл повышает стоимость твоей рабочей силы.
>Ресурс что на русском, что на английском одинаков Нет. На английском информация по JS и фреймворкам всегда актуальнее.
>>2184328 Этот ресурс организован русским человеком и инфа обоюдоактуальна. Цену твою не повышает знание английского, а повышают твои умения. Можно охуенно прогить и без английского. Я не говорю о совсем нулевых знаниях, я говорю о том, что зная просто слова этого достаточно на 100%, чтоб стать хоть синоьором, хоть тимлидом.
>>2184328 >Этот скилл повышает стоимость твоей рабочей силы. А вот это вопрос спорный. У меня так-то разговорный английский, но, сук, не вижу чтоб за это доплачивали.
Регулярно всякие псы присылают вакансию на английском, с понтом какие они все крутые работают на зарубежного барина.
Когда им говоришь, what's the salary bonus for my fluent english? Они начинают мямлить про "мы считаем что свободный английский для программиста не скилл но basic requirement"
>>2184235 Так и есть. Мне до сих пор так никто не смог пояснить, почему для ковыряния DOM я должен использовать унбанскую ванильную реализацию, а не старый добрый и удобный жеквери.
>>2184351 Ты совсем осел? Предлагают средние по рынку деньги. Нахуя мне работать на аутсорсера если он не предлагает условий лучше чем местный работодатель?
Как в реакте типизировать функцию setState, в которую передаёются коллбек вида: setState(prevState => ({...prevstate, ...params})) ТС орёт, что prevState какая-то хуета, чё ты мне тут впариваешь. Как указать тип для функции установщика значения useState?
>>2184326 Читай Флэнегана, он наиболее понятный и доступный среди всех баз. Книга толстая конечно, но тебе не нужно всё поряд читать как роман. Там еще и вышла новая версия 2021 года с русским переводом.
>>2184338 Русский человек Элияху Кантор, создавший этот замечательный ресурс, уже давно занимается исключительно английской версией. Уже потом на русский это переводят энтузиасты.
Английскую версию читают больше людей, поэтому редактируется она чаще и, следовательно, информация там актуальнее.
>>2184411 А почему ты его не знаешь? Учи английский, а параллельно читай Кантора на русском. Ну и YDKJS правильно советуют, эта серия есть в русском переводе, недавно переиздали вроде. Только сначала лучше Кантора освоить.
Делаю чатик на mern. Какой наилучший способ работы с отправкой изображений? Какой-нибудь вк делает загрузку вложения на сервер при его открытии, а потом уже, при отправке сообщения, просто в аттачментс указывает uid этого вложения, насколько я понял. Но если я хочу отправить все вместе: и изображение и тесктовую инфу о пользователе, то как отрегулировать тогда такой запрос на серверной части? Стоит ли писать отдельный контроллер для файлов, который бы вызывался котроллером сообщений или это ебля и ненужна, можно хуярить все в одно? Подскажите, в общем, как это по уму делается.
>>2184639 скажем так, если ты упомянешь тестирование, и что-то расскажешь, это точно плюс. упарываться совсем я бы не советовал, лучше основной стек дрочи.
>>2184628 >[Субъективное мнение, которое никому не интересно] Вот то что это самый высокооплачиваемый язык - это главное, ведь мы программируем ради денег.
>>2184690 >[Какие-то случайные слайды] Единственный источник, что имеет значение HH.ru и он показывает, что за c++ платят ~30К, а за JS ~150К. Вот и всё. Ты легко можешь сам это подтвердить, но ты слепой хейтер JS, так что можешь верить во что хочешь.
>>2184823 Условия внутри тернарных выражений и расчет x лучше вынеси в отдельные константы, например: const currentSizeBigger = ... const n = currentSizeBigger ? ... : ...; const x = ... И потом просто пишешь: this.setState({x});
>>2184823 Вкатун, ты проебался, this.state.x нельзя использовать, ты должен получать текущее значение из аргументов функции, т.е. this.setState(state => {state.x})
>>2184338 >Цену твою не повышает знание английского
Повышает и сильно
>>2184342 >У меня так-то разговорный английский, но, сук, не вижу чтоб за это доплачивали Так нахуй ты на роисю работаешь, удаленочку же придумали. Заходишь на какой-нибудь angelco и пишешь всем подряд, проходишь интервью на английском, устраиваешься, получаешь закономерную "доплату"
>>2184851 На галеру именно? Без понятия, но судя по собесам в стартапы и компании 1-200 человек - не особо. Кто-то пытается косить под FANGMAN, но в остальном +- тоже самое
Хочу написать простенький аналог тамблера (аккаунты, загрузка изображений, вывод изображений на главную страницу, комментарии к изображениям). Хочу бэк написать на джсе. Посоветуйте фрейм дурачку который неделю назад написал хеллоу ворлд.
>>2184930 Совсем запизделся? >https://en.wikipedia.org/wiki/Express.js >Express.js, or simply Express, is a back end web application framework for Node.js, released as free and open-source software under the MIT License.
Вьюшники с аполо клиентами, где обычно пишутся запросы? В самом компоненте или выносятся в отдельные файлы и из них возвращаются значения? Сейчас useQuery прописываю прямо в компоненте и возвращаю из setup результат, думаю это хуевый кейс, не?
Господа, у меня к вам немного анрилейтед вопрос. Вот есть фуллстеки, есть апворкс и все такое. Делать сайты нужно. Но сайт помимо бэка и простенького фронта это же еще и дизайн? И каждому говноеду нужен уникальный? Получается нужно быть еще и дизайнером, что-то делать в фотошопе, картинки подгонять и прочее? Хорошо если тебе нарисовали приблизительно что хотят, а если нет? Как вообще выглядит вокрфлоу фуллстек макаки?
>>2185111 Дизайны оттуда пиздить ниболее подходящие. Цветовые схемы, расположение элементов и тд. С картинками придется поебаться, но лучше от них просто избавиться
>>2185073 Ну базовые навыки по колористике и дизайну всяко не помешают. Просто не забывай что 99.9 процентов твоих клиентов некомпетентные дибилы и сами не знают что такое хорошо.
Есть ещё хитрый вариант, найди себе фрилансера дизайнера и давай ему копеечку, пусть хуячит тебе в фигме. Если я не путаю, базовая страничка в фигме это рублей 10 15, сильно разгрузит тебя от унылой хуйни.
>>2185259 >говно в итоге компилируются в тот же js? ДА НУ НАХУЙ!!! Не может быть!! Неужели кто то все таки понял всю суть жс??!!!! Никогда не подумал бы что мы прочитаем это ахуенное ОТКРЫТИЕ. Пашел нахуй
>>2185259 >Brython Прикольная штука кстати, но пока плотно не использовал. Только хелло ворлд. Другие способы затащить python во фронт я запустить не смог.
Сап, подскажите, вот у меня есть реюзабельный компонент Title допустим а под ней реюзабельный компонент Button, как мне между ними марджин сделать? Дополнительный класс создавать и соответственно его как проп принимать или в div Обернуть один из компонентов?
>>2185372 >>2185374 Можно чтобы Title и Button принимали className на всякий случай, ну и вот случай наступил когда нужно margin добавить Можно сделать <Space> <Title> <Button> </Space> привет antd
Ну или хуярить везде Spacer, семантика по пизде, но работать будет и без всяких контейнеров ради контейнеров
>>2185383 Если всё заворачивать в контейнеры, постепенно можно находить схожие элементы и выделять сразу контейнер в отдельный компонент. Любые способы рабочие (хоть контейнер, хоть спейсер, хоть проброшенный класс, хоть инлайн стили), просто нужно понять как тебе с этим удобно работать и делать именно так.
>>2185395 Ещё раз. Надо смотреть только на то, на что именно тебе надо смотреть. Если ты пишешь какую-нибудь хуйню под Electron, тебя вообще не ебёт ни один мобильный браузер и стоит поглядывать только на хромиум. Но если ты пишешь что-то исключительно под мобилку, то тебя уже не должны особо беспокоить десктопные клиенты (хотя на мобилках почти никогда делают что-то, что не реализовано на десктопе, но опустим этот момент)
>>2185386 >>2185376 >>2185371 Не понял кстати теперь, а зачем ето все, если можно просто className пропом передавать из компонента? Или тут тоже какие-то подводные камни
Просто разные способы сделать одно и тоже. Какой удобнее, тем и делай. На крупных проектах есть часто гайдлайны как правильно, но в основном по ситуации.
>>2185621 >а нахуя глубину дома без необходимости увеличивать
Да хуй знает, ради визуального разделения и возможности работать с блоками целиком, а не с отдельными элементами.
Раз возникла ситуация добавить отступ между двумя элементами, возможно возникнет необходимость добавить третий элемент и на него тоже отступ повешать. Запихивание в контейнер решает проблему. Либо стилями на дочение, либо gap дадут тебе отступ на всех элементах.
Хотя по большему счету это мой личный загон и сборная привычка от работы с бутстрапом и antd
>>2185661 А как тогда верстать? На похуй? Какой способ наименования классов ты выберешь? Будешь ли юзать id? Будешь ли использовать селектор тегов? Как ты стандартизируешь верстку без методологии?
Я не спорю, что есть и другие методологии, можно юзать и их. Но не тебе решать, что использовать. Если в компании уже используют БЭМ, ты тоже будешь её использовать.
Посредством несложных вычислений можно посчитать, что из вакансий верстаков в 90% используется методология БЭМ. Другое дело, если ты решил стать именно что разработчиком.
>>2185661 Меня кстати спрашивали за методология бэм. Но я ваще не шарю, и норм живу. Кажется это про именование селекторов по принадлежности элементам, типа .main-window-upper-bar-login-component-wrapper{} Но это не точно
Заебался дрочить graphQL и apollo на клиенте, в принципе с ним можно нахуй дропнуть стейт менеджер, но надо дохуя всякого писать, дропать и юзать рест? Или добивать и чилить с этим стеком?
>>2184851 По личному опыту больше упор на софт скиллы. Даже в вайтбордных собесах, важно то как ты рассказываешь и свой ход мыслей показываешь. Просто все понимают, что техбазу подтянуть всегда можно, а вот с человеком придется работать лично месяцы и, возможно, годы.
С английского и местного рабсеянина кекнул, можно не знать хорошо программирование, но без английского ты максимум это в галеру пойдешь.
>>2185764 > Что мешает юзать css modules? Мне один раз ответили что в ксс модулях стили снаружи уже не поисправляешь. Зато в бэм костыли можно накручивать с утра до вечера. Вся суть, методология на полшишечки
дрочу ноду, насколько всратый кейс запроса? startPeriod находит первый элемент, в result возвращаются данные за семь дней начиная со значения startPeriod
>>2185837 >нельзя дату в реквестор принять Я не знаю какая дата на данный момент находится, они постоянно добавляются, ищу самую свежую, к ней добавляю семь дней и отправляю, хз даже как по другому
>>2184690 На скринах пиздёж по той причине, что в js очень много джунов и недомидлов, а в тех же скала и го почти всегда люди уже опытные с других языков переходят. Найди любую статистику с разбиением по уровню скилла, там будут js/ts сеньоры на уровне с остальными. Но зато это намного проще, чем быть сеньором на скале с их ебучими монадами и функторами, чем сеньором на го с обрезком вместо языка, чем сеньором на джаве с убогим бойлерплейтным бумерским спрингом, можно долго продолжать.
аноны, тут есть кто-нибудь кто работает удаленно, живя в России, с зп >100 к юсд?
Если есть, опишите пж: 1)Опыт разработки коммерческий/для себя 2)Где искали работу 3)Какое отношение имеете к научной среде ( образование, диплом, публикации, ресерчи и тд) 4)Как вообще ощущаете себя и свою жизнь с такой зп в России
>>2186531 Кореш работает в криптобирже Kraken, на момент устройства у него было лет 5 опыта, сам откликался на линкедине, диплом бакалавра из обычновуза РФ по информатике. Живёт почти так же, как местные работяги типа меня с 200к деревянных в месяц, только накопления намного быстрее генерируются.
Хочу в бекенд изучил основы, промисы и т д. Обязательно ли при этом нужно будет трогать фронт, честно вообще не охота с ним сталкиваться. Хочу чисто писать программы
>>2186557 Без понимания того, как будет использоваться то, что ты делаешь - можешь сразу пройти нахуй. Ебланов, которые не могут спроектировать API и так развелось слишком много.
>>2186631 Если будет какой-нибудь +- адекватный фронт, который сможет тебе нормально спроектировать модели и связи, которые он хочет видеть, то можно полностью на это забить хуй. Но скорее всего, этот адекватный фронт существует только в моей фантазии, ровно также, как и адекватный бэкэндер.
Сеньор/Лид-бэкэндеры из моей практики делают настолько лютую хуету, что аш трисёт. При этом, у фуллстак-миддла не возникает вообще никаких проблем с этим.
С точки зрения бэкэндера, у него то всё круто. По всяким методологиям, бест-практисес, мать их. Но при этом, они в основном нихуя не понимают то, как это будет использоваться на фронте.
Если фронтендеру приходится ещё как-то серьезно обрабатывать данные, которые высрал бэк под конкретную вьюху - бэкэндер пидорас сжечь сучару
>>2186645 Вот тут согласен. Иногда на фронте по макету в ряд представлены так данные, что приходится эти данные получать с разных эндпоинтов осуществляя множество запросов, а потом удивляются, почему сервер 429 возвращает
>>2186652 Мне тут месяц назад лид высрал такую структуру данных, что даже спустя месяц очко горит Попытки заставить его переделать это говно не увенчались успехом - фронт пополнился алгоритмом на 200 строк, которые разворачивают в обратную сторону его злоебучую структуру.
Молюсь, чтобы пекарни пользователей не сгорели в потугах это обработать. Хотя это фронтенд, всем похуй, купи больше оперативочки
>>2186557 Братюня, если ты хочешь в бэк, то зачем тебе этот уебищный джаваскрипт? Самый помойный из современных языков эвар. Который делался обезьянами для еще более тупых обезьян.
Хочешь "писать программы", вали в богом даннй .Net Core и там познаешь полное счастье.
>>2186691 >многие знакомые и коллеги съебывают на ноду.
Шарпы охуенны как инструмент, я тебе прям отвечаю, это очень крутая история про сложные и серьезные вычесления. Нода хороша из коробки когда тебе надо сделать хайлод но с простенькими операциями. Например у меня один бро спутниковые снимки на гигабайты данных вращает, ему это нода нахуй не впилась, ему надо многопоточные вычичления и матан. А когда тебе нужно обслужить 10к постов на макабу в наносекунду, то , как я понимаю нода выигрывает тем что могет это изкаропки.
А лично мой мотив вообще простой. Деньги. Я просто иду за рынком и перекатываю туда, где более денежно. Сидишь такой, мидлом на .Net стаке, за свои ссаные 150 рублей, и тебе корешь экс-фронтендер рассказывает, как он перекатился с 200к за чистый фронт, на 300к за фулстака ЖС... и понимаешь ,что где то тебя наебывают. Сделал волевое решение, забил на дотнеты и поехал в чистый фронт. И пока не пожалел. Чуть позже заеду в фулстак , на MERN или MEAN( это ваще похуй) и буду поднимать мидлом столько, сколько .Net братухи поднимают синьорами...
>>2186704 >Чуть позже заеду >буду поднимать мидлом столько, сколько .Net братухи поднимают синьорами
Стэк не решает особо. Да, количество вакансий зависит от технологии, но в целом решают навыки. При желании хороший шарпист может до 500 в рашке получать именно сидя на коде. Зарубежные вакансии если не брать лидов, до 100к евро.
Фронт, нода, питон, да даже фуллстак - там не сильно большой разброс. Кстати по какой-то рандомной и неясной мне причине, фуллстак вакансии обычно хорошо так ниже чем онли фронт/бэк
>>2186704 Так и есть. На ноде сумасшедшее бабло платят. Скорее всего это связано с развитием микросервисной архитектуры, которая тупо топ и вытеснит монолит из бэкенда, а вместе с ним всякие дотнеты.
Почаны, есть у вас какие-нибудь статьи как правильно реализовывать архитектуру переключения языков/смены цветовой темы сайта, чтобы потом не выстрелить себе в ногу? Спасибо
>>2186747 На какой платформе блин? На ангуляре самое простое пилишь(ставишь) транслейт сервис, делаешь джейсоны ключ - значение,, делаешь пайп и в шаблоне лепишь <button name=" yoba_btn | translate" >
Такжи погугл "i18n strings" это какой то более универсальный современный подход, но я ещё не копал
>>2186746 > тупо топ > пилишь говно для синхронизации и всякие акторы-саги, где на монолите бы все в три строчки решалось бы > пять БД сохраняют одну и туже хуйню или ебаные запросы на другие говносервисы, где граф взаимодействий сложнее графа взаимодействий бомжей с мамкой ЖСера > Фместо дебага одной кнопкой - поднимай инстансы, я знаю, ты любишь поднимать. > все тормозит, пердит, латенси на простейшие операции зашкаливает > "бля но у нас вертикальное масштабирование типа" (выдержать нагрузку хватило бы монолита с небольшой репликацией) > "бля, отказоустойчивость типа. монолитерам нипанять" > валиться сервис TrimString - все завалилось, реверт стратегия обосралась. "чисти 5 баз, чисти, вилкой чисти". Когда на монолите транзакция в две строчки делается.
Пилишь монолит на коре, делаешь настройки нагрузок, ставишь богический Consul, он за тебя раскидывает по инстансам нагрузку.
Пануешь.
Яж говорю, мир жс это мир непуганных идиотов которые постоянно изоьретают то что зловещий майкрософт давным давно решил, прошёл, объебался и оставил людям лучшее решение
>>2186747 Правило одно: Делаешь это заранее. Сразу заводишь систему переводов даже если через неё идёт один язык, сразу цвета складываешь в переменные. В готовое приложение вкатывать боль и страдания, подводных камней не счесть.
>>2186797 А он проигрывает? По каким критериям ты даёшь свои экспертные оценки, дружочек?
Я вот в своей карьере всегда работал в топ конторе в выделенной области. Если онлайн шопинг, то самый крупный клон амазона в РФ, если банкиры, то топ 3 частный банк страны, если ритейл, то топ 2 корпорации мира. И везде бэкэнд был на дотнете.
Ясен хер, что нонейм шараг в сотни раз больше чем солидных предприятий => больше вакансий для обизьян. Только зачем ориентироваться на макак?
Мобильная разработка это Java Kotlin ObjectiveC Крутой бэкэнд мощных контор это. NET
Всякая смузихлебная херь это в основном нода, а реально крутых контор на ноде это по пальцам...
>>2186668 Угараешь что ли? Это по-твоему массив? Это удобно? Хуй там! Если только через колбэки и статические переменные как-то сделать, но это все равно не то. Да и нет того в js, потому что говно ваш язык! PHP лучше во всех направлениях - это факт. Блять, ну почему мне приходится это говно изучать???
У меня есть position relative элемент, и есть в другом месте в верстке другой элемент с position absolute, и первый кроет второго, даже если второму !important для теста пишу. Как можно без z-index починить?
>>2186826 По твоему УДОБНО сопоставлять элементы двух разных массивах? А если там по 20 элементов, удобно да, блять? Даже синтаксис объектов удобнее в разы.
>>2186826 Или у тебя два массива с одинаковой длиной и тебе надо каждый зареплейсить? String.prototype.replaceArr = function(selectorsArr, valuesArr) { var formatted = this; for(let i = 0; i < selectorsArr.length; i++){ formatted = formatted.replace(selectorsArr,valuesArr); }
return formatted; };
var res = "/1/ sdfsdfs /2/ gvsdfsdf /3/".replaceArr(["/1/", "/2/", "/3/"], ["One", "Two", "Three"]); console.log(res);
>>2186861 На 10 символов больше чем у меня. У меня страница в гугл инсайтах будет выше стоять чем у тебя, лошара. String.prototype.replaceArr=function(r,e){return r.reduce((r,t,n)=>r.replace(t,e),String(this))};
>>2186852 В пхп используется массив регулярок (patterns) и массив их соответствий (replacements), вовсе не обязательно, чтоб были все совпадения. Функция preg_replace() заменяет найденное вхождение по регулярке по индексу массивов. То есть если регулярка в массиве является нулевым элементом (patterns), то заменится найденное значение на нулевой элемент в replacements. Понел? Есть тут такое же?
Это между прочим удобно. Просто прописываешь 2 массива и всё. Даже если они займут 100 строк, это будет удобнее и понятнее.
>>2186871 Нихуя, жс удобнее и проще, синтаксис пхп отвратителен, а ещё у жса есть тайпскипт. Плюс пхп только в наличии стабильных фреймворков типа симфони и ларавеля. Но в ноду уже завезли всё необходимое, так что единственный плюс пхп уже практически отвалился.
>>2186869 Ну давай, научи. На фронте у меня сохраняется компания и какие-то начальные юзеры. Есть компани и юзер сервис. Компани сервис создал компанию. Дальше-то что?
>>2186875 Хахаха, ты че несешь, жс-макакен? В курсе что рынок PHP расширяется в данную секунду? Каждый день рынок вакансий растет на 0.1%, а рынок жопыскрипта падает на 10%. Аудитория PHP гораздо больше и лучше и адекватнее, нежели в жопаскрипте, где одних только вкатунов - 90% и маленькая тележка.
>>2186871 >PHP >какой-то метод в глобальном пространстве >для того, чтобы выполнить N замен приходится создавать 2 массива с N элементами >божественно
>JS >Метод находится внутри string, не засоряет собой глобальное пространство >что бы выполнить N замен нужно написать N вызовов методов, все просто и логично >хуйня ебаная в пыхе лучше
>>2186895 >А если не создал, ммм? Почему не создал? Значит надо дать пинка бекендеру чтобы пофиксил баг >И допустим, у нас бизнес рул не иметь компаний без юзеров. Так может тогда не разделять это на отдельные сервисы?
>>2186897 Ну приехали. >Почему не создал? Та хуй его знает, сервис прилег, или через БД провалидировать юзера надо.
>Так может тогда не разделять это на отдельные сервисы? Так может тогда монолит? Или ваши микросервисы не умеют удовлетворять "динамические требования" кабана?
Аноны подскажите как работает поиск по апи с менюшкой подсказкой. То есть я ввожу букву и он мне выдает все аниме на эту букву, откуда он берет данные ? К примеру у меня есть апи - база аниме, мне нужно сразу загрузить всю базу на 500 тыщ названий, или по каждой букве делать запросы к апи ?
>>2186880 Так ведь чтоб на пхп кодить большого ума не надо. Знай себе var_dump() и die() вставлять меж строчками кода и все. Простой язык, проще некуда. Чего не скажешь про жопускрипт.
>>2186922 Вешаешь событие на изменение модели (иди на keyup), чтоб не слать мильон запростов в бэк,делаешь debaunce на своем govno.getAnimuSuggestion(str)
>>2187083 Остальные платформы, очевидно же, пхп, жаава, андефайнд и т.д.
>>2187094 Я такого ни одного не знаю. Какие-то может и перекатываются, так само как и обратно. Я бы ни за что не перекатился. Ну разве что, если + 2к + интресный и одновременно ленивый проект. Но таких нету.
>>2187098 >Остальные платформы Тогда поч6ему топ-1 имеет 9%? Неужели среди оставшихся почти 90% ни у кого не больше? Это же сколько там ещё всякого говна, раз они меньше 9%*?
>>2187104 Бэкенд конечно. Фронтенд это разметка, стили и фреймворк, которые учатся за неделю максимум. Посмотри на роадмап того же дотнета или джавы, сколько там всего учить.
>>2187121 А как там дела с лицензированием? Можно все возможности фреймворка использовать не продавая свою сраку в анальное рабство мелкомягким как в случае с ораклом?
>>2187102 Я микросервисник, мне просто лень читать вашу дрисню на десять страниц или спорить с очередным фанатом долбоёбом, который усрётся, но не на шаг от своей точки зрения не отступит.
>>2187041 >>2187121 >>2187098 Круто, а часто тебе нагрузку в 400к rps в одном сервисе приходится держать? Изначальный факт остаётся фактом — бекендеры на джаве и ноде зарабатывают больше. На го тем более. Алсо не вижу как го сосёт у дотнета, fiber не сильно отстаёт.
>>2187414 >охуенно изобразил код похуй, что тернарник с двумя ветвлениями не читается, похуй что каждый из 50 чеrбоксов перебирает массив стейта, похуй что код не работает, похуй что для такого кода нахуй не нужен реакт, с его компонентным подходом, похуй что хуки используются не по назначению, ЗАТО КОД ИЗОБРАЖЕН ОХУЕННО
Подсветка, темы, автодополнения, инструменты рефакторинга, гит клиент, дебаг, профили запуска и миллион других фич за смешные 160 бачей прстоянной лицензии
>>2187554 >Подсветка есть в говне от мелкософт >темы есть в говне от мелкософт >автодополнения есть в говне от мелкософт >инструменты рефакторинга есть в говне от мелкософт > гит клиент есть в говне от мелкософт >дебаг есть в говне от мелкософт >профили запуска и миллион других фич Ты не пофришь, но есть в говне от мелкософт И все это бесплатно
>>2187557 Начинал я с говна от мелкософт и там все а) более всрато б) надо педплить руками.
Рефакторинг от джетбрейнзов это само по себе киллер фича. А что там вменяемый гит клиент, консоль и тема даркула- это приятные бонусы. Кстати оно ещё и оперативки жрёт меньше чем вижуал студио коуд.
Да и зачем ты считаешь чужие деньги? Хочешь кодить бесплатно - на здоровье.
>>2187570 Когда спрашивают, почему функция вызывается два раза и прилагают скриншот с кодом, то имеют в виду, почему / для чего / для каких целей надеюсь, хотя бы так тебе понятнее будет ее вызывают два раза в коде.
>>2187575 Расслабься, я честно не понимаю, зачем ты начал докапываться. Тебе нечем занятся, кроме как душнить в спорах с ньюфагами? Что-то не так с самооценкой?
>>2187545 >, почему myNewFunction вызывается два раза Потому что может, а если препод снимет труселя и начнет наяривать свою колотушку, ты тоже спросишь почему он так делает ?
>>2187659 Понимать области видимости и то как это работает под капотом. Для обезьяны типа тебя достаточно 'внутренняя функция видит переменные внешней"
Для человека с головой сразу возникают вопросы: а как это реализовано? А почему counter не пропадает ведь мы вызываем внутреннюю функцию, а не внешнюю? А почему работает без зис?
На эти вопросы и должны отвечать" ебанутые" схемы?
как работает конструкция при изменении какого-нибудь стейта? Оба компонента рендерятся или как вообще это все происходит? condition ? <component1 /> : <component2/>
>>2187719 Это if else по сути. Если condition true (или то, что там указано, существует), то рендерится первый, если false (null, отсутствует), то второй.
>>2187732 Он не отрендерится, если condition будет true. То есть в коде указаны условия его существования, но в DOM его не будет, пока condition не поменяется на false.
>>2187732 Он не присутствует в документе даже в VDOM его нет, он присутствует только в виде JS-кода, который даже не выполнится, пока condition станет true.
На говне от мелкософта сидел года два, пока не обнаружил себя в состоянии, когда накручено уже 50+ плагинов, всё ещё чего-то не хватает и при этом интелисенс открывается с ебанутейшей задержкой и уже быстрее было блять руками написать
Дал шанс вебсторму и уже второй год не нарадуюсь, что я съебался с этой параши. На ценник в 300 рублей в месяц вообще похуй+похуй, учитывая то, насколько сильно он упрощает жизнь.
Да и по качеству кода, сразу видно дегенерата, который по какой-то неясной причине всё ещё пользуется вскодом - код всратый, куча типографических ошибок, куча просто ошибок потому что дебик не смог в плагин eslint.
Короче если ты нищееб не можешь позволить потратить даже 300 блядских рублей на хороший инструмент, который приносит тебе деньги, пройди нахуй, пожалуйста.
>>2187776 >потому что дебик не смог в плагин eslint. Справедливости ради, вот тут ты слишком жесток. Как ебано настраивается линтер в вс коуд это своего рода мемас. В него не только дебс, но и адекватный чел не всегда может.
>>2187859 Не будет он считаться легаси говном. Слишком много на нем нахуярили всяких либ и проектов. Я думаю, что будет ситуация как с jquery, который, по сути умер уже с релизом IE11 но все равно везде использовался еще долгое время.
>>2187776 >Да и по качеству кода, сразу видно дегенерата, который по какой-то неясной причине всё ещё пользуется вскодом - код всратый, куча типографических ошибок, куча просто ошибок потому что дебик не смог в плагин eslint.
Это и хорошо и плохо. Еще миллион лет назад помню как мне верстала скинул все исходники, а там вообще нет package.json, при этом проект явно собирался каким-то говном, выяснилось что стили он собирал десктопным scss, скрипты хуй пойми чем, наверно в репл бабеля копипастил каждый раз руками, какой-то блять паг еще для разметки, короче 2007 год. Ну и понятно что зарепродюсить этот билд сетап было неприлично дольше обычного npm install && npm run dev
Как лучше делать общий стейт? допустим у меня для компонент есть 5 полей, я сделал один useState({}) с обьектом где все эти 5 полей хранятся, но в итоге заебался уже обьект этот обновлять, все равно так надо или как-то еще можно?
>>2187904 >скрипты хуй пойми чем, наверно в репл бабеля копипастил каждый раз руками Тебе смешно, а нам такой проект за несколько десятком миллионов галера сделала в этом году. Там прямо лютое говнище на jquery, исходники которого состоят из одного js файла, который прогонялся через компилятор babel'я в браузере и заливается на статик сервер через FTP. даже не мифицируется >>2187941 Правильного ответа тут нет. Каждый городит как он хочет, вариант с одним объектом на 5 инпутов не самый плохой.
>>2187942 >Стейт-манагер Вот тот хуйню городит. Стэйт манагер используется для кейсов, когда тебе много компонентов нужно обновлять в зависимости от одного стейта. 5 полей в форме это не много.
>>2187955 Ну я не работал еще на том месте, когда требования заявлялись и согласовывались. Там в требованиях нихуя не указано, кроме как реализация определенных фич и требований к безопасности. Тащемта, качество кода там реально на уровне джуна, я вообще удивлен как за такие деньги они не смогли хотя бы миддлов запрячь на этот полугодичный проект.
>>2187963 Так и у жквери их сейчас нет. Просто нашли более удобный способ создавать сайты, без ебки с DOM, в котором jquery до сих пор топ 1 библиотека, несмотря на то, что он уже не поддерживает некоторые селекторы и многие API требуют передачу им элементов, а не jQuery<Element>. Просто найдут более удобный способ создавать приложения и сразу на него пересядут. >>2187966 Prettier по умолчанию их хуярит, поэтому все и ставят. Ну и флэшбеки из университетского курса под C++ от деда-сраки дают о себе знать.
>>2187554 Все это есть в вс коде, только намного легче по обвеске. Вся эта хуйня все равно в работе не используется (графический гит клиент, лул, git add, git commit мышкой набираешь?), а когда надо, тупо проще через вс код найти нужную настройку/плагин.
>>2187941 Если у тебя сложная работа со стейтом и в стейте еще и проверки разные выполняются или происходит дополнительная работа с установленными значениями, то лучше использовать useReducer, так намного проще будет этими стейтами оперировать, и самому легче будет не запутаться в этой жопе говна из бесконечных переплетений и установок стейтов в рандомных местах. Бойлерплейта будет больше конечно, да, придется поначалу нагородить хуеты как в редаксе, но в итоге код станет гораздо легче для понимания.
>>2188017 >потом через switch вывести необходимую Причем тут switch? Ты делаешь ГСЧ, потом от его результата получаешь картинку из массива/объекта/Map/БД/<Твое хранилище name> по сгенерированному индексу.
>>2188042 >диай сервиса-фабрики Вы посмотрите на этого очередного ооп имбецила, который сначала нагородил ооп, потом понял, что с этим ооп теперь как-то нужно работать, и нагородил поверх этого еще тонну говна, чтобы с ооп совладать, забыв только о том, для чего всё это говно изначально было нужно.
>>2188057 В JS нет встроенного способа генерации рандомной строки подходящей под регулярное выражение когда ты создаешь рандомную строку и проверяешь его на соответствие в расчет не берем по понятным причинам. Тут тебе остаетс ятолько зареверсить это регулярное выражение и писать свой генератор с нуля. Олсо, зачем тебе это? Генерация паролей встроеная в любой браузер с незопамятных времен.
Мимо на стороне деда-ангулярщика, но годная точка зрения важна бесят реактивные формы в онгуляре, пошиму нельзя как в первом: ебанул модель туда, принял сюда, серилизовал, отправилда, да, имутабельность, сложные валидаторы, разделение ответсвенности и т.д...разделение отвественности все равно хуевое. лучше я бы уже наговнокодил валидаторами на вьюхе, чем динамикой вьюхи в компоненте
>>2188075 >бесят реактивные формы в онгуляре, Меня тоже бесили на старте, слишком многословно и инициализация массива ебаная.
Зато иммутабельно и крутейшие валидаторы. Опять же изкаропки у тебя все есть, в то время как ряктобядь изобретает как к формам стейт менеджер прикручивать.
>>2188075 >Мне интересно. А я вот уверен, что наш ряктомалышь обосрется (как обычно) аргументированно пояснять, почему реактивные формы говно
Обосрется прежде всего потому, что для того чтоб чтото-то обосновать по-факту, надо досконально понимать, как оно работает. А для него, как мы видим, формбилдер это магия, ооп нинужно (хотя он на этом ооп работает) и так далее
>>2188036 Причем здесь купить или не купить, мне компания может оплатить да я и сам долларов на 100 в месяц трачу на подписки и программы. Просто банально перегруженный инструмент с кучей фич, которые никогда не используются да-да, я понял что ты всерьез коммитишь мышкой. VS Code приятен тем, что там только код, интелисенс и терминал и все летает даже на проектах с сотнями файлов. Остальное если надо можно плагинами добавить и заточить под любой язык, а если не надо, то чистенько и быстро работает. Идея нужна только для больших легаси проектов c устаревшими технологиями (по типу ангуляра), когда без поддержки иде невозможно кодить.
А так вим идеальней всего, если не лень изучать клавиши. Но точно не лагающие монстры от JetBrains, тем более для фронтенда.
>>2188115 >в то время как ряктобядь изобретает как к формам стейт менеджер прикручивать. Хуйню несёшь. Подключается либа react-hook-form и формы на изи разруливаются без перегруженного ангуляроподобного говняка
>>2188257 Что угодно можно. Управлять формами с помощью инструментов реакта вполне реально, но зачем? Это не фреймворк, а библиотека. SSR отдельно, формы отдельно, роутер отдельно, http клиент отдельно, стейт менеджмент отдельно. Ничего плохого в этом нет.
>>2188150 >там только код, интелисенс и терминал и все летает даже на проектах с сотнями файлов >Остальное если надо можно плагинами добавить
И вот в словосочетании "всё летает" появляется ошибка - должно быть "всё лагает"
С реактом в Webstorm вообще никаких проблем не возникает. Вангую если открыть твой говнокод в шторме, можно хорошенько поржать над количеством ошибок.
Алсо, я коммичу в основном консолью, но когда коммит чуть более жирный, чем 2-3 файла и где-то я мог забыть приттиер прожать - pre-commit в гуе шторма всё делает за тебя - правит кодстайл, удаляет пустые импорты.
Злоебучий VSCode без плагинов не сможет и в 1/100 того что есть в шторме, а с плагинами эта хуйня начинает безбожно лагать. Нет, спасибо. Если можно не пихать текущие по памяти плагины, написанные индусом пяткой во сне, то зачем?
Пол дня просидел на хабре и так и не понял что лучше mobx или redux toolkit для нового проекта с поддержкой на пару-тройку лет примерно, может вы ответите? мимо бекендер
>>2188295 Ящитаю mobx, там мемоизация встроена, а в редаксе надо на любой пук писать селекторы чтобы не было лишних ререндеров. Сам последние три года работал с проектах с редаксом, к сожалению на проектах был выбран редакс до меня, работал в них потому что других плюсов много.
Хуки в react это магия? Как сохраняется одна и та же переменная со стейтом при перевызове функции компонента? По сути каждый раз должны создаваться новые переменные state и setState, но они сохраняются
Да где он летает, то, покажи Только ставишь дефолтную пачку плагинов: ESLint, Prettier, TypeLens, TabNine, Path Intellisense, JS Parameter Annotations, GitLens, Better Comments, Color Picker, без которых работать одно ебаное уныние, так сразу эта хуйня перестает тебе открывать окно Intellisens'а быстрее, чем ты успеваешь руками сам всё написать.
А это далеко не вся функциональность, которую я бы хотел видеть для своего удобства, но даже она уже всё тормозит.
А сколько ебаных раз я перезагружал UI из-за того что ему настал пиздец, что у меня даже плагин Reload стоит, чтобы в одно нажатие это сделать?
Очень долго я пытался найти баланс между количеством плагинов, скоростью работы и удобством, но в итоге нашел его в щторме, где плагины не нужны вообще и всё работает из коробки хоть и медленнее, чем VSCode без плагинов, но стабильно в несколько раз быстрее, чем с плагинами.
>>2184147 (OP) Пацаны, а почему при попытке создания объекта в выражении мне серит ошибками, якобы я не так разделитель указал? Вроде ж атрибуты в объектах указываются через запятую, почему тут надо точку с запятой вдруг писать?
>>2188375 Хуево, раз ты за месяц так и не научился отличать, где у тебя объект, а где block statement. Твоя манера коверкать слова как раз верно отражает уровень твоих умственных способнлстей, жопаскриптер. У кого что болит.
>>2188389 Удваиваю, можно поизъебываться с архитектурой знатно. Но к сожалению, вакансий по MobX маловато, в подавляющем большинстве я вижу Redux, потом Redux Toolkit, дальше клиенты под GQL и где-то в самом конце уже MobX.
Но он хорош, это факт. Если нравится ООП и не хочется слишком сильно лезть в бэкэнд, то это хороший выбор.
>>2188393 >Если нравится ООП и не хочется слишком сильно лезть в бэкэнд, то это хороший выбор
Можно кстати не использовать инстанс класса. В 6 версии mobx можно получать результат функции makeAutoObservable. Внутрь передаёшь объект со стейтом, экшенами и геттерами (пикрелейтед)
>>2188597 У меня на рабочем компе тоже тормозил, там i5 3570 вроде стоял, в итоге мне поменяли на i7 8700, после чего он лагать перетстал. На домашнем пк с рузеном 2600 тоже все норм, так что скорее всего проблема у тебя.
Почему margin-left: auto прижатие к правому краю срабатывает при display: flex блоке, но не срабатывает при display: block? как-то не хочется ради прижатия спана вправо делать контейнер флексом
Есть 2 стула: Стартап с 120к на руки и оформлением через ип и интересным мне проектом. Крупная контора со всякими it плюшками, компенсациями, бесплатными обучениями и топовым офисом, но 100к на руки (возможно больше после испытательного)
>>2188732 У меня была ИПха и я с ней заебался, хотя там отчетности минимум, потому что патент. Алсо в конце года придется платить страховые взносы в пенсионный и медицинский фонды из своего собственного кармана, суммарно около сорокета, а сейчас может и больше. В общем на этих 20к разницы ты не много потеряешь, а нервы точно сэкономишь. И в догонку - ИП я заводил только потому, что платили в евриках переводами из оффшоров.
>>2188833 Тогда норм. Не связывайся со смузихлебами. Повторяю, смузихлебы дно дна. Единственный варик впрягаться в стартап только если ты абсолютно точно знаешь кто и на каких условиях финансирует.
Если инфа сотка, что за стартапом стоит СБЕР, Система, Большая Четвёрка операторов и прочие серьёзные люди, то смело можно заходить.
А если это очередные молодые дружные амбициозные динамичные скрамканбанэджайлсэйфбэмхуэм смузихлебы - вейперы, строго нахуй.
>>2185667 >Как ты стандартизируешь верстку без методологии? А нахуя ее стандартизировать? Если у тебя типовой проект ты берешь под него какой-то фреймворк, bootstrap, material не важно. Там вся методологии сделана до тебя умными людьми, ты просто следуешь ей.
Если у тебя уникальный проект, тогда фрейм туда может не покатить и ты будешь верстать с нуля. Тогда нахуя тебе методология, если это разовый проект?
Ты все чрезмерно усложняешь.
>>2185659 >Чел, сейчас 95% верстки делается с какой-нибудь методологией css Чел, сейчас 95% верстки делается на одном из них material UI фреймворков, потому что любой сайтик по сути становится PWAшкой, и выдрачивать твою кастомную верстку, чтобы это не колхозно выглядело на смартфоне по сравнению с другими приложениями не будет никто.
>>2188331 > ESLint, Prettier, TypeLens, TabNine, Path Intellisense, JS Parameter Annotations, GitLens, Better Comments, Color Picker Если тебе нужна вся эта хуета, то конечно без иде не обойтись. GitLens один только полезен, остальное... Особенно с Приттира вголос, который не может нормально поставить скобки во многих функциях из той же Рамды.
Я предпочитаю чистый экран с кодом и терминал, а не кучу прибауток. У нас на работе только eslint стоит, все остальное каждый по желанию ставит. Да и eslint можно отдельно прогнать потом.
>>2188387 Обычный, разумеется. Тулкит лишь убирает некоторый "бойлерплейт" и пытается решить самые частые юз кейсы, но он добавляет щепотку магии и лично мне не нравится из-за тупых "слайсов", которые убивают всю суть редакса (отделение экшнов от редьюсеров).
>>2188976 Ну вот когда у тебя много куканов, то обслуживать их надо по очереди. Nx это такой power coocan и присаживаться нужно только на него. Мы когда переезжали на nx хотелось все проекты в одну репу и не ебаться с конфигами, так и получилось. Там достаточно удобные тулы для ухода за проектами, тысячи конфигов править не надо. Для vscode есть плагин с кнопками. Можешь посмотреть картинку со всеми своими проектами и стрелочками. Можешь не смотреть. Если осилишь nx affected то будет ещё лучше. Если у вас есть дохуя opinionated структура проекта/модулей - можешь написать генераторов для этого.
По моим ощущениям он лучше ng cli, потому ng cli хуево вывозит пересборку зависимых пакетов в деве. По сравнению с cra nx лучше кастомизируется, типа если ты хочешь less то тебе не надо сосать лапу. Ну и по сравнению с самодельный сборкой - делать ничего не надо, но если хочется то webpack конфиг тебе будет предоставлен.
Из нюансов - npm version для пакета запускается не в руте, поэтому npm боится делать комиты и теги. Можно для этого написать свой executor, но там тоже есть нюансы. Ну и никаких модных сборщиков там вроде не поддерживается, но об этом можно и не задумываться, если ты не порридж конечно
>>2189015 Чтобы сайт корректно работал, статичные сайты никому не всрались, данные должны обновляться вживую по запросу на бэк. Нет бэка - эмулируешь функцией с рандомными полями и данными, которая возвращает псевдоданные с бэка.
>>2189031 Хуёлосто, говно тупое. Фронтенду нельзя не знать как ему там, что ему приходит. И наборот, бекендеру нельзя не знать что там будут делать с его апи-хуяпи.
А вот если я буду верстать без вот этих вот методологий, а просто буду юзать условный бутстрап, но все будет чики-пуки как надо, то есть все адаптивно, кроссбраузерно и пиксель перфект, то этого хватит, чтоб на работу взяли? И разумеется охуенно буду знать js, ts, react/vue.
>>2189041 Можно потом, дока по миграции есть. Но лучше сразу, успеешь хоть попробовать перед тем как "Сычев, ну че там?" и время потом тратить не придется. А то "ой у нас проекты по версиям зависимостей разъехались" Сторибук можно не ставить, cypress можно не ставить, все это можно поставить потом
>>2188931 Ну да, а я предпочитаю работать со всей этой хуетой, потому что удобно.
Когда открываешь проект долбоеба на VSCode кококо, прогоню eslint перед коммитом кококо в шторме и видишь 1000+ ошибок по типизации, 500+ типографических ошибок везде и всюду, плюсом сверху 5000+ варнингов, уже не удивляешься.
Не спорю, если ты достаточно выдрочен чтобы писать чистый и красивый код, никакой eslint нахуй не нужен. Но для большинства макак, которые сидят на этой борде он жизненно необходим хотя бы потому, что он пиздит по рукам и приучает делать хорошо.
А мне просто нравится, что я могу поправить какие-то ошибки ещё до того, как я их по сути сделал, либо прям в этот же момент.
>>2188296 >>2188389 >>2188393 Не писал на mobx, но скоро надо будет, почитал доки, там какие то опять "реактивные контексты" за которыми следить надо, иначе реактивность не работает, лул. Это сильно мешает или незаметно?
>>2189067 Раньше надо было следить, @action, @observable писать Сейчас у меня нет особо проблем просто с тем, чтобы въебать makeAutoObservable, закрыть глаза и помолиться. Вроде не подводило пока.
>>2189072 Ну не без проблем, естественно. Как и любой другой инструмент - просто инструмент. Но имхо сильно приятнее, чем Redux, хоть и мнее распространен.
>>2189075 Лол, попизди мне еще тут. Я с пхп перекатываюсь, так что краешком всегда касался фронта, но конешно постоянно скажем так оглядываюсь, постоянно путаюсь с этим пхп, методы блять через точку у них, вы что, ебанутые что ли совсем?
Все нормальные люди обращаются к методам вот так: $class -> doSmt();
>>2189052 >Пока писал этому стартапу, что отказываюсь от них, получил прирост на 33% от заявленного изначально Ну покажи эту пикчу своей солидной конторе
>>2189082 Потому что битрикс ведет в никуда. А в фронтенде есть шанс стать 500ккк. Ну и плюс хочу быть современным, юзать там всякие фрейворки. Мне пока всего 34 года, думаю еще есть шансы.
>>2189089 Функция - подпрограмма, выполняющая какие-либо операции и возвращающая значение. Метод - это функция или процедура, которая принадлежит классу или экземпляру класса.
У нормальных людей как раз есть понимание что есть функция, что есть метод.
>>2189095 Ну я вот уволился со стека битрикса, где получал 60к. Накопления в виде 300к есть, чтобы спокойненько вкатываться в фронтенд. Планирую год потратить на обучение, а в 35 вкатиться сразу на мидла на 1к зелени.
Ммм ну шансы у тебя какие-то явно есть. А если потратить год не на обучение, а на подготовку и прохождение ревью в зарубежные компании, можно и 3к+ при большом везении с минимум навыков. Тут уж как продашься
>>2189097 За год до мидла это реальный план. Но че-то твоё сообщение попахивает враньем.
Битрикс "программист" уже лет 10 стоит сильно больше 60 если он не конченный. Ну и уйти с 60 чтоб через, сука, год было 80 это план аутиста. Да и не стоят сейчас мидлы 80. 80 это джун на галере, а мидл минимум 180 нонч. На самом деле 200плюс просто изичи. Можно и 300 но это уже надо потеть
>>2189155 Отчасти соглашусь насчет сказочника, но начальная планка миддла точно больше 60 и максимальная точно больше 100. Но 300 для миддла это что-то немного дохуя. Через знакомства, разве что, хуй знает.
>>2189073 > Но имхо сильно приятнее, чем Redux Это если с классическим редуксом образца 2017-2018 года сравнивать. Даже дока редакса рекомендует юзать тулкит уже год или два, с ним вполне норм.
>>2189153 Путин что ли запретил все браузеры кроме хром-базедов? Почему нода работает на V8? Почему всякие жоперы и хуяндекс-браузеры форкаются от хрома, а не от лисы?
>>2189067 Реактивный контекст - это оборачивание компонента в HOC observer. К сожалению в mobx это практикуется. Надеюсь когда-нибудь этим заниматься не придётся. Но энивей это всё ещё намного удобнее редакса тулкит. В последнее время приходится писать на Vue, и как же я рад, что Vuex делали под влиянием MobX, а не редакс.
>>2189451 Ну оборачивать компонент то хуй с ним, обернул и забыл. А вот async await проебан и надо или после каждого await заворачивать в action, или использовать их обертку для генераторов, о которой ts не знает и ещё все типы вручную расставлять