24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Блять, плюнул я короче на свои принципы, так как без UI для сервера жить тяжело. И так, жиессеры, подскажите, какой фреймворк брать? хули в шапке до сих пор нет, для вкатывальшиков Хочу, чтобы быстро и просто. Задача: писать админки. И без всякой ёбки с пакетами. Ещё кстати думал над Elm, что про него скажите ?
>>1892244 В том то и дело, я вообще не уверен, что брать. С js знаком плохо, но когда писал на нем, прям плохо становилось, думаю может фреймворки поменяют моё отношение. Кто-то вообще писал админки на чистом js ?
>>1892248 >Ты не очень умный, да? Все так, мне, как обычному мимо-проходящему, понадобилось мнение экспертов, здесь и сейчас.
Пишу скрипт для тампермонкей. Скрипт состоит из функций. Весь скрипт, т.е. все функции запускаются по domcontetntloaded.
Как грамотней организовать эти функции?.
Просто писать функцию и после сразу вызывать? Или сгруппировать вызовы вначале\в конце? Или делать все функции стрелочными, чтобы не всплывали и вызывать по очереди?
>>1892269 Писать очередь вызовов, а функции писать внизу, предпочтительно в той же очереди, в которой вызывал. Вообще странно, у тебя все функции - сайд-эффекты?
>>1892063 → >в реакте для этого используют передачу вниз функции обработчика И чем же это принципиально отличается от эвентов в Vue? В смысле - в лучшую сторону? Алсо, передать вниз в Vue можно что угодно, просто этого не делают. Есть другие механизмы.
Вообще, по части гибкости реакт сосёт у Vue не нагибаясь. Тут даже и обсуждать нечего.
>>1892138 → И (возможно) правильно делают. Потому, что такие вещи, как incapsulation и separation of concerns можно понимать очень по-разному, в зависимости от обстоятельств. Не надо воспринимать как догму всю хуйню, которую пишут Дядя Боб или Фаулер.
В очень многих случаях тупо иметь всё в одном месте выгоднее, чем высосанные из пальца теории о том, что надо делать по 10 файлов на каждый пук.
Просто ньюфагам такое обычно не говорят. Как детям не показывают, из какого места они появляются.
>>1892414 ивенты с нагрузкой это как-то странно если честно
вот в свелте например просто биндинг по типу v-model можно сделать на проп лол
а то что во вью можно вниз обработчик передать это собственно естественно т.к. как ты запретишь передать пропом ссылку на функцию, это фишка языка, просто это не принято
>>1892478 Так это не из-за стрелочных функций, а из-за того что ты переменную объявляешь через const, объявляй через var и поведение будет такое же как у function
>>1892457 >ивенты с нагрузкой это как-то странно если честно Это как посмотреть. Попробуй вместо термина "эвент" использовать "сообщение". И всё встаёт на свои места.
>>1892152 (OP) Аноны, такой вопрос, научился писать я код, работаю в крупной нефтяной конторе, кругом бюрократия, нас 6 чела в команде, начальник нашей группы никакущий управленец, процесс налажен херово, задачи ставятся без четких требований, заказчик сам не знает чего хочет, короче сделаешь нормально, потом приходится переделывать и тут уже говнокодишь, лишь бы быстрее задачу закрыть. Я оцениваю себя как аппер джун, есть пробелы в базе, я их закрываю читая про алгоритмы и все такое. Но вот как и куда двигаться дальше? Я хочу пересесть на мидловский стул, я пишу код самостоятельно с практиками и хорошими манерами, но ведь мидл делает тоже самое? Что отличает мидла и джуна? Читать про архитектуру? Но ведь она уже как правила заложена ранее и лидами. Анончик, расскажи, как рос сам, что посоветуешь?
>>1892767 Если пишешь все самостоятельно (и не приходится доделовать именно из-за твоих проебов) то добивай опыт до какой-то красивой цифры и перекатывайся в мидла. Почекай вакансии, если будет возможность походи на тестовые собеседования посмотри что там вообще требуют.
>>1892871 Чувак, "прямо с улицы" - в программирование - в Америке 60-х, это не то же самое, что прямо с улицы в программирование в России 20-х. Понимаешь?
Чтобы было понятнее - попробуй сейчас вкатиться в какой-нибудь биотех, например. Сможешь?
>>1892880 > попробуй сейчас вкатиться в какой-нибудь биотех Совершенно понимаю, что это охуительно непростая задача. Вкатился бы с удовольствием за госсчет, но пока что только вкатываюсь методами превозмоганий да и то только на чистом энтузиазме. Впрочем хер бы с этими хайтеками, меня смущает что ради таких ремесленных знаний как формошлепинг приходится чуть ли не бароном делаться
Алсо, формошлёпинг - это не ремесленные знания. Иначе - это будет хуёвый формошлёпинг. В любой работе основную массу составляет рутина, которая кажется ничего не стоящей тому, кто привык её делать.
> The CSS content type is new and is still a work in progress. There is also a known ordering issue with importing CSS files from JavaScript files. You can follow the tracking issue for updates about this feature.
Доперло вроде. Таким образом я перезаписываю внутрифункционный переменную просто, а архив висящий где-то в памяти это не трогает. Оригинальный массив можно менять только методами, которые его "мутируют" ( https://doesitmutate.xyz ), правильно?
>>1893180 да именно поэтому ты не можешь сделать просто arr.map() - нужно присвоить получившееся значение переменной т.к. оригинальный массив не поменяется тогда как ты можешь сделать arr.splice() и ничего не присваивать
Кто-нибудь пробовал ковырять SICP на JS? Меня заинтересовала тема SICP, но у схемы уебанский синтаксис, который нигде больше не применится. И оказалось что материал есть на любимом жаваскриптике. Ссылка:https://source-academy.github.io/sicp/split/
Посоны, поясните плз. Я хочу объединить два коммита.git rebase -i HEAD~2. Дальше вылезает vim. Я нажимаю : и пытаюсь заюзать команду pick, но у меня вылезает ошибка " Not an editor command: pick". В туториала про это ничего не сказано. Что я делаю не так?
А есть какой-нибудь онлайн-сервис, где чувак со мной проведет тестовое интервью и подскажет, где я обосрался? Уровень сеньор (прост с фулстака хочу чисто во фронт перекатиться, и не уверен что достаточно шарю)
Выбери что-то одно. Фуллстак это максимум мидл на фронте и мидл на бэке. Хотя чаще всего это джун на фронте и максимум мидл на бэке. Поэтому если хочешь на фронт, то готовься откатываться на уровень мидла или ниже.
>>1893395 )) Ты первый день что ли на двачах? Вон смотри какой кадр нарисовался пару тредов назад: >>1885745 → Главное этот джун/стажер даже не понял, насколько сильно он обосрался. Это как пытаться выпенриться сказав, что ты сдаешь недвижку и владеешь 1-2 дома в каждом регионе России, думая что это типо круто (хотя ни один вменяемый инвестор в недвижку так не сделает)
Аноны, помогите советом: уже работаю разрабом, Реакт/Редакс вот это всё, проект и ебовый пробовал и с микросервисами. Написать компонент вполне могу - хоть классовый, хоть функциональный; А как хочу что-то сам сделать с нуля, вижу пустую директорию в IDE или пустое поле в задачках на литкоде и такой тупёж накатывает, что не знаю что делать, смотрю, туплю и закрываю. Что со мной не так? Как-то можно такое вылечить?
Внутри него допустимо аккумулятор мутировать или нужно возвращать новый или похуй? Например, если аккумулятор - массив и нужно добавить в него значение. И будет ли разница в быстродействии?
На фронте есть запрос по типу: async updateData(actor, options) {}
То есть некая асинхронная функция передает какие-то данные на бэк для конкретного actor. У меня есть массив где 20+ таких actor, как мне асинхронно разом закинуть их всех на бэк? Не ждать же мне каждый раз когда закончится исполнение предыдущего await чтобы начинать новый запрос. Асинхронщина не для этого придумана
>>1893850 Мутировать конечно, ты же не собираешься использовать в качестве аккумулятора переменную извне? Разница будет не только в быстродействии, но и в использовании памяти, не в пользу создания нового массива.
>>1893880 Но map же принимает только 1 аргумент... А там в функции их два - сам actor и некие options (которые как могут быть дефолтными для всех actor так и быть уникальными для каждого из них)
>>1893850 Я в работе вижу практически всегда второй варик через spread, он и короче и чуть более понятен, можно еще и return убрать. А если ты пушить собрался, то больше смысла имеет определить acc во внешнем скопе и просто внутри forEach пушить. Пушить подозреваю побыстрее будет, но имеет смысл уже на 1000+ элементах.
>>1893919 Ну а срсли, зачем он тебе нужон? Обычно или что-бы во что-то кжадый элемент конвертнуть (map), что-то сагрегировать (reduce) или отфильтровать данные (filter) Ну реально придумай плз пример, когда нельзя решить задачу этими штуками
>>1893922 Потому что цикл читается и понимается гораздо лучше чем дрочево редьюсов с рекурсиями. Кукареки "да ты просто не привык к функциональщине" оставь при себе, в любом современном ФП-языке рекурсия - это в 99% случаев антипаттерн и так существуют list-comprehensions, которые читаются как обычный цикл и используются в тех же местах. Никто не дрочит твои маняредьюсы каждый раз когда им надо n раз пукнуть.
>>1893921 Где "там"? Если в качестве аккумулятора ты используешь переменную, значит делай копию этой переменной и работай c копией, мутируя её в калбэке функции reduce. Писать [...acc, e] вместо (acc.push(e),acc) будет только конченный дебил почему - показано на пикриле.
>>1893942 >Если в качестве аккумулятора ты используешь переменную Где такое я сказал? Хуле ты слепошарый такой?
[...acc, e] каждую итерацию возвращает новый acc (acc.push(e),acc) мутирует один acc В том и был вопрос, что лучше. ФП же требует не мутировать ничего.
>>1893942 Только семантически такая запись внутри reduce никакого смысла не имеет, смысл reduce в том чтобы возвращать новый объект на каждую итерацию, а не мутировать его. Есть хочешь пушить, то внутри forEach.
>>1893947 Хуесосина тупорылая, я тебе изначально объяснил в каких случаях как действовать. Ты высрал "какое из вне?", на что я тебе объяснил какое. Ты хоть сам то себя понимаешь, макакен? Тебе вообще лучше забыть про программирование, даже на JS.
Есть вызов: const maxNumber = prompt('Выберите максимально возможное число')
После этого надо выполнить ряд действий, но только если юзер выбрал какое-то число а не нажал на Cancel. Мне явно проверять if (maxNumber !== null) ? Выглядит по-уебански, но я не могу же проверять на if (maxNumber) потому что оно может быть нулем...
Как заставить меняться изображение в теге img с помощью жс?
Вот в чем суть: есть svg-изображение "стрелочка вверх" при нажатии на которую окно под ним сворачивается, при повторном нажатии - разворачивается, однако я хочу изъебнуться и не делать так чтобы стрелочка всегда показывала вверх, когда нужно развернуть окно, она должна показываться вниз. Как это сделать при помощи ванильного ЖС?
>>1893947 >ФП же требует не мутировать ничего. Но ты не пишешь на ФП языке, шиз. Нет никакого практического смысла дрочить редьюсы вместо for цикла с мутацией, для потребителя API это будет то же самое, ему абсолютно поебать, спавнит твоя функция 1000 ИММУТАБЕЛЬНЫХ массивов чтобы вернуть результат, или создает этот результат сразу и мутирует его в процессе.
>>1894050 В конктексте жопоскрипта - да, более-менее. Мутировать переданные тебе объекты и так моветон, для этого гением ФП быть не надо, а внутри своей функции можешь хоть в жопу ебаться, главное результат отдай. И в жопу ебаться гораздо приятнее прямолинейным циклом, который любой дебил прочитает без проблем, чем дрочить редьюсы чтобы сделать ФП-шизика счастливее.
Можно ли как-то в ангуляре повесить хендлер на элемент в зависимости от параметров? Например если в компоненте некий actionFlag = true то на элементе висит хендлер: (click) = "myFunction()"
>>1894091 Ануляр вроде как всю эту дрянь в справа умеет в рантайме гонять через свой интерпретатор, поэтому туда можно писать всякую динамическую дичь как будто там всамедлишный жс
>>1894091 Тебе уже ответили. Но, так лучше не делать. И не только в Ангуляре, а вообще. Эту проверку лучше делать в функции-обработчике. В шаблоне должно быть логики по-минимуму.
А если ты имел в виду назначать/удалять обработчик у элемента, в зависимости от, как делают в чистом жс - то так в шаблонных фреймворках не делают. Если это критично - можно по-разному рендерить элемент - с обработчиком или без, в зависимости от условия.
Ананасы, поясните как правильно реализовывать залогиненное состояние клиента на странице, что бы при перезагрузке он оставался в логине. В локал сторедж записать токен авторизации и при перезагрузке его отправлять на сервер ?
>>1894564 "Правильно" реализовывать - это использовать http-only зашифрованную куку с сессией и вторую куку с публичной информацией о пользователе(id, имя и т.д), обе из которых должен выставлять сервер, чтобы ты мог по публичной куке в любой момент определить статус сессии. Но если сервер пишет непонятно кто, то скорее всего придется дрочить токены и локалсторы.
Где почитать как работают импорты модулей в бабеле/вебпаке? Я не понимаю когда он принимает решение импортировать весь модуль, а когда - только нужный файл. В ситуации с лодашем, у которого каждая функция чистая, импортится только то что нужно, но только если писать: >import debounce from 'lodash/debounce'; вот так не работает: >import {debounce} from 'lodash'; импортится весь модуль. Интересно, почему.
Пытаюсь не импортировать весь модуль graphql, используя синтаксис >import {print as printGraphQL} from 'graphql/language/printer'; но он в бандл тащится весь модуль, когда мне только эта функция нужна. Я вообще не понимаю как это работает.
Но в логах он сначала мне пишет пустой список а затем на следующей строке уже список заполненный объектами, хотя console.log я вызываю 1 раз. Почему так?
>>1892152 (OP) Поясните, CMS были изобретены для того, чтобы кабанчики вместо заказа сайта у разраба, платили создателю движка? В чём тогда смысл существований совсем простеньких веб студий третьего сорта, берущие простенькие заказы, если их продукты можно заменить CMS. Свой движок и возможность допилить рокет саенс при желании или просто незнание рынка заказчиком?
Поясните, как грамотно использовать MutationObserver.
Мне нужен для скрипта на на сторонний сайт. Сайт на рякте, поэтому просто добавить элемент по domcontentloaded не получится.
Я делаю так - обсервер с наблюдением за дочерними и др. элементами на основной контейнер. Форичем пробегаюсь по всем мутациям и проверяю - есть ли нужный для вставки элемент-контейнер. И вызываю функцию, которая добавляет мой элемент.
Вопрос - как правильней: вызывать функцию на каждую мутацию и делать проверку в самой функции (и ретурн, если нет элемента). Или сначала проверку, а при наличии элемента вызывать функцию.
Мне нужно внутрь этого массива добавить дополнительное имя "selector", если значение переменной-флага option == true. Был бы это просто цикл, я б на пофиг подмешал туда if но тут-то надо прогать в реактивном контексте, availableNames$ это Observable а не сам массив. Как туда подмешать новое значение в зависимости от переменной-флага?
>>1892152 (OP) Анончик, с наступающим, такой вопрос, может где лежат курсы с angular university в бесплатном доступе? Я потом, когда стану крутым разрабом, постараюсь отработать.
>>1894741 Зависит от того, откуда появился изначальный Observable. Скорее всего за ним стоит BehaviorSubject, который при подписке отдает значение с которым он был создан, а потом уже отдает то, что в него запишется позже.
>>1894767 Не совсем понял проблему. Можешь просто в map смотреть на флаг и менять данные как тебе надо. Если тебе надо что бы данные из Observable менялись ещё при изменении флага, то тут только делать отдельный Observable с переменной флага и смерджить два obs в один.
>>1894631 >>1894635 >>1894676 Обычно одни рисуют, другие - пишут код. Но, в маленьком проекте всё делаешь сам. Есть огромное количество готового игрового клип-арта в интернетах. Просто охуевающее количество, погугли game dev clipart. Если надо - можно подрисовать немножко к готовому.
Также, есть куча книг по разработке игр на JS. Там этот вопрос тоже рассматривается. Гуглить javascript game development book.
Также - есть бесплатные туториалы и видео. Всё гуглится.
Если не очень можешь в английский - на русском тоже должно быть дохуя всего.
Аноны, такая тема, может кто-то сталкивался, нужен скрипт который при нажатии на кнопку получает айди кнопки, потом ищет в родительский элемент элемента с таким айди, получает количество вложенных элментов в родителе, скрывает изначальный дочерний элемент, а все другие дочерние элементы автоматически расширяет равномерно занимая пустое пространство после скрытия изначального дочернего элемента
Надеюсь я понятно объяснил, пример на пике, у нас есть два пседоОкна, когда закрываем одно, другое автоматически должно расшириться на его пространство
>>1895434 я знаю что такое флекс, я его использую, и он автоматически расширяется на всю ширину при масштабировании окна, то есть делает то что называется адаптивность, но как сделать так что бы элемент автоматически занимал место ДРУГИХ элементов, это я хз
>>1895633 Ну у меня спека на работе ебанутая. Надо возвращать номер билета обязательно в формате Number, блять. А номер в свою очередь приходит строкой, к примеру "00011". Естественно, при дефолтной конвертации через +, parseInt, Number и тд. оно нули обрезает. Вот я и спрашиваю может есть какой нибудь трюк, или мне просто отвечать чтоб не выдумывали хуйни и возвращали номер в строковом представлении.
>я не понимаю какую разницу между ними ты вообще ожидаешь? Ты пизданутый или что то? Прочитай еще раз выше пост. Это не моя хотелка, а по идиотски составленная спека.
>>1895653 >В ответ сервиса JSON Так возвращай 11. В чем проблема?
>Да ладно? Слушаю список отличий. Вообще, в JS 011 это 9, но я сильно сомневаюсь, что ты имел в виду восьмеричное представление числа.
>Ты пизданутый или что то? Прочитай еще раз выше пост. Это не моя хотелка, а по идиотски составленная спека. Для задающего такие вопросы ты слишком агрессивен чот.
>>1895660 Я просто реально не понимаю. Вот ты ведь не поленился напистаь эти 13 строк. А то что это никак проблему не решило тебе вообще пахую?)
>>1895658 Ну во первых не все. Во вторых я бы уже давно пихнул и расслабился, если не нужно было бы для этого все пересогласовывать и просить поменять спеку и другие сервисы, зависящие от моего.
>>1895664 Какую проблему, шиз? Ты говоришь, что тебе приходит номер с нулям, ты хочешь с ним работать как с числом, но потом опять вернуть в формат с нулями. Я тебе дал способ это сделать, если тебе еще что-то надо, то формулируй вопросы нормально.
>>1895665 011 и 11 это одно и то же число. Передавая 11 ты передаешь и 011 и 0011 и 00011.
>В том что по спеке нужно вернуть 011, и именно с ебаным нулем, и именно в Number. Значит тот, кто ее писал такой же дурачок как и ты, что тут скажешь.
>>1895671 Идиоту уже пять раз объяснили, что формата "Number и шобы нули не обрезались" в жопоскрипте, да и вообще в любом языке, нет. Идиот не понял, и продолжает нести свою шизоидную чушь в тред, вместо того, чтобы переформулировать вопрос и сказать наконец, что ему нужно сделать и нахуя.
>>1895665 >В том что по спеке нужно вернуть 011, и именно с ебаным нулем, и именно в Number. Такое невозможно в жс. Разве что только в результирующий джейсон вставлять строку, а потом парсить её и убирать кавычки.
>>1892152 (OP) node.js делаю реквест на www.twitch.tv/directory/game/Dota%202 получаю респонс как из него выпарсить названия каналов? как вызвать больше респонсов от прокрутки?
>>1895679 >Один, ОДИН не-долбоеб в треде нашелся >>>1895635 >в формате намбер нет нулей вначале нэ >>>1895651 >Число 00011, эквивалентно числу 11 >>>1895669 >011 и 11 это одно и то же число. Передавая 11 ты передаешь и 011 и 0011 и 00011.
>>1895689 с api всё понятно, но он хочет client_id для которого надо как девелоперу подрочить. Так не годится. >Ну или через папитир чисти вилкой Что конкретно нужно делать?
>>1895697 >Что конкретно нужно делать? Всё то же, что и в клиентском жс - дёргать дом, выковыривать значения, хранить их в джейсоне/дб, программно нажимать на кнопки и/или листать страницу для дальнейшего ковыряния.
>>1892152 (OP) Как в nodejs сделать GET с параметрами в URL? Сделал get но параметры не прикрепились (first, game_id) const options = { hostname: 'api.twitch.tv', port: 443, path: '/helix/streams', method: 'GET',
>>1895915 Зачем ты сравниваешь две библиотеки с разными предназначениями? Лодаш библиотека с набором полезных функций-утилит, а жквери это библиотека для манипуляций с домом и сетевыми запросами. Жквери устарел, потому что, во-первых, нативный жс хорошо поднялся, во-вторых, все уважающие себя перешли на фреймворки вида Ангуляр, Реакт, Вуе. Лодаш не устарел, потому что его функционал еще не заменён нативным жс или фреймворками.
>>1895912 Для начала написать, через что ты этот запрос делаешь, а лучше сразу гугли "моялибанейм query parameters", может там есть встроенный способ их прикреплять, а может придется вставлять самому.
Нихуя не пойму, закинул я свой высраный потом и кровью на хостинг gearhost как теперь сделать что бы у меня была ссылка типа www.xyi.ru или что то подобное и она вела на мой сайт? Или лучше на авс залить?
>>1896153 ? На хероку все норм шло, не ебу что там у тебя. А если хочешь прям "свой сайт нахой" то покупай хостинг, покупай доменное имя бля а ты че думал?
>>1896159 Покупай бля хостинг я яндекс-хостинг юзал и свою питонопарашу туда заливал, покупай доменное имя бля. Думаешь это тебе кто-то за бесплатно подгонит?
>>1892152 (OP) Есть какой то способ упаковать, или сгенерировать dllлку для nodejs скрипта, чтобы он работал без установки nodejs? dependecies: 'fs' 'querystring' 'https'
>>1895915 >>1895920 jQuery - это не фу. Это очень удобный и красивый DSL. И его вполне себе используют и с фреймворками. Но, одноклеточные долбоёбы с сосача даже слов таких не знают, не говоря уже о том, чтобы понимать.
Кстати, восьмеричные литералы с нулём нынче deprecated, про это я подзабыл, ибо давно не имел дела с ними. Да и в твоём случае они ни при чём - я почитал с самого начала.
То, что ты хочешь - невозможно. И это не нужно. Не может быть никакой причины так делать.
Так что, это у тебя либо не число, а код (строка), либо ведущие нули не нужно сохранять, чтобы работать с этим числом. Если же это таки число, и тебе потом надо отправлять данные назад в таком же виде, с нулями - значит надо делать кастомный форматтер числа для вывода в json.
Если ты расскажешь больше подробностей - возможно, я тебе что-то посоветую.
>>1896253 >восьмеричные литералы с нулём нынче deprecated Это вообще легально? У меня вот в новехоньком хромиуме до сих пор <marquee> и <font face=""> нормально работают
>>1896293 Легально. Они не работают только в strict mode. А то, что ты перечислил это вообще не часть JS. Алсо, иногда из браузеров убирают фичи, которые планировались, но в итоге не попали в стандарт.
>>1894930 Очень хорошие лекции. Но больше для того чтобы понимать как вообще работать в Node.js. В общем рекомендую. Сам далеко не все посмотрел правда. Сам Тимур очень шарящий
>>1892152 (OP) Есть функция, которая делает свое дело. Как к ней приделать ивент onfinished, так чтобы в нем можно было зарегистрировать другие функции на экзекуцию после неё?
>>1896385 Это восьмеричные числа. Более того - это, блядь, литералы. Ты понимаешь что такое литерал?
У тебя там номера билетов, кажется? Они что, восьмеричные? Вы там ебанутые?
В любом случае - хочешь восьмеричных чисел из json - нет проблем, используй свой десериализатор, для строк, состоящих из одних цифр, и начинающихся с нуля: parseInt("011", 8)
>>1896444 Как удобнее, так и делай. Стрелочные от обычных отличаются только обработкой this. В стрелочных он из внешнего контекста, в обычных - свой собственный.
>>1896446 Стрелочную нельзя вызвать до инициализации.
Имеет ли смысл использовать стрелочные/функциональные выражения вместо обычных для оптимизации?
Скажем, у меня несколько функций внутри другой функции. И часть функций может не вызываться по условию. Если сделать объявления стрелочными после условия или делать обычные функции (которые заранее инициализируются), здесь будет разница?
Щас на протяжении часа между мной и вебпаком был анальный секс (он сверху). А потом я сказал "нахуй это всё" и вкатился в rollup. Запустилось с 1 раза за пару минут. Перекатывайтесь на rollup!
>>1896442 >>1896510 Похоже, ты хочешь делать асинхронные вещи, но не понимаешь, как это называется? Т.е. запрос к удалённому серверу, а затем - какие-то действия с результатом? Если да - то нужно использовать promise. Это не просто "заколбакить" одну функцию из другой, всё немножко хитрее.
>>1896517 Разберись с промисами. Погугли, почитай что-нибудь. Ничего особенно сложного, но, в двух словах это трудно объяснить. Потом можешь задать более конкретные вопросы, если будут.
>>1892152 (OP) Как-то попадалось правило стайлинга, что не принято использовать continue и break. Так ли это? Часто ли сами используйте? Я вот часто весьма.
Бля ребята заебался помогите. Короче есть две папки client и server клиент запускается с вэбпака ,сервер как обычно, если запускать сервер через нодемон а клиента через devServer с прокси на localhost:5000 то все крутится заебись, но стоит собрать клиента через dev или build то нихуя не работает, думаю проблема в проксировании, как захуярить это проксирование в статичную страницу?
>>1896237 >И его вполне себе используют и с фреймворками.
Кто? Долбоебы вроде тебя? Возможно. Но любой адекватный программист знает, что нужно избегать прямых манипуляций с DOM и делать всё при помощи специального синтаксиса в шаблонах.
>>1896656 Не задавался вопросом, почему до сих пор этот проект не переписан на ваниллу? Проблема переписывания не столько в самом жикверике, сколько в сопутствующих проблемах, типа переменных в глобал скоупе, на которых может быть завязан огромный пласт логики, прямые манипуляции стилями, плагины к жиквери, которые не совсем очевидно как переписать на ваниллу без ковыряния сырцов. Это дело может затянутся надолго короче, так что ещё добавь обьяснять кабанчику надобность такого переписывания. Впрочем, ничто не мешает переписывать отдельные очевидные вызовы типа `$("div")`, пока пилишь очередную фичу в том же файле. И через код ревью проще будет протащить.
>>1896648 Потому что фреймворк сделан для того чтобы эти манипуляции производить наиболее эффективным образом. Делая это самостоятельно, ты нарушаешь его работу и порождаешь малопроизводительный код.
>>1896764 Согласен, ООП это круто. Ведь в ООП варианте ты можешь добавить любую функцию для сравнения и код будет работать, а в варианте без ООП тебе придётся переписывать весь код.
>>1896772 Взял и добавил невероятную функцию сравнения в класс, а потом создал инстанс, и вызвал его метод вместо того чтобы просто вызвать эту же функцию на месте. Ой как удобно, только выиграли
>>1896764 Ну вот в пхп наебались с этой ебаной процедурщиной и вызываемыми по динамически вычисляемому ключу функциями в копилках-массивчиках, ушли в полное джаваподобие, видимо до вас пока не дошло
>>1896775 >вызвал его метод И сразу понял что у меня там, equal, lessOrEqual. При этом могу менять эту логику/модифицировать в любой момент, не ломая код который использует данный объект.
>эту же функцию
Она возвращает -1, 0, 1 Т. е. тебе помимо вызова разных функций нужно еще и проверки самостоятельно делать для того чтобы определить что там у тебя вернулось, и делать это в любом месте, либо пилить какую-то дополнительную функцию, которую ты будешь вызывать в дополнении к основным, т. е. получается размазанный и непонятный код, который сложно понимать. При этом если ты захочешь модифицировать вывод, например в случае если значения равны, ты хочешь писать данные в лог, то тебе придётся менять все функции, а в случае с ООП ты делаешь изменения только в одном месте.
>>1896786 Я про то, что справа это нечто типа того что в старом процедурном пхп было бы ассоциативным массивом со стринговыми ключами и значениями-функциями. В плане "удобства" работы так точно одна малина
>>1896794 Ну вот у тебя есть какой-нибудь класс вендорский Compare с методами типа compareByZalupa, ты захотел туда что-то добавить типа comparebyZalupa1, тупо экстендишь, добавляешь. Если у тебя в вендорском коде залупа типа const compare = (matcher, zalupa) и внутри она там какие-то свои правила объявления и обработки этих залуп имеет, то ты сосешь хуй
>>1896788 >И сразу понял что у меня там, equal, lessOrEqual конечно понял, ты же это написал compare.lessOrEqual(5, 10) Так же как и я вызвал compare('lessOrEqual')(5, 10) и получил тот же результат
>не ломая код который использует данный объект сейм
>размазанный и непонятный код размазанный на три лишних строчки. Другое дело чётенький ООП в два раза больший по объему, и уже не страшно если в три станет
>если значения равны, ты хочешь писать данные в лог, то тебе придётся менять все функции equal: (a, b) => { const isEqual = a === b; isEqual && console.log('...'); return isEqual; }
три строчки, как я и сказал. Какие ещё функции я должен поменять?
>>1896794 >Почему эти функции нельзя было положить просто в объект или вообще без него? Если ты про фабричные функции, то методы в них создаются заново с каждым инстансом, что не есть айс в плане памяти. Иначе нужно пердолиться с прототипами, что ещё хуже в плане читаемости по сравнению с сахарком.
Так ты от темы то не уходи. Я же тебе сказал, в случае если логика сравнения будет отличной от той что ты в своём compare указал, результат будет не одинаковый. Тебе нужно будет либо менять код compare, что повлияет на уже существующий, либо лепить еще одну функцию и дублировать в ней то что ты уже написал в compare, меняя только логику сравнения. Из этого мы и получаем: >ломает код который использует данную функцию >размазанный и непонятный код
>три строчки, как я и сказал. Какие ещё функции я должен поменять?
А если тебе нужно будет делать лог только в определенных условиях? Дай угадаю, теперь у тебя функция equal принимает не 2, а 3 аргумента? В общем, ты и правда такой тупой, что не понимаешь к чему подобные модификации ведут или просто неумело троллишь?
Ты хотя бы в константы выводи подобное, хоть не такой жидкий обсер получится. Иначе другой долбоеб вроде тебя напишет lesOrEqual и вы потом как биба и боба будете неделю искать в чём же у вас там баг, почему сравнение неправильно происходит.
>>1896764 Зачем ты comparisons (правильно comparators бтв) в функции объявляешь, наркоман? Чтобы на каждом вызове просто так по пять функций создавать? А аргументы зачем мутируешь? Алсо, передача магических строк это довольно хуевый API. Переделывай, короче.
>>1896814 >Тебе нужно будет либо менять код compare, что повлияет на уже существующий, либо лепить еще одну функцию и дублировать в ней то что ты уже написал в compare, меняя только логику сравнения пояснил в >>1896809
>тебе нужно будет делать лог только в определенных условиях в каких? В полнолуние? Для остальных кейсов, когда у тебя функция делает миллион дел, есть параметр с опциями {логать: не}
>ты и правда такой тупой... потише, дед, не напрягайся, а то сердце схватит
Где он? Что-то не видно. Ах, да, щас только вон по той сотне файлов пройдусь, изменю существующее, дополню нужным, проверю чтобы ничего не поломалось и тогда всё появится! О чём и говорилось изначально: Нет ООП - нет планов на будущее.
>>1896819 это была сарая версия >аргументы зачем мутируешь как что-то плохое >передача магических строк это довольно хуевый API. Переделывай, короче как скажешь, останусь после работы писать как ты захотел
>>1896833 >Где он? будет, когда придёт время. Или ты пишешь сразу функцию со всеми возможными вариантами использования на 5 лет вперёд? Тогда моё почтение, пророк >изменю существующее, дополню нужным, проверю чтобы ничего не поломалось и тогда всё появится нет, я просто напишу ещё одну маленькую функцию или разделю существующую или сделаю обёртку, а может добавлю коллбек. Ведь я пишу в функциональной парадигме у меня конструктор лего, а не дубовый шкаф на века
>>1896866 Именно так, ООП творит чудеса. Осталось тебе только перебороть свою лень и хотя бы основы ООП освоить. Но это конечно сложнее, чем "просто напишу еще".
>>1896866 Справедливо говоря, в ООП бывает неприятно когда в коде вендора допустим есть метод вроде ок, но там что-то проебано, типа флаг \u не проставлен у регулярки, метод написан хуево и на 500 строк полотном процедурным, и чтобы исправить такую проблему надо делать вообще хз что, то ли переопределять метод и писать в нем почти полную копипасту того что было но с исправлением проебов, либо хз, колдовать
>>1896836 >const >глобальные переменные Вся ссуть дебилов с ООП головного мозга. Пиздуй обратно в свою жаву абстрактные однозерновые фабрики писать для вызова одного метода.
>>1896234 Скрипт - это не только скрипт, но и его зависимости. А у зависимостей - свои зависимости. В итоге - получается 100 мегабайт жс-говна в node_modules. Потому, что жс не предназначен для серьёзного программирования.
>>1896469 Пока ты дрочишь со спчками, где-то в фоне возят слона. Профилирование (оценку времени исполнения разных частей программы) сделай и посмотри, что времени больше всего жрёт.
>>1896551 >Но любой адекватный программист знает, что нужно избегать прямых манипуляций с DOM Это не так. Любой адекватный программист знает, что все что нужно, это как можно дальше откладывать рефлоу, если он неизбежен, или избегать его вовсе, если это возможно. А для этого достаточно в дом толкьо писать и никогда из него не читать.
А программирование на шаблонах, диффах, и прочим неявным рендерингом нужно для того, чтобы тупые необучаемые идиоты, которые нихуя не умеют, не понимают, и не хотят учиться, не писали говна. Но они умудряются и без этого его писать.
>>1897041 >Каким боком шаблоны к неявному рендерингу. Потому что это абстракция. Любая абстракция - это уровень невяности. Когда ты пишешь fn() - ты тоже функцию вызываешь неявно внезапно. Явно было бы если бы ты аргументы на стек складывал и управление по адресу передавал.
>И почему если только писать в дом, то рефлоу не будет? Все изменения дома батчатся и применяются единомоментно в рендеринг-фрейме. Принудительный рефлоу вне цикла отрисовки происходит только если ты будешь читать из дома то, что требует пересчета.
У жсоблядков - параллельная эволюция происходит. Они открывают для себя те вещи, которые нормальные люди уже открыли многие годы назад.
Например, то, что "явно" писать программы в машинных кодах или на ассемблере - неэффективно. Хотя, на первый взгляд, всё выглядит наоборот.
Поэтому, они с остервенением дрочат на "чистый жс" в противовес jQuery, говорят, что фреймворки не нужны, и занимаются прочими подобными вещами. Т.е. они живут среди нас, но, ментально отстают лет на 30.
>>1897013 >>1897064 Или можно же вебпаком запаковать скрипт, и взять только голый node - только исполняемые файлы, сделать bat-файл для запуска, запаковать в архив или сделать инсталлятор - и всё.
>>1897075 Когда у тебя эволюция произойдет и ты поймешь, что JQuery это не фреймворк, а библиотека, а также поймешь в чём разница между библиотекой и фреймворком?
>>1897152 nodejs-овский рантайм весит ощутимо меньше. Кроме того, заставлять юзверей каждый раз таскать его с собой по-твоему сильно гуманно? Почему майкрософту можно ставить свои redistы, а ноде нельзя?
поясните, схуяли вообще реакт популярен? Я посмотрел читшит по нему и редукс и охуел с того, как все отстало и ебано сделано по сравнению с vue. Особенно оподливился с редьюсеров, где коммон практис - это switch/case для мутирования стейта В чем реакт объективно пиздат? Потому что я не увидел ни одного плюса по сравнению с vue
>>1897336 Почти не в чем, кроме того, что ты куча функционала пишешь сам, и типа можешь написать что-то как ты хочешь, и все будет прозрачно (накастылить и сделать хуево в 95% случаев)
Думаю взять macbook air 13 2020. Хватит производительности для IDE + вкладочек браузера и еще какого-то говна сверху? Не будет гудеть, лагать, греться сильно спустя пол года?
Или подскажите свои ноуты бесшумные и не греющиеся особо
>>1897340 >ты куча функционала пишешь сам, и типа можешь написать что-то как ты хочешь Так а плюс в чем? Это как говорить, что плюс велосипеда по сравнению с машиной в том, что на велосипеде ты ногами педалируешь сам, а не какой-то там шайтан ДВС везет тебя
>>1897344 Ну о том и речь, что тут спорный плюс) По факту вью покрывает 99.9% кейсов и потребностей и продуктов. Если ты хочешь писать что-то супер большое и массовое, где требуется гибкость пиздец и производительность (например свой алиэкспресс, блять, ага). То наверное реакт будет поинтереснее, но шанс на это пиздецки мал.
>>1897351 Я за час разобрался как работает во вью реактивность (через подписки и геттеры/сеттеры в object.defineProperty) и в сорцах даже нашел где какие хуки в какой последовательности дергаются Где там магия? Даже v-model - это просто сахарок над :value + @input
Господа, подскажите такое дело: есть какая-то (полу)готовая библиотека, которая бы позволяла решить задачу создания чего-то типа автокомплита или выпадающего по хоткею/правой клавише мыши списка, который должен генерироваться из csv/json/плейнтекста, лежащего на сервере? (Я криворукое животное, js не знаю)
>>1897355 >>1897353 Реактивность на неявном создании геттеров и сеттеров (собсна сложное и неявное поведение и есть магия). Но иногда эта абстракция протекает и на помощь приходят костыли в виде Vue.set.
Алсо абсолютно лютые шаблоны со своим встратым DSL и биндами через магические строки.
>>1897407 >Реактивность на неявном создании геттеров и сеттеров (собсна сложное и неявное поведение и есть магия). Что в этом сложного и неявного-то? >Но иногда эта абстракция протекает и на помощь приходят костыли в виде Vue.set. Уже давно нет, конкретнее с того времени как начали там юзать proxy >Алсо абсолютно лютые шаблоны со своим встратым DSL и биндами через магические строки. вкусовщина >>1897375 Конечно
>>1897421 >Что в этом сложного и неявного-то? В смысле что неявного? Ты задаешь плейн объект, а вью под капотом его неявно преобразует в свою структуру, которая работает уже не как плейн объект.
>Уже давно нет, конкретнее с того времени как начали там юзать proxy Это с v3? Ну молодцы, новый набор костылей завезли. Вроде обычный объект, но ой, деструкция-то не работает. Алсо в консоли прокси красиво смотрятся.
> вкусовщина В смысле вкусовщина? Использование левого DSL вместо собна JS это хорошо что ли? Как там типизация, нормально работает? Или магические строки в какой-то момент стали вопросом вкуса?
>>1896764 Во-первых пример вынут из жопы и если ты такое дерьмо пишешь в реальной жизни, то ты долбоеб без вариантов, во-вторых если ты хотел показать, что "мам строк кода меньше", то это решается плагином на стрелочные методы, и слева их можно сделать ровно столько же, сколько и справа, в-третьих если ты меряешь качество кода по количеству строк, то смотри пункт 1.
>>1897343 Спустя полгода ничего не будет. Только сегодня видел у знакомой маши Air, которому 6 лет - пашет, как конь. У меня 9-ми летний Pro на i7 хуярит за всю мазуту - сейчас с него пишу. И есть 3-х летний Pro, тоже на i7 - основной, там вообще всё летает.
>Air Лучше возьми 2-3-х летний Pro б/у. У них характеристики могут быть даже лучше, чем у сегодняшних прошек. Я свой 3-х летний не обновляю вовсе не потому, что денег нет, например.
Появился, раньше. Практически без конкурентов, на тот момент. Дальше эффект снежного кома. Сейчас просто дешевле стартовать на реакте проект, чем на вью, вот и все.
>>1897491 Тогда бери, что нравится. 16+ памяти есть в любом ноутбуке, а процессор у них у всех говно. Только экран лучше 15 дюймов, на всякий случай. Если нравятся макбуки, то бери прошку.
>>1897497 Не дешевле. Единственная реальная причина - react native, поддержка мобильной разработки. И то - все плюются на это тупое и тормозное говно, но, под него есть инфраструктура, много наработок и т.п.
Тут другое - инерция мышления. Люди вообще очень консервативны и инерционны. Вчерашняя инновация сегодня становится несокрушимым железобетонным барьером на пути следующих инноваций.
>>1897501 Это ты немного промазал - надо было вот ему - >>1897343 - писать. И да, ты совершенно прав.
>>1897489 Вообще, да, лучше десктоп. Но, могут быть причины брать ноутбук. ИДЕ нормально работают на современных ноутах, но, на десктопе - это другое.
У меня (помимо вышеописанных макбуков) есть ещё десктоп 8-ми летний, на i7 3770K, так вот, на нём всё работает несравнимо быстрее, это вообще земля и небо. И надо бы его уже обновлять, но, скорее по имиджевым причинам, т.к. хуярит он как заводной, с быстродействием вообще ниикаих проблем. Но. это i7 3770K 3.9 GHz + 16 GB + SSD Samsung 850+960 Pro.
>>1897508 >Не дешевле. Реакт в три раза популярнее Вью и Ангуляра. Разработчиков выше. Средний уровень зп соответственно выше + на реакте можно быстро склепать мвп, ну а дальше уже по ситуации действовать.
>>1897454>>1897497>>1897508 Нет, шизики, в мире айти популярность проходит в одно мгновение и никакие "снежные кома" и "привычки" ваше говно в присутствии объективно лучшей альтернативы не спасут, неважно насколько оно большое и популярное. Если с чем-то легче и эффективнее работать, то с этим будут работать, а инертные и менее эффективные конкуренты как всегда останутся на обочине истории, примеров тысячи, начиная от прогрессии языков программирования, заканчивая фреймворками и либами.
А причина непопулярности вью кроется не в том, что "люди тупые и ленивые и не видят что для них лучше" как любят плакать адвокаты любого псевдоинновационного дерьма, а в том, что он объективно громоздкий, неповоротливый и не приносит ничего нового в сферу. Инновационность реакта заключается в том, что они не пошли по стандартному пути "есть html-шаблон, есть жс-код, соединим их магией", а просто выкинули нахуй html-шаблоны как таковые и сделали полностью ориентированную на жс либу, где все, что ты делаешь - это пишешь обычный жс-код. Именно эта ориентированность на код(плюс интуитивно понятный и удобный DSL с минимумом отсебятины) и подняла реакт на его полностью заслуженное место.
>>1897524 >неповоротливый Понятно всё с тобой. Пройди на хуй, пожалуйста.
Вью быстрее реакта. И это, блядь, невооружённым глазом заметно. И это вытекает из его природы и природы реакта.
Так что, ещё раз, иди на хуй, сынок. Он мне будет тут рассказывать про сик транзит глория мунди. Да я код писать начал, когда тебя ещё на свете не было, лол.
>>1897529 >Вью быстрее реакта. Я ни слова не сказал про производительность, это вообще десятое дело при выборе фреймворка. >И это, блядь, невооружённым глазом заметно. Отличный способ измерить производительность, сразу видно вью-шизика.
>>1897524 >Если с чем-то легче и эффективнее работать, то с этим будут работать
Ты наивен. Рулит маркетинг в первую очередь. Ember.js был отличным фреймворком, но его до сих пор мало кто знает. Phoenix на беке, позволяет супер быстро лепить стартапы + высокая производительность, но его тоже мало кто юзает, так как нет хайпа за ним.
С реактом тоже самое. У него куча минусов, но его продолжают юзать.
>>1897534 Я пропустил слово "даже". Даже невооруженным глазом заметно.
Реакт (концептуально) - типично левацкая ебанина. Коту под хвост пустили все принципы и best practices, наработанные десятилетиями. Мешанина из говна - наш новый марксистский идеал. Мы наш, мы новый мир построим.
Но, тут пришли китайцы, и дали пососать. Потому, что, в отличие от западных полезных идиотов - леваков, они знают что такое марксизм-ленинизм-маоизм не понаслышке. Они сыты этой хуйнёй по горло. Поэтому, они делают не сферическую хуиту в вакууме, а _практичный_ (практичный, блядь, сука, нахуй) продукт. А левакам, естественно, неприятно.
>>1897538 >Рулит маркетинг в первую очередь Это смешно, когда шизики с шапочкой из фольги рассказывают про то, что рекламой можно заставить человека купить что угодно, но еще смешнее, когда они говорят, что рекламой можно заставить разработчика против его воли пользоваться бесплатным опен-сурс фреймворком. >Ember.js был отличным фреймворком Не был. >Phoenix на беке, позволяет супер быстро лепить стартапы Писал на нем хоть что-то или маняфантазируешь? Я вот случайно так получилось писал и пишу, и хоть фреймворк и язык действительно отличные, но для "быстрой разработки стартапов" до рельс и их инфраструктуры им еще грести и грести. Так что популярность рельс и непопулярность пеникса в этом отношении абсолютно объективны. >У него куча минусов, но его продолжают юзать. "Куча минусов" не говорит ни о чем, потому что а) в 99% случаев выясняется, что это твой субъективный манямир и реального минуса ты назвать не сможешь б) оценка производится не в вакууме, а в контексте. И в контексте текущей ситуации фронтенд-разработки, лучше реакт нет ничего. >>1897539 >Коту под хвост пустили все принципы и best practices Во-первых пук в лужу без конкретики, во-вторых реакт - это либа, и его способность определять бест практики и структуру твоего приложения очень ограничена по определению. В отличие от. >аряяя китайцы леваки марксизм Таблетки выпил?
>>1897543 >заставить разработчика Так разработчик ничего не выбирает. Выбирает СТО или владелец бизнеса если шарит. А уж эти товарищи смотрят именно на хайп и тренды. Да и разрабы честно говоря тоже. Много кто знает про hotwire и stimulus например? Нет, конечно, ведь сейчас же SPA подход суется в любое очко, даже там где он вообще нахуй не нужен. Но хайп есть хайп.
>Phoenix Медленнее, чем руби, это еще не значит что меделенее чем на Node.js или Java.
>Ruby Вообще не популярен. Очень мало вакансий в сравнении с всеми остальными и новые проекты на нем уже почти не стартуют вообще.
>реального минуса ты назвать не сможешь Да пожалуйста. 1). Хоть это все голишь и либа, как любят задвигать адепты реакта, но на выходе сайт на реакте весит просто овер дохера. 500-600 килобайт на первую загрузку, как нехуй делать.
2). Отсутствие встроенной архитектуры, из-за чего кодобаза на реакте очень быстро скатывается в говно.
3). Самосборный фреймворк на базе реакта, состоит чуть более чем полностью из пакетов рандомных васянов.
4). Сама по себе разработка очень долгая, в связи с черезмерным оверинжинрингом, как и у всех СПА решений, кроме свелте разве что, (но там свои проблемы)
>>1897543 >Это смешно ... К сожалению, это нихуя не смешно.
Вокруг множество примеров того, как побеждают откровенно неэффективные решения и подходы, как людей вынуждают потреблять некачественные товары, и они соглашаются с этим. При этом эффективные решения предаются забвению, производители качественных товаров разоряются и т.п.
Люди - тупое стадо. Ты видел эти BLM баннеры на сайтах крупнейших разработчиков? Ну и вот.
>>1897543 >популярность рельс Ты рубист, перекатившийся в жс? Золотая классика, лол. Всё понятно с тобой, только надо было раньше сказать, чтобы я время на тебя не тратил.
>>1897548 >Так разработчик ничего не выбирает. Выбирает СТО или владелец бизнеса Владельцу бизнеса, которому хватило мозгов этот бизнес организовать, всегда хватит мозгов на то, чтобы проконсультироваться по поводу технических альтернатив и вариантов с технически подкованным человеком. Ты же несешь шизу уровня "я бы писал хороший код, да менеджер не разрешает" и пытаешься представить себя(и других разработчиков) в виде безответственного безвольного дрона, в которого менеджер/тимлид/директор загружает команды, а дальше хоть трава не расти, надо выполнять. >но на выходе сайт на реакте весит просто овер дохера. 500-600 килобайт Действительно огромная проблема, но ты лет на 15 с ней опоздал. >Отсутствие встроенной архитектуры Я просил минусы, а не плюсы. >Самосборный фреймворк на базе реакта, состоит чуть более чем полностью из пакетов рандомных васянов Из чего состоит любой опенсурс фреймворк, если не из "пакетов рандомных васянов" по твоему определению? Или если рандомные васяны собрали свои пакеты в один репозиторий, то это сразу меняет дело? И так же не вижу, при чем тут сам реакт. >Сама по себе разработка очень долгая Ты сказал или примерно почувствовал?
>>1897556 Знал бы ты, сколько сил и времени я в своё время потратил на это ваше руби. Дурак был, потому что.
Интуитивно понимал, что это хуета. Но, думал, что не может же быть, чтобы столько уважаемых людей продвигали откровенную хуйню. Думал, что это я не понимаю чего-то важного. Потом поумнел. А потом и время расставило всё по своим местам.
Но, в качестве концептуальной вещи (а не рабочего инструмента), руби оказался мне весьма полезен, в своё время.
>>1897560 Это намек на то, что история твоей жизни в подобном описании имеет к обсуждению программирования примерно такое же отношение, как консистенция твоих покакулек.
>>1897569 С нуля это невозможно. Надо сначала вкатиться в разработку простых веб приложений. И не надо пытаться сократить путь, это даст совершенно обратный результат.
Рекомендую использовать Vue для фронтенда. На этом пути тебя не будут ждать никакие подводные камни - их там просто нет. Всё ровно и предсказуемо. В отличие от реакта, например.
Вообще, это обширная тема. И с чего начать - зависит от многих факторов. Например - знаешь ли ты английский? Что ты умеешь на данный момент? Каков личные предпочтения в технологиях и т.п.
Реакто бляди никак не могут смириться, что их голая либа уже не такая топовая как раньше. Вью скоро сместит реакт на многих нишах веб разработки. Люди все больше начинают понимать, что >>Коко, реакт даёт нам возможность писать как мы хотим и все видеть и понимать Это нахуй не нужно почти всегда. Ты платишь эту прозрачность кучей проблем. Кодовая база везде разная, Либы везде разные, код стайл разный, архитектура разная, все почти везде разное. Новые проекты стартуют куда больше чем на вью, потому что это ебаная лиьа которая толком нихуя не умеет.
>>1897579 >реакт даёт нам возможность писать как мы хотим и все видеть и понимать
Это фальшивый аргумент. На Vue я пишу так, как хочу. И мне совершенно всё понятно.
При этом, большинство реактоблядей не могут сказать то же самое про реакт, про хуки, контексты, редуксы и прочее.
Аргумент про (якобы) "неявные" реактивные привязки в Vue - просто смешон. Это что-то на уровне "я не знаю, что там компилирует этот ваш компилятор, поэтому, буду писать прямо в машинных кодах".
Любого, кто предъявляет подобные аргументы, нужно смело посылать на хуй, не вступая в дискуссию.
Читаю такой про constraint validation API, пытаюсь вникнуть и тут меня осенило, что оно по сути зависит от хтмл аттрибутов, то есть нахуй не нужно для валидации через жс.
В компоненте делаю проверку если _id соответствует id админа то рендерю страницу админа, норм подход? Или нужно ебстись с токенами отправлять их на сервер и тд тп?
>>1897579 >Вью скоро сместит реакт на многих нишах веб разработки Да-да, пять лет уже смещает, а скачиваний в npm все еще в 4.5 раза меньше. Прям не могу смириться с такой несправедливостью.
>>1897633 Любой бек с нуля я бы начинал дддшным Фронт зависит от задач и фреймворка. Если есть грамотно составленные тз с нормальной разметкой - можно навернуть atomic
>>1897583 >При этом, большинство реактоблядей не могут сказать то же самое про реакт, про хуки, контексты, редуксы и прочее. Хуки и редуксы к которым у вью шизиков всегда почему-то есть претензии - это способы менеджить стейт в реакте, причем очень прямолинейные, контролируемые и понятные, как только поймешь их принцип. Не вижу, почему они должны быть сложнее для понимания, чем вью-система для стейта, которая по сути является неявным setState, работающим через жопу и кучу оберток-проксей.
>>1897725 useCallback will return a memoized version of the callback that only changes if one of the dependencies has changed. This is useful when passing callbacks to optimized child components that rely on reference equality to prevent unnecessary renders (e.g. shouldComponentUpdate).
useMemo will only recompute the memoized value when one of the dependencies has changed. This optimization helps to avoid expensive calculations on every render.
Мне кажется, те, кто пишет что Реакт непонятный, а Вью оооо, то, как работает Вью тоже не понимают нихуя. Иначе я хз как мемоизация может быть сложнее тонкостей работы вьюшных прокси.
>>1897749 Ты просто не видел некоторого дерьма. У эпл под тысячами новых апишек красуются пустые страницы с No overview available и списком методов, а гайдам которые за ручку водят под сраку лет
>>1897761 Я понимаю как работает vue У меня претензии в реакте не к тому, что там что-то НЕПОНЯТНО, а к тому, что скорее убого https://github.com/reduxjs/redux/blob/master/examples/todos/src/reducers/todos.js Вот офишл экзампл, простейший туду апп. Что блять за свичт-кейс? Почему перезапись стейта сделана через ВОЗВРАТ значения из редьюсера? Сравни с тем же vuex, где во-первых мутации сделаны отдельными функциями, а не пердоленьем со switch/case в 2020 (я чо бля, на первом курсе снова и пишу лаба2.цпп?) и прозрачно понятно, откуда БРАТЬ стейт, а какая хуйня его ИЗМЕНЯЕТ
Нет, я понимаю конечно что реакт топит за функциональное программирование, и его подход в этом плане более трушный Но ФП в промышленной разработке хуево взлетает, работает в лучшем случае какой-то гибрид типа скалы А в реакте вангую в реальных проектах есть овердохуя костылей для сайд-эффектов, которые в реальном, а не кукаретическом программировании очень нужны бывают
>>1897799 Так а какие претензии могут быть к самому реакту, если он сам по себе - маленькая либа по выплевыванию html в зависимости от переданых в него данных? Существуют разве в природе проекты на реакте без стейт-менеджмента, роутинга и прочего?
>>1897802 Стейт-менеджмент не равно редакс. Глобальный стейт, для которого редакс и сделан, нужен примерно никогда, а в тех редких случаях, когда он нужен(сессия, например), есть менее нагроможденные альтернативы типа эффектора. >>1897804 На редакс у меня дохуя возражений, но речь идет не про него, а про реакт, и я не вижу, с чего ты начинаешь перескакивать с темы на тему и ставить знак равенства между двумя независимыми либами.
>>1897814 информацию которая нужна во многих частях приложения зайди например на сайт какого нибудь озона - корзина, город и т.п. настройки почти наверняка хранятся в стейте
>>1897816 >корзина, город и т.п. настройки почти наверняка хранятся в стейте Не знаю где там что у озона хранится, но должны они храниться на сервере или в крайнем случае в куках, если это что-то простое и глобальное, типа города.
>>1897788 >Вот офишл экзампл Редакс это не часть Реакта, алое. Но поскольку в Реакт входит useReducer, то не вопрос, отвечу.
>Что блять за свичт-кейс? В чем проблема?
>Почему перезапись стейта сделана через ВОЗВРАТ значения из редьюсера? Потому что в этом смысл редьюсера — принять старый стейт и ничего не мутируя вернуть новый.
>Сравни с тем же vuex, где во-первых мутации сделаны отдельными функциями Сравнил. Чем создание функции increment с this.count += payload принципиально лучше case actions.increment: return state + action.payload?
>прозрачно понятно, откуда БРАТЬ стейт, а какая хуйня его ИЗМЕНЯЕТ И чем же обращение по this прозрачнее чем state из аргумента?
Что-то не понял прикол: await можно использовать только внутри асинхронных функций, объявленных через async, тогда какого хрена await можно спокойно использовать в самом верхнем скоупе?
>>1897788 Ебать оказывается есть валенки тупее меня в разы, сука я за пару недель освоил редакс после работы занимаясь пару часов в день, а ты пидр тут вроде и вью свое толкаешь а тупо почитать доку про сраный редакс не можешь? Ххарк пьфу в твое жирное ебло
>>1897823 ну город в куках ок, хотя читать куки из любого места где может город понадобится как-то не очень удобно а вот корзину и в куки не засунешь, типа предлагаешь ее каждый раз запрашивать?
>>1897869 >ну город в куках ок, хотя читать куки из любого места где может город понадобится как-то не очень удобно Город может понадобиться только в одном месте - на сервере, который его учитывает в формировании ответов, а фронт этот город должен максимум отобразить. Если ты считаешь, что читать город из локалстора и передавать его в каждом запросе удобнее, чем просто хранить в куках, то тебе надо пересмотреть свое понимание удобности. >а вот корзину и в куки не засунешь, типа предлагаешь ее каждый раз запрашивать? Разумеется запрашивать, или ты думаешь, что клиент должен иметь разные корзины на мобилке и в веб-версии? Корзина гостя - это просто вариант корзины клиента и реализовывать ее через локалстор, вместо такой же серверной реализации, смысла нет. Запрашивать не каждый раз, а один раз при первом рендере(или когда надо явно обновить).
>>1897865 Задачка У тебя есть компонент Рынок который в конкретный момент времени показывает один из дочерних компонентов 1) Огурцы 2) Помидоры 3) Бананы Для отображения компонента Огурцы тебе нужно забрать с сервера список с огурцами, для Помидоров список с помидорами и тд
Какой вариант ты выберешь?
1) Держать все три компонента в памяти с их списками 2) Каждый раз при показе дочернего компонента создавать новый и снова запрашивать данные с сервера 3) Держать списки помидоров, огурцов и тд в родительском компоненте Рынок
>>1897881 Держать в стейте списки полученные с бэка, при переходе к компоненту огурцы запарашивать новые данные на сервер и если они есть получать, а что?
>>1897881 Любой компонент, который прямо основывается на данных с сервера, должен эти данные дергать каждый раз, когда маунтится впервые, кроме невероятно редких случаев. А на твой вопрос можно выбрать и 1 и 2, потому что в такой формулировке это один и тот же вариант, разницу между ними ты сформулировать не сумел.
>>1897881 Это зависит от сервера. Сервер должен на списки возвращать облегчённый джейсон из индекса, а для детальных запросов - отдельный эндпоинт с запросом.
>>1897900 Нахуя? Если есть локальный стейт и там лежит все что нужно. Прилетаю новые данные в стейт они отображаются, если нет значит нет. Ты совсем валенок видно?
>>1897878 ты думаешь только об одном обращении к апи, а ведь это все нужно и просто для отображения
простейший пример, у них например при наличии товараов в корзине на иконке корзины появляется количество товаров в ней
ты предлагаешь делать такой запрос на корзину отдельно для этой кнопки из ее компонента? а как она узнает что его снова надо сделать? может туда еще и сокет прикрутить лол
>>1897911 Если под локальным стейтом ты подразумеваешь что-то не являющееся состоянием компонентов Огуцы, Помидоры, то ты выбрал п 3) Непонятно почему ты назвал это локальным
>>1897904 И что это меняет? Предварительный запрос на сервер тебе нужен так и так, а где ты его будешь вызывать, в компоненте корзины или на самом верху приложения и передавать вниз - суть остается одна и та же.
>>1897929 ... Но ведь записи в консоли браузера это и есть "вне функции"? Не один ли хуй где именно ты это напишешь: в файле index.js который ты подгрузишь на страницу или в консоли? Концептуально разницы ноль
>>1897939 Консоль браузера - это debugging tool и ее разработчик может туда засунуть что угодно, включая возможность для удобства писать await вне функции(который под капотом все равно выполняется внутри функции, потому что в жаваскрипте в принципе нельзя по-другому).
>>1897946 >потому что в жаваскрипте в принципе нельзя по-другому Можно. Скрипты и модули исполняются в контекстах vm. Ты и сам можешь эти контексты создавать если рантайм пробрасывает тебе нужные апи (в ноде например проброшены апи от v8, в jsшелле от spidermonkey)
Больше пары строк кода в посте или на скриншоте ведут в ад.
Для программирования на HTML https://jsfiddle.net
Для Node.js с консолькой https://repl.it/languages/nodejs
Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Руководство для вката: https://developer.mozilla.org