Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Кочаны, хочу БД на JS, чтобы на клиентах с сервером синхронизировалась. Сама. Ну чтобы типо и на сервере (нода не обязательна) и на js клиенте была одна бд. Есть что-то подобное?
Как же мне хуево блять, от того что я лютый говнокод пишу. Когда ебашу у меня просто нахуй отключается самокритика. Мне любой высер руками кажется 10/10 решением. На следующий день смотрю и мне хуево становится. Пиздец. Особенно когда смотрю на код других людей, у которых все красиво и всякие интересные решения. Есть способы начать писать лучше? Я раньше думал, что это вопрос практики, но оказалось, что нихуя. Либо у меня практики недостаточно.
>>1935904 Всем поебать. Главное чтобы твой код отностилеьно эффективно свою задачу выполнял, сосредотачивайся на этом. Однозначные, проверяемые, функции, быстрые для тестирования, всё такое. Быстрота написания говнокода это тоже одна из задач.
>>1935904 недостаточно практики я тоже пишу говно код, раз в неделю я улавливаю мозгом фичу которкую использую в своем говнокоде, и говнокода становится меньше
конечно же я понимаю, что вебсокет - это протокол, но ключевой момент в твоём вопросе - это синхронизация, что какбэ подразумевает под собой связь с сервером. Если БД будет сразу на двух слоях - тогда это нарушаеет ACID принципы. (про CAP-теорему можешь мне напоминать)
>>1936033 > связь Вопрос о связи вообще не стоит. У меня несколько протоколов к тому же, начиная с удп, кончая квиком. > Просто найди любую real-time БД и не выёбывайся. Но я хочу выебываться! ну подумаешь ебанутый, что тут такова Для реалтайма и всякого такого отдельный сервер написан частично написан, ебанутые не могут писать код и на клиенте пуре-жс-инмемори функции.
>>1936039 > это синхронизация Не, синхронизация это чисто синхронизация локальной и серверной бд. В этом смысол. Хз может я туповато написал, похуй. Это нужно чтобы проще было, чтобы меньше кода писать, легче объектами управлять, создавать инмемори слои, проще делать реактивность. > Если БД будет сразу на двух слоях - тогда это нарушаеет ACID принципы. (про CAP-теорему можешь мне напоминать) Читал только про ацид. Да, согласованность тут нарушается. Шо я тут подумал. В каждом отдельном случае согласованность буду делать руками. Перед одними данными приоритет будет иметь клиент, перед другими данными сервер, в некоторых случаях будет дублирование, в некоторых случаях пользователь сам будет решать. Конечно будет нужна обработка потерянных данных. Не уверен что это возможно в коуч+поуч, но вероятнее всего это возможно и сделать можно. Скорее всего, то что я описал, это классическая реализация различных нарушений согласованности и так делают фсе. Кластерная согласованность это уже отдельная хуиточка и скорее всего её тоже как-то можно сделать руками и там безусловно будут потери.
>>1935904 Везет тебя. У меня вообще 90% кода тупа спизжено откуда-то. Остальные 10% чисто мой напильник. Вот от этого действительно не очень. Правда я только вторую неделю учу.
>>1935904 Частенько по неопытности и из-за лени пишу говнокод, а рефакторю его позже. Но с опытом, когда пишешь после нечто похожее - пишешь збс уже с первого раза, т.к. просто уже знаешь как.
Всем доброго времени суток. Решил устроиться на свою первую проектную подработку параллельно с основной работой, меня спросили, сколько беру за час, сказал, что 400 руб. Не продешивил? А то нет опыта в таких делах, прикинул, что на основной около 300 получаю. Решил немного накинуть, чтобы не борзеть, но интересно узнать у более знающих анонов (работа не сложная - формошлепство на реакт/тс)
Как можно предотвратить ререндер элементов, созданных с помошью map? К примеру есть список товаров, который пользователь добавил к себе в корзину. Из этого списка с помошью map генерится список элементов на странице. Внутри каждого элемента есть свой счетчик, чтобы можно было увеличить количество товара. Проблема в том, что список этих товаров хранится в родительском компоненте, и каждый раз, когда я обновляю счетчик любого из товаров в списке, это счетчик изменяетс состояние у родителя, объект с товарами у родителя меняется, снова возвращается в дочерний элемент, который все это отображает и разумеется, это всё заставляет map пересобираться еще раз только из-за того, что количество товара увеличилось на одну еденицу, и из-за этого у меня обновляется еще раз картинка, имя товара и все остальное, только из-за того, что увеличилось поле "количество". Что с этим можно сделать? Как можно создать список товаров только один раз, а потом работать с ним так, как будто бы это уже настоящие jsx элементы, которые я как будто создал собственноручно, и которым уже не нужно пересобираться? Проблема в том, что товаров этих в дальнейшем может быть сколько угодно, и мне каким-то образом очевидно нужно всё таки этот список изначально сгенерировать. А вот потом уже можно было бы у этого списка обновлять только какие-то отдельные данные, не перерендеривая весь компонент со списком целиком. Как это вообще делается обычно? Когда пропсы не приходили сверху и хранились только в самом компоненте, этой проблемы не было. А тут из-за обновления пропсов обновляется и map, от них зависящий. Пиздец написал как дебил, но надеюсь вы поняли
>>1936218 Если ты совсем зеленый и без опыта, то не продешевил. Зато после того, как набьешь шишке и поймешь, что к чему, сможешь релевантно оценивать свой ценник и уже примерно прикидывать сколько стоишь.
Если не тупой, и разработаешься, то через месяцок сможешь смело поднимать ценник в двое.
>>1936218 >>1936225 Лол, я примерно месяц назад на удаленку устроился за 200р в час. Но у меня вообще опыта 0, я только учился до этого, а тут хотя бы за деньги.
>>1936221 Храни товары в стейт-менеджере. Контекст(как пример) позволяет лишь избежать проп-дриллинг, он не решает проблему нормализации и управления состоянием. Отображать весь список товаров на странице - плохая практика. Фильтруй товары/используй пагинацию/бесконечную прогрузку в таком случае.
>>1936228 >Отображать весь список товаров на странице - плохая практика. Их очень мало, тут нечего фильтровать. Да и это не было бы проблемой. Сайт совсем небольшой, думал может быть без стейт менеджера можно было бы обойтись.
Сейчас попробовал заменить стандартный компонент Image у некста, и сука, блядь он начал обновлять список товаров вообще без каких-то заметных внешних изменений.
>>1936241 В которые обернут провайдер или консьюмер? Если у меня контекст на самом верху, у меня вообще всё приложение ререндерится будет? А если пропсдриллить?
>>1936257 >В которые обернут провайдер или консьюмер? Очевидно же, что провайдер. >Если у меня контекст на самом верху, у меня вообще всё приложение ререндерится будет? Да, именно поэтому не стоит пихать в глобальный контекст таймеры и вообще всё, что часто обновляется. >А если пропсдриллить? Та же проблема, только ещё и пропсы у всей цепочки компонентов засираются.
>>1936257 ну вот эту проблему решает стейт-менеджер разделяешь глобальный стор на стейты и передаешь компонентам только нужные куски стора, тогда будет ререндерится только то, за кем ты следишь
Да знаю я редакс, проблема была не в этом. Уже решил все переделать на редаксе. Просто не знал про такую проблему стейт менеджмента без стейт менеджеров. Нахуя тут тогда в треде говорили, что не нужно всегда использовать стейт менеджеры? Нашел кого слушать на дваче конечно, понимаю Я тут просто недавно рассказывал о том, что мне в тестовом дали задание, сделать приложуху без стейт менеджеров, и я бомбил с того, что нахуя это вообще нужно, а меня тут в треде переубеждали.
Сап. Вот есть задача написать хуевину которая будет рендерить модальное окно с выбором способа оплаты, далее ввод данных, их подтверждение и непосредственно оплата на стороне сбера после ответа сервака. В общем сейчас написал один класс с хуевой тучей методов который все это делает. Сейчас хочу сделать рефакторинг, разбить по разным классам выполняющие весь функционал независимо в котексте объекта с данными. Правильно ли я пишу вообще? Вроде бы в голове есть понимание что и где нужно, но в наследовании не очень из-за чего довольно таки сложно передать результат одного метода в другой.
>>1936277 >>1936221 Не понимаю вообще, а разве браузеры и всякие реакты настолько тупые, что рендерят всех родителей? Че эт за хуйня вообще? Мне кажется эту проблему еще в 2017 гожу решили, даже как-то не задумывался над этой хуйней.
>>1936285 > с выбором способа оплаты, далее ввод данных, их подтверждение и непосредственно оплата на стороне сбера после ответа сервака. Это вообще одна функция строчек на 5, которая берет ввод и отправляет куда нужно. Офк, интерфейс отдельно.
>>1936257 Все приложение ререндерится не будет, только те компоненты которые подписаны на контекст. К сожалению, сейчас нельзя подписаться на часть контекста и это ключевое отличие от редакса. Но useSelectedContext уже пилят.
>>1936288 >>1936282 Надо всё равно мемоизированные селекторы писать чтобы чилдрены подписанных компонентов не ререндерились когда меняется стейт, на который не было подписки
>>1936277 >Просто не знал про такую проблему стейт менеджмента без стейт менеджеров. Это проблема существует и во флюксах, так как связана со скоупами, а не реактом. >Я тут просто недавно рассказывал о том, что мне в тестовом дали задание, сделать приложуху без стейт менеджеров, и я бомбил с того, что нахуя это вообще нужно, а меня тут в треде переубеждали. Так это проверяли, как состояние разбиваешь. Вангую, что на каждый пук экшон в редаксе делаешь и хранишь референсы вообще на всё. >>1936285 Какие классы? Хуярь модульные функции и не выёбывайся.
>>1936391 >кидает какую-то вырванную из контекста частную статистику с синтетическими примерами, которые ничего не показывают читай полностью, что я написал, ты не почувствуешь эту разницу нормальные люди виртуализируют списки, если они большие
>>1936472 Ну и хули что твой высер лишний раз ререндерился? Ебать это уже пахнет фпс дрочевом, сука это сраная страница которая запускается на устройсвах с 16гб оперативы и почти столько же видеопамяти, на безлимитных тарифах. Вы ебанутые?
>>1936504 Что хули, дегенерат? Ты перечитай цепочку постов. Началось всё с обсуждения того как уменьшить количество перерисовок. Кто-то пукнул о виртуализации, что вообще никак не уменьшает количество этих перерисовок, я об этом сказал. Теперь пришел ты, долбоеб который не знает что ререндеринг === перерисовка, насрал себе в штаны и начал уводить разговор на тему "И ШТО ШТО ЛИШНИЙ РАЗ ПИРИРИСОВЫВАИЦА!!?" Да ничего, мне вообще похуй, вопрос был 'как уменьшить количество перерисовок', вот в рамках этого вопроса и ведётся обсуждение.
>>1935813 (OP) >Для программирования на HTML https://jsfiddle.net Всем меня устраивает, хоть и консоль там подключается через скрипт. Но есть ли какая-то возможность настроить подсветку синтаксиса? В идеале бы конечно прям панель, где показана текущая настройка - название и цвет, и чтобы я мог каждую поменять. Или может есть какой-то оффлайн вариант этой программы, но чтобы принцип интерфейса сохранялся
>>1936522 >как уменьшить количество перерисовок узнать, в каких случаях эти перерисовки происходят и выяснить, что можно предпринять, чтобы их уменьшить даю подсказку: внутренний стейт и пропсы
>>1936472 Перерисовка это drawing, совершенно другой процесс, а рендеринг это рендеринг. Придумываешь какую-то левую терминологию, а потом бахаешь что ее никто не знает.
Повторные рендеры вообще не являются проблемой и слабо влияют на производительность.
То, что в реакте (да и вообще во многих других шаблонизаторах) стали использовать термин рендеринг, фактически для процесса компиляции и свеления, это проблемы разраьотчиков этих библиотек, а не терминологии.
Как мне указать тип стейта в реакте? Есть: const [state, setState] = useState([]); Тип сетСтейт определяется автоматически, мне нужно указать тип state. Пробовал [state: type[], setState] - не сработало.
>>1936772 >если законсолишь state там у тебя будет массив Ага массив. Any[]. А мне надо этот массив типизировать, сказать, что это не просто массив, а массив собачьих залуп eldaky30metrov[].
>>1936758 Ну не совсем. Рендеринг это комплексная фаза, перед тем, как браузер что-то отрисовывает - он должен перед этим достаточно много чего вычислить. Так например этим useEffect и отличается от useLayoutEffect - useEffect выполняется до фактического рендера, а useLayoutEffect ждёт, пока в DOM всё перевычислится и только потом этот эффект выполняется. мимо
Анон, нужно сохранить массив в БД с помощью JS. Как можно взаимодействовать с БД H2 или postgeSQL с помощью JS? Как я понял JS не предполагает работу с данными на диске. БД локальная.
>>1936831 Типо да, задания легкие. Если бы я знал какую-нибудь реляционную БД, вместо монго, то я бы прямо сейчас к ним мог закатиться. Но блять. Они уверены, что хотят с фронта писать прямо в БД, а не посылать данные на сервер, чтобы сервер уже сам там разбирался? Что это за шарага? Или я не прав? Вкатун
>>1936839 А может это типо наебалово такое? Проверить, кто сообразит, что что-то тут не так и расскажет почему так делать нельзя, а кто без задней мысли побежит хуячить.
>>1936845 Да ты заебал, блядь. Не все тут такие подкованные как ты (ну или каким хочешь казаться). Есть вопрос, если можешь помочь - ответь по существу. Не можешь/не хочешь, лучше помолчать тогда, не?
>>1936861 Ага. Кидаешь им архив с проектом, внутри БД - они запускают его, БД инициализируется. А вообще, такое ТЗ подразумевает о том, что аналитиков в компании нет, как и нормального ПМа, а значит нормального опыта ты там не получишь.
>>1935989 Нашел почему поучДБ не хотел использовать.
Она весит 30кб. Это оче дохуя и очень много лишнего кода. Как стейт её не получится использовать, а я в том числе хотел заменить стейт и прокладку до индексдб, если возможно это был один из пунктов тз на 20 страниц, хуй найдешь
>>1936893 В смысле, типичноприличный стейт это меньше 1кб кода. Конечно может поучдб и не все 30кб логики хуярит при каждом запросе, но всё равно для стейта слишком жирно. Наверное. Тестов-то я не делал.
>>1935904 1) Хороший код не пишется, а только переписывается из ранее написанного тобой говнокода 2) Эффективное переписывание(рефакторинг) невозможно в принципе без тестов Так что три буквы для тебя: TDD
>>1936993 >Так что три буквы для тебя: TDD Интересно было бы послушать прохладные истории как ты пишешь Реакт-компоненты по TDD. Может даже код покажешь?
>>1936993 >Хороший код не пишется, а только переписывается Переписывается хороший код только в том случае, если ты узнал что-то новое, иначе ты перепишешь тот же самый говнокод.
>>1936890 >>1935843 Подумал еще больше и понял следующее. Вприцнипе нужен горячий сервер с суперфастбд, с архивацией всего в копоуч, это и так понятно было. Но! Нихуя нипанятна до какого уровня можно покоуч использовать как замену реалтайма, можно ли кпоуч использовать для чатов, например. Или для стейта на клиенте. С одной стороны да, есть и уведомления и подписки, с другой стороны хз.
Хуле сложно-то так блядь, инфы и тестов почти нет, неужели таким вообще никто не занимается?
>>1937006 >как ты пишешь Реакт-компоненты по TDD Скорее вопрос, в чем именно по-твоему заключается проблема с тестированием реакт-компонентов через TDD, когда все, что тебе нужно, это две либы: https://github.com/jsdom/jsdom https://github.com/testing-library/react-testing-library >Может даже код покажешь? Пик. И это тестирование целой страницы с роутингом и глобальным стейтом, отдельные компоненты тестировать в сто раз легче, просто рендеришь и тыкаешь куда надо эвентами.
>>1937015 >>1936993 Это только в этом итт треде, пока вы малолетние, можете переписывать что-то там. Ирл есть набор тестов и ТЗ для класса/функции, оно пилится до состояния "ну вроде работает" и забивается громадный хуй. Никто это не переписывает и никто в код даже не заглядывает потом. Если это не библиотека, над которой трудится отдельный отдел/персонал. В идеале достаточно научиться писать без протечек памяти и достаточно быстроработающий говнокод. Большее не требуется.
>>1937037 У тебя не тестирование, а хуйня какая-то. Для нормальных тестов вместо params идёт отдельная либа, которая выдает все вариации логина-пароля, например. И проебанных данных. И кучу других вещей.
>>1937030 Нет, все сидят на графкл подписках или просто вебсокетах и данные кладут в стейт и персистят его если надо. Ни у кого модель стейта не совпдает с респонсами, так что не получится автомагически взять и синхронизироваться с 12 микросервисами.
Вот тебя зачем локально бд? У тебя интернета нет или дата-хэви апп?
>>1937038 >я пишу говнокод, а значит все пишут говнокод, по-другому нельзя, а кто говорит, что у него по-другому, тот выдумывает Классика. >отдельная либа, которая выдает все вариации логина-пароля Какие вариации логина-пароля ты собрался тестировать на стандартной странице логина с одной формой, которая просто берет от юзера имейл/пароль и отправляет их на сервер? И главное зачем?
>>1937040 ИГОРЬ делаю. И хочу чтобы половина реалтайм говна, вроде чатов, была в бд и имела отдельный протокол свзяи. И чтобы как можно меньше либ было, не хочу поддерживать тысячи говна. > Вот тебя зачем локально бд? У тебя интернета нет или дата-хэви апп? Хранить стейт локально это хорошая практика. Загружаться будет быстрее, потом прост обновление.
>>1937042 > Классика. Ну правда же, все пишут говнокод. Чтобы написать неговнокод, нужно подумать, а на это не всегда время есть, потому что задач дохуя. > Какие вариации логина-пароля ты собрался тестировать на стандартной странице логина с одной формой, которая просто берет от юзера имейл/пароль и отправляет их на сервер? Все вариации. В том числе отсутствие вариаций. > И главное зачем? Потому что это называется тестирование. То что у тебя на скрине - не тестирование, а хуйня.
>>1937058 >Чтобы написать неговнокод, нужно подумать, а на это не всегда время есть, потому что задач дохуя. Что-то уровня "чтобы ходить, нужно встать на ноги, а на это не всегда есть время". >Все вариации. В том числе отсутствие вариаций. Все - какие? Перечисляй, а не в воду пукай. "Отсутствие вариаций" - это отправка двух пустых строк на сервер, и от отправки заполненных строк с точки зрения клиента этот случай не отличается никак.
>>1937066 Такая формулировка неверна, потому что любители типов ее воспринимают как "надо написать тесты, что не вычитаешь число из строки, а зачем мне это писать в тестах, если я могу указать тип в коде". Тесты не проверяют типы как таковые, они проверяют функциональность(логику) приложения. И если ты продемонстрировал, что твое приложение выполняет все требуемые от него функции без ошибок, то тебе не нужно еще дополнительно демонстрировать, что внутри где-то не затесалось вычитание числа из строки.
И как я и сказал, первый любитель типов, полностью мисинтерпритировавший концепцию тестирования уже тут как тут >>1937069
>>1937067 > Что-то уровня "чтобы ходить, нужно встать на ноги, а на это не всегда есть время". Такова практика в фирмах. Иногда вместо тестов делают твой говнотест, например. Это нормально. Потому что всем похуй, в основном. > Все - какие? Перечисляй, а не в воду пукай. Что какие? Поехал что ли, ты хоть что-то про тесты знаешь? Отсутвие @, исключения всякие, малое кол-во символов, большое, тестирование роутеров и переадресаций, тестирование формы с разных страниц (если модальная). Всё это должно быть в тестах. > "Отсутствие вариаций" - это отправка двух пустых строк на сервер, и от отправки заполненных строк с точки зрения клиента этот случай не отличается никак. А тут будет тестирование ответа сервера, это уже другое.
>>1937072 > Тесты не проверяют типы как таковые Проверяют. > они проверяют функциональность(логику) приложения Это отдельные тесты. > тебе не нужно еще дополнительно демонстрировать, что внутри где-то не затесалось вычитание числа из строки. Для этого есть автотесты.
>>1937077 >Отсутвие @, исключения всякие, малое кол-во символов, большое, тестирование роутеров и переадресаций, тестирование формы с разных страниц Смешались кони, люди... Зачем ты собрался пихать в интеграционный тест для страницы проверку низкоуровневой логики валидации или уж тем более навигации(которая является заботой соответствующей либы и самого браузера почти на 100%)? Там тестируется конкретная вещь - в приложении есть страница логина, и если на нее перейти и засабмитить форму, то отправятся данные на сервер, и в случае успешного ответа юзер будет залогинен и перенаправлен на главную страницу.
>>1937096 Говноедство и ебланство - это как раз тестировать логику валидации имейла через интеграционный тест или боже упаси через браузерный системный тест на собранном приложении.
Какой самый простой прикладной алгоритм для определения половины прямоугольника, куда попала точка? Все координаты известны, прямоугольник всегда рассечён по диагонали и может иметь произвольные размеры.
>>1937161 Да похуй вообще, если ты пишешь тест и не проверяешь в нём на инвалид - это хуевый, бесполезный и бессмысленный тест. Даже архитектура теста хуевая у тебя, типичный стиль говнокодера с зашитыми в код строками(притом ты сам что-то говорил про говнокод). Почитай хотя бы парочку книжек как тесты делают, если сам допереть не можешь.
Может кто объяснить, для чего делается эта обертка в NextJs для Zustand? Для чего там контекст используется? Это если что пример для ssr. Без него такие обертки не делаются. Просто я не пойму, что будет если я буду использовать Zustand, так, как будто бы у меня просто обычная спа на реакте?
>>1937167 Для начала давай выясним все-таки, что там по поводу твоего забытого кукарека, что интеграционный тест должен проверять валидацию имейла и переходы со всех страницы, а потом уже можно перейти ко второму кругу твоей шизы, где тебе придется объяснять, почему по неполному куску тест кейса ты додумал, что я не проверяю фейлы, и откуда ты собрался брать строки, если не из кода. Но сначала первое.
>>1937207 > поехавший хуевые тесты называет интеграционными > json стейта зашит в коде, даже не через переменные > продолжает утверждать что так и нужно делать Не продолжай, правда.
>>1937218 >ита хуевый тест, конечно почему я не скажу и хороший тоже не покажу, просто хуевый!!! Понятно, держи в курсе. > json стейта зашит в коде Дурачок даже не разобрался, что это юзер инпут, а не стейт.
>>1937235 подвернулась работа пиздатая еще на angularjs. опыта во всяких фреймворках у меня тогда было 0,шанс упустить было нельзя. короче, как говорится -исторически сложилось
>>1937297 > Юзай firebase, чо ты как етот. Так это же АТГУГЛА. К тому же это какая-то закрытая штука, нахуй нужно пользоваться этим, может я хочу хотфикс для исходников сделать или форкнуть. > И хуле вообще тебе вебсокеты не нравятся? UDP/QUIC нужен прост, игра 120фпс. А все остальыне данные я по https гоняю, чаты, сообщения всякие, дату.
>>1937245 На фронт сейчас любую макаку, которая знает чем строка от числа отличается. Но если ты хочешь вырасти в дохуя тех. директора - то стоит учить что-то посолиднее жс
>>1936225 >сможешь релевантно оценивать свой ценник и уже примерно прикидывать сколько стоишь Проигрываю с дебила. Ты в универе учился? Экономическая часть дипломной работы была?
С чего долбоёбы взяли, что в фрилансе сотит выкатывать такой же ценник, какой обеспечивается при работе на кабанчика (которому кроме себя надо кормить ещё кучу ртов и башлять госудраству)?
В реальности, при работе на себя, ценник должен быть ниже и всё это прекрасно подсчитывается. Нахуй вы в универ штаны ходили просиживать? Или опять мантру заведёте - не профильный предмет, значит не нужон, лол.
>>1937373 Ты дохуя факторов не учитываешь (не удивительно, если учесть, что ты за универы топишь, там такую узколобость и воспитывают). Живу в Мухосранске, работаю на дядю 300 р/час, параллельно на фрилансе получаю 400 р/час.
Отработал 8 месяцев, сегодня написал заявление об уходе. Тимлид полный долбаеб. Постоянно разговаривает во весь голос и ржет как даун. У этого еблана весь отдел разработки разбежался, кроме пары джунов и одного 35 летнего подпивасника, а он все ржет. Уже считаю дни, когда это наконец-то закончится. Возник вопрос - я правильно понимаю, что в других офисах также и если я хочу работать в тишине и не слушать посторонние разговоры в течение всего дня, мне только на удаленку имеет смысл идти?
>>1937522 Средний около 26-27. Но это небольшая компания на окраине дс. Держался только потому что мне, когда я пришел зеленым джуном, платили зп на уровне мидла ТК оформление было в серую.
>>1937480 >Возник вопрос - я правильно понимаю, что в других офисах также и если я хочу работать в тишине и не слушать посторонние разговоры в течение всего дня, мне только на удаленку имеет смысл идти? Туда ли ты зашёл? В контексте треда разве что только в бэкэнд на ноде за тишиной можно.
А это нормально нахуй или я тупой просто? Переписываю свою микро-СПАшку на тайпскрип. У меня раньше было так: Из локал стораджа парсится строка и записывается в стейт: setState(JSON.parse(localStorage.getItem("helloworld))); И все собственно. Все работает, все заебись. Теперь там ебучий монстр-тайпгард: const isZaloopaExist = (myDick: string | null): myDick is string => { return (myDick as string) !== undefined; } После этой хуйни идет проверка тайпгардом: let dicks = localStorage.getItem("helloworld); if(isZaloopaExist(dicks)){ setState(JSON.parse(dicks)); }
Это нормально, что у меня 1 строка превратилась в 50? Или я наговнокодил?
>>1937600 П.С. Тайпгард понабился потому что тайпскрипт стал ругаться на то, что типо в сторадже может быть запись, а может и не быть. Я это не просто так от нехуй делать придумал.
Всем здрасти, я новичок и мне хочется в бэкенд, но в моем городе нет вакансий на ноду (есть js и питон). Пока учусь переехать не могу. Так вот, в ноду лучше из питона приходить или из фронта на жс?
>>1937687 Ну я выбрал C#, можно еще Go, но он по моему мнению сыроват и на нем сложно найти работу не имея опыта на жабе. Если копрофил то можешь также присмотреться к пыхе и жабе.
>>1937765 Да, использую. Точнее в рекате это за меня делает React.createElement или _jsx или как там этот метод называется, я хуй знает я ваще на пыхе пишу мне похуй. В ангуляре хз. уж явно в реакте и в ангуляре для создания элементов не испольхуется jquery
Блять памагити. Этот пидорас (тайпскрипт) не хочет принимать мой код даже не смотря на тайпгард. Ошибка в комментарии. https://jsfiddle.net/a5eh2mbn/1/ Как надо сделать? Я нихуя не понимаю блять. Тайпгард же вернул тру, все действия внутри иф блока, там никак блять не может быть null, ну никак блять. Может все дело в том, что тайпгард передан как проп?
>>1937854 Да, охуенно, сработало. Почему об этом ни единого слова нет в доках тайпскрипта, а вместо этого предлагаю писать тайпгард - целую ебаную функцию - для меня загадка. А почему тайпгард-то не сработал?
>>1937326 Ну допустим квик и удп на устройствах есть. В браузерах всяких, там где невозможен квик, будут вебсокеты нескучные, вебртц и другие варианты ебли с ачьком. Но всё это гей-мсервер, похуй на него, там даже кодить нельзя больше 50килобайт, проблемы нет вообще.
Проблема в сервере бд/стейта, нужно сократить кол-во технологий и говнокода путём взятия открытой альтернативы фиребазе. И как оказалось это ОЧЕНЬ сложно.
>>1937863 >А почему тайпгард-то не сработал? Потому что ты его не правильно объявил, у меня всё работает. Даже в доки заглянул из-за тебя, там 1 в 1 пример есть (2 пикрил).
>>1937870 Не только пыха, тебе пиздят. Ноду тоже можешь в сервер присунуть, но присунуть её можешь только имея конкретный фреймворк. А сейчас вообще на сервер пихают сишарп и нормально всё. Тоже хороший вариант, кста, можешь перекатываться спокойно.
>>1937908 Да не, много всякого серверного на сишарпе делают. Конечно не сравнить с питоном или нодой. Но бывают довольно серьезные штуки. В любом случае, смотри от того, чем лично ты хочешь заниматься вообще. На беке очень много технологий, даже на плюсах и чистом си пишут логику для нагруженных микросервисов.
>>1937928 хочу писать что-то такое, чтоб с сетями компьютерными, чтоб базы данных работали, чтоб механизмы какие-то для людишек данные обрабатывали, и всем от этого хорошо было, это мне куда пойти лучше? я серьезно
>>1937345 >На фронт сейчас любую макаку, которая знает чем строка от числа отличается. Пиздеж. Если ты даже тут напиздел, то твои слова про тех директоров всерьез принимать нельзя. Твои советы по изучению V8 и С++ тоже
>>1937373 Маня, ты стоишь ровно столько, сколько тебе готовы платить. И всегда, в любой ситуации найдется тот, кто будет готов платить тебе больше. Хуею с этого экономиста
>>1937991 Тогда вебпук блочит ESM в целях совместимости. Не выёбывайся и пользуй CJS. Тайпскрипт кстати тут не поможет, так как конфиги не компилируются.
>>1938005 >Вебпак, очевидно, работает с CJS, а ты ему ESM пихаешь. Вебпук всего-лишь жрёт то, что ему кормит нода, а 14 версия поддерживает ESM из коробки, хотя и требует явного объявления через `package.json`/переменной. По идее, если вебпак под капотом не делает лютый харкод на CJS, то можно в корневом `package.json` добавить `"type":"module"` и посмотреть на результат.
Цель - создать компонент, который выводит markdown разметку в виде html и стилизует её в css.
Я не знаю как правильней будет это сделать. Я скачал либу для парсинга markdown в html, но куда её подключать? В код самого компонента? Или передавать сверху, спуская в компонент уже готовый html? Я слышал, что компоненты должны быть независимы, но если подключить в сам компонент, то он по сути залочится на этой либе. Или это норма?
>>1938036 Сначала ответь на вопрос, нахуя тебе тут реакт сдался? Это делается парой стрчоек в ванильном жс. олсо >в компонент уже готовый html Так делать нельзя, гугл XSS.
>>1937947 Чел, слишком объемно. Ты можешь изучать с++ и всю жизнь писать высокнагруженные БД. Или программные штучки-дрючки. Сейчас вообще не факт что какой-нибудь компенлируемый язык, вроде нима, не будет доминировать даже в фронте. Изучай всё постепенно, алгоритмы и архитектуры данных. Несколько языков, вклюая си, плюсы немного и js. Этого хватит. Наверное. Потом выберешь себе по душе.
>>1938040 >>1938033 Нода может работать с одними модулями, ну получится намешать esm, cjs и amd в кучу, как писал выше анон. Т.к. внутри кода вебпака все написано на реквайрах - придется писать конфиг на реквайрах или поставить type: "module" в package.json и заменить гору module.exports и require на export default и import в исходниках вебпака соответственно
>>1938000 >this.btnNames.reduce((acc, e, i) => i >= start && i <= end ? (acc.push([e, i]), acc) : acc,[]) Спасибо, конечно, но не работает.
Выводит: "Delete profiles", "Save profiles", "Load profiles" в качестве первых трёх кнопок, когда указываешь промежуток 0..2.
А в качестве следующих двух кнопок выводит: "Delete profiles", "Save profiles", когда указываешь промежуток 3...4. А должно вывести: "Upload bot profiles", "Upload top profiles".
И индексы кнопки после повторного вызова отдают не те: счётчик сбрасывается и отдаёт 0, 1, а должно отдавать индексы указанного промежутка (3, 4).
>>1938049 Ну ты долбоеб потому что, не заменил значения в шаблоне. Хз зачем ты вообще что-то делать пытаешься, у тебя ведь ни знаний фреймворка, ни знаний JS.
>>1938050 >Парсер душит всю херню. Ты сам написал, что html собрался вставлять, лол, тут тебя никто не задушит. >Может потому что там не только этот компонент? Ну раз так, то передавай markdown в компонент и парси, применяй стили и рендери внутри него
>>1938059 >Ты сам написал, что html собрался вставлять Ты имбецил? Ты знаешь что такое markdown? Ты знаешь зачем он нужен и что делает парсер? Если не знаешь - зачем пишешь? >Ну раз так, то передавай markdown в компонент и парси Ой, а почему? А не будет XSS? А как же html?
>>1938065 >Ты знаешь что такое markdown? Знаю. ЧТо мешает в md написать <script>alert("Пошел нахуй хуила ебаная")</script> и передать в твой говнокод? >Ой, а почему? А не будет XSS? А как же html? Тебе не обязательно иметь html при вставке элементов в реакте, дурачек. Если твоя либа возвращает Element или DocumentFragment, то ты можешь квериселектором пройтись и ремувнуть все скрипты и линки до вставки в DOM. >>1938066 Делаешь реф на ту часть компонента, в которую тебе надо вставить свое говно, потом вставляешь через append или appendChild. Тяжело, правда?
>>1938072 >Знаю >ЧТо мешает в md написать <script>alert("Пошел нахуй хуила ебаная")</script> и передать в твой говнокод? Такого обосрамся я давно не видел. Прямо сразу, без разгона?
>Тебе не обязательно иметь html при вставке элементов в реакте, дурачек. Если твоя либа возвращает Element или DocumentFragment, то ты можешь квериселектором пройтись и ремувнуть все скрипты и линки до вставки в DOM. И нахуя мне это делать? Ты вопрос то мой читал, ебень?
>>1938072 >дурачек лол >Цель - создать компонент, который выводит markdown разметку в виде html и стилизует её в css. >Сначала ответь на вопрос, нахуя тебе тут реакт сдался? Это делается парой стрчоек в ванильном жс. >Делаешь реф на ту часть компонента, в которую тебе надо вставить свое говно, потом вставляешь через append или appendChild. Тяжело, правда? ты ведь просто рандомную хуйню несёшь признайся
>>1937373 > В реальности, при работе на себя, ценник должен быть ниже Разве что если ты лошок без самоуважения. У нормальных людей ценник наоборот выше чем при работе на дядю.
Вопрос в следующем. Пока я работаю с Router.Doo1() -> Controller.Foo1(), все работает нормально. И мне кажется есть понимание, что вот мы инициализировали класс роутера, потом внутри него инициализировали класс контроллера, все супер, заебись. Но как только я хочу вынести логику из контроллера в новый сервис, js теряет контекст инициализации классов, в упор не видит внутри контроллера казалось бы инициализированный класс сервиса, и мне надо ПРИБИТЬ руками ссанный контекст контроллера(прописать bind), чтобы все заработало: Router.Doo2(Controller.Foo2().bind(Controller))->Controller.Foo2()->Service.Boo() Почему так происходит?
Есть какое-то смутное представление, что это из-за того, что в jsе const a = new A(); const b = a.b; b(); // now 'this' is lost, any reference to `this` in b() code would be undefined Но что-то чувствую что не до конца понимаю.
>>1938233 джсер же, по определению обосрался >>1938235 собственно, нет проблемы с решением - bind и является декоратором(здарова), проблеа с пониманием, почему так.
>>1938241 Ты хотел сказать для новых проектов почти не используют, в тысячах и даже десятках тысяч уже написанных проектов jQuery является основополагающей либой
>>1938230 Ты конкретный код покажи, скажи как ты думал что будет работать и как оказалось на деле, а не свои foo с publick, потому что из этой стены текста не понятно чего ты хочешь и чего ты не понимаешь.
routes(): void { this.router.post('/test', this.Controller.makeScheme); (если вот тут не прибиндить .bind(this.Controller) нихуя не работает, контроллер будет с undefine сервисом } }
Я искренне думал, что если вызываешь последовательно три класса друг в друге, то все у них будет заебись, и проблем с обращением к филду нет. С двумя-то РАБОТАЛО.
Перестал работать скрипт, который в лисе добавлял кнопку поиска по картинке в контекстное меню. Скрипт очень небольшой https://greasyfork.org/ru/scripts/32211-saucenao-reverse-image-search/code, если не сложно посмотрите, в чем может быть проблема. Сам я не погромист, пробовал менят значения в скрипте, отключал другие дополнения, пробовал другие браузеры, нихуя не помогло.
>>1938230 ТС тут не причем. Это дефолтное поведение ЖС, когда в классах отъебывает блядский контекст. Бинди методы или делай их стрелочными функциями, они собственного this не имеют и всегда будут в контексте класса.
>>1938255 Ну понятно. Просто почитай на мдн статью this, в твоем случае можно возвращать из makeSchema стрелочную функцию, тогда контекст захватиться и всё будет работать как ты ожидал.
Каким образом четкие пацаны отображаются относительно однотипный контент с разной структурой внутри? Вот например есть разные предложение товара у пользователя на странице. В целом это одни и те же карточки с заголовком, картинокй и описанием. Но к примеру где-то карточка с двумя подзаголовками. Где-то сначала идет картинка, а потом заголовок и все такое. Может ли работа сервера быть устроена так, что с бека прилетает в вместе с json данными еще и какая-то html разметка? Типа просто в виде текста "<h3>huita</3>", которую ты просто пихаешь внутрь компонента, а там уж оно само работает. Бывает ли так организовано отображение данных? Или все таки есть какой-то предел вариативности в отображении, и нужно просто быть готовым ко всем вариантам на фронте? Либо пиздить палкой ux дизайнера за такое?
Делаю небольшой сайт, тут как раз есть такая проблема, но у меня нет еще никакого бека, так что я структуру данных формирую самостоятельно. Или нужно в любом случае все эти моменты обсуждать с бекендщиками и универсального решения нет? Я бы все это обсудил с остальными членами команды, но я вкатун джун дегенерат, и боюсь опозориться такими вопросами, чтобы потом на меня пальцем не показывали и не орали всем отделом
>>1938290 С бэка приходят только конкретные данные, никаких разметок. Тонкости отображения это задача фронта. Для этого и изобрели SPA и веб компоненты. В твоём случае можно создать компонент, который принимает заголовок, подзаголовок, картинку, описание, а также свойства которые отвечают за расположение картинки относительно заголовка и описания и т. п. в зависимости от ситуации.
>>1938293 >а также свойства которые отвечают за расположение картинки относительно заголовка и описания и т. п. в зависимости от ситуации. Вот это меня и интересовало, не знал есть ли такая практика вообще или нет. Спасибо.
>>1938290 > Бывает ли так организовано отображение данных? Да, но зачем? Можешь хоть jsx и компонеты с бека брать и в стейт пихать, компоненты типо динамически загружать. Некоторые так делают, хз зачем. > Делаю небольшой сайт, тут как раз есть такая проблема, Какая проблема? Проблема в том, чтобы определить компоненты заранее? Странная проблема.
>>1938369 Прочитал. babel-loader сопокойно может обрабатывать и тс и jsx и vue и дохуя еще чего, если ты на него навесишь соответствующие плагины и/или пресеты, для тс ему нужен @babel/preset-typescript
>>1938073 Пчел, не воспринимай их всерьёз. Не слушай, что они тебе говорят. Опыт придет со временем. Все мы были начинающими. Просто продолжай двигаться
Сап, посоны. А есть какие-то статьи с примерами разных архитектур приложений сугубо на реактовских хуках? У меня на апках при переписывании на хуки получаются хаотическое спагетти, я чего-то не понимаю получается. Подскажите плес.
Почему код в блоке if не выполняется? Дело 100% в тайпскрипте. Руками такой код в консоли работает, без тайпскрипта тоже работает. Но с тайпскриптом он либо не выполняется, либо ссылается на items.map в другом компоненте и говорит, что это не функция. То есть какая-то хуйня с типами происходит, я только не могу понять где и какая. Сама функция выполняется, в консоль успешно пишется клик и имя айтема. Причем хуйня происходит именно здесь, потому что айтемы нормально маппятся при первом запуске, и если руками из консоли их удалять, то так же нормально маппятся и рендерятся, но стоит все сделать из функции, как сразу все летит в пизду. https://jsfiddle.net/73e9wzmt/
Бампану вопрос. Тоже интересна эта тема. Интересно кто-нибудь занялся вопросом стандартизации функциональных компонентов или нет (имеется ввиду, что все компоненты имеют +- одинаковую структуру с одинаковой читабельностью, как в Vue)
Анон, как выкидывать эксепшоны так, чтобы текст ошибки указывал на РЕАЛЬНУЮ позицию ошибки, а не там, где находится `throw Error(...)`? Гугл не дает никакой информации не дает.
>>1938683 Наверно парень имел ввиду создавать что то вроде кастомных хуков в отдельном модуле для каждых компонентов или все состояния на стороне стейт менеджера держать, потому что мне тоже не до конца понятно как это выглядеть должно
>>1938685 Настрой source-map в вебпаке или гульпе, браузер будет тебе даже название файла писать и строку, где произшла ошибка. Даже если ты обфусцировал и минифицировал код
>>1938689>>1938691 Янихуянепонял Я понимаю примерно что надо делать, но на выходе Очко Ужаса. Мож есть таки примеры где-то про такую архитектуру уровнем повыше хеллоувордов-каунтеров, а?
>>1938697 Вот кста реальная проблема - это то, что просто огромная масса контента для вкатунов на просторах интернета, но очень мало инфы о том, как должен писать продвинутый человек
Прочитал YDKJS "Замыкания и объекты" и картина мира перевернулась. Выходит, что введенный в ES6 синтаксис "классов" и правда фуфло? Предложенный автором паттерн Ололо OLOO, в котором есть только объекты и связи между ними выглядит и правда более удобным. И как тогда быть? Везде же требуют классы? Или каждый дрочит как он хочет?
>>1938722 Всем похуй на твой YDKJS и предложенные автором паттерны. Дрочи то что использует большинство. При этом классы у тебя будут требовать только если речь о TS, в JS классы нахуй не нужны.
>>1938683 сделай компоненты-обертки - каждый для своей задачи. и потом скомпозируй все в финальном компоненте, который имеет в себе только ретурн с JSX Я так делаю и ты так делай
>>1938744 Так реакт это помойка уровня "смузихлеба переклинило и он решил всё поменять". Если хочешь посмотреть на грамотную архитектуру, то смотри на ангуляр.
>>1938722 Это синтаксический сахарок для перекатышей из всякого говна типа Жавы. Конечно же никаких нормальных классов в жс нету, бразуер просто не понимает что такое класс. Он понимает что такое прототипы.
>>1938757 >ангуляр Ангуляр неудобное говно, в котором куча багов и недоделок. Он просто концептуально дальше от сути скриптоговна JS, в отличие от реакта, поэтому там куча проблем.
Блять, какие же жс треды убогие. Всегда сюда захожу и вижу кучу вопросов, которые просто настолько дебильно сформулированы, что пиздец. Еще вот эти выяснения без примеров кода "а как вы делаете %хуйню нейм%"(дальше вкатыш врубает всю силу своего красноречия и высирает какие-то нечитабельные предложения, которые просто глупо выглядят хотя бы с точки зрения того, как это описывается). Или эти выяснения на митингах в какой цвет кнопочку покрасить с ебалом аля тут компилятор свой пишут.
Выкатился бы с радостью из этой поеботы нахуй, но перекат на другой стек и потеря зп - это пиздец.
>>1938760 Это всё пустые слова неосилятора, который если и знает об ангуляре, то старых версий и то только поверхностно. Ангуляр это идеальная синергия ООП и ФП парадигм, именно поэтому в нём активно используется rxjs в отличии от среакта с его бесконечными костылями в виде мобиксов, редуксов и изменений в виде хуков.
Это нормально, что я не могу сам запилить свой от руки написанный дрэг-н-дроп слайдер с автовыравниванием? Вообще моск не в состоянии прикинуть как это реализовать.
Опытные фронтендеры, а вы сами в состоянии такой слайдер запилить с нуля? То что я не могу это зашквар?
>>1938774 >Это нормально Для 3х месяцев нормально. >а вы сами в состоянии такой слайдер запилить с нуля? Да, могу запилить в качестве Ангуляр компонента, оформив всё виде красивого кода с использованием rxjs, который сводит задачу к тривиальной и требует от тебя написания нескольких строк кода.
>>1938774 самому заплилить это типо без гайда "как запилить свой днд"? ну это нужно иметь энциклопедические знание по событиям браузера и всякие тонкости поведения элементов с draggable
>>1938763 Каждый хвалит свое болото. Объективно у каждого софта есть недостатки, ибо их пишут люди. У реакта это масштабируемость и юзание кучи сторонних либ.
У ангуляра это; 1) Завязанность на паттернах в ущерб читаемости и простоте кода 2) Уебищная дока 3) Баги, недоделанные фичи 4) Уебищный механизм перфоманса. 5) Всратые формы 6) УЕБИЩНЫЙ ДЕБАГ. ПРОСТО ОБОСРАНЫЕ СТЕКТРЕЙСЫ. 7) И да, на ангуляре высирают говнокода наверное даже больше, чем на реакте.
За вью не ебу, это какая-то китайщина аля спиздил тут, спиздил там. Пользуйтесь.
>>1938789 Бля, ты настолько смехотворный вкатун, что с тобой даже всерьез разговаривать не о чем. Видно же сразу, что не видел абстрактную фабрику, на 150 кейсов. Я уже молчу, что из твоих высеров сразу понятно, что ты никогда не смотрел в исходнике ангуляра и вообще не понимаешь что там происходит. Поэтому, дерни нахуй отсюда, клоун шизоидный.
>>1938787 Ну вообще весь этот вопрос можно свести к: кто крутой пацан? задрот, который в своей жизни ебал только байты или стартапер, которые за месяц из говна и палок делает продукт, который работает и приносит деньги инвесторам?
>>1938766 > эти выяснения на митингах в какой цвет кнопочку покрасить с ебалом аля тут компилятор свой пишут. Ну так правильно выбранный цвет кнопочки как правило приносит бизнесу денег больше, чем дохуя оптимизированный компилятор
>>1938780 Спасибо за утешение, думал я туповат для программирования.
>>1938782 Типо того. Закончил читать сейчас вторую часть Кантора, ту что про браузер. Вроде весь необходимый технический арсенал для выполнения задачи есть. Ивент листенеры поинтердовн/мув/ап, вычисление координат различных объектов, координаты ивент таргетов - все это знаю. Но как именно спрограммировать используя все это - не выходит понять.
Короче, не по сеньке шапка пока. Если не смогу по итогу, то не будут рассраиваться из-за этого.
Я понимаю, что это такая защитная реакция тупоголового быдла - назови вкатуном первым, чтобы твои высеры обрели чуть больший вес. Но ты ведь должен понимать, что подобные высеры нелепо выглядят исходя от человека, который говорит, что паттерны ухудшают читаемость и простоту кода? Или ты совсем отбитый и диалог можно не продолжать? Или может кинешь хотя бы пруф в виде оффера и покажешь всем какой ты невкатун, а потом потребуешь того же от меня?
>Видно же сразу, что не видел абстрактную фабрику, на 150 кейсов. > ты никогда не смотрел в исходнике ангуляра и вообще не понимаешь что там происходит
По всей видимости исходники ангуляра - единственные исходники крупного фреймворка которые ты смотрел. Заглянул, испугался, закрыл, а теперь всю жизнь будешь срать о том как там всё хуево. Так я тебе открою тайну, исходники ангуляра ничем не отличаются от исходников других фреймворков написанных с использованием грамотной архитектуры и статической типизации.
>>1938803 Это все вообще дизайнеры должны придумывать и подробно расписывать, а потом какой-нибудь ПМ и техлид должны максимально точно расписывать тасочки на всех. Тебя по сути вообще ебать не должно, какие там кнопки будут, это не твоя работа. Я например как-то работал на галере, там даже мобилки не рисовали.
>>1938794 Крутой пацан это тот кто выбирает качественный, готовый код, при необходимости может дополнить его своим высокопроизводительным и хорошо читаемым кодом, а также предоставит готовый продукт в течении месяца и тем самым принесёт прибыль инвесторам. Т. е., как всегда - побеждает золотая середина.
>>1938746 >>1938801 Зачем тебе это? В проде такое не используется, да и вообще где-либо за рамками "хыыы прикольна". Поэтому вряд ли ты услышишь советов в треде, который состоит в основном из дебилов вроде этого >>1938792
>>1938722 >Выходит, что введенный в ES6 синтаксис "классов" и правда фуфло? Да не, норм сахарок. Визуально поля и методы обьявляются с одном скоупе, заместо ванильного пердолинга с конструкторами прототипов. Плюс тайпскрипт автоматом лепит к классу тип, так что его можно одновременно использовать и как фабрику и как интерфейс.
>>1938812 Ну такое конечно только прям совсем в нищих веб студиях, но мне иногда кидали какой-то криво высранный макет и я ебал себе и другим голову, чтобы сделать нормально. Но вся боль в том, что это никто не ценит и всем похуй. Ты за это не бабла больше не получишь, не дополнительного почета. Поэтому, такая контора - говно.
>>1938812 Да. Также как и правда то, что в крупных компаниях вёрстка и всё что связано с HTML делаются отдельными людьми, а фронтендеры отвечают только за интеграцию с фреймворком.
>>1938821 >в крупных компаниях вёрстка и всё что связано с HTML делаются отдельными людьми У крупных компаний есть еще одно лицо - огромное количество легаси кода, дизайн-макетов и верстки, написанного одним человеком на джава апплетах сука блятьвся логика крутитя вокруг ебучей джавы и запросы делаются через ActiveXObjectСамо собой, работает только в IE
>>1938828 Ну за такое отношение тебя сразу попрут. В офисе тебе нужно постоянно улыбаться, относится ко всем с уважением, приходить на помощь и т. д. В целом их все хвалят, говорят что они крутые и полезные.
>>1937210 Ничего, это тырпрайз говно, которое юзают для формочек, инфа по нему разбросана веером по всяким бложикам. Лучше сидеть и пилить свои проекты.
>>1937210 Статьи на медиуме, статьи на indepth.dev, на indepth.dev есть серия статей про проверку изменений, как раз для продвинутого уровня. Отдельно почитай про rxjs, разберись со всеми операторами, попрактикуйся, потому что на собесах этому удиляют отдельное внимание и если ты будешь круто манипулировать функционалом этой библиотеки, то на неточности относительно знаний ангуляра закроют глаза.
>>1938839 У тебя неверное представление. Нужно лизать жопу манагерам и лидам. На нижестоящих можно ссать и срать - за это ничего не будет, если как следует жоп нализался.
>>1938849 У нас в код оф кондакт написано, что нельзя дарить подарки людям которые стоят выше тебя по должности и чье мнение может оказывать влияние на твоё продвижение по службе.
JSэры, недавно на стриме у одного жс -гуру Тимура Шемсединова услышал, что JS -это ассемблер нашего времени Можете пояснить, что он имел в виду под этим?
>>1938853 Ну у вас какая-то корпоративщина значит. Это может быть даже и плюс. Я как-то работал на галере. Там продвижение по службе было тесно связано с тем, ходишь ли ты в курилку, бухаешь ли ты с начальством и лижешь ли ты жопы манагерам и лидам.
>>1938858 Ты написал про уровень материалов, которые хочешь почитать, скотина тупорылая, я же говорю про твой собственный уровень. >а ты мне советуешь rxjs подрочить Проиграл. Ты думаешь, что знаешь его на продвинутом уровне? Сразу видно чмоху, которая кроме map и его разновидностей ничем не пользуется.
>>1938864 К залётной мелкобукве с двузначным IQ только такое отношение, привыкай. >>1938865 Нет, пока только тебя проткнул, да так что ты всё никак не успокоишься.
Блять чем больше читаю всякие погромистские блохи, тем больше утверждаюсь в том, что люди, которые там пишут статьи нихуя НИХУЯ НИХУЮШЕНЬКИ не понимают в программировании. Речь идет не о каких-то сложных концептах, а о самых базовых и банальных вещах. Такое чувство, что эти статьи пишут не настоящие программисты, а ебаные рерайтеры, которые в лучшем случае цикл от переменной в состоянии отличить. Вот просто блять заходишь почитать о чем-то новом для себя, при этом ты уже имеешь какое-то минимальное понимание вопроса, читает статью и просто охуеваешь какая ебаная чушь там написана, ебаный в рот, господи боже. И хуже всего, что эти пидорасы засрали все нахуй, абсолютно все. Просто нахуй по запросу в гугле такая чушь выпадает в поиске что просто охуеть. Найти нормальную статью в котором кратко что-то поясняется, обозревает новая фича и т.д. это просто как блять в деревенском толчке, в который со сталинских времен ходит срать вся деревня найти жемчужину. Просто блять пиздец. Зато когда находишь, просто физически срать хочется от радости.
>>1938898 Хватит сраться о технологиях. каждая имеет свою сферу применения ангуляр - крупные проекты с сильными спецами рекат - стартапы одногодки вью - туду листы
>>1938855 Оно никак не будет противоречить концепции SPA. И уже давно есть решения, реализующие SPA + server-side rendering. Next для реакта, Nuxt для Vue, Universal для ангуляра. Даже у свелта есть SSR
>>1938919 На реакте прекрасно пишется всё то же, что и на ангуляре. Поддержка тс отличная, комьюнити крупное с всевозможными решениями и инструментами.
>>1938954 В кодинге? Ну года три уже (писал олимпиадные задачки на плюсах), в жс около 4 месяцев. Понимание рекурсии появилось гдет в 16-17 лет на занятиях в моей шараге.
>>1938951 Рекурсия - антипаттерн даже в полноценных функциональных языках, а уж тем более в жсе. Больше двух уровней вложенности обычно надо разбивать на несколько функций. На твоем пике - говнокод, сейчас бы нахуй проверять количество принимаемых аргументов в динамическом языке с динамически определяемой function arity, и при этом двумя строчками выше писать ...handlers в этих же аргументах (!).
>>1938959 >Рекурсия - антипаттерн Так никто и не спорит, просто есть задачи которые рекурсию решаются в десятки, а то и востни раз быстрее чем фориками и while
>>1938949 Ну я лучше подумаю над архитектурой, чем буду изучать очередные "очень нужные" ложки и вилки. Чем проще и понятнее мой код, чем больше чистых функций - тем лучше его поддержка.
>>1938965 >ем больше чистых функций - тем лучше его поддержка. Вот кстати двачую. Сколько я не видел попыток уопроться в неебаца ООП и функциональщину - всегда получалась глина. С чистыми функциями всегда все просто и понятно
>>1938961 Рекурсию любят как раз именно ньюфаги, которые ее видели только в этих числах фибоначчи. >>1938962 Мелкобуквенный ньюфажный дурачок, научись словами говорить, а не линковать что тебе в голову случайно стукнуло. В жсе нет никакой разницы, передаешь ты 0-arity функции 0 аргументов или 120, и смысла делать шизоидную проверку на Function.length нет никакого и никогда.
т.к. рекурсия анти-паттерн а чистые функции это всегда просто и понятно вот вам фибонач без рекурсии с чистыми функциями по-моему все просто и понятно, а главное - без анти паттернов
>>1938982 >>1938976 Говно, ты? Если нормально обозначить переменные и не писать стрелки, которые сразу возвращают другие стрелки то все вполне читаемо и понятно
>>1938971 > всегда получалась глина Мне кста кажется что это сортоф шизофрения, когда выдумывается очередной паттерн и зачем-то его развивают. Ради чего? Почему? Проверили хотя бы эмпирически, что это кому-то нужно и улучшает хоть что-то.
>>1938972 Как ты будешь код писать, если архитектуру не знаешь? Лол
>>1938981 Чистота функций обеспечивает читаемость. Всё однозначное и проверяемое с любого места в коде.
>>1939058 БЭМ - это такой же отвратный высер яндекса, как и сам яндекс, яндекс-браузер, яндекс-почта и прочие. Полностью заменяется нормальной системой модулей, то есть тем же SASS'ом. Он был бы более-менее актуален в 2009 (если бы о нем тогда кто-то знал, кроме самого хуяндекса), но в 2021 эту парашу использовать - это быть отбитым на голову.
>>1939081 И БЭМ, и Sass не нужны при правильном использовании современного css. Sass - это вообще причина 90% падений при сборках у нас в конторе, ума не приложу, как можно было высрать такое глючное говнище.
>>1939085 Это серверный язык со своими специально пропердоленными апи для работы с серверами и файловой системой. Интерпретируется он, не поверишь, в nodejs.
>>1939089 >И БЭМ, и Sass не нужны при правильном использовании современного css. Попробуй напиши сколько-нибудь сложные правила без вложенностей селекторов. Да и сассовские переменные хороши для значений, которые важны только при компиляции.
>>1939101 Ванильный жс только в спеке существует, скриптики же пишутся на движках типа v8/spidermoneky/nodejs, которые более-менее пытаются ей следовать. >>1939102 Никакого отношения к вложенностям селекторов и переменным не имеет.
>>1939089 >Sass - это вообще причина 90% падений при сборках у нас в конторе, ума не приложу, как можно было высрать такое глючное говнище. Ты про говнокод, написанный твоей конторой? Что там может упасть в принципе, ебанутый блять?
>>1939120 VSCode требует ноду потому что он собран на электроне, у которого нода в зависимостях. Требуется не столько для консольки, сколько для операций с файловой системой, это же практически IDE ведь. Электрон кстати это комбайн из браузерного жс и ноды.
>>1935904 У меня наоборот. Пишу и кажется что говно. Смотрю чужой код и кажется ещё большим говном. Переделываю по сто раз и кажется говном. Сложно что-то закончить из-за этого. А спустя несколько месяцев возвращаюсь править старый и забытый проект и думаю - бля какой же я молодец, неужели я так удобно и понятно сделал, ебать годнота
>>1939118 > Тоже самое можно сказать и про чистый JS, и про JQuery. Только в редких случаях. Из адекватных компаний почти никто так не делает и берут реакт/вью/ангуляр.
> Найс маняфантазии. Это у тебя видимо маняфантазии по поводу того, что в реакте плохая поддержка ТС. Создатели ТСа даже сами добавили поддержку JSX прямо в ТС
> Это комьюнити не успевает танцевать под дудку смузихлебов из фейсбука. В то время как в ангуляре есть всё из коробки. Хуле там успевать, в реакте медленно выкатыают обновления. Так что все успевают.
Как в реакте можно вызвать функцию, которая находится в дочернем компоненте?
У меня в дочернем компоненте есть отправка формы и кнопка для неё. Но я не знаю как можно эту кнопку вынести из формика, да еще и наверх её поднять, чтобы она нажималась из родительского компонента. Отправка и форма находятся в разных блоках. Переделывать вертску и перемещать эту кнопку в другой блок просто ебнешься нахуй. А как тригернуть одну кнопку в child кнопкой из parent я не знаю
>>1939161 >>1939164 >>1939180 >>1939189 Не надо никуда переходить, в реакте это легко делается через useRef. Присваиваешь ref чилдрену и потом в родителе вызываешь ref.current.someChildMethod()
>>1939203 >>1939161 Все так дружище, вот только реализовал. Пиздец, тому челу с ютуба, который показал эту хуйню нужно нобелевку дать. Я просто в ахуе с того, как этот банальнейший паттерн не объясняют с ходу, вот как только ты в реакт погрузился. Еб вашу мать, я часа 3 проебался с этим. Не грех и наебениться
>>1939197 Проблема всех этих сиюнаносекундных фреймворков в том, что реакт выпустит очередной новодел в виде хуков, и всё это говно улетит в каменный век за 1 день.
>>1939222 Нет, он всем нужен только потому что его фейсбук пердолит и пользователей много. Для интепрайся это надежность типа. А хуки реакта задолго до реакта существовали и никому нахуй ненужны были. Они и вуе есть, например.
>>1939227 Откопали же. Десятки библиотек есть и было. Всё дело в популярности. Спасибо реакту за пиар ништяка, хуле, пусть продолжает дальше копаться и исследовать. А использовать я буду солид, например. Или что-то ещё.
>>1938951 Просто с опытом на ходу читаешь, как книжку. >>1938959 Рекурсия пригодна в очень небольших случаях. Те, кто ебашит рекурсии не по делу - конченые уебаны, таких нельзя брать на работу. >>1938964 Ну, зато time complexity от рекурсивного решения увеличивается в разы. Любую рекурсию можно переписать на итеративное решение. Если у тебя будет много данных, то ты заморочишься либо над кешированием рекурсии, либо над написанием в итеративном стиле. Что то, что это будет одинаково всратой задачей. И когда рекурсивную функцию надо будет модифицировать определенным способом, ты жидко пукнешь и пойдешь ее переписывать.
>>1937297 > Юзай firebase, чо ты как етот. Всё, юзаю фаербазе. Остальные просто ПИЗДЕЦ какие сложные и нужно ПИЗДЕЦ как много кода. Просто охуел с того, сколько нужно кода.
Легче потом нанять крутых чувачков, под написание своих крутых фиребази, чем самому ебаться с этим.
https://github.com/pmndrs/zustand Объясните, что за магия? Стейт менеджер работающий в 7 строк без бойлерплейта? В чем подвох? Почему его не использует вся вселенная?
>>1939256 Зачем? Все стейт менеджеры и так достаточно легковесны, плюс есть контекст апи в реакте, если хочется чего-то самописного. Это похоже на очередной велосипед.
>>1939260 Велосипед, снижающий количество бойлерплейта до одной строки импорта? Да еще и в использовании прост настолько, что уже проще просто некуда. Я пока ничем, кроме карго культа использование других стейт менеджеров объяснить не могу
>>1939266 Так это обычный бойлерплейт код, установи себе автокомплиты и пиши его за пару секунд. В чем претензия, опять же? Из-за того, что чел написал пару оберток и сократил бойлерплейт на пару строчек для каких-либо действий, ты предлагаешь переписать миллион проектов под него? Такая всратая хуйня только в башке вебмакак бывает, поэтому нормальные люди бегут от веба как от бубонной чумы.
>>1939264 Хмм. Хуй знает. Выглядит прилично вроде. Какие вообще мнения об этом, использовал в проде, читал? Отличия от фиребазы кроме лицухи?
Мне всё кажется лучший план браузерной игры будет firebase на js клиентах для 95% данных. И сервера игровые подниматься будут тоже набирая инфы с фаербазы. После того как приносить будет прибыль минимально - начать ебаться с нормальной бд и нормальными p2p трафоном вместо цдн/огнебазы.
>>1939274 Пчел, вопрос не по теме, но что ты делаешь в геймдеве? Я имею ввиду как вы именно там игры делаете? Вся визуализация на жабаскрипте или есть какой то готовый движок, на котором вы все пишете? Какие вы технологии используете, что у вас там популярно? Используете web assembly? Потому что для меня это тёмный лес
>>1939272 >>1939273 Почему я должен знать как работают две либы как разработчик, вместо одной, только потому что в какой-то либе сократилось пара строчек кода для конечного пользователя этим говном? В чем прорыв этого говна? Стейт на хуках? Ебануться, прорыв года, 10/10
>>1939277 > Я имею ввиду как вы именно там игры делаете? Оооочень хуево их делают. Никаких ангуляров и редаксов никто не использует, фреймворков почти нет в проде. > Вся визуализация на жабаскрипте или есть какой то готовый движок, на котором вы все пишете? Какие вы технологии используете, что у вас там популярно? Phaser и pixijs из того что я писал и в чем работал, а я пишу тридеговнину на threejs как свой проект. Самый популярный - ванила. На нём написано большинство. Всё остальное, что в топе, то и популярно. Да и движков и не так много, на самом-то деле, фазер и пикси в топе. Офк немного ебли с шейдерами и математикой есть. Архитектурные проблемы, логические часы и прочее - норма жизни и основное мозгоёбство. Для серверов используют как ноду/дено, так и плюсы как логику. > Используете web assembly? Внезапно js по перформансу теперь как васм, а васм абсолютно бессмысленная хуйня, хз зачем это делают в 2к21 году, если не осилили перформенс. > Потому что для меня это тёмный лес Да я сам недавно залетел и особо нихуя не знаю, только логику пишу и делаю серверные ништяки. Пытаюсь сделать своё дерьмо, но ебать я охуел с полного отсутствия толковых технологий.
>>1939289 Хз, я тупой пиздец. Самое хардовое для меня - выбор технологий. Ведь я хочу потом, с помощью выбранных технологий, выкатить фреймворк и полный набор инстурментария для анонов, чтобы вкатиться с js разработки в игры было минут 15, и лицензию интерпрайс на 90 процентов прибыли в фонд борьбы с старением