Это копия, сохраненная 12 мая 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Больше пары строк кода в посте или на скриншоте ведут в ад.
Для программирования на HTML https://jsfiddle.net
Для Node.js с консолькой https://repl.it/languages/nodejs
Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Руководство для вката: https://developer.mozilla.org
Вы все тут неудачники.
КОДИРУЕМ /ПИШЕМ КОД / ДЕПЛОИМ / ДЕБАЖИМ / РЕФАКТОРИМ / СМУЗИХЛЕБИМ
https://www.youtube.com/watch?v=4Vx_5ShWvic
Есть что-то подобное?
Ты понимаешь зачем нужен quic и чем он отличается от ws? Если понимаешь, ты нахуя это высрал?
Всем поебать. Главное чтобы твой код отностилеьно эффективно свою задачу выполнял, сосредотачивайся на этом. Однозначные, проверяемые, функции, быстрые для тестирования, всё такое. Быстрота написания говнокода это тоже одна из задач.
недостаточно практики
я тоже пишу говно код, раз в неделю я улавливаю мозгом фичу которкую использую в своем говнокоде, и говнокода становится меньше
Больше ебашь - больше опыта будет
}{ммм. Ну я помню об этом (поуч + коуч), но почему-то не рассматривал этот вариант. Нужно чекнуть еще раз, спосибо.
Бд это не вебсокеты. Вебсокеты это связь. Бд это хранение и нормализация. Ты понимаешь это?
И что? ты в любом случае должен быть постоянно держать связь с бэком.
Просто найди любую real-time БД и не выёбывайся.
Если БД будет сразу на двух слоях - тогда это нарушаеет ACID принципы. (про CAP-теорему можешь мне напоминать)
> связь
Вопрос о связи вообще не стоит. У меня несколько протоколов к тому же, начиная с удп, кончая квиком.
> Просто найди любую real-time БД и не выёбывайся.
Но я хочу выебываться! ну подумаешь ебанутый, что тут такова
Для реалтайма и всякого такого отдельный сервер написан частично написан, ебанутые не могут писать код и на клиенте пуре-жс-инмемори функции.
>>6039
> это синхронизация
Не, синхронизация это чисто синхронизация локальной и серверной бд. В этом смысол. Хз может я туповато написал, похуй.
Это нужно чтобы проще было, чтобы меньше кода писать, легче объектами управлять, создавать инмемори слои, проще делать реактивность.
> Если БД будет сразу на двух слоях - тогда это нарушаеет ACID принципы. (про CAP-теорему можешь мне напоминать)
Читал только про ацид. Да, согласованность тут нарушается. Шо я тут подумал.
В каждом отдельном случае согласованность буду делать руками. Перед одними данными приоритет будет иметь клиент, перед другими данными сервер, в некоторых случаях будет дублирование, в некоторых случаях пользователь сам будет решать. Конечно будет нужна обработка потерянных данных. Не уверен что это возможно в коуч+поуч, но вероятнее всего это возможно и сделать можно.
Скорее всего, то что я описал, это классическая реализация различных нарушений согласованности и так делают фсе.
Кластерная согласованность это уже отдельная хуиточка и скорее всего её тоже как-то можно сделать руками и там безусловно будут потери.
Везет тебя. У меня вообще 90% кода тупа спизжено откуда-то. Остальные 10% чисто мой напильник. Вот от этого действительно не очень. Правда я только вторую неделю учу.
Частенько по неопытности и из-за лени пишу говнокод, а рефакторю его позже.
Но с опытом, когда пишешь после нечто похожее - пишешь збс уже с первого раза, т.к. просто уже знаешь как.
Если ты совсем зеленый и без опыта, то не продешевил.
Зато после того, как набьешь шишке и поймешь, что к чему, сможешь релевантно оценивать свой ценник и уже примерно прикидывать сколько стоишь.
Если не тупой, и разработаешься, то через месяцок сможешь смело поднимать ценник в двое.
Храни товары в стейт-менеджере.
Контекст(как пример) позволяет лишь избежать проп-дриллинг, он не решает проблему нормализации и управления состоянием.
Отображать весь список товаров на странице - плохая практика.
Фильтруй товары/используй пагинацию/бесконечную прогрузку в таком случае.
>Отображать весь список товаров на странице - плохая практика.
Их очень мало, тут нечего фильтровать. Да и это не было бы проблемой. Сайт совсем небольшой, думал может быть без стейт менеджера можно было бы обойтись.
Сейчас попробовал заменить стандартный компонент Image у некста, и сука, блядь он начал обновлять список товаров вообще без каких-то заметных внешних изменений.
При использовании контекста ререндерятся все потомки, в которые этот контекст обёрнут.
В которые обернут провайдер или консьюмер? Если у меня контекст на самом верху, у меня вообще всё приложение ререндерится будет? А если пропсдриллить?
>В которые обернут провайдер или консьюмер?
Очевидно же, что провайдер.
>Если у меня контекст на самом верху, у меня вообще всё приложение ререндерится будет?
Да, именно поэтому не стоит пихать в глобальный контекст таймеры и вообще всё, что часто обновляется.
>А если пропсдриллить?
Та же проблема, только ещё и пропсы у всей цепочки компонентов засираются.
ну вот эту проблему решает стейт-менеджер
разделяешь глобальный стор на стейты и передаешь компонентам только нужные куски стора, тогда будет ререндерится только то, за кем ты следишь
>>6266
>>6265
Да знаю я редакс, проблема была не в этом. Уже решил все переделать на редаксе. Просто не знал про такую проблему стейт менеджмента без стейт менеджеров. Нахуя тут тогда в треде говорили, что не нужно всегда использовать стейт менеджеры? Нашел кого слушать на дваче конечно, понимаю
Я тут просто недавно рассказывал о том, что мне в тестовом дали задание, сделать приложуху без стейт менеджеров, и я бомбил с того, что нахуя это вообще нужно, а меня тут в треде переубеждали.
Вот есть задача написать хуевину которая будет рендерить модальное окно с выбором способа оплаты, далее ввод данных, их подтверждение и непосредственно оплата на стороне сбера после ответа сервака. В общем сейчас написал один класс с хуевой тучей методов который все это делает. Сейчас хочу сделать рефакторинг, разбить по разным классам выполняющие весь функционал независимо в котексте объекта с данными. Правильно ли я пишу вообще? Вроде бы в голове есть понимание что и где нужно, но в наследовании не очень из-за чего довольно таки сложно передать результат одного метода в другой.
> с выбором способа оплаты, далее ввод данных, их подтверждение и непосредственно оплата на стороне сбера после ответа сервака.
Это вообще одна функция строчек на 5, которая берет ввод и отправляет куда нужно.
Офк, интерфейс отдельно.
Все приложение ререндерится не будет, только те компоненты которые подписаны на контекст. К сожалению, сейчас нельзя подписаться на часть контекста и это ключевое отличие от редакса. Но useSelectedContext уже пилят.
С эти не надо делать ничего. Реакт так работает, это нормально. Про ключи главное не забывай.
Продешевил, $5 баксов это рейт помоечного индуса на неквалифицированной работе.
>Просто не знал про такую проблему стейт менеджмента без стейт менеджеров.
Это проблема существует и во флюксах, так как связана со скоупами, а не реактом.
>Я тут просто недавно рассказывал о том, что мне в тестовом дали задание, сделать приложуху без стейт менеджеров, и я бомбил с того, что нахуя это вообще нужно, а меня тут в треде переубеждали.
Так это проверяли, как состояние разбиваешь. Вангую, что на каждый пук экшон в редаксе делаешь и хранишь референсы вообще на всё.
>>6285
Какие классы? Хуярь модульные функции и не выёбывайся.
в ререндерах ничего страшного нет, если не видишь потерю производительности явно, реакт заоптимизирован под это дело
>кидает какую-то вырванную из контекста частную статистику с синтетическими примерами, которые ничего не показывают
читай полностью, что я написал, ты не почувствуешь эту разницу
нормальные люди виртуализируют списки, если они большие
>нормальные люди виртуализируют списки, если они большие
При виртуализации перерисовок еще больше чем без неё.
оптимизации не бесплатны
Что ты вообще понимаешь под «перерисовкой»? Реакт не оперирует таким понятием.
В целом, проблема высосана из пальца, у Реакта нормальная производительность при работе со списками. И уж тем более с виртуализацией.
>под «перерисовкой»
РЕРЕНДЕРИНГ, так понятней, макакен, или ты уже совсем русский язык забыл?
>Реакт не оперирует таким понятием.
Ясно.
Ну и хули что твой высер лишний раз ререндерился? Ебать это уже пахнет фпс дрочевом, сука это сраная страница которая запускается на устройсвах с 16гб оперативы и почти столько же видеопамяти, на безлимитных тарифах. Вы ебанутые?
Что хули, дегенерат? Ты перечитай цепочку постов. Началось всё с обсуждения того как уменьшить количество перерисовок. Кто-то пукнул о виртуализации, что вообще никак не уменьшает количество этих перерисовок, я об этом сказал. Теперь пришел ты, долбоеб который не знает что ререндеринг === перерисовка, насрал себе в штаны и начал уводить разговор на тему "И ШТО ШТО ЛИШНИЙ РАЗ ПИРИРИСОВЫВАИЦА!!?" Да ничего, мне вообще похуй, вопрос был 'как уменьшить количество перерисовок', вот в рамках этого вопроса и ведётся обсуждение.
>Для программирования на HTML https://jsfiddle.net
Всем меня устраивает, хоть и консоль там подключается через скрипт. Но есть ли какая-то возможность настроить подсветку синтаксиса? В идеале бы конечно прям панель, где показана текущая настройка - название и цвет, и чтобы я мог каждую поменять.
Или может есть какой-то оффлайн вариант этой программы, но чтобы принцип интерфейса сохранялся
>как уменьшить количество перерисовок
узнать, в каких случаях эти перерисовки происходят и выяснить, что можно предпринять, чтобы их уменьшить
даю подсказку: внутренний стейт и пропсы
Хто ты?
Перерисовка это drawing, совершенно другой процесс, а рендеринг это рендеринг. Придумываешь какую-то левую терминологию, а потом бахаешь что ее никто не знает.
Повторные рендеры вообще не являются проблемой и слабо влияют на производительность.
Используй https://codesandbox.io, он может практически все и редактор там более продвинутый.
Думаю заменю фиддл на него на следующем перекате.
Я уже все написал, попробуй перечитать пост еще разок. Если тебе хочется запутывать людей левой терминологией — не буду мешать.
Есть:
const [state, setState] = useState([]);
Тип сетСтейт определяется автоматически, мне нужно указать тип state. Пробовал [state: type[], setState] - не сработало.
Setstate задает начальное состояние котрое по сути хранится в твоем случае в state, если законсолишь state там у тебя будет массив
Сука проебался с useState
>если законсолишь state там у тебя будет массив
Ага массив. Any[]. А мне надо этот массив типизировать, сказать, что это не просто массив, а массив собачьих залуп eldaky30metrov[].
Ага, спасибо.
Ну не совсем.
Рендеринг это комплексная фаза, перед тем, как браузер что-то отрисовывает - он должен перед этим достаточно много чего вычислить. Так например этим useEffect и отличается от useLayoutEffect - useEffect выполняется до фактического рендера, а useLayoutEffect ждёт, пока в DOM всё перевычислится и только потом этот эффект выполняется.
мимо
с помощью JS? Как я понял JS не предполагает работу с данными на диске. БД локальная.
Ищи плагин к ноде для своей ДБ. Если сервер не на ноде, то ты чо ебанутый? Откуда ты в базу писать собрался? С фронта?
Типо да, задания легкие. Если бы я знал какую-нибудь реляционную БД, вместо монго, то я бы прямо сейчас к ним мог закатиться.
Но блять. Они уверены, что хотят с фронта писать прямо в БД, а не посылать данные на сервер, чтобы сервер уже сам там разбирался? Что это за шарага? Или я не прав?
Вкатун
А может это типо наебалово такое? Проверить, кто сообразит, что что-то тут не так и расскажет почему так делать нельзя, а кто без задней мысли побежит хуячить.
Да ты заебал, блядь. Не все тут такие подкованные как ты (ну или каким хочешь казаться).
Есть вопрос, если можешь помочь - ответь по существу. Не можешь/не хочешь, лучше помолчать тогда, не?
ты что охуел мне рот затыкать пидор? ты дебил блядь
Ебать, типа создать БД и сохранять результаты сортировки в ней,
отдельно от фронта? То есть вопрос на умение создавать и пользоваться СУБД?
Ага. Кидаешь им архив с проектом, внутри БД - они запускают его, БД инициализируется.
А вообще, такое ТЗ подразумевает о том, что аналитиков в компании нет, как и нормального ПМа, а значит нормального опыта ты там не получишь.
Нигде в задании не написано что надо прямо с фронта в бд писать. Они же ждут классическую трехзвенную поебень
Нашел почему поучДБ не хотел использовать.
Она весит 30кб. Это оче дохуя и очень много лишнего кода. Как стейт её не получится использовать, а я в том числе хотел заменить стейт и прокладку до индексдб, если возможно это был один из пунктов тз на 20 страниц, хуй найдешь
В смысле, типичноприличный стейт это меньше 1кб кода.
Конечно может поучдб и не все 30кб логики хуярит при каждом запросе, но всё равно для стейта слишком жирно. Наверное. Тестов-то я не делал.
1) Хороший код не пишется, а только переписывается из ранее написанного тобой говнокода
2) Эффективное переписывание(рефакторинг) невозможно в принципе без тестов
Так что три буквы для тебя: TDD
>Так что три буквы для тебя: TDD
Интересно было бы послушать прохладные истории как ты пишешь Реакт-компоненты по TDD. Может даже код покажешь?
>Хороший код не пишется, а только переписывается
Переписывается хороший код только в том случае, если ты узнал что-то новое, иначе ты перепишешь тот же самый говнокод.
>>5843
Подумал еще больше и понял следующее.
Вприцнипе нужен горячий сервер с суперфастбд, с архивацией всего в копоуч, это и так понятно было. Но!
Нихуя нипанятна до какого уровня можно покоуч использовать как замену реалтайма, можно ли кпоуч использовать для чатов, например. Или для стейта на клиенте. С одной стороны да, есть и уведомления и подписки, с другой стороны хз.
Хуле сложно-то так блядь, инфы и тестов почти нет, неужели таким вообще никто не занимается?
>как ты пишешь Реакт-компоненты по TDD
Скорее вопрос, в чем именно по-твоему заключается проблема с тестированием реакт-компонентов через TDD, когда все, что тебе нужно, это две либы:
https://github.com/jsdom/jsdom
https://github.com/testing-library/react-testing-library
>Может даже код покажешь?
Пик. И это тестирование целой страницы с роутингом и глобальным стейтом, отдельные компоненты тестировать в сто раз легче, просто рендеришь и тыкаешь куда надо эвентами.
>>6993
Это только в этом итт треде, пока вы малолетние, можете переписывать что-то там. Ирл есть набор тестов и ТЗ для класса/функции, оно пилится до состояния "ну вроде работает" и забивается громадный хуй.
Никто это не переписывает и никто в код даже не заглядывает потом. Если это не библиотека, над которой трудится отдельный отдел/персонал.
В идеале достаточно научиться писать без протечек памяти и достаточно быстроработающий говнокод. Большее не требуется.
>>7037
У тебя не тестирование, а хуйня какая-то.
Для нормальных тестов вместо params идёт отдельная либа, которая выдает все вариации логина-пароля, например. И проебанных данных. И кучу других вещей.
Нет, все сидят на графкл подписках или просто вебсокетах и данные кладут в стейт и персистят его если надо. Ни у кого модель стейта не совпдает с респонсами, так что не получится автомагически взять и синхронизироваться с 12 микросервисами.
Вот тебя зачем локально бд? У тебя интернета нет или дата-хэви апп?
>я пишу говнокод, а значит все пишут говнокод, по-другому нельзя, а кто говорит, что у него по-другому, тот выдумывает
Классика.
>отдельная либа, которая выдает все вариации логина-пароля
Какие вариации логина-пароля ты собрался тестировать на стандартной странице логина с одной формой, которая просто берет от юзера имейл/пароль и отправляет их на сервер? И главное зачем?
ИГОРЬ делаю. И хочу чтобы половина реалтайм говна, вроде чатов, была в бд и имела отдельный протокол свзяи. И чтобы как можно меньше либ было, не хочу поддерживать тысячи говна.
> Вот тебя зачем локально бд? У тебя интернета нет или дата-хэви апп?
Хранить стейт локально это хорошая практика. Загружаться будет быстрее, потом прост обновление.
> Классика.
Ну правда же, все пишут говнокод. Чтобы написать неговнокод, нужно подумать, а на это не всегда время есть, потому что задач дохуя.
> Какие вариации логина-пароля ты собрался тестировать на стандартной странице логина с одной формой, которая просто берет от юзера имейл/пароль и отправляет их на сервер?
Все вариации. В том числе отсутствие вариаций.
> И главное зачем?
Потому что это называется тестирование. То что у тебя на скрине - не тестирование, а хуйня.
Типизация не может заменить тесты ни в каком ключе, тесты функционала же полностью заменяют любые проверки типов.
>Чтобы написать неговнокод, нужно подумать, а на это не всегда время есть, потому что задач дохуя.
Что-то уровня "чтобы ходить, нужно встать на ноги, а на это не всегда есть время".
>Все вариации. В том числе отсутствие вариаций.
Все - какие? Перечисляй, а не в воду пукай. "Отсутствие вариаций" - это отправка двух пустых строк на сервер, и от отправки заполненных строк с точки зрения клиента этот случай не отличается никак.
Только вот тестами покрывать всё, о чём за тебя думает готовый ТС, можно до нового года.
Такая формулировка неверна, потому что любители типов ее воспринимают как "надо написать тесты, что не вычитаешь число из строки, а зачем мне это писать в тестах, если я могу указать тип в коде". Тесты не проверяют типы как таковые, они проверяют функциональность(логику) приложения. И если ты продемонстрировал, что твое приложение выполняет все требуемые от него функции без ошибок, то тебе не нужно еще дополнительно демонстрировать, что внутри где-то не затесалось вычитание числа из строки.
И как я и сказал, первый любитель типов, полностью мисинтерпритировавший концепцию тестирования уже тут как тут >>7069
> Что-то уровня "чтобы ходить, нужно встать на ноги, а на это не всегда есть время".
Такова практика в фирмах. Иногда вместо тестов делают твой говнотест, например. Это нормально. Потому что всем похуй, в основном.
> Все - какие? Перечисляй, а не в воду пукай.
Что какие? Поехал что ли, ты хоть что-то про тесты знаешь? Отсутвие @, исключения всякие, малое кол-во символов, большое, тестирование роутеров и переадресаций, тестирование формы с разных страниц (если модальная).
Всё это должно быть в тестах.
> "Отсутствие вариаций" - это отправка двух пустых строк на сервер, и от отправки заполненных строк с точки зрения клиента этот случай не отличается никак.
А тут будет тестирование ответа сервера, это уже другое.
> Тесты не проверяют типы как таковые
Проверяют.
> они проверяют функциональность(логику) приложения
Это отдельные тесты.
> тебе не нужно еще дополнительно демонстрировать, что внутри где-то не затесалось вычитание числа из строки.
Для этого есть автотесты.
>Отсутвие @, исключения всякие, малое кол-во символов, большое, тестирование роутеров и переадресаций, тестирование формы с разных страниц
Смешались кони, люди... Зачем ты собрался пихать в интеграционный тест для страницы проверку низкоуровневой логики валидации или уж тем более навигации(которая является заботой соответствующей либы и самого браузера почти на 100%)? Там тестируется конкретная вещь - в приложении есть страница логина, и если на нее перейти и засабмитить форму, то отправятся данные на сервер, и в случае успешного ответа юзер будет залогинен и перенаправлен на главную страницу.
Говноедство и ебланство - это как раз тестировать логику валидации имейла через интеграционный тест или боже упаси через браузерный системный тест на собранном приложении.
По-моему, само простое вот это. Сумма длин коричневых линий против суммы длин синих.
Дурачок не знает даже, что существуют разные типы тестов с разными скоупами, а уже увольнять кого-то собрался.
Да похуй вообще, если ты пишешь тест и не проверяешь в нём на инвалид - это хуевый, бесполезный и бессмысленный тест.
Даже архитектура теста хуевая у тебя, типичный стиль говнокодера с зашитыми в код строками(притом ты сам что-то говорил про говнокод).
Почитай хотя бы парочку книжек как тесты делают, если сам допереть не можешь.
Это было бы справедливо для квадрата, а на прямоугольнике фейлится при приближении к самому острому углу диагонали.
https://github.com/vercel/next.js/blob/canary/examples/with-zustand/pages/_app.js
Может кто объяснить, для чего делается эта обертка в NextJs для Zustand? Для чего там контекст используется? Это если что пример для ssr. Без него такие обертки не делаются. Просто я не пойму, что будет если я буду использовать Zustand, так, как будто бы у меня просто обычная спа на реакте?
Для начала давай выясним все-таки, что там по поводу твоего забытого кукарека, что интеграционный тест должен проверять валидацию имейла и переходы со всех страницы, а потом уже можно перейти ко второму кругу твоей шизы, где тебе придется объяснять, почему по неполному куску тест кейса ты додумал, что я не проверяю фейлы, и откуда ты собрался брать строки, если не из кода. Но сначала первое.
> поехавший хуевые тесты называет интеграционными
> json стейта зашит в коде, даже не через переменные
> продолжает утверждать что так и нужно делать
Не продолжай, правда.
>ита хуевый тест, конечно почему я не скажу и хороший тоже не покажу, просто хуевый!!!
Понятно, держи в курсе.
> json стейта зашит в коде
Дурачок даже не разобрался, что это юзер инпут, а не стейт.
Антош влияет при приеме на работу скилл верстки? Стоит ли ее серьезно задрачивать?
подвернулась работа пиздатая еще на angularjs. опыта во всяких фреймворках у меня тогда было 0,шанс упустить было нельзя. короче, как говорится -исторически сложилось
> и хороший тоже не покажу
Все свои тестируемые данные, ответы и прочее дерьмо, храни раздельно с кодом, для начала. Дальше разберешься.
Юзай firebase, чо ты как етот. Для него и либы не нужны, и в реалтайме всё. И хуле вообще тебе вебсокеты не нравятся?
> Юзай firebase, чо ты как етот.
Так это же АТГУГЛА. К тому же это какая-то закрытая штука, нахуй нужно пользоваться этим, может я хочу хотфикс для исходников сделать или форкнуть.
> И хуле вообще тебе вебсокеты не нравятся?
UDP/QUIC нужен прост, игра 120фпс. А все остальыне данные я по https гоняю, чаты, сообщения всякие, дату.
Так бы и написал, что в жизни своей ни одного теста не написал и понятия не имеешь, о чем говоришь. Свободен.
Мань, у тебя проверка роутеров всегда должна учитывать инвалид, ты понимаешь это или нет? Хватит уже обсираться, говнокодер.
Zustand
На фронт сейчас любую макаку, которая знает чем строка от числа отличается. Но если ты хочешь вырасти в дохуя тех. директора - то стоит учить что-то посолиднее жс
На фрилансе совсем, а так полгода коммерческой разработки всяких офисных приложух для банков (тоже реакт, но там без тс).
>сможешь релевантно оценивать свой ценник и уже примерно прикидывать сколько стоишь
Проигрываю с дебила.
Ты в универе учился? Экономическая часть дипломной работы была?
С чего долбоёбы взяли, что в фрилансе сотит выкатывать такой же ценник, какой обеспечивается при работе на кабанчика (которому кроме себя надо кормить ещё кучу ртов и башлять госудраству)?
В реальности, при работе на себя, ценник должен быть ниже и всё это прекрасно подсчитывается. Нахуй вы в универ штаны ходили просиживать? Или опять мантру заведёте - не профильный предмет, значит не нужон, лол.
Ты дохуя факторов не учитываешь (не удивительно, если учесть, что ты за универы топишь, там такую узколобость и воспитывают). Живу в Мухосранске, работаю на дядю 300 р/час, параллельно на фрилансе получаю 400 р/час.
Ясно. Иди на хуй.
Можно как-то сделать?
https://codesandbox.io/s/v-for-starts-from-index-k1yt8
Можно просто хорошие наушники купить. Ну и да, не везде лиды громкие долбоебы.
в других местах будет еще хуже, советую на завод пиздовать
Средний около 26-27. Но это небольшая компания на окраине дс. Держался только потому что мне, когда я пришел зеленым джуном, платили зп на уровне мидла ТК оформление было в серую.
>Возник вопрос - я правильно понимаю, что в других офисах также и если я хочу работать в тишине и не слушать посторонние разговоры в течение всего дня, мне только на удаленку имеет смысл идти?
Туда ли ты зашёл? В контексте треда разве что только в бэкэнд на ноде за тишиной можно.
Хуй.
Переписываю свою микро-СПАшку на тайпскрип.
У меня раньше было так:
Из локал стораджа парсится строка и записывается в стейт:
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? Или я наговнокодил?
П.С. Тайпгард понабился потому что тайпскрипт стал ругаться на то, что типо в сторадже может быть запись, а может и не быть. Я это не просто так от нехуй делать придумал.
Хз я делал так
const todoStorage = sessionStorage.getItem("todo");
const initialState: ITodoState = {
todo: todoStorage !== null ? JSON.parse(todoStorage) : [],
loading: true,
error: null,
};
Через sql-инъекцию блин
Бамп.
Используй ||, ?? или прямо руками хуярь if(val !== null && val !== undefined)
Ну я выбрал C#, можно еще Go, но он по моему мнению сыроват и на нем сложно найти работу не имея опыта на жабе. Если копрофил то можешь также присмотреться к пыхе и жабе.
Джава и пыха короли бекендов и долго ими останутся, вся эта хуйня в виде жс, питона, го, с++ для аутистов C# хуйня дла даунов
Два чаю адеквату. Вместо хуйни для даунов в виде Angular, React, Vue, учи JQuery, он король фронтенда и долго им останется.
${on};
Ты в среакте или ангуляре используешь document.createElement и document.querySelectorAll? Сочувствую.
Да, использую. Точнее в рекате это за меня делает React.createElement или _jsx или как там этот метод называется, я хуй знает я ваще на пыхе пишу мне похуй. В ангуляре хз. уж явно в реакте и в ангуляре для создания элементов не испольхуется jquery
Попробуй вставить какой-нибудь ref в условный Intersection Observer и посмотришь, что получится...
https://jsfiddle.net/a5eh2mbn/1/
Как надо сделать? Я нихуя не понимаю блять. Тайпгард же вернул тру, все действия внутри иф блока, там никак блять не может быть null, ну никак блять. Может все дело в том, что тайпгард передан как проп?
>Intersection Observer
Вкатун, забудь про любое API у которого в спецификации пометка Working Draft
Либо:
function isDickExist (arg: string | null): arg is string {
return typeof arg === "string";
}
Но лучше:
let currentDicks = localStorage.getItem("Dicks") ?? '';
if (currentDicks !== '') {
}
Да, охуенно, сработало. Почему об этом ни единого слова нет в доках тайпскрипта, а вместо этого предлагаю писать тайпгард - целую ебаную функцию - для меня загадка.
А почему тайпгард-то не сработал?
Ну допустим квик и удп на устройствах есть. В браузерах всяких, там где невозможен квик, будут вебсокеты нескучные, вебртц и другие варианты ебли с ачьком. Но всё это гей-мсервер, похуй на него, там даже кодить нельзя больше 50килобайт, проблемы нет вообще.
Проблема в сервере бд/стейта, нужно сократить кол-во технологий и говнокода путём взятия открытой альтернативы фиребазе. И как оказалось это ОЧЕНЬ сложно.
еще vk,телега, 2ch, ютуб, гугл, амазон
>А почему тайпгард-то не сработал?
Потому что ты его не правильно объявил, у меня всё работает. Даже в доки заглянул из-за тебя, там 1 в 1 пример есть (2 пикрил).
Блять, точно.
Не только пыха, тебе пиздят. Ноду тоже можешь в сервер присунуть, но присунуть её можешь только имея конкретный фреймворк.
А сейчас вообще на сервер пихают сишарп и нормально всё. Тоже хороший вариант, кста, можешь перекатываться спокойно.
Ну и пускай работают, я вроде не цукерберг, да и не разработчик wordpress
Не смешно.
конкурентов устраняют наверное, сами уже ноду педалируют в тихую
Да не, много всякого серверного на сишарпе делают. Конечно не сравнить с питоном или нодой. Но бывают довольно серьезные штуки.
В любом случае, смотри от того, чем лично ты хочешь заниматься вообще. На беке очень много технологий, даже на плюсах и чистом си пишут логику для нагруженных микросервисов.
меньше долбоебов на вакансию будет
хочу писать что-то такое, чтоб с сетями компьютерными, чтоб базы данных работали, чтоб механизмы какие-то для людишек данные обрабатывали, и всем от этого хорошо было, это мне куда пойти лучше? я серьезно
П.С. Этот флаг esModuleInterop стоит true.
Да напиши ты уже как правильно сделать. :\
>На фронт сейчас любую макаку, которая знает чем строка от числа отличается.
Пиздеж. Если ты даже тут напиздел, то твои слова про тех директоров всерьез принимать нельзя. Твои советы по изучению V8 и С++ тоже
Маня, ты стоишь ровно столько, сколько тебе готовы платить. И всегда, в любой ситуации найдется тот, кто будет готов платить тебе больше. Хуею с этого экономиста
this.btnNames.reduce((acc, e, i) => i >= start && i <= end ? (acc.push([e, i]), acc) : acc,[])
Тогда вебпук блочит ESM в целях совместимости.
Не выёбывайся и пользуй CJS. Тайпскрипт кстати тут не поможет, так как конфиги не компилируются.
>>7991
>>7984
>>7956
Ебать вы долбоебы, нода может работать либо с CJS модулями, либо с ESM. Вебпак, очевидно, работает с CJS, а ты ему ESM пихаешь.
https://nodejs.org/api/esm.html
У тебя в штанах насрано, беги стирать быстрее.
Именно. В самом коде проекта уже похуй можно и так и так писать, пушт babel-loader подхватит и приведет все это к единому виду.
>Вебпак, очевидно, работает с CJS, а ты ему ESM пихаешь.
Вебпук всего-лишь жрёт то, что ему кормит нода, а 14 версия поддерживает ESM из коробки, хотя и требует явного объявления через `package.json`/переменной.
По идее, если вебпак под капотом не делает лютый харкод на CJS, то можно в корневом `package.json` добавить `"type":"module"` и посмотреть на результат.
Подскажите по организации кода в React.
Цель - создать компонент, который выводит markdown разметку в виде html и стилизует её в css.
Я не знаю как правильней будет это сделать. Я скачал либу для парсинга markdown в html, но куда её подключать? В код самого компонента? Или передавать сверху, спуская в компонент уже готовый html? Я слышал, что компоненты должны быть независимы, но если подключить в сам компонент, то он по сути залочится на этой либе. Или это норма?
В сбер
const a = [1, 2, 3, 4];
const START_INDEX = 1;
console.log(a.map((val, i) => (i >= START_INDEX ? val : void 0)));
Сначала ответь на вопрос, нахуя тебе тут реакт сдался? Это делается парой стрчоек в ванильном жс.
олсо
>в компонент уже готовый html
Так делать нельзя, гугл XSS.
Чел, слишком объемно. Ты можешь изучать с++ и всю жизнь писать высокнагруженные БД. Или программные штучки-дрючки.
Сейчас вообще не факт что какой-нибудь компенлируемый язык, вроде нима, не будет доминировать даже в фронте.
Изучай всё постепенно, алгоритмы и архитектуры данных. Несколько языков, вклюая си, плюсы немного и js. Этого хватит. Наверное. Потом выберешь себе по душе.
>>8033
Нода может работать с одними модулями, ну получится намешать esm, cjs и amd в кучу, как писал выше анон. Т.к. внутри кода вебпака все написано на реквайрах - придется писать конфиг на реквайрах или поставить type: "module" в package.json и заменить гору module.exports и require на export default и import в исходниках вебпака соответственно
>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).
То, что я хотел бы получить вобще реально?
>Сначала ответь на вопрос, нахуя тебе тут реакт сдался?
Может потому что там не только этот компонент?
>Так делать нельзя, гугл XSS.
Откуда в этой схеме XSS? Парсер душит всю херню.
ты че пёс! я программист!
Ну ты долбоеб потому что, не заменил значения в шаблоне. Хз зачем ты вообще что-то делать пытаешься, у тебя ведь ни знаний фреймворка, ни знаний JS.
>Парсер душит всю херню.
Ты сам написал, что html собрался вставлять, лол, тут тебя никто не задушит.
>Может потому что там не только этот компонент?
Ну раз так, то передавай markdown в компонент и парси, применяй стили и рендери внутри него
>Ты сам написал, что html собрался вставлять
Ты имбецил? Ты знаешь что такое markdown? Ты знаешь зачем он нужен и что делает парсер? Если не знаешь - зачем пишешь?
>Ну раз так, то передавай markdown в компонент и парси
Ой, а почему? А не будет XSS? А как же html?
Но ведь я не пытался тебе помочь, долбоеб...
>Ты знаешь что такое markdown?
Знаю. ЧТо мешает в md написать <script>alert("Пошел нахуй хуила ебаная")</script> и передать в твой говнокод?
>Ой, а почему? А не будет XSS? А как же html?
Тебе не обязательно иметь html при вставке элементов в реакте, дурачек. Если твоя либа возвращает Element или DocumentFragment, то ты можешь квериселектором пройтись и ремувнуть все скрипты и линки до вставки в DOM.
>>8066
Делаешь реф на ту часть компонента, в которую тебе надо вставить свое говно, потом вставляешь через append или appendChild. Тяжело, правда?
>Знаю
>ЧТо мешает в md написать <script>alert("Пошел нахуй хуила ебаная")</script> и передать в твой говнокод?
Такого обосрамся я давно не видел. Прямо сразу, без разгона?
>Тебе не обязательно иметь html при вставке элементов в реакте, дурачек. Если твоя либа возвращает Element или DocumentFragment, то ты можешь квериселектором пройтись и ремувнуть все скрипты и линки до вставки в DOM.
И нахуя мне это делать? Ты вопрос то мой читал, ебень?
>дурачек
лол
>Цель - создать компонент, который выводит markdown разметку в виде html и стилизует её в css.
>Сначала ответь на вопрос, нахуя тебе тут реакт сдался? Это делается парой стрчоек в ванильном жс.
>Делаешь реф на ту часть компонента, в которую тебе надо вставить свое говно, потом вставляешь через append или appendChild. Тяжело, правда?
ты ведь просто рандомную хуйню несёшь признайся
Ну что такое пиздец блять.
А что ух бля, оно микроскопическое, я делаю это из спортивного интереса, и чтобы разобраться получше в тайпскрипте и вебпаке.
Про то, как это сделать просто добавив мобильный стиль по клику я конечно знаю, но интересно было бы узнать про первый вариант.
Пилят для себя, выкладывают, чтобы халявная рабочая сила горбатилась на их развитие.
gquery еще в моде?
> В реальности, при работе на себя, ценник должен быть ниже
Разве что если ты лошок без самоуважения. У нормальных людей ценник наоборот выше чем при работе на дядю.
Пиздёж.
Ну популярность спадает, да. Но jquery все равно топ 1 либа по частоте использования пока что.
Пишу простенький бекенд на ноде, делаю цепочку вызовов классов.
Аля - router ->, в роутере controller -> в контроллере service.
Получается следующая структурка :
Class Service {
publick method Boo(){}
}
Class Controller {
publick service: new Service()
method Foo1(){ some logic }
method Foo2(){ this.service.Boo }
}
Class Router {
router: Router,
controller : new Controller()
method Doo1 { this.router(this.controller.Foo1)}
method Doo2 { this.router(this.controller.Foo2.bind(this.controller)}
}
Вопрос в следующем.
Пока я работаю с 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
Но что-то чувствую что не до конца понимаю.
Пишу простенький бекенд на ноде, делаю цепочку вызовов классов.
Аля - router ->, в роутере controller -> в контроллере service.
Получается следующая структурка :
Class Service {
publick method Boo(){}
}
Class Controller {
publick service: new Service()
method Foo1(){ some logic }
method Foo2(){ this.service.Boo }
}
Class Router {
router: Router,
controller : new Controller()
method Doo1 { this.router(this.controller.Foo1)}
method Doo2 { this.router(this.controller.Foo2.bind(this.controller)}
}
Вопрос в следующем.
Пока я работаю с 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
Но что-то чувствую что не до конца понимаю.
Ты хотел сказать для новых проектов почти не используют, в тысячах и даже десятках тысяч уже написанных проектов jQuery является основополагающей либой
Первое, что мне пришло в голову - написать геттер, который при попытке запроса поля класса его забиндит к этому классу. я не эксперт
Ты конкретный код покажи, скажи как ты думал что будет работать и как оказалось на деле, а не свои foo с publick, потому что из этой стены текста не понятно чего ты хочешь и чего ты не понимаешь.
Вот мне после таких случае хочется все бросить нахуй и начать хуярить if else нонстопом. Нахуй это ООП, нахуй.
Да, именно для новых. Поэтому жиквери не нужен, мы ведь постоянно разрабатываем новые проекты
Ну хзхз, у нас на РАБоте в одном из проектов 2020 года хуярят на jquery + react. Одна из известнейших в РФ Ит компаний кста
Ну давай с кодом.
router.use('/api', new TestRouter().router);
class TestRouter {
router: Router; //express router
public Controller: Controller = new Controller();
constructor() {
this.router = Router()
this.routes();
}
routes(): void {
this.router.post('/test', this.Controller.makeScheme); (если вот тут не прибиндить .bind(this.Controller) нихуя не работает, контроллер будет с undefine сервисом
}
}
class Controller {
public Service: Service
constructor() {
this.Service = new Service();
}
public async makeSchema(req: Request, res: Response): Promise<void> {
this.Service.deleteF();
try {
// logic
res.send(shema);
});
} catch (err) {
res.status(500).json({success: false, error: err.message});
}
}
class Service {
public deleteF() {
//logic
}
}
Я искренне думал, что если вызываешь последовательно три класса друг в друге, то все у них будет заебись, и проблем с обращением к филду нет. С двумя-то РАБОТАЛО.
Ну давай с кодом.
router.use('/api', new TestRouter().router);
class TestRouter {
router: Router; //express router
public Controller: Controller = new Controller();
constructor() {
this.router = Router()
this.routes();
}
routes(): void {
this.router.post('/test', this.Controller.makeScheme); (если вот тут не прибиндить .bind(this.Controller) нихуя не работает, контроллер будет с undefine сервисом
}
}
class Controller {
public Service: Service
constructor() {
this.Service = new Service();
}
public async makeSchema(req: Request, res: Response): Promise<void> {
this.Service.deleteF();
try {
// logic
res.send(shema);
});
} catch (err) {
res.status(500).json({success: false, error: err.message});
}
}
class Service {
public deleteF() {
//logic
}
}
Я искренне думал, что если вызываешь последовательно три класса друг в друге, то все у них будет заебись, и проблем с обращением к филду нет. С двумя-то РАБОТАЛО.
у меня такой вопрос что вы имете виду под сложными проектами 'это что то типа этого https://auroraos.ru
Например фронтенд ютуба
ТС тут не причем. Это дефолтное поведение ЖС, когда в классах отъебывает блядский контекст.
Бинди методы или делай их стрелочными функциями, они собственного this не имеют и всегда будут в контексте класса.
Ну понятно. Просто почитай на мдн статью this, в твоем случае можно возвращать из makeSchema стрелочную функцию, тогда контекст захватиться и всё будет работать как ты ожидал.
Делаю небольшой сайт, тут как раз есть такая проблема, но у меня нет еще никакого бека, так что я структуру данных формирую самостоятельно. Или нужно в любом случае все эти моменты обсуждать с бекендщиками и универсального решения нет?
Я бы все это обсудил с остальными членами команды, но я вкатун джун дегенерат, и боюсь опозориться такими вопросами, чтобы потом на меня пальцем не показывали и не орали всем отделом
С бэка приходят только конкретные данные, никаких разметок. Тонкости отображения это задача фронта. Для этого и изобрели SPA и веб компоненты. В твоём случае можно создать компонент, который принимает заголовок, подзаголовок, картинку, описание, а также свойства которые отвечают за расположение картинки относительно заголовка и описания и т. п. в зависимости от ситуации.
>а также свойства которые отвечают за расположение картинки относительно заголовка и описания и т. п. в зависимости от ситуации.
Вот это меня и интересовало, не знал есть ли такая практика вообще или нет. Спасибо.
Ну и? Тслоадер работает с ts, далее babel уже с js, в итоге у тебя в бандле то что высрал babel, хули еще?
> Бывает ли так организовано отображение данных?
Да, но зачем? Можешь хоть jsx и компонеты с бека брать и в стейт пихать, компоненты типо динамически загружать. Некоторые так делают, хз зачем.
> Делаю небольшой сайт, тут как раз есть такая проблема,
Какая проблема? Проблема в том, чтобы определить компоненты заранее? Странная проблема.
Прочитал. babel-loader сопокойно может обрабатывать и тс и jsx и vue и дохуя еще чего, если ты на него навесишь соответствующие плагины и/или пресеты, для тс ему нужен @babel/preset-typescript
Пчел, не воспринимай их всерьёз. Не слушай, что они тебе говорят. Опыт придет со временем. Все мы были начинающими. Просто продолжай двигаться
Зато нахуярить тысячи зависимостей в проект это да, явно лучше чем один нормально сконфигурированный лоадер.
Какие лоадеры нужны что бы грузить js/ts помимо бабеля? В нем все что нужно реализовано
ts-loader
https://jsfiddle.net/73e9wzmt/
Бампану вопрос.
Тоже интересна эта тема. Интересно кто-нибудь занялся вопросом стандартизации функциональных компонентов или нет (имеется ввиду, что все компоненты имеют +- одинаковую структуру с одинаковой читабельностью, как в Vue)
Так а нахуя данный тапчекинг нужен то? Один хуй от него на проде толку мало, только производительность уменьшает, а в деве есть линтеры
Чтобы в редакторе кода случайно не запихнуть тот интерфейс туда, где ему находится не нужно.
Наверно парень имел ввиду создавать что то вроде кастомных хуков в отдельном модуле для каждых компонентов или все состояния на стороне стейт менеджера держать, потому что мне тоже не до конца понятно как это выглядеть должно
Настрой source-map в вебпаке или гульпе, браузер будет тебе даже название файла писать и строку, где произшла ошибка. Даже если ты обфусцировал и минифицировал код
Вот кста реальная проблема - это то, что просто огромная масса контента для вкатунов на просторах интернета, но очень мало инфы о том, как должен писать продвинутый человек
Это такая немалая приложуха на тучу файлов. Это разве что свой гитхаб давать.
Всем похуй на твой YDKJS и предложенные автором паттерны. Дрочи то что использует большинство. При этом классы у тебя будут требовать только если речь о TS, в JS классы нахуй не нужны.
А нет, нихуя
сделай компоненты-обертки - каждый для своей задачи.
и потом скомпозируй все в финальном компоненте, который имеет в себе только ретурн с JSX
Я так делаю и ты так делай
А что там их заменяет? Как более менее нормально структурировать код? Или там просто все навалено в кучу?
Мимо пока не дошел до фреймворков
хуки, но как их нормально использовать никто не знает
функции с хуйками
на офф сайте написанно, что использовать наследование в реакт не рекомендуется. поэтому классы там не нужны
Так реакт это помойка уровня "смузихлеба переклинило и он решил всё поменять". Если хочешь посмотреть на грамотную архитектуру, то смотри на ангуляр.
Это синтаксический сахарок для перекатышей из всякого говна типа Жавы.
Конечно же никаких нормальных классов в жс нету, бразуер просто не понимает что такое класс. Он понимает что такое прототипы.
>ангуляр
Ангуляр неудобное говно, в котором куча багов и недоделок. Он просто концептуально дальше от сути скриптоговна JS, в отличие от реакта, поэтому там куча проблем.
мимо писал на этом
Или эти выяснения на митингах в какой цвет кнопочку покрасить с ебалом аля тут компилятор свой пишут.
Выкатился бы с радостью из этой поеботы нахуй, но перекат на другой стек и потеря зп - это пиздец.
Пости хорошее.
это двач. тут такая атмосфера. можешь проследовать на "нормальные" форумы, если они еще живы в 2021
Это всё пустые слова неосилятора, который если и знает об ангуляре, то старых версий и то только поверхностно. Ангуляр это идеальная синергия ООП и ФП парадигм, именно поэтому в нём активно используется rxjs в отличии от среакта с его бесконечными костылями в виде мобиксов, редуксов и изменений в виде хуков.
Опытные фронтендеры, а вы сами в состоянии такой слайдер запилить с нуля? То что я не могу это зашквар?
вкатун, 3 месяца изучения
посри еще в треде, тут мало насрано
>Это нормально
Для 3х месяцев нормально.
>а вы сами в состоянии такой слайдер запилить с нуля?
Да, могу запилить в качестве Ангуляр компонента, оформив всё виде красивого кода с использованием rxjs, который сводит задачу к тривиальной и требует от тебя написания нескольких строк кода.
самому заплилить это типо без гайда "как запилить свой днд"?
ну это нужно иметь энциклопедические знание по событиям браузера и всякие тонкости поведения элементов с draggable
Каждый хвалит свое болото. Объективно у каждого софта есть недостатки, ибо их пишут люди.
У реакта это масштабируемость и юзание кучи сторонних либ.
У ангуляра это;
1) Завязанность на паттернах в ущерб читаемости и простоте кода
2) Уебищная дока
3) Баги, недоделанные фичи
4) Уебищный механизм перфоманса.
5) Всратые формы
6) УЕБИЩНЫЙ ДЕБАГ. ПРОСТО ОБОСРАНЫЕ СТЕКТРЕЙСЫ.
7) И да, на ангуляре высирают говнокода наверное даже больше, чем на реакте.
За вью не ебу, это какая-то китайщина аля спиздил тут, спиздил там. Пользуйтесь.
>>8771
Вкатыш, иди нахуй.
А просто подписаться на события mouse-up/down/move и действовать в зависимости от координат передаваемых ивентом - совесть не позволяет?
>1) Завязанность на паттернах в ущерб читаемости и простоте кода
>паттерны
>ущерб читаемости и простоте кода
У тебя обсер в первом же пункте, при этом такой величины, что остальные даже нет смысла читать. И ты кого-то вкатышем называешь? Смех да и только.
Бля, ты настолько смехотворный вкатун, что с тобой даже всерьез разговаривать не о чем. Видно же сразу, что не видел абстрактную фабрику, на 150 кейсов. Я уже молчу, что из твоих высеров сразу понятно, что ты никогда не смотрел в исходнике ангуляра и вообще не понимаешь что там происходит. Поэтому, дерни нахуй отсюда, клоун шизоидный.
Ну вообще весь этот вопрос можно свести к:
кто крутой пацан?
задрот, который в своей жизни ебал только байты или стартапер, которые за месяц из говна и палок делает продукт, который работает и приносит деньги инвесторам?
> эти выяснения на митингах в какой цвет кнопочку покрасить с ебалом аля тут компилятор свой пишут.
Ну так правильно выбранный цвет кнопочки как правило приносит бизнесу денег больше, чем дохуя оптимизированный компилятор
Спасибо за утешение, думал я туповат для программирования.
>>8782
Типо того. Закончил читать сейчас вторую часть Кантора, ту что про браузер. Вроде весь необходимый технический арсенал для выполнения задачи есть. Ивент листенеры поинтердовн/мув/ап, вычисление координат различных объектов, координаты ивент таргетов - все это знаю. Но как именно спрограммировать используя все это - не выходит понять.
Короче, не по сеньке шапка пока. Если не смогу по итогу, то не будут рассраиваться из-за этого.
Я вообще не ебу что такое y-combinator.
>смехотворный вкатун
Я понимаю, что это такая защитная реакция тупоголового быдла - назови вкатуном первым, чтобы твои высеры обрели чуть больший вес. Но ты ведь должен понимать, что подобные высеры нелепо выглядят исходя от человека, который говорит, что паттерны ухудшают читаемость и простоту кода? Или ты совсем отбитый и диалог можно не продолжать? Или может кинешь хотя бы пруф в виде оффера и покажешь всем какой ты невкатун, а потом потребуешь того же от меня?
>Видно же сразу, что не видел абстрактную фабрику, на 150 кейсов.
> ты никогда не смотрел в исходнике ангуляра и вообще не понимаешь что там происходит
По всей видимости исходники ангуляра - единственные исходники крупного фреймворка которые ты смотрел. Заглянул, испугался, закрыл, а теперь всю жизнь будешь срать о том как там всё хуево. Так я тебе открою тайну, исходники ангуляра ничем не отличаются от исходников других фреймворков написанных с использованием грамотной архитектуры и статической типизации.
Это все вообще дизайнеры должны придумывать и подробно расписывать, а потом какой-нибудь ПМ и техлид должны максимально точно расписывать тасочки на всех. Тебя по сути вообще ебать не должно, какие там кнопки будут, это не твоя работа.
Я например как-то работал на галере, там даже мобилки не рисовали.
Крутой пацан это тот кто выбирает качественный, готовый код, при необходимости может дополнить его своим высокопроизводительным и хорошо читаемым кодом, а также предоставит готовый продукт в течении месяца и тем самым принесёт прибыль инвесторам.
Т. е., как всегда - побеждает золотая середина.
Правда, что в мухосранских местных небольших конторах могут задачу дизайна повесить на фронтендера?
Ну шныри-дизайнеры распишут, а фронтендо-боги будут с бокалами коньяка за 300кк обсуждать как лучше прописать цвет: через rgb, hex или hsl.
тебя ебёт?
>этот слив мамкиного фантазера
Что и требовалось доказать. Главное постарайся сдерживать себя, а то ведь здесь зачастую люди не опытные, начнут верить твоим нелепым высерам.
>Выходит, что введенный в ES6 синтаксис "классов" и правда фуфло?
Да не, норм сахарок. Визуально поля и методы обьявляются с одном скоупе, заместо ванильного пердолинга с конструкторами прототипов. Плюс тайпскрипт автоматом лепит к классу тип, так что его можно одновременно использовать и как фабрику и как интерфейс.
Ну такое конечно только прям совсем в нищих веб студиях, но мне иногда кидали какой-то криво высранный макет и я ебал себе и другим голову, чтобы сделать нормально.
Но вся боль в том, что это никто не ценит и всем похуй. Ты за это не бабла больше не получишь, не дополнительного почета. Поэтому, такая контора - говно.
Да. Также как и правда то, что в крупных компаниях вёрстка и всё что связано с HTML делаются отдельными людьми, а фронтендеры отвечают только за интеграцию с фреймворком.
По собственному опыту судишь? Открою для тебя тайну, не все на успокоительных сидят и стоят на учете в псих. диспансере.
>вёрстка и всё что связано с HTML делаются отдельными людьми
Ебать... Это по-ходу отдельная каста опущенных. К ним, наверное, в офисе прикасаются только ногами.
>в крупных компаниях вёрстка и всё что связано с HTML делаются отдельными людьми
У крупных компаний есть еще одно лицо - огромное количество легаси кода, дизайн-макетов и верстки, написанного одним человеком на джава апплетах сука блятьвся логика крутитя вокруг ебучей джавы и запросы делаются через ActiveXObjectСамо собой, работает только в IE
Кантора что ли читаешь? Ясен хуй ничего не поймёшь, там жабаскрипт в отрыве от HTML/CSS научивают, лол.
Ну за такое отношение тебя сразу попрут. В офисе тебе нужно постоянно улыбаться, относится ко всем с уважением, приходить на помощь и т. д. В целом их все хвалят, говорят что они крутые и полезные.
Ничего, это тырпрайз говно, которое юзают для формочек, инфа по нему разбросана веером по всяким бложикам.
Лучше сидеть и пилить свои проекты.
>дрэг-н-дроп слайдер с автовыравниванием
Так тебе верстку учить надо, эта хуйня пилится на нативном жс в пару десяток строчек
Это только в первой части. Вторая часть он про браузер, дом, хуё-мое, там все переплетено.
DOM опять-таки только в отрыве от HTML/CSS описывают.
Как к детям - даунам, короче.
Статьи на медиуме, статьи на indepth.dev, на indepth.dev есть серия статей про проверку изменений, как раз для продвинутого уровня. Отдельно почитай про rxjs, разберись со всеми операторами, попрактикуйся, потому что на собесах этому удиляют отдельное внимание и если ты будешь круто манипулировать функционалом этой библиотеки, то на неточности относительно знаний ангуляра закроют глаза.
У тебя неверное представление.
Нужно лизать жопу манагерам и лидам. На нижестоящих можно ссать и срать - за это ничего не будет, если как следует жоп нализался.
почему-то в етом итт треде все думают что ты задал вопрос то ты вкатун или как минимум менее опытен чем тот кто тебе ответит
У нас в код оф кондакт написано, что нельзя дарить подарки людям которые стоят выше тебя по должности и чье мнение может оказывать влияние на твоё продвижение по службе.
и правильно делают.
spa это конечно круто, но для 90% вебсайтов это избыточно + гугл индексация
Потому что задав вопросы ты ничего не написал о своём уровне, а профилей пользователей как на твоих любимых пикабу и вконтакте, здесь нет.
Можете пояснить, что он имел в виду под этим?
Ну у вас какая-то корпоративщина значит. Это может быть даже и плюс.
Я как-то работал на галере. Там продвижение по службе было тесно связано с тем, ходишь ли ты в курилку, бухаешь ли ты с начальством и лижешь ли ты жопы манагерам и лидам.
Хуй знает. Может, что на чистом жс пишут какие-то высокоуровневые абстракции типа кучи фреймворков под разные платформы?
Ты написал про уровень материалов, которые хочешь почитать, скотина тупорылая, я же говорю про твой собственный уровень.
>а ты мне советуешь rxjs подрочить
Проиграл. Ты думаешь, что знаешь его на продвинутом уровне? Сразу видно чмоху, которая кроме map и его разновидностей ничем не пользуется.
Пиздец, ангулярошиз тут так каждый день так на анончиков срывается? Ебанутый овощ какой-то.
это скрипт делает?
можно ли написать бота, который будет постить на двач по кд? или двач слишком защищен от этого?
Тимур кстати идею middleware в ноде обосрал и сказал что это антипатерн. Он целую лекцию по этому выпустил, все никак не посмотрю.
>двач слишком защищен от этого?
Защищен гугл-капчей + ограничением на количество постов в единицу времени с одного IP.
Можно. Даже капчу не надо обходить, если не слишком часто постить.
Вот просто блять заходишь почитать о чем-то новом для себя, при этом ты уже имеешь какое-то минимальное понимание вопроса, читает статью и просто охуеваешь какая ебаная чушь там написана, ебаный в рот, господи боже. И хуже всего, что эти пидорасы засрали все нахуй, абсолютно все. Просто нахуй по запросу в гугле такая чушь выпадает в поиске что просто охуеть. Найти нормальную статью в котором кратко что-то поясняется, обозревает новая фича и т.д. это просто как блять в деревенском толчке, в который со сталинских времен ходит срать вся деревня найти жемчужину. Просто блять пиздец. Зато когда находишь, просто физически срать хочется от радости.
Опять на тебя таблеток не хватило?
остроумным человеком я бы тебя не назвал
Шизик, спок.
срака смешное слово я просто не знаю как его можно было бы еще использовать в такой ситуации
что туда еще поместить окромя елды модератора?
Хватит сраться о технологиях.
каждая имеет свою сферу применения
ангуляр - крупные проекты с сильными спецами
рекат - стартапы одногодки
вью - туду листы
Поправлю коллегу.
ангуляр - крупные проекты с сильными спецами
рекат - стартапы одногодки с веб-макаками вместо спецов
вью - туду листы с васянами после курсов
Оно никак не будет противоречить концепции SPA. И уже давно есть решения, реализующие SPA + server-side rendering. Next для реакта, Nuxt для Vue, Universal для ангуляра. Даже у свелта есть SSR
Странно, всегда же в експрессе миддлвары юзали, удобный концепт вроде
На реакте прекрасно пишется всё то же, что и на ангуляре. Поддержка тс отличная, комьюнити крупное с всевозможными решениями и инструментами.
Как вы делаете такие няшные скрины? Это какой плагин на vsc?
Хотя синтаксис понимаю, но когда много кода - сложновато все интерпритировать на той же скорости что и движок JS
Опытные скажите, вы такое на лету читаете или тоже сидите разглядываете что куда возвращается?
>Опытные скажите, вы такое на лету читаете или тоже сидите разглядываете что куда возвращается?
На лету. С опытом приходит.
6 лет пхп
В кодинге? Ну года три уже (писал олимпиадные задачки на плюсах), в жс около 4 месяцев. Понимание рекурсии появилось гдет в 16-17 лет на занятиях в моей шараге.
Рекурсия - антипаттерн даже в полноценных функциональных языках, а уж тем более в жсе.
Больше двух уровней вложенности обычно надо разбивать на несколько функций.
На твоем пике - говнокод, сейчас бы нахуй проверять количество принимаемых аргументов в динамическом языке с динамически определяемой function arity, и при этом двумя строчками выше писать ...handlers в этих же аргументах (!).
шиз, это классика это знать надо!
https://ru.wikipedia.org/wiki/Полиморфизм_(информатика)#Ad-hoc-полиморфизм
>Рекурсия - антипаттерн
Так никто и не спорит, просто есть задачи которые рекурсию решаются в десятки, а то и востни раз быстрее чем фориками и while
Ну я лучше подумаю над архитектурой, чем буду изучать очередные "очень нужные" ложки и вилки.
Чем проще и понятнее мой код, чем больше чистых функций - тем лучше его поддержка.
вы же не можете быть такими тупыми ботами
вы специально пишите хуйню чтобы меня раздразнить
>ем больше чистых функций - тем лучше его поддержка.
Вот кстати двачую. Сколько я не видел попыток уопроться в неебаца ООП и функциональщину - всегда получалась глина. С чистыми функциями всегда все просто и понятно
хорошо, но вот на всякий случай статью по теме
https://vc.ru/hr/163533-sindrom-samozvanca-podrobnyy-razbor-nauchnye-issledovaniya-harakteristiki-testy-i-kak-s-nim-spravitsya
лучше не затягивай, дальше хуже бедет, депрессия, ркн и т.д.
Рекурсию любят как раз именно ньюфаги, которые ее видели только в этих числах фибоначчи.
>>8962
Мелкобуквенный ньюфажный дурачок, научись словами говорить, а не линковать что тебе в голову случайно стукнуло. В жсе нет никакой разницы, передаешь ты 0-arity функции 0 аргументов или 120, и смысла делать шизоидную проверку на Function.length нет никакого и никогда.
по-моему все просто и понятно, а главное - без анти паттернов
ну давай обозначь
не троль плз)
> всегда получалась глина
Мне кста кажется что это сортоф шизофрения, когда выдумывается очередной паттерн и зачем-то его развивают.
Ради чего? Почему? Проверили хотя бы эмпирически, что это кому-то нужно и улучшает хоть что-то.
>>8972
Как ты будешь код писать, если архитектуру не знаешь? Лол
>>8981
Чистота функций обеспечивает читаемость. Всё однозначное и проверяемое с любого места в коде.
Пошел нахуй отсюда, пидрила я твою мать ебал
Очень интересно слушать про отбросов от мелкобуквы с лямбдами заместо функций.
Аноны, насколько актуально для front end разраба знания верстки по макету, БЭМ методологии, SASS?
Как задолбало это IT, я ещё не вкатился, а уже перегорел
те кто победили в голодных играх
те которые еще играют, тут - https://2ch.hk/wrk/res/2216769.html (М)
И чем вы на это смузи зарабатываете?
БЭМ - это такой же отвратный высер яндекса, как и сам яндекс, яндекс-браузер, яндекс-почта и прочие. Полностью заменяется нормальной системой модулей, то есть тем же SASS'ом. Он был бы более-менее актуален в 2009 (если бы о нем тогда кто-то знал, кроме самого хуяндекса), но в 2021 эту парашу использовать - это быть отбитым на голову.
И БЭМ, и Sass не нужны при правильном использовании современного css.
Sass - это вообще причина 90% падений при сборках у нас в конторе, ума не приложу, как можно было высрать такое глючное говнище.
дело в сборщике наверн а не в сасс?
Это серверный язык со своими специально пропердоленными апи для работы с серверами и файловой системой. Интерпретируется он, не поверишь, в nodejs.
>И БЭМ, и Sass не нужны при правильном использовании современного css.
Попробуй напиши сколько-нибудь сложные правила без вложенностей селекторов. Да и сассовские переменные хороши для значений, которые важны только при компиляции.
Имею в виду удобнее бэма и чистого css
>На реакте прекрасно пишется всё то же, что и на ангуляре
Тоже самое можно сказать и про чистый JS, и про JQuery.
>либа написана на JS
>Поддержка тс отличная
Найс маняфантазии.
>комьюнити крупное с всевозможными решениями и инструментами.
Это комьюнити не успевает танцевать под дудку смузихлебов из фейсбука. В то время как в ангуляре есть всё из коробки.
Все разобрался! Благодарю анон, хорошего тебе дня.
Понял зачем vscode просит node.js установить это типо движок через которыц код интерпретируется в консоль
>Sass - это вообще причина 90% падений при сборках у нас в конторе, ума не приложу, как можно было высрать такое глючное говнище.
Ты про говнокод, написанный твоей конторой? Что там может упасть в принципе, ебанутый блять?
VSCode требует ноду потому что он собран на электроне, у которого нода в зависимостях. Требуется не столько для консольки, сколько для операций с файловой системой, это же практически IDE ведь. Электрон кстати это комбайн из браузерного жс и ноды.
У меня наоборот. Пишу и кажется что говно. Смотрю чужой код и кажется ещё большим говном. Переделываю по сто раз и кажется говном. Сложно что-то закончить из-за этого. А спустя несколько месяцев возвращаюсь править старый и забытый проект и думаю - бля какой же я молодец, неужели я так удобно и понятно сделал, ебать годнота
> Тоже самое можно сказать и про чистый JS, и про JQuery.
Только в редких случаях. Из адекватных компаний почти никто так не делает и берут реакт/вью/ангуляр.
> Найс маняфантазии.
Это у тебя видимо маняфантазии по поводу того, что в реакте плохая поддержка ТС. Создатели ТСа даже сами добавили поддержку JSX прямо в ТС
> Это комьюнити не успевает танцевать под дудку смузихлебов из фейсбука. В то время как в ангуляре есть всё из коробки.
Хуле там успевать, в реакте медленно выкатыают обновления. Так что все успевают.
У меня в дочернем компоненте есть отправка формы и кнопка для неё. Но я не знаю как можно эту кнопку вынести из формика, да еще и наверх её поднять, чтобы она нажималась из родительского компонента. Отправка и форма находятся в разных блоках. Переделывать вертску и перемещать эту кнопку в другой блок просто ебнешься нахуй. А как тригернуть одну кнопку в child кнопкой из parent я не знаю
>в реакте плохая поддержка ТС
Реакт написан на ТС? Нет. Значит твоя поддержка это костыли вида x = (x:any):any => {}
Какакая вообще годнота есть из маленьких, но гордых, фреймворков?
Он же для пидоров или вроде того. Мне кажется если буду использовать, то из ачька будет сперма течь.
А с солидом я не стану пидором? Это серьезный ща вопрос.
Бля, инферно фин с шизофренией делает. Нихуя не айс. Нахуй инферно.
>>9161
Все так дружище, вот только реализовал. Пиздец, тому челу с ютуба, который показал эту хуйню нужно нобелевку дать. Я просто в ахуе с того, как этот банальнейший паттерн не объясняют с ходу, вот как только ты в реакт погрузился. Еб вашу мать, я часа 3 проебался с этим. Не грех и наебениться
Проблема всех этих сиюнаносекундных фреймворков в том, что реакт выпустит очередной новодел в виде хуков, и всё это говно улетит в каменный век за 1 день.
Но именно так и просиходит лол. Он именно поэтому и становится нужен, как ты ни корчись
Нет, он всем нужен только потому что его фейсбук пердолит и пользователей много. Для интепрайся это надежность типа.
А хуки реакта задолго до реакта существовали и никому нахуй ненужны были. Они и вуе есть, например.
>Они и вуе есть
Они там после реакта появились
Как и всё в вуе. А вуе натив это вообще траханье трупа
Хуки появились в кнокоутжс, чел, 10 лет назад. Просто реакт эту хуйню откапала и она получила популярность.
Откопали же. Десятки библиотек есть и было. Всё дело в популярности.
Спасибо реакту за пиар ништяка, хуле, пусть продолжает дальше копаться и исследовать. А использовать я буду солид, например. Или что-то ещё.
Я сам себе программест, сам делаю продукты конечного потреления. Похваще.
Просто с опытом на ходу читаешь, как книжку.
>>8959
Рекурсия пригодна в очень небольших случаях. Те, кто ебашит рекурсии не по делу - конченые уебаны, таких нельзя брать на работу.
>>8964
Ну, зато time complexity от рекурсивного решения увеличивается в разы. Любую рекурсию можно переписать на итеративное решение. Если у тебя будет много данных, то ты заморочишься либо над кешированием рекурсии, либо над написанием в итеративном стиле. Что то, что это будет одинаково всратой задачей. И когда рекурсивную функцию надо будет модифицировать определенным способом, ты жидко пукнешь и пойдешь ее переписывать.
Питер?
> Юзай firebase, чо ты как етот.
Всё, юзаю фаербазе. Остальные просто ПИЗДЕЦ какие сложные и нужно ПИЗДЕЦ как много кода. Просто охуел с того, сколько нужно кода.
Легче потом нанять крутых чувачков, под написание своих крутых фиребази, чем самому ебаться с этим.
Объясните, что за магия? Стейт менеджер работающий в 7 строк без бойлерплейта? В чем подвох? Почему его не использует вся вселенная?
Зачем?
Все стейт менеджеры и так достаточно легковесны, плюс есть контекст апи в реакте, если хочется чего-то самописного.
Это похоже на очередной велосипед.
Пчел, ето же обёртка над useReducer
Бтв выглядит вполне удобно и читаемо. Уж точно получше всяких effector
Велосипед, снижающий количество бойлерплейта до одной строки импорта? Да еще и в использовании прост настолько, что уже проще просто некуда. Я пока ничем, кроме карго культа использование других стейт менеджеров объяснить не могу
Мобикс магия какая-то всратая + дохуя килобайт весит, особенно если ещё state-tree юзать
Поэтому придумали mobx-react-lite
Так это обычный бойлерплейт код, установи себе автокомплиты и пиши его за пару секунд. В чем претензия, опять же? Из-за того, что чел написал пару оберток и сократил бойлерплейт на пару строчек для каких-либо действий, ты предлагаешь переписать миллион проектов под него?
Такая всратая хуйня только в башке вебмакак бывает, поэтому нормальные люди бегут от веба как от бубонной чумы.
> ты предлагаешь переписать миллион проектов под него?
Ничего такого я не предлагал. Я вообще мысль доносил о том, что делайте выводы, чтобы было удобно писать в будущем и не стрелять себе в ногу
Хмм. Хуй знает. Выглядит прилично вроде.
Какие вообще мнения об этом, использовал в проде, читал? Отличия от фиребазы кроме лицухи?
Мне всё кажется лучший план браузерной игры будет firebase на js клиентах для 95% данных. И сервера игровые подниматься будут тоже набирая инфы с фаербазы. После того как приносить будет прибыль минимально - начать ебаться с нормальной бд и нормальными p2p трафоном вместо цдн/огнебазы.
Пчел, вопрос не по теме, но что ты делаешь в геймдеве? Я имею ввиду как вы именно там игры делаете? Вся визуализация на жабаскрипте или есть какой то готовый движок, на котором вы все пишете? Какие вы технологии используете, что у вас там популярно? Используете web assembly? Потому что для меня это тёмный лес
Ты даун? Нет там никакой громоздкой хуйни. Бойлерплейта немного больше и все. Но это даже в плюс читаемости, ибо меньше магии подкапотной.
> Я имею ввиду как вы именно там игры делаете?
Оооочень хуево их делают. Никаких ангуляров и редаксов никто не использует, фреймворков почти нет в проде.
> Вся визуализация на жабаскрипте или есть какой то готовый движок, на котором вы все пишете? Какие вы технологии используете, что у вас там популярно?
Phaser и pixijs из того что я писал и в чем работал, а я пишу тридеговнину на threejs как свой проект.
Самый популярный - ванила. На нём написано большинство. Всё остальное, что в топе, то и популярно. Да и движков и не так много, на самом-то деле, фазер и пикси в топе.
Офк немного ебли с шейдерами и математикой есть. Архитектурные проблемы, логические часы и прочее - норма жизни и основное мозгоёбство.
Для серверов используют как ноду/дено, так и плюсы как логику.
> Используете web assembly?
Внезапно js по перформансу теперь как васм, а васм абсолютно бессмысленная хуйня, хз зачем это делают в 2к21 году, если не осилили перформенс.
> Потому что для меня это тёмный лес
Да я сам недавно залетел и особо нихуя не знаю, только логику пишу и делаю серверные ништяки. Пытаюсь сделать своё дерьмо, но ебать я охуел с полного отсутствия толковых технологий.
Понял. Копец конечн. Звучит всё конечно хардово, это не лендосы клепать. Удачи тебе, аноний. Уверен у тебя все получится
ПЕРЕКАТ >>1939294 (OP)
ПЕРЕКАТ >>1939294 (OP)
ПЕРЕКАТ >>1939294 (OP)
ПЕРЕКАТ >>1939294 (OP)
ПЕРЕКАТ >>1939294 (OP)
ПЕРЕКАТ >>1939294 (OP)
ПЕРЕКАТ >>1939294 (OP)
Хз, я тупой пиздец. Самое хардовое для меня - выбор технологий. Ведь я хочу потом, с помощью выбранных технологий, выкатить фреймворк и полный набор инстурментария для анонов, чтобы вкатиться с js разработки в игры было минут 15, и лицензию интерпрайс на 90 процентов прибыли в фонд борьбы с старением
Ты какой-то хуйнёй страдаешь, хуле кнопка отправки формы у тебя не в родительском компоненте?
Потому что у нормальных людей есть сервисы с DI и scan из rxjs.
EGAR TECHNOLOGY?
Это копия, сохраненная 12 мая 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.