Вы видите копию треда, сохраненную 22 апреля 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Больше пары строк кода в посте или на скриншоте ведут в Ад.
Для программирования на HTML https://jsfiddle.net/
Для Node.js с консолькой https://repl.it/languages/nodejs
Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: что я хочу получить, что я для этого делаю, что я вместо этого получаю. Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Руководство для вката: https://developer.mozilla.org/
type Props = ReturnType<typeof mapStateToProps> & typeof mapDispatchToProps;
У доке от редакса рекомендуется использовать ConnectedProps, на медиуме и стаке везде первый вариант че делать?
Ок я понял, но что по вопросу?
Решаю вот эту вот задачку:
https://stepik.org/lesson/50576/step/8?unit=28962
Надо пирамидку заебашить в хтмл. Почему у меня не работает:
https://jsfiddle.net/qp08syLa/
Напишите, плиз, код который нужен и как почему именно так.
Аноны, оптимизируйте кто-нибудь, это вот всё: https://github.com/username1565/BigInteger.js/commit/2b2057db04a32996247f2d1182511b6f2fe82395
А то мне уже надоело, столько много букв впечатывать.
Сначала создаешь какой-нибудь инишл стейт, он может быть вообще пустым.
Потом выполняется какой-нибудь экшн, внутри него может происходить все что угодно, главное, чтобы после его исполнения ты передавл в диспатч ТИП действия, и объект(т.е. по сути результат работы экшена), а сам диспатч уже передает редьюсеру этот самый объект в соответствующий ТИП и в соотвествующее поле payload. И потом Редух просто происзводит перезапись глобал стейта и всё? Я только не пойму, а нахуя нужен этот самый ТИП? По тригерру этого типа потом происходит перерисовка данных на странице? И если бы тип был один единственный на всё, то все, что хранится в сторе каждый раз перерисовывало бы все компоненты которые от него тригерятся? Сильно не бейте только пожалуйста.
Ну ты даже в DOM добавляешь неправильно. Тебе об этом фидл пишет. Не понятно как ты выполнять задачу хочешь не зная основ.
Для решения задачи нужно рассуждать логически:
Вершина пирамиды всегда равна 1.
Затем добавляется 2 кирпича, т. е. основание вершины это 3 кирпича.
Если высота пирамиды != 2, то для добавления еще одного основания нужно добавить еще 2 кирпича.
Не сложно заметить, что получается арифметическая прогрессия с основанием 1 и шагом 2 - 1 3 5 7 9
Т. е. пирамида высотой == 5 будет иметь основание из 9 кирпичей, пирамида высотой n будет иметь основание 1 + (т - 1) * 2;
Количество "пробелов" соответственно будет арифметической прогрессией с основанием n - 1 и шагом -2, где n это последний член первой арифметической прогрессии.
Беря во внимание всё это и понимая, что стороны пирамиды симметричны, приходим к решению:
https://jsfiddle.net/7Lfks9ea/
Блять, как же я проигрываю с этого зоопарка хуйни связанной с реактом. Редакс, экшн, редюсер, хуки, глобал стейт, зачем вам всё это? Попробуй ангуляр и поймешь, что рект забивал тебе голову ненужным дерьмом.
>Сначала создаешь какой-нибудь инишл стейт, он может быть вообще пустым.
Нет. Ты ничего не создаешь, ты просто прописываешь дефолтное значение, которое возвращает редьюсер, а при инициализации редакс диспатчит пустой экшен с типом @@INIT и тем самым собирает начальный стейт.
>Потом выполняется какой-нибудь экшн
Диспатчится, а не выполняется.
>и объект(т.е. по сути результат работы экшена)
Чего? Диспатчится только экшен, какой еще результат?
>сам диспатч уже передает редьюсеру этот самый объект в соответствующий ТИП и в соотвествующее поле payload.
Это тебе приснилось.
>И потом Редух просто происзводит перезапись глобал стейта и всё?
Чому же все. Еще рассылает всем подписанным на него компонентам сообщение что стейт обновился.
>Я только не пойму, а нахуя нужен этот самый ТИП?
Чтобы в редьюсере понять что вообще делать с экшеном.
>По тригерру этого типа потом происходит перерисовка данных на странице? И если бы тип был один единственный на всё, то все, что хранится в сторе каждый раз перерисовывало бы все компоненты которые от него тригерятся?
Это все тебе тоже приснилось. Экшен никакого отношения к перерисовке страницы не имеет. Как и редакс в целом, кстати.
Удивительно, конечно, что простая функция (state, action) => nextState может может вызывать столько вопросов.
Имеется ли библиотека для вывода комментариев в подходящем стиле? Что я имею в ввиду: у меня есть текст комментария, где присутствуют различные теги, вроде <b></b>, <i></i>, >, и мне нужно, чтобы в комментарии текст, окруженный этим тегом, был жирным, курсивом, или
>зеленым.
Я уже нашел, так что все теперь даже лучше, чем могло быть.
Всё правильно ты пишешь про Реакт - это реально позорище.
Только вот в Ангуляре хуйни ничуть не меньше.
Vue - вот Ангуляр здорового человека.
Есть нормальный гайд?
В ангуляре всё просто и понятно. Есть шаблон, есть стили, есть компонент. Нужен глобал стейт - создаешь сервис. Этого набора хватит на любой случай, им удобно пользоваться. А вуе это тот же реакт, только более прилизанный.
Нет, Vue - это именно то, что ты описал как "ангуляр".
Кроме сервисов - они оставили это на усмотрение разработчика, решили не делать всеобъемлющий фреймворк.
Но, есть ещё Vuex, который ещё и не надо инжектить в каждый компонент, а достаточно 1 раз прописать в корне. И это вполне канает за сервисы + глобальный стейт.
Vue - это Ангуляр, из которого убрали весь bloat, а то, что осталось - сильно улучшили.
Недостаток - Vuex - не типизированный.
Но, если мне будет нужен типизированный механизм сервисов - я напишу его сам, для меня это проще, чем выбирать кукурузные зёрнышки из кучи ангуляро-говна.
С реактом у Vue нет практически ничего общего, кроме идеи о том, что есть лёгкие компоненты, которые имеют пропсы и стейт. И есть однонаправленная передача данных parent-child, а обратно идут события.
Но, реализация этой идеи совершенно иная.
>>67798
Добавлю ещё, что Ангуляр - это такой готовый набор кубиков на все случаи жизни. Это очень большой набор. И нужно очень много времени, чтобы даже просто познакомиться с ним.
А Vue - это 3D принтер, который быстро печатает тебе любые кубики под твою задачу.
Что лучше?
Это зависит и от задачи, и от того, кто ты, и как устроен твой мозг, и какой у тебя предыдущий опыт проектирования.
В прошлом треде был вопрос, как скрывать части формы, сделанной через FormGroup (>>1866573 →). В Vue такой вопрос просто не возник бы, по причине отсутствия FormGroup и прочей подобной машинерии. Это всё делается проще и быстрее.
["night", "street", false, [ 345, 23, 8, "juice"], "fruit"]
Пиздец! У вас в массив можно что угодно засунуть!
Завидуете?
Вроде бы раньше он выводил red и другие цвета на r, а теперь хуй
А во втором случае предлагал все варианты маргинов.
Реакт — не фреймворк, а библиотека, на голом реакте писать не имеет смысла.
Vue и angular — фреймворки, их правильнее сравнивать с каким-нибудь фреймворком на реакте, например с next.
Vue — говно, ангуляр норм, но здоровенный.
А надо писать на нативе безо всей этой ебанины, тогда рок, тогда блюз в стране пойдёт.
Ты талант.
Умудрился вместить в очень короткий коммент полный набор долбоёбских стереотипов в сочетании с банальностью про то, что реакт - не фреймворк. И vue говно, и на нативе надо писать, лол.
Чувак, я в курсе про то, что такое реакт.
И, когда я говорю "реакт", то имею в виду всю современную экосистему вокруг реакта. И это всё - именно, что позорище. Гейпарад, натурально. Новое платье короля.
Маленькая библиотека, построенная на немасштабируемых подходах, породила вокруг себя кучу сумбурной немасштабируемой хуйни, разваливающейся под собственным весом.
Причём, этим долбоёбам ещё в 2015-м говрорили, что не надо мешать водку с портвейном html и javascript, а они - "коктейль, коктейль", лол.
Я видел только одно. Это одностраничное приложение, функции вызывались как методы объектов (было создано несколько крупных объектов в зависимости от назначения) - там была манипуляция с DOM и отсылка запросов на бэк, то есть основная бизнес-логика, помимо этого был глобальный массив с объектами VisitSession, для которого был обозначен прототип и стало быть создавалась куча объектов со схожим интерфейсом. В каждой такой VisitSession хранилась информация о странице, которую надо было отрисовать, когда юзер проводил некоторые действия на странице, то вынималась VisitSession с нужным айдишником и эта информация передавалась в методы тех объектов, отвечавшие за бизнес-логику
То есть, есть два чекбокса, по умолчанию оба не выбраны. Выбрать можно только один. Но можно снять оба выделения
Не надо на жс, надо на тс.
Функционировать могут вообще как угодно, тебе решать, никаких ограничений, лишь бы делало то, что надо бизнесу.
Так же, как и на не Vue: повесить обработчики на change обоих чекбоксов, чтобы при выделении снималось выделение с другого.
если они не довольны, значит ты пишешь хуёвый код. Не надо писать хуёвый код.
>ванильном жс
Да нормально совершенно, основная логика всё равно в классах самописных. Работа с DOM не сложна, чтобы html генерить можно nunjucks использовать, точно так же, как это на бэкенде делается.
Заставить фреймворки делать что-то сильно не стандартное то ещё удовольствие.
https://www.youtube.com/watch?v=S-RjiMAxHio&list=PLmqFxxywkatStbd9hdzVOS1hZa9dc56k4
https://www.youtube.com/watch?v=7EmboKQH8lM&list=PLUxszVpqZTNShoypLQW9a4dEcffsoZT4k
А мы вам - нет, лол.
Они действительно могут функционировать как угодно.
>>67942
Чувак, я тебе уже отвечал: >>1867508 →
Или ты хочешь, чтобы я это ещё и сделал за тебя?
Там нехуй делать, что на Vue, что на чём угодно вообще.
инфа есть инфа, форма не важна. Кому нравится — могут прочитать ТОЖЕ САМОЕ в книгах.
Ну, если под "нативом" мы имеем в виду "чистый жс" - то это - чистый долбоебизм.
А почему - потому же, почему не пишут на голом ассемблере или в машинных кодах, или даже на "чистом" Си, а юзают библиотеки, вот почему.
Читая книгу - ты думаешь мозгом. Включаешь фантазию. А смотря видео - нет.
И читать книгу - быстрее, чем смотреть видео. И ты можешь получать информацию в удобном тебе темпе.
Вообще, сильно возросшее в последние годы число долбоёбов (в мире в целом) - это результат того, что люди смотрят кино вместо чтения книг.
На самых разных, лол. Зайди на гитхаб и посмотри исходники.
Не, я имел ввиду апи браузеров, не язык. На жэ писать не надо. Библиотеки использовать можно, а вот фреймворки ограничивают.
>>67989
Нет, это ты, смотря видео, не думаешь мозгом, и не включаешь фантазию. А я думаю, и включаю. Дядя Боб охуенно понятно рассказывает содержание СВОИХ ЖЕ книг. Немчинский тоже не плохо.
Вся эта тема про "читай, а не смотри" пошла от старших поколений, у которых смотреть было нечего.
Так используй библиотеки, в чём проблема? Nunjucks например, и разное другое.
JS высокоуровневый язык, если не пытаться поддерживать ископаемое говно в духе IE11 (2013 год, на минуточку), а использовать современные стандарты JS, то писать очень даже комфортно. Без проблем делать сложную логику.
Ни на сколько, для каждого языка свои правила хорошего кода. А там вообще ООПараша.
На сто процентов. Клин код, не привязан ни к языку, ни к фреймворку, как и шаблоны разработки
А кто лучше?
Муж твоей матери зато сделал.
Ну это сисярп начали динамикодрисню вводить. Хорошо что я на православных крестах пишу.
Какие ещё нахуй "шаблоны"? Паттерны, что-ли?
Посмотри в словаре, что значит слово pattern. Желательно в Оксфордском, а не в англо-русском.
Это русские надмозги его упорно переводят как "шаблон", им похуй вообще.
В русском языке слово "паттерн" появилось сильно раньше, чем широкие массы населения начали программировать, а деревенские долбоёбы начали переводить книги про это.
И паттерны (GOF), таки, в основном про ООП.
Это означает "узор".
>Желательно в Оксфордском
Сорян, у меня нет оксфордского словаря, дай ссылку, если не сложно. Гугл транслейт и яндекс переводчик оба переводят "pattern" как "шаблон". И заодно, если не затруднит, на этимологию в русском, а то у Ожегова тоже нет "паттерна". Может, как-то не так ищу...
>таки, в основном про ООП
А только ООП и нужно.
Паттерны там на классик ооп. Очевидно, если ты не пишешь на TS в классик ооп стиле - практически бесполезно.
Клин код - занюхивание своего пердежа во время тупой дрочки на какое-то из направлений. Страничная рофляночка "worse is better" 30 лет назад обоссала mitшные инфоцыганские рожи, но икспертные мантры пиарщиков продолжают цеплять вкатунов и делюженол дрочил.
Русе Болтон
Чтобы выучить английский, мне нужен словарь английского языка, а там "pattern" переводится как "шаблон". Дай ссылку на правильный словарь.
>у Ожегова
В Слове о Полку Игореве посмотри ещё, лол.
В русском языке это до программирования использовалось в контексте психологии и психотерапии - паттерны поведения и т.п.
Гугл транслейт да, так переводит.
Потому, что широким массам быдла так понятнее.
Но, если ты нажмёшь так такие стрелочки <--> (реверс перевод), то увидишь, что слово "шаблон" он переводит как template, почему-то.
По этой же причине так переводят переводчики. Но, мне кажется, было бы лучше просто пояснять это в сноске.
Оксфордский словарь - в макинтоше встроенный, одним нажатием на тачпад вызывается, очень удобно.
В интернетах тоже есть:
https://www.oxfordlearnersdictionaries.com/definition/american_english/pattern_1
Это ты типа подъебнул?
Разница огромна, на самом деле.
Шаблон = "штамп, контур, выкройка", паттерн = "узор, цепочка действий-понятий-прочей хуиты". Шаблон - вещь. Паттерн - несколько вещей, объединённых в систему.
Если тебе не ясна разница - читай толковый словарь (тот же Оксфордский), пока не прояснится.
"the regular way in which something happens or is done" — это и есть шаблон.
В словосочетании "паттерны поведения" просто поленились переводить, по-русски будет "шаблоны поведения".
Всегда найдется задротище, который из дома не выходит и салом уже закрыл все надписи на своей клавиатуре, а жопой стер обивку стула
В следующий раз, когда увижу вас шарящими своими мышками в фигма макете - выебу ваших мам.
Там смысловые противоречия в тексте, ты их видишь?
"Шаблон не являтеся законченным образцом ...".
Но, "шаблон" именно что является законченным образцом, штампом.
Да, разница достаточно тонкая (а русский язык вообще не столь тонок), поэтому, чтобы всем было понятно, переводят как "шаблон", ибо это слово все выучили ещё в начале 20 века.
Но, у нас же тут типа профессионалы собрались, да?
И мы можем себе позволить употреблять правильные слова?
Где ты нашёл этот пиздец?
Бля, нация деградирует с такой скоростью, что аж шуба заворачивается.
Хмм, логично...
Но в пендостан я жить не поеду, придётся слать английский нахуй. Обойдусь родным как-нибудь.
Мы выясняем, "паттерн" и "шаблон" — это одно и то же, или нет. Крайне интересная дискуссия образовалась.
Это всё началось 100 лет назад, со школ рабочей молодёжи и прочего подобного.
Когда надо было резко окультурить 100 миллионов мужиков.
Пришлось опустить планку пониже, иначе не получалось.
Читни "Интеллектуальный слой в советском обществе", очень познавательно.
http://swolkov.org/ins/031.htm
Сейчас с программированием что-то подобное происходит.
Скоро васяны под пивас на кортах кодить начнут.
Если ты уверен в своей правоте докажи это внеся правки в википедию. Все, что тебе нужно - это аргументировать свою правоту, не так ли? В противном случае твои кукареки не имеют смысла и правильный термин остается - шаблон, ( паттерн всего-лишь его англицизм), а ты остаешься долбоебом в собственном манямире.
Неправда, я не сноб
а по девелоперству нечего особо обсуждать. Вбрось вопрось, что-ли
Мми. Илитаризм.
Я таки прикрутил TSX к Vue. Это JSX для TS.
И теперь могу и как в реакте тоже.
А реактобляди как в vue - не могут.
Не то, чтобы он был особенно нужен. Это я просто собираю toolbox себе.
Но, для хитрых случаев - самое то.
Писал игру на pixi + куча своих шейдеров. Ну так, жить можно.
>>68123
>>68136
Лингвисты, я вам покушать принёс.
Слово "шаблон" - немецкого происхождения (как и многие технические слова в русском языке).
Зайдите в гугл транслейт, и сделайте перевод с английского на немецкий.
template = Schablone (2-е значение)
pattern = Schema (2-е значение), Schablone (6-е значение)
Т.е. паттерн - это, скорее, схема, чем шаблон.
Это достаточно убедительно?
Т.е., эти слова вполне взаимозаменяемы, но, разница есть и она совершенно понятна.
Но, в контексте программирования "шаблон" - это такая хуита, на которую накладываются данные и получается результат (т.е. template). А "паттерн" - это паттерн проектирования.
Подозреваю, что такая же тонкая разница есть и в психотерапии, иначе никто бы не стал тащить новое иностранное слово взамен уже имеющегося, и тоже иностранного. Но, читать труды немецких псхотерапевтов в оригинале, и искать доказательства, мне лень.
var в шарпе — то же самое что auto в крестах. Это сильно типизированные переменные, хоть и неявно. Аналога dynamic в крестах нет.
Ну ладно тебе
var points = [
{x:1, y:1}
];
points.dist = function() {
var p1 = this[0];
var p2 = this[1];
var a = p2.x - p1.x;
var b = p2.y - p1.y;
return Math.sqrt(a a + b b);
};
console.log(points.dist())
И что?
>Скоро васяны под пивас на кортах кодить начнут.
это плохо ? или маня считал себя илитой инженерной ?
Не умничай. В английском одно слово может быть существительным, прилагательным, глаголом и иметь несколько десятков значений.
Так блэт, смотрю тут подборку js-либ для UI и вижу там Jquery UI...
https://tproger.ru/articles/top-5-js-libs-for-business-apps/
Вроде смузихлебами же официально признано что жкьюри никрута? Почему эта хрень тут?
Это тайпинг. Если ты на TS, то надо писать, конечно.
А ты сорс мапы настроил?
У меня есть два вопроса:
1. Нахуя создают Aux или Auxiliary обертку, если можно просто оберунуть дивом при рендере jsx?
2. Что значит при импорте "./Hui/Hui" вот эта одна точка со слешем? Понятно что две значит, а одна что? На один уровень выше? Та же папка?
Куда сохранить 200 мегабайт данных, JavaScript'ом, в браузере?
LocalStorage?? Нееее... SessionStorage??? Тоже не очень... Ещё варианты?
>this[0]
>this[1]
>this массив из одного элемента
>Если выполять как файл, то все в порядке.
Даже страшно представить как ты там выполняешь и почему всё в порядке.
А что такого? Много штоле? Надо же, пиздатую радужную таблицу куда-то поместить.
Блядь, а можно как-то метод или функцию какую-то впилить в расширение браузера, чтобы запись на диск и чтение с диска поддерживало, как на NodeJS, но client-side?
Ну давай расскажи что не так. Только сомневаюсь что сможешь.
Не, в векторе предполагается, что все элементы одинакового типа
В кортеже могут быть разного, а ограничение на постоянство количества элементов это просто легаси
Жаваскриптовый Array это вершина высокоуровневого программирования
Называть жс вершиной высокоуровневого программирования может только человек ни разу программированием не занимавшийся
>Пиздец! У вас в массив можно что угодно засунуть!
В JS массив - объект. Примитивы тоже объекты. Не забывай, что JS основан на семантике Scheme (Лисп). В Лиспе все есть объект. Этим он и хорош.
Ты не подписался
Короче я думаю так: в инишиал стейт засунуть весь готовый список, который представляет из себя массив объектов, каждый объект - строка из таблицы. Еще засунуть сумму экспы (0) и пользовательские пункты (пустой массив).
А дальше вы наверное подумаете, что я очень тупой, но как лучше сделать вот такую хуйню:
Пользователь добавляет в список между 1м и 2м свой пункт, или удаляет 10й пункт. Как мне лучше "подвинуть" весь массив так, чтобы айди у каждой строки перезаписались на новые? В цикле проходить по всему массиву, чекать у объектов свойство айди, сравнивать с предыдущим и следующим и изменять?
А как я узнаю блять, какой там предыдущий будет, а какой следующий, если пользовательские пункты залетают в отдельный массив? Чет сложно блять. А даже если в один, то как?
Мы вам перезвоним
> вскукарек хачкель-дауна
Даже нет смысла это комментировать, потому что вся современная индустрия информационных технологий так или иначе опирается на жаваскрипт, поскольку это самый универсальный язык, даже более универсальный чем Java, в плане охвата платформ
>вся современная индустрия информационных технологий так или иначе опирается на жаваскрипт
Пиздец. Это как слушать ватана, утверждающего что весь мир живет на достижениях Россиюшки
Ебин, я начинал с ассемблера пока ты под стол пешком ходил
Новые технологии мы тут не изучаем, обосраться просто от смеха
Называть хачкель вершиной высокоуровневого программирования может только человек ни разу программированием не занимавшийся
Прочитал пару статей на хабре и разок запрогал МК для очередного hello world это не значит "начинал с ассемблера"
Ващет я дебажил ядро шиндонс без задней мысли, а потом отламывал хасп-ключи на раз-два
Надо бы чё-то такого мультипарадигмального сюда закинуть.
Например язык Oz, у него сразу 7 парадигм: https://ru.wikipedia.org/wiki/Мультипарадигмальный_язык_программирования#Мультипарадигмальные_языки
>tuple
>ограничение на постоянство количества элементов это просто легаси
Ты понимаешь, что ты поехавший?
"Расширяемы кортеж" - это как "безалкогольная водка", примерно.
>"Расширяемы кортеж" - это как "безалкогольная водка"
Просто ты не замечаешь конверсии типа, даунито
В JS мне ничто не мешает добавить элемент к [1, true, []], чтобы получить новый кортеж
Это не кортеж.
Кортеж нужен для конкретных задач. Например, вернуть из функции несколько аргументов в ожидаемом виде, или служить ключём для элементов словаря.
Если ты наделяешь его дополнительными свойствами, ты не облегчаешь работу, а создаёшь дополнительные проблемы.
Поэтому и нужны разные типы - кортежи, списки (aka нумерованные списки), словари.
Ничего этого в JS, впрочем, в нормальном виде нет. И это проблема JS.
>вернуть из функции несколько аргументов в ожидаемом виде
let [x, y] = foo()
>служить ключём для элементов словаря
let key = [1, true, {}]
let t = new Map().set(key, true).get(key)
Тут ещё такой момент, что кортеж не имеет смысла без типизации.
Потому, что это такой ad-hoc класс.
Всегда удивлялся, нахуа они в питоне их сделали.
Ну, разве что, для ключей в словарях.
Потому что иногда нужна иммутабельность и наверное их проще оптимизировать по сравнению с листами.
>нахуа они в питоне их сделали.
Чтобы не писать сложно тогда, когда можно написать просто. Плюс для производительности.
Вот очень критично, когда из функции несколько значений возвращаешь, чтобы лишнее не писать. Даже в статически типизированном Го это поддержано, возврат нескольких значений это те же кортежи без декларации.
>Плюс для производительности.
Ну да, питон у нас же по производительности где-то между си и растом, стоило заморачиваться.
Смысл делать лишние декларации и лишние слои абстракции, чтобы после этого ещё уронить производительность?
Кортежи в питоне работают очень быстро, примерно как одиночные значения. Очень быстрые операции свёртки-развёртки кортежа. Если ты используешь класс вместо кортежа, то под капотом делается очень много лишних операций, поскольку обращение к части кортежа это уже реально обращение к словарю и т.п. Это реально криво.
При этом кортежи в некоторых задачах используются очень-очень активно.
В питон-коде очень часто такое практикуется
x, y = 1, 2
x, y = get_values()
old_value, current_value = current_value, 555
По сути тут везде прозрачная работа с кортежами, а не просто работа с синтаксисом.
В питоне есть namedtuple (догадайся что это), а также есть dataclasses - типизация и там и там есть. Если нужно сделать форсированный чек с типами то надо накатить сторонних либ, правда в динамикодрисне это в любом случае не имеет смысла
Чтобы стрясти больше лавандоса с заказчика и отсеять нубил от кормушки
Охуеть, как всё серьёзно.
namedtuple фактически обычный объект, а не tuple. И они значительно более тормознутые по сравнению с обычными кортежами.
Немного тупиковая ветвь, проще уж или просто объекты создавать, или же работать с обычными кортежами, при этом можно в функции задекларировать возвращаемый тип, что работает и как документация, и отловит какие-то ошибки анализаторами, при этом без накладных расходов в рантайме.
>Нахуй типизировать динамический язык?
Самое главное, что ты типизируешь там, где актуально - библиотечные функции, опасные места. Что работает, как документация.
И ты можешь не типизировать там, где тебе требуется динамическое поведение, либо там, где в этом нет необходимости, какой-нибудь внутренний очевидный код, который лучше разгрузить от всего лишнего.
GetType по твоему откуда тип берет, мань? Храни по адресу void структуру с типом, на здоровье. Можешь тип в самом указателе зашифровать. Хотя, нет. Не сможешь. Ты же тупой.
Сэнкз.
Насколько я понял из беглого знакомства, namedtuple - это не tuple, а такой dataclass для бедных из Python 2. С появлением нормальных dataclass'ов он стал не нужен.
На типе тайпскриптер, для которого самому выбрать форму фигурки слишком сложно, поэтому и сделали защиту от дурачка.
Можешь скинуть пожалуйста, не знаю о ком ты.
Главная фишка namedtuple это совместимость с обычными кортежами по синтаксису, то есть ты можешь по-прежнему писать
x, y = named_tuple
и это корректно будет работать. Не важно, named_tuple это просто tuple, или namedtuple
А самая главная фишка tuple, это что ты так может возвращать несколько значений из функции, чего очень-очень не хватает в том же JS. Вторая фишка это индексация в словарях, но это не так критично. В JS для этого просто строки-ключи из нескольких значений собирают, криво, но работает вполне себе.
Именно для структур данных namedtuple неудобны, громоздки и ограничены. Все придумывали себе велосипеды разных конструкций, в принципе не сложно. Фактически dataclasses лишь один из вариантов таких велосипедов со стороны, но внесённый в стандартную библиотеку.
При этом они с tuple несовместимы, хотя ты dataclass можешь легко преобразовать к кортежу, и заполнять dataclass элементарно из кортежа. Решение новое, вошло только в версии 3.7, что вышла летом 2018.
В JS объекты в принципе ближе к dataclass питона из коробки просто, но вот кортежей не хватает очень сильно.
не рушь мирок настоящего программиста
жиза, сижу и ебусь с докерами/дженкинсами
Ну, в современном JS и в TS есть destructuring.
И нет никакой проблемы в функции вернуть или принять любую хуиту.
Ты можешь писать:
let {foo, bar} = {foo: 'FOO', bar: 'BAR'};
let [bar, foo] = ['BAR', 'FOO'];
B обоих случаях переменные foo и bar будут равны FOO и BAR.
Насколько это быстро в плане реализации? Достаточно, я думаю.
https://www.codepile.net/pile/p4AOWPrb
Есть редакс, есть данные с сервера, есть пагинация. Получаешь количество страниц с сервера, делаешь из них массив, и дальше из этого массива делается пагинация. В данном примере переключение страниц (setPageNumber) ничего не делает, просто выводит текущую страницу в консоль, это просто временная функция.
Когда в этот компонент я руками вписываю в movieList.total_pages количество страниц, пагинация работает, т.е. отображается вписанное количество страниц.
Когда данные приходят в виде пропсов, но без редакса, все работает, у пагинации есть реальное кол-во страниц, т.е. тот же самый код работает правильно.
Само количество страниц тоже обновляется, если просто {movieList.total_pages} выводить в виде текста на страницу или в консоль.
Ну и сами данные реально тоже обновляются, когда они приходят с сервера, в логе показано сколько страниц пришло после SUCCESS.
Самый пиздец, что если я в webstorm где-то в коде просто добавлю пустую строку, пагинация получает новое количество страниц, и начинает их отображать, видимо это просто такой хардрелоад компонента с новыми данными, так что это не важно.
Проблема в том, что в initialstate у меня total_pages изначально равно пустой строке :"". Компонент получает эту пустую строку, пустой массив разумеется не отображает ни единой страницы и ВСЁ, больше он не хочет перерисовываться с новыми данными. Видимо проблема где-то в useEffect, что он ничего не хочет делать второй раз с новыми данными. Я просто недавно начал учиться только и не понимаю что это за хуйня. Пробовал переписать компонент полностью на классовый, там проблема была та же самая. Пробовал передавать данные не через хук, а черезе connect, по классике, там все точно так же, разницы никакой. Видимо где-то проблема у useEffect, где? Сразу извиняюсь, что хуйню понаписал, но хочется как-то добить эту задачу и получить skills
Проект просто учебный, ни для чего не нужен
Пиздец закостылил, просто сделал так, что компонент получает данные от родительского компонента, и если данные еще не пришли, то рисует null, а когда пришли, рисует этот компонент с данными. Хоть это и решило проблему, я все равно не понял почему он эти же самые данные сам у себя обновлять не хочет?
>Видимо где-то проблема у useEffect, где?
В списке зависимостей, где же еще. Поставь https://www.npmjs.com/package/eslint-plugin-react-hooks
Алсо, я в твоем коде особо не разбирался, там дебри какие-то, но тебе useEffect-то нужен вообще? Ты там зачем-то императивно меняешь номер выбранной кнопки, хотя это наверняка можно вычислить из имеющихся данных. У тебя же номер страницы в сторе или в урле хранится, не?
Я не понимаю как поставить его - Note: If you're using Create React App, please use react-scripts >= 3 instead of adding it directly. ? Я через npm install все ставлю, блядь еще после этого кто-то будет говорить, что js просто язык, столько хуетристики, которая даже с языком не связана
В JS очень много молодых людей.
Тот же Абрамов, например, и все его друзья.
Посмотрите на средний возраст авторов книг по реакту - он не больше 25, я думаю.
И большинство из них не имеют опыта серьёзного программирования вне JS экосистемы. Математику выучили, и вперёд.
У них мозг ещё не сформировался, а они уже учат других жить.
Создают opinionated, блядь, фреймворки.
Какую, архитектуру они могут создать?
Правильно, только такую, которая падает под собственной тяжестью.
Ну, и вот.
>>69017
Язык это язык, остально придумали непойми кто. Ты можешь просто это говно не использовать. Мне не нравится реакт, я не использую его.
>>69037
Ты абсолютно прав. Один хакер переписал сетевые модули для ноды. Сокеты и более верхнеуровневые абстракции. Нода стала на его ноуте держать 2 миллиона вебсокет соединений. Памяти жрала всего ничего для такой емкости. Все потому, что опыт. В JS экосистеме к сожалению почти только один юнцы. Ссылки на того чувака ниже. Почитай и другие его статьи на медиуме. Он на рапсбери миллион вебсокет соединений захерачил. Еще он переписал сериализатор json в Go. Его версия быстрее что то вроде в 3-5 раз.
https://habr.com/ru/company/ruvds/blog/439976/
https://levelup.gitconnected.com/will-node-js-forever-be-the-sluggish-golang-f632130e5c7a
https://medium.com/@alexhultman
https://github.com/uNetworking
а ещё он сделал hmr. Он же сам пишет в био на твитере - не создатель реакта, просто чувак очень медийный и умеет инетерсно писать всякую хуету.
https://pastebin.com/yTx5TkPf
В чем может быть проблема?
И что тебе мешает добавить эту переменную в зависимости? Если после этого будет бесконечный цикл рендеров — поздравляю, твоя логика говно.
>Note: If you're using Create React App, please use react-scripts >= 3 instead of adding it directly.
Что в этой фразе неясного? С какого-то момента хук включили в CRA.
node-sass это плюсовая либа и под твою ОС нет готовой скомпиленной версии. Как это решать я хз, это одна из причин почему я давно съебал с sass.
>Что в этой фразе неясного? С какого-то момента хук включили в CRA.
Я не понимаю что значит use react-scripts, там не показано что и куда вписать в этом случае, осталньые примеры там для установки через npm, и загуглив я не нашел ничего про такой способ установки/настройки
>поздравляю, твоя логика говно.
Спасибо
>react-scripts
Это npm-пакет в котором собсна содержится вся начинка CRA. Обновляется, как ни странно, как и все остальные пакеты — через package.json.
Т.е. если у меня react-scripts версии выше 4, то у меня уже установлен этот пакет? У меня он уже подсвечивал проблему с useeffect, но я думал это другое
>Т.е. если у меня react-scripts версии выше 4, то у меня уже установлен этот пакет?
Да.
>я думал это другое
Там же пишется правило в подсказке. Конкретно это игнорить и обходить нельзя — в 90% случаев себе же хуже сделаешь.
>Там же пишется правило в подсказке. Конкретно это игнорить и обходить нельзя — в 90% случаев себе же хуже сделаешь.
Да, я так в итоге и понял, что хуйню сделал
Он ответил на твой вопрос. Алсо, хз что там у тебя за Aux, сейчас для того чтобы вернуть несколько нод из компонента используют фрагменты — <React.Fragment> или просто <>.
Наверное, потому, что под 3-й питон до сих пор некоторых либ нет.
Вообще, долбоёб Гвидо свой питон чуть не угробил этим мудрым решением выкатить несовместимую 3-ю версию. Удивительно, что он выжил вообще, видимо из-за data sciense, за уши вытащили, практически. Но, тем не менее, позиции он сильно сдал. Я, в итоге, совсем с него слез, например.
Извини за грубость с моей стороны, просто почти все программисты или разработчики, которые мне попадаются - токсичные уебаны, и я не знаю почему. Спасибо за ответ на вопрос.
Уже страшно блять писать что-то, ведь могут доебаться до слова и поднять на смех тебя за малейшую промашку или неточность.
>>69149
Спасибо. Это я смотрел в курсе какого-то немца, Udemi, он там строит бургер какой-то и, типа, чтобы вместе рендерить два соседствующих нода он пишет stateless component Aux, где просто отдает props.children, а потом оборачивает этим Aux два дива. Я понимаю, что реакт требует обертки, чтобы зарендерить, но нахуя он целый компонент пишет? А также нахуя отдельный хук, если можно в див обернуть эти соседствующие ноды? Я что-то недопонимаю, видать... Учусь
Пикрил - пример применения немцем. Может это какой-то костыль для старых версий реакта?
>Уже страшно блять писать что-то, ведь могут доебаться до слова и поднять на смех тебя за малейшую промашку или неточность.
И чо?
> Может это какой-то костыль для старых версий реакта
Видимо да, https://github.com/gajus/react-aux
Но я сам хз
>Может это какой-то костыль для старых версий реакта?
Именно. Я же написал про фрагменты. Это лучше чем div, не нужно создавать отдельную html-ноду. Код на пике выглядит так себе бтв, думаю тебе стоит курс поновее поискать.
>Дизмораль(
Ты слаб, анон. Знаешь почему ты слаб? У тебя есть мамин борщик. Так ты никогда не пойдёшь веслать
>Наверное, потому, что под 3-й питон до сих пор некоторых либ нет.
Значит просто либа сдохла, не нужна и никто её не поддерживает. Иначе бы переписали.
>Вообще, долбоёб Гвидо свой питон чуть не угробил этим мудрым решением выкатить несовместимую 3-ю версию.
Было дело, причём зачастую на ровном месте, причём не дав механизма для перехода, хотя спустя несколько лет что-то добавили, чтобы упростить миграцию и совместимость. Долбы, это да.
Но это было давно, переход начался 10 лет назад, несколько лет были очень болезненными. Сейчас это уже в прошлом, питон взлетел обратно и сейчас в трендах. Подогнали в язык огромную массу всего необходимого в серьёзно индустрии, современный третий питон это уже совсем другой уровень, чем третья ветка, как-то даже сравнивать несерьёзно.
А у тебя че, мамы нету, которую можно попросить приготовить борщ? Или у тебя мама не умеет?
Я не понял к чему ты это сказал просто.
Да я вообще классный, жаль что безработный
>это уже совсем другой уровень, чем третья ветка, как-то даже сравнивать несерьёзно.
В общем, да.
По моим ощущениям, в последние пару лет всё заметно продвинулось в питоне. Даже появилось желание снова что-нибудь на нём сделать.
let flag = false;
for (let i=0; i<arr.length; i++) {
if (arr > 100) {
flag = true;
break;
}
}
if (flag) {
doStuff();
}
Сегодня навернул бы какого-нибудь ангулара или совсем нежсного фронта
Да, ну ещё break label есть, но это не совсем то
Я тоже повелся на крики макак про ангуляр и реакт. Долбоебы нахваливают реакт, потому что популярный и кричат что ангуляр сложный и хуевый, даже не попробовав на практике. На деле всё оказалось наоборот, про реакт теперь как про страшный сон вспоминаю.
Справедливости ради может раньше ангулар и вправду был каким-то хуевым и толком непрописанным
С около нулевой базой на реакте я порвал жопу и начал чето лепить за месяц, в ангуларе (4-6 какой-то там вроде) не понял вообще ничего
еще замечал красивый эффект с плавной сменой одной картинки на другую. ( тоже само запиливает)
[priority, timestamp, element]
То есть: приоритет, таймстемп и сам элемент. Если приоритеты равны то сортировка идет по timestamp
Как и в любом другом языке.
К примеру, пользователь что то написал какой то текст в форму, я получил его через v-model. Ок. А как мне теперь создать новый параграф с текстом из этой переменной?
На джава скрипте я бы ебанул document.createElement, а как здесь такое провернуть непонятно.
>как будет по-немецки "купаться"?
Также, как и по-русски - разделся, и в воду.
У тебя должны быть параграфы (посты или хуй знает, то там у тебя) в модели - массив. И должен быть шаблон, который разворачивает этот массив, и показывает параграфы.
Ты получил новый парграф, должно возникнуть событие, текст у тебя уже есть в модели, нужно в обработчике события взять этот текст и добавить в модель (массив) параграфов.
И, вуаля - он появится.
ИЧСХ, примерно так это делается что на Vue, что на Ангуляре, что на Реакте.
Можно
Суть в том, что нужно сделать так, чтобы как-бы сдвигалось вверх содержимое над элементом (и обратно, когда скрывается элемент), когда скрытый элемент появляется выше текущего положения страницы. То есть если ты на странице ниже элемента, при добавлении его вверху это не было заметно (содержимое для тебя не двигалось бы).
Единственная идея - двигать viewport через scrollBy при появлении\удалении элемента. Или есть что-то проще?
Можно к нему прицепить jquery и потом уже плагины. Помесь слона с огурцом, дешево и сердито.
Суть не в добавлении в массив, а в том что ты это сообщение должен отправлять на сервер. На стороне клиента ты должен получать сообщения от сервера и уже в зависимости от них добавлять что-либо в массив и выводить на экран.
>На джава скрипте я бы ебанул document.createElement
Когда же вы поймете наконец, что надо разделять данные и их представление
Даже без всякого вуя и реакта это надо делать
Чего сложновато?
Непривычно, может быть?
Картинка на экране (html) - снимок состояния модели.
Изменил модель - изменилась картинка, хули тут сложного.
Ну и да, на сервер это тоже надо отправлять.
Но, судя по твоим вопросам, тебе лучше сначала так сделать.
А ещё лучше - TODO list, чтобы понять, что и как.
Ты, ведь, не сделал его, а сразу полез чятик лепить, да?
Туду-лист сделай на Vue.
Потом - добавь Vuex.
Потом - хранение на сервере.
По серверу ничего не подскажу, вариантов дохуя.
Если кроме JS не знаешь ничего - то Node-хуёде.
В процессе до тебя начнёт доходить много чего.
В том числе и то, что чятик-хуятик от туду-листа отличается чуть более, чем ничем.
А вот уже потом - читай книжки-хуижки, смотри видео-хуидео и т.п.
Понял, спасибо
Аноны, есть хорошие ресурсы, где учат разработкам игр на js
Разработка игор на JS ничем не отличается от разработки игор вообще, кроме того что у тебя в наличии браузер с JS вместо DX/OpenGL/Vulkan
Из движков есть Phaser который за хз сколько лет вышел на хоть отдалённо узабельный без тонны костылей уровень, только перепроверяй, чтобы гайды\экзамполы были к последниму релизу
https://phaser.io/examples/v3
На мдн был генерик гайд с канвасами по написанию breakthrough, можешь погуглеть
Есть одна изометрическая песочница) на обычном жсе запакованная в nw, даже в стиме вышла и сейчас бесплатная, сорсы можешь глянуть прямо в папке с игрой
Разумеется, дохуя и больше:
http://www.allitebooks.com/?s=javascript+game
И в гугле на эту тему есть масса интересного.
[{},{},{}],
[{},{},{}],
[{},{},{}]
]
Как мне из него сделать массив вот такого вида? [
{{},{},{}},
{{},{},{}},
{{},{},{}}
]
Да я тупой. До меня дошло что это нинужна и можно просто сделать мэп внутри мэп...
1. Я не достаточно хорошо знаю чистый js, т.е. его по сути я учил только очень условно и поверхностно, не писал ни единого сайта на нём, а сразу начал учить реакт, пока получается довольно неплохо, могу даже что-то более-менее сложное запилить. Насколько это вообще важно если я все равно могу загуглить нужное решение, посмотреть на гитхабе? Стоит ли посвятить отдельное время изучению чистого js? Особенно взаимодействие его с DOM. Т.е. вопрос здесь исключительно в том, зачем уметь писать на чистом js, если ты на нем вчистую писать все равно не будешь? Ну по крайней мере пока не планирую и ищу работу только по реакту
2. Мне во время создания тестовых проектов часто не хватает бэкенда, у меня есть желание учить ноду, но боюсь что я просто не справлюсь с одновременным изучением сразу двух областей. Собственно вопрос - нода сильно сложная? Я как-то проходил простейший курс, но там совсем основы были по MERN, ничего сложного не делал, буквально принимал запрос и записывал что-то там в mongoDB. Изучить ноду на каком-то базовом уровне это сильно сложнее реакта? Там ведь много ебалы наверняка именно с сетевым окружением, серверами, апишками и т.п.
Функции же предпочительнее?
Он сам генерируется, от ангулярщика требуется только добваить атрибут i18n элементам которые нужно переводить.
1. JS надо знать, DOM API по большому счету можно скипнуть. Хотя там ничего особо сложного нет. И вообще не очень понятно что значит «учить» применительно к API.
2. Нода не сильно сложнее, но ты заебешься с хостингом сервера и бд. Используй публичные API.
Смысл хуков в том, чтобы использовать стейт и сайд-эффекты в функциональных компонентах. Ты можешь продолжать использовать классы, просто функции писать короче.
Процесс деплоя на heroku до безобразия прост. Так что, можно учить и ноду сразу. Всеравно придется.
>Вот как раз когда до сайт эффектов доходит, я перекрещиваюсь и переписываю все в классы.
Двачую.
>роцесс деплоя на heroku до безобразия прост.
Вот охуенное спасибо, не думал что настолько просто это можно сделать, уже залил. Но сюда не скину потому что стесняюсь и вообще деанон
Не надо лениться.
Ты должен уметь сделать свой наипростейший сервер на express с парой роутов на GET, POST и WebSocket. Прикрутить пару таблиц postgres. Купить VPSку, желательно Arch (арч труднее для разработки, но у него самая лучшая дока) развернуть это там все.
Собственно сам Реакт, треть кода на хуках, треть кода на классовых компонентах и треть просто на редаксе все в рамках одного приложения с готовностью объяснить, почему ты тут использовал хуки, тут классы , а тут редакс. Приложение должно быть с роутами, и соответственно должны быть реализованны get, post запросы и WebSocket.
Для get это может быть апи запрос на яндекс/гугл/куда-угодно (речь идет про get с твоего сервера, и внутри должен быть реализован метод общения с АПИ гугла/яндекса/или все что выберешь, с последующем форматированием информации, например берешь по запросу к АПИ яндекса и гугла, убираешь ненужные поля, добавляешь что-то свое и возврашаешь вот такой JSON)
Для post это просто какое-то банальное добавление информации в Postgres. Будет круто, если сделаешь свою же опять регистрацию.
На вебсокете можешь сделать банальный чат, но опять же с серверной частью. Но если хочешь что-то интересное, то реализуй запись голоса на реакт приложении по нажатию клавиши и отправки буффера тиками по например 1 секунде через вебсокет. Далее по повторному нажатию кнопки, буфер весь собирается и ты на экспрессе собираешь файл.
Дизайн подбери приложению симпатичный, чтобы на это было не отвратительно смотреть, но и не надо уходить в дебри.
Будь готов объяснить, почему здесь флекы, а не гриды или тут без position absolute не обойтись. Дополнительно (например банальный адаптив), какие-то вещи можешь сделать на Material UI или Grommet (он хуже, но проще).
Это что касается приложения.
Что касается JS, то похорошему все что есть в учебнике по JS должно отлетать от зубов, потому что какая разница, ты все равно придешь к тому, что ты будешь это все знать и для тебя это будет все ерундой по сравнению с тем, куда ты действительно будешь лезть.
Это нужно знать, потому что я так или иначе видел много собеседований, где это все спрашивали или выдавали тесты.
В целом это все. Но если ты изначально стремишься в крутое место, то добавляй туда алгоритмы и можешь начинать потихоньку ковырять typescript и самостоятельно ручками собирать express и react. Например в яндекс, даже на фронт позицию ты без знаний алгоритмов не пройдешь, увы и ах.
Не надо лениться.
Ты должен уметь сделать свой наипростейший сервер на express с парой роутов на GET, POST и WebSocket. Прикрутить пару таблиц postgres. Купить VPSку, желательно Arch (арч труднее для разработки, но у него самая лучшая дока) развернуть это там все.
Собственно сам Реакт, треть кода на хуках, треть кода на классовых компонентах и треть просто на редаксе все в рамках одного приложения с готовностью объяснить, почему ты тут использовал хуки, тут классы , а тут редакс. Приложение должно быть с роутами, и соответственно должны быть реализованны get, post запросы и WebSocket.
Для get это может быть апи запрос на яндекс/гугл/куда-угодно (речь идет про get с твоего сервера, и внутри должен быть реализован метод общения с АПИ гугла/яндекса/или все что выберешь, с последующем форматированием информации, например берешь по запросу к АПИ яндекса и гугла, убираешь ненужные поля, добавляешь что-то свое и возврашаешь вот такой JSON)
Для post это просто какое-то банальное добавление информации в Postgres. Будет круто, если сделаешь свою же опять регистрацию.
На вебсокете можешь сделать банальный чат, но опять же с серверной частью. Но если хочешь что-то интересное, то реализуй запись голоса на реакт приложении по нажатию клавиши и отправки буффера тиками по например 1 секунде через вебсокет. Далее по повторному нажатию кнопки, буфер весь собирается и ты на экспрессе собираешь файл.
Дизайн подбери приложению симпатичный, чтобы на это было не отвратительно смотреть, но и не надо уходить в дебри.
Будь готов объяснить, почему здесь флекы, а не гриды или тут без position absolute не обойтись. Дополнительно (например банальный адаптив), какие-то вещи можешь сделать на Material UI или Grommet (он хуже, но проще).
Это что касается приложения.
Что касается JS, то похорошему все что есть в учебнике по JS должно отлетать от зубов, потому что какая разница, ты все равно придешь к тому, что ты будешь это все знать и для тебя это будет все ерундой по сравнению с тем, куда ты действительно будешь лезть.
Это нужно знать, потому что я так или иначе видел много собеседований, где это все спрашивали или выдавали тесты.
В целом это все. Но если ты изначально стремишься в крутое место, то добавляй туда алгоритмы и можешь начинать потихоньку ковырять typescript и самостоятельно ручками собирать express и react. Например в яндекс, даже на фронт позицию ты без знаний алгоритмов не пройдешь, увы и ах.
На фронт без алгоритмов уже давно не попасть не только в Яндекс, но и в любую компанию. Без алгоритмов это 1С или пыха с вордпрессом.
очень сложно кликнуть мышкой чтобы установить аддон для БД, да
алгоритмы нахуй не нужны. и ни в одной адекватной компании их не спрашивают на фронта.
Сортировка, обход структур. Всё тоже что и на фронте, ну может требования чуть послабее, зачтут ответ за правильный если сложность алгоритма будет O(n2) при возможной O(n log n)
Ты либо фантазер-вкатун, либо уже работаешь и устраивался на работу года 2-3 назад.
Если чел на собесе на дефолтного фронта спрашивает алгоритмы, значит он не знает что спросить, а это в свою очередь говорит что в компании нет нормальных спецов на фронте. Все очень просто. Исключение разве что Яндекс где надо отсеивать огромное количество людей.
Ты можешь думать и говорить всё что угодно, но вот работы тебе твои мысли и слова не предоставят, так и будешь на двачах рассуждать о челах на собесе.
>Сортировка
Ну это несерьёзно. Я собирался бугуртеть из-за кч-деревьев
>обход структур
Можно чего-нибудь для примера?
Охуенно расписал, схоронил, но тащемта мне не то, чтобы очень много нужно доучивать, т.е. по сути осталось подучить бэк со всей той ебалой, что ты описал, и разумеется как следует задрочить JS. А так видимо я сам того не понимая все изначально сделал правильно и вполне уверенно чувствую себя в реакте и особых проблем с ним не испытываю уже сейчас.
>Например в яндекс, даже на фронт позицию ты без знаний алгоритмов не пройдешь, увы и ах.
Ну сейчас фронтенд уже больше на написание приложух похож, так что это понятно.
Я пока только "Грокаем алгоритмы" прочел, есть какие-то особые алгоритмы для фронтендщиков с отставанием в развитии или просто в целом подтягивать знания в этом? Понятно что той книжки маловато будет. Но опять же многое я просто из практики подчерпываю и ковырясь в опенсурсахъ. Особенно паттерны разные оттуда хорошо выучиваются.
>Ну это несерьёзно. Я собирался бугуртеть из-за кч-деревьев
Манюнь, деревья тоже для сортировки можно использовать, а ты и не знал.
>Можно чего-нибудь для примера?
Чего тебе для примера? Любую структуру которая приходит тебе с сервера нужно обходить и делать это оптимально возможным способом.
Никто тебе на бэке не будет сортировать ответы от сторонних API, так как нет смысла тратить ресурсы сервера, когда сортировку можно сделать на стороне клиента. Максимум что сделают на бэке, так это уберут неиспользуемые данные.
> >обход структур
> Можно чего-нибудь для примера?
Ну рекурсивно json отривовать с н-вложеностью. Такое довольно часто встречается. Если рисуешь на канвасе или вообще 3д используешь - там и деревья балансить может придется.
Надо по архитектуре спрашивать.
Но, это сильно сложнее алгоритмов.
И никто не ответит.
Да и спросить даже не смогут, как следует.
Архитектуру с помидоров требовать стоит. А с остальных что, отличие var от let блджад? Пусть кс дрочат короче.
Рога и копыта - это не адекватная компания.
5ый год работаю, так что мимо
Ну вот ты типичный пример человека который не знает что спросить на собесе, если тебя поставить интервью делать
>особые алгоритмы для фронтендщиков
Алгоритм Брезенхема, линейная алгебра, матрицы, кватернионы, проекции, ты же без них и линию нарисовать на фронтенде не можешь по пикселям
Ну я это и имел ввиду, собственно)
Не знаю, но собеседовать да, скоро придется. Так какие есть нормальные вопросы для верификации опыта выше туду?
Главное чтобы на зекаче не сидел
Зависит от того что от него требуется. Если на твой проект, то представь что нужно знать чтобы делать таски которые ты делаешь.
>нормальные вопросы для верификации опыта выше туду?
- что такое browser reflow
- что такое function hoisting
- как сделать замыкание
- чем отличается XHR от fetch
- CORS/CSRF
Неблохо, сохраню.
Хуета. Давай это
- Напишите аналог функции console.count но вовзращающая число в виде результата, а не выводящая его в консоль
- Напишите ленивые map, reduce, filter, every, some, чтобы для цепочки вызовов этих методов, фактически происходила только одна итерация
- Напишите range(start, end, step) где step может быть нецелым, start и end как положительным так и отрицательным, и бесконечным в том числе
- Напишите класс итерируемой слабой коллекции, напримиер WeakSet, который был бы наследником оригинального WeakSet, имплементировал все его методы, но при этом по элементам множества можно было бы итерироваться.
А кого? Это вопросы чисто на знание языка и его объектной модели. Тут никаких мидлловских и сениорских вопросов нет. Мидлы и сениоры - это люди с опытм, их спрашивают уже не про язык и как он устроен, а про решение реальных задач, и архитектуру.
Собеседование для бесед придумано, а не чтобы код там писать. Писать код это уже работа
>вопросы чисто на знание языка
Вместо этой писанины можно просто спросить про генераторы и как сделать какой-то объект итерируемым через for of
Спрашивают про алгоритмы
>ррряя ахуели нахуй это надо все написано мы тут не математики
Спрашивают про архитектуру
>ррряя у джунов опыта нет, какая архитектура
Спрашивают про устройство языка
>ррря сложна джуны это знать не должны и вообще в реальных задачах такого не встречается
Пора перестать себя переоценивать и смотреть на мир в розовых очках. Вопросы про что такое замыкание и какиетипы данных есть в жс - это не джуновские вопросы, а трейни. Джун должен прекрасно знать язык, и что самое главное его объектную модель. Джунов как раз и надо спрашивать про теоретическое, но глубокое знание. И при этом если не спрашивать про асимпотамику и не заставлть дрочить деревья, то нате распишитесь и будьте добры понимать что такое генераторы, финализаторы, и как устроено управление потоком выполнения
Это ты скриниг описываешь, а есть еще техническое собеседование, где вполне себе дают задачи, которые могут просить решать прямо при интервьювере, так и оставлять тебя на какое-то время.
Чтобы услышать
>ну бее мее кароче это самое
И кучу ахинее с неправильной терминологией и употреблением технических терминов не к месту и в неправильном значении.
Нет, ебаная хуйня. Нет магических вопросов, которые бы позволил отделить джуна от сеньора. Нужно смотреть на проекты которые делал человек, вместе обсуждать его код, выяснять почему и как он решал определенный задачи и т.д.
Сениоры легко определяются вопросами о подборе стека, проекта и взаимосвязи компонентов под гипотетискую задачу.
Очень важные и применимые в каждодневной работе задачи. Особенно, блять, WeakSet, все время их использую просто.
Пиздец.
Применимые в работе задачи спрашивают не джунов, а миддлов и сениоров.
Анон, ты тред питона и JS перепутал.
Но ты наглядно показываешь пример, когда кого-то случайного ставят на собес и он там какой-то экзамен на частные фичи языка устраивает. Кому просто кого-нибудь поэкзаменовать хочется, а не кто занят поиском нужных людей.
Зачем? Что ТЕБЕ покажут эти ответы? Вот иначе, если ты себе в команду искал человека, что бы ты в этом случае стал спрашивать?
Можешь рассказать, как может получиться, чтобы человек знал как в жс работают слабые ссылки, генераторы и стек вызовов, но при этом не имел понятия про эвентлуп, замыкания, прототипное наследование и чем примитив от объекта отличается, которое необходимо в повседневной работе?
> генераторы, финализаторы, и как устроено управление потоком выполнения
Это чисто теоретическая алгоритмистика с дрочем ради дроча или где-то перечисленное тоже применяется? Если последнее, то где именно?
мимо другой анон
А тебе не приходила светлая мысль, что если в реальной работе применимы знания про эвентлуп, замыкания, прототипное наследование и то, чем примитив от объекта отличается, то можно про них и спрашивать, а не про всякую отвлеченную хуиту?
>- Напишите класс итерируемой слабой коллекции, напримиер WeakSet, который был бы наследником оригинального WeakSet, имплементировал все его методы, но при этом по элементам множества можно было бы итерироваться.
Я может чего-то не понимаю, но по элементам WeakSet можно итерироваться и так.
Да. Зачем помидору с 5-10 годами опыта помнить как там на жс кнопки перекрашивать?
Конечно приходила и раньше именно так мы и делали. Лет 10. И люди ходят собирают эти вопросы, и надрачиваются отвечать на них,Ю по факту не понимая ни-ху-я. Зайди в любой жс чатик с постоянной активностью и понаблюдай за контингентом (да-да, там сидят именно те, кто по собесам и ходят). Тебе любой педагог объяснит, что существуют вопросы, которые способны одним заменить 20 и при этом показать, понимает ли человек что-то на самом деле, или онет.
Я 15 лет провожу собесы. Если бы я не видел, что творится в индустрии, я бы вам такой хуйни не рассказывал.
анон вбросивший такси на генераторы с финализаторами
Нельзя.
Ну хуй знает. Я на последней работе отсобеседовал около больше сотни человек и около десятка в итоге взял в команду. Эт за 4 года примерно. Доволен был всеми. Подобного не спрашивал ни у кого и вообще код не заставлял писать — только обсуждение их кода и небольшая задача на архитектуру http-кеша. Меня самого такие вопросы бесят. Особенно в Яндекс было злоебучее собеседование, с кручением бинарных деревьев и разложением на множители.
Ты хуйню написал.
Глубокие знания нельзя получить, не работая практически.
Это как в совке на рубеже 90-х учили программирование без компьютеров.
Вообще, совковая деревенщина любит выёбываться и умничать.
"Высшее" "образование" на должность уборщицы требовать и т.п.
Это всё отличные маркеры совка.
Физбаз охуенен.
Недавно целая книжка вышла про это:
Ten Essays on Fizz Buzz: Meditations on Python, mathematics, science, engineering, and design
https://scanlibs.com/ten-essays-fizz-buzz-meditations/
>Очень важные и применимые в каждодневной работе задачи.
У всех остальных специальностей есть профильное обучение с дипломом на конце, декларирующий то, что они прошли обучение, чтобы получить который, необходимо насдавать кучу экзаменов с теорией, которая лишь косвенно нужна в работе. С чего ты решил, что людей, претендующих на позицию джунов, должны спрашивать вопросы из реальной работы, которой у них еще не было, вместо знание инструмента и базовых теоретических знаний. Кто экзаменует людей, которые вкатываются в программирование с улицы? Ты когда-нибудь работал с мартышками, которые научились компоненты реакта описывать, но при этом встают в ступор, когда у них хэндлер на событие не срабатывает, потому что они его вынесли за предел замыкания? Ты не представляешь сколько людей пытаются в программирование неприходя в сознание.
Так у этого анона как раз нет никаких бинарных деревьев и вообще ничего на алгоритмы. Чистое знание концепций языка, не более. Что тебе не нравится конкретно?
>Нет магических вопросов, которые бы позволил отделить джуна от сеньора.
Так мы тут помидора ищем или отсеиваем адекватных джунов от умеющих одно туду вкатунов?
>>70120
Хз, там достаточно ответа в одно предложение, в котором есть слова Symbol, итератор и генератор. Абсолютно ничего сложного, но если чел это знает, то уже не все плохо
>>70119
Ну да, именно скрининг. Опять же спрашивали про вопросы, а не про задачи. Алсо если уж давать какие-то задачи на написание кода, то ставить туда приближенные к реальным таскам это полное фуфло. Вот это дерьмо с Lazy-списками звучит как будто ты просишь ещё не работающего у вас человека решить рабочую задачу, чтобы потом стырить его код в проект. Не надо так
Он привел список задач, решить которые можно только имея глубокое знание жс, при этом не требующих никакого реального программирования, хотя бы потому, что как тут уже озвучили все эти вопросы носят чисто характер каты и в реальной работе не применяется. При этом эти каты интересны именно тем, что они не на алгоритмы, а на сам язык.
А почему ты с теоретического WeakSet вдруг на практическое "хэндлер на событие не срабатывает" перескочил? Ты их при приеме на работу про хэндлеры и замыкания спрашивал?
другой анон
Потому что если человек умеет в теоретический WeakSet, который можно итерировать, то я готов жопу поставить, что он понимает, что такое замыкание.
>Особенно в Яндекс было злоебучее собеседование, с кручением бинарных деревьев и разложением на множители.
Там работают дурачки из физтехов и бауманок.
Которые умеют в математику, но не умеют в архитектуру и дизайн.
А в современных реалиях должно быть наоборот.
И вот эти дурачки реально не знают о чём спросить, чтобы отсеять тупых. И спрашивают "матан", бессмысленный и беспощадный. Совок стайл, как он есть.
Я отвечал на это:
>Джунов как раз и надо спрашивать про теоретическое, но глубокое знание.
Какое может быть глубокое теоретическое _знание_, блядь, у джуна?
Он тебе как попугай только может повторить то, что где-то читал.
Т.е. ты НЕ спрашиваешь что такое замыкания и хэндлеры, которые блядь и исп в реальной работе, но ты спрашиваешь теоретические вещи в плане WeakSet. И у тебя в итоге сидят те кто знают что такое WeakSet, но не знают что такое замыкание. Тебя в этой ситуации ничего не смущает?
Это в каких книжках такому учат? Ни на каких курсах я такого не видел.
Во первых, не "замыкание", а "кложура".
Если слова не имеют под собой почвы, то дела не могут совершаться.
Closure - это "заключение", "закрытие", "захват", но не "замыкание".
Замыкание - это когда два пальца в розетку.
Во вторых - это действительно сложно для ньюфага, но, никакой weakset для проверки не нужен.
Поддвачну, что-то я ору уже с этого треда из раза в раз. В итоге на собесе спросят про реакт и пошлют нахуй лол
>Замыкание - это когда два пальца в розетку.
Хз, один раз был вместо нуля, один параллельно паяльнику. Никакого КЗ
Тред для вкатунов находится по соседству, здесь помидоро-элита рассуждающая как оградить профессию от шлака.
Мне тоже не понятно. Такие специфичные вещи, как WeakSet, можно знать и помнить, если постоянно ими пользоваться, но всё-таки это нишевая вещь.
Я в JS никогда не пользовался, в питоне да, но в питоне WeakSet, к слову, итерируется. И в питоне это тоже довольно нишевая вещь.
В то время как замыкания это довольно базовая концепция, особенно для JS, где замыкания в принципе очень активно используются в силу большой любви к callback-функциям.
Хуя самомнение у шиза
Последовательно, ты хотел сказать?
Ну, у паяльника у самого нехилое сопротивление + у человеческой кожи тоже. Поэтому, _короткого_ замыкания не получилось.
> И у тебя в итоге сидят те кто знают что такое WeakSet, но не знают что такое замыкание
Нет, ты же долбоеб неумеющий читать, иди перечитывай.
Там написано совсем обратное.
Не, всё правильно я написал, толи с розеткой что-то было, то ли со шнуром, не помню уже.
Это ты блядь долбоеб а не я. ТЫ сука спрашиваешь то что у вас на проектах нет и никогда не будет. Не спрашиваешь по практическим вещам, а по теории причем из других языков. Ты вот просто реально концентрированный абсолютно конченный долбоеб. Я просто хуею с тебя.
Зачем label в консоль выводить я понимаю. Зачем возвращать не очень. Не вели казнить барин за самодурство
Джун должен много знать, но ещё пока мало уметь.
То есть ты сначала много учишь разную теорию, по алгоритмам, структурам данных, как что устроено и т.п., а потом уже на этом фундаменте начинаешь работать, забывая ненужное и доучивая нужное.
Это разумно, очень сложно теорию подтягивать, когда уже работаешь. Но конкретно решения вроде WeakSet мне кажутся всё-таки скорее очень прикладными, нишевыми, чем базовой теорией.
> Но конкретно решения вроде WeakSet мне кажутся всё-таки скорее очень прикладными, нишевыми, чем базовой теорией.
Просто ты сам не можешь решить, вот и бесишься.
Ладно. Мне-то что до твоего мнения.
Я пришел всего-лишь поделиться тем, как это происходит. Ты сиди рвись дальше.
он же наоброт всё написал, что как раз с виксетом человек все понимает, а наоборот нет
Почему.
Сразу.
Не спросить.
О замыканиях.
И хэндлерах.
А.
Вместо этого.
Идти окольными путями.
С виксетом или другими.
А?
Тогда попрбуй у тетя в консоди выполнить трижды console.count(). Потом нажать ctrl+l и выполнить снова.
Потом проделать тоже самое со своим каунтом и сравнить выводы в консоль.
Ты я так понимаю читал, раз мне советуешь. А ну повтори своими словами почему.
Ленивые спимки пишутся за пятнуадцать минут, о каких реальных задачах ты говоришт?
Всё верно.
Но спич о том, что есть какие-то самые общие для языка вещи, вот замыкания в случае JS, а есть нишевые частные вещи, которые знаешь, если ими занимался, или их читал зачем-то. А если с ними не работаешь, то скорее всего забудешь, а в случае необходимости прочитаешь и за день освоишь.
Довольно глупо делать выводы и принимать решения по подобным тестам.
Ты понял про что я, анон. Так в какой книге или книгах? Выручайте вкатыша, плиз!
Да нихуя я не понял. Тут один срач.
Конесно буду. Ты же не думаешь, что мне рнтересно было посиотреть как ты заимплементишь мне простую функцию со счетчиком.
Конечно интересно, анон и английскому научит, и расскажет, что браузеры, кроме, хрома существуют
Да какая разница? Мы тут сублимируем
Что сложного в последнем вопросе?
Потому что тебе так хочется? Или по какой причине бэкенд не должен распределять нагрузку между сервером и клиентами?
Сортировку как-нибудь осилят. Ворочить DOM куда тяжелее и ниче.
>в кофеварках по нескольку гигабайт оперативы
>думает что смартфон напрягется от сортировки структуры размером в несколько сотен
Вот мы и пришли к тому с чего начали - чтобы смартфон не напрягся, фронтендер должен знать алгоритмы.
Агнулир
А ты уверен, что ты знаешь, как устроены замыкания в жс? Сможешь рассказать, как устроено наследование областей видимости, какие именно переменные импортируются и экспортируются в каждое замыкание и при каких обстоятельствах могут быть исключения? Я вот думаю, что вояд ли, в отличии от человнка, который уже осилил фиеализаторы - которые не то что в жс какая-то нишевая вещь, а это такая де базовая абстракция во всем программировании, как и замыкания. Не понимаю чего вы тут сложного нашли. Но спасибо тому анону, показал хороший срез местного контингента.
>чтобы смартфон не напрягся, фронтендер должен знать алгоритмы.
Как это поможет разгрузить смартфон?
>фронтендер напишет алгоритм меньшей сложности
>смартфону придётся задействовать меньше вычислительной мощности
>думает что смартфон напрягется от сортировки структуры размером в несколько сотен
Зависит от процессора, а они в смартфонах как 1/10 от десктопа. Из-за веб-макак ебаных, которые все делают через жопу да еще и на стороне клиента, каждый второй сайт на смартфоне тормозит, вплоть до подвисаний на полминуты.
Словами
Я со времен учебы не решал математические уравнения, вообще. Но до сих пор знаю как это делается. Хотя прошло больше 10 лет. Как можно забыть то, что ты понял?
Это ответ уровня "хорошо прогать и не писать говнокода". Давай типа практическую задачу с тобой обсудим. Есть морда - большой на 200 позиций список конских дилдаков в секс-шопе на продажу. Пока он грузиться с бека должен отображаться красивый спинер загрузки (т.е. колесико загрузки) нарисованный десигнером. По итогу запуска морды оказалось что смартфон с 1 гектар озу давиться. Как ты предлагаешь это с помощью алгоритмов пофиксить?
Тормозит обычно dom reflow и дикое количество css. Ну еще сотня обработчиков на onscroll, onmousemove. Нагрузить js'ом еще не каждый сумеет.
Ага. Но знать алгоритмы для этого нужно? Нет. Просто крупных относительно хороших курсов даже хватит. Да даже видосов на ютубе.
>И каким это образом влияет на то что от фронтендера требуют знаний алгоритмов?
Таким, что алгоритмы могут на порядок увеличить производительность. Я не про верчение деревьев, а про базовые вещи - знать сложность алгоритмов и часто используемые структуры данных.
Пиздеж.
Мань, ты не в ту сторону воюешь, я тоже говорю, что алгоритмы знать нужно и их спрашивают на собеседованиях. Всё как раз и началось с вскукарека дебила который сказал, что алгоритмы только в яндексе спрашивают, что было правдой, но только лет 5 назад.
Ну да, знать алгоритмов для сортировки, фильтрации и хранения данных не нужно. Самому то не смешно?
А зачем? Ну вот зачем? Чтобы применять map find sort ты считаешь что нужно знать алгоритмы?
Bump
Если ты понимаешь, что такое вычислительная сложность, умеешь прикидывать на разных алгоритмах, когда и что оптимально, тогда ты и в прикладных задачах будешь об этом задумываться.
Если кодер только знает функции sort, select и т.п., для него нормально будет там что-то поштучно вставлять или вынимать куда-нибудь, не понимая, что на каждую такую операцию приходится дикий объём по перестройке дерева и т.п.
То есть смысл в том, что человек, понимающий, что такое сложность, может думать такими категориями. А обычный кодер просто не умеет. Вообще. В том числе для этого и надо изучать алгоритмы всем, чтобы понимать, что ты делаешь и во что это обходится.
Ближе к делу:
Тесты в жс - Jest или Моча? Почему?
Как валидируют там запросы на запись?
Пример:
var playersRef = firebase.database().ref("players/");
playersRef.set ({
John: {
number: 1,
age: 30
},
});
Вот этой операцией set я перетру все сохраненные данные.
Как ее запретить, а оставить только update???
Что значит запретить? Ты что хочешь-то в итоге?
>>70152
>Глубокие знания нельзя получить, не работая практически.
>>70166
>Какое может быть глубокое теоретическое _знание_, блядь, у джуна?
From American Heritage Dictionary:
theory n. pl. theories: 1. a. Systematically organized knowledge applicable in a relatively wide variety of circumstances, especially a system of assumptions, accepted principles, and rules of procedure devised to analyze, predict, or otherwise explain the nature or behavior of a specified set of phenomena. b. Such knowledge or such a system. 2. Abstract reasoning; speculation. 3. A belief that guides action or assists comprehension or judgment: rose early, on the theory that morning efforts are best; the modern architectural theory that less is more. 4. An assumption based on limited information or knowledge; a conjecture.
Ты неправильно используешь слово "теоретическое". Теория, как указано в вышеприведенном определении, это систематически организованное знание чего-либо. Глубокое знание языка во время работы с фронтом, дроча кнопочки и формочки вебсайтов, ты не получишь. Максимум будешь гуглить стэковерфлоу, пытаясь понять почему функция возвращает undefined, не понимая разницы между expression и statement.
>мам, я задаю вопросы из другого языка и просто из маняфантазий
>@
>мам, я их затролил скажи им
Хуиги. Делай что-нибудь. Никаие книги и курсы не дадут такого эффекта, как практика.
Итишной измерение человекочасов на итоговый продукт во фронте является единственным
Ставь create-react-app, а лучше ангуларовский бандлер, и серь рожу для чатиков. Потом к фронту прикрути какой-нибудь экспресс, а лучше нест, и заливать на гитхаб
Всё
Что мне делать если я сделал create-react-app, высрал базовую приложуху для работы с апи, прикрутил к ней экспресс?
Из хуков использовал только юз стейт и реакт квери. И один раз юз эффект, лол
другой_вкатывальщик
А я думал редакс очоба...
У большинства тех, кто обоссался здесь при виде заданий для ждунов на знание собственного языка, как раз таки твой "практический опыт".
Не программисты, а чмошники, грязь подноготная.
Ну поздравляю ёпты жс открыл тебе дверь в настоящее программирование, поскольку уже имеешь продукт, который можно кому-нибудь втюхать
Большая часть индусов уже на этой стадии пиздуют на фриланс биржи
Ну а хули тебе делать зависит от твоих целей
Запили очередной женерик екоммерс сайт, исопльзуя штуки, которые не использовал (углубись во фреймворки \ начни щупать фигму \ научись писать тесты \ пользуйся гитом \ заворачивай всё в контейнеры)
Слово "context" на пике совершенно лишнее.
При чем тут питон? Там были задачи чисто по жс.
Какие подводные?
Всем пахую мне кажется, по ходу дела разберешься
var module = {
loading: false,
loadfile: () => { this.loading = true },
onload: () => { this.loading = false },
onerror: () => {this.loading = false }
}
В этом модуле есть асинхронный xml запрос.Я хочу понять как отлавливать onerror или onload вне модуля.
Нужно чтобы loadfile возвращал промис или нужно передавать callback в onload и onerror?
Да, школу лучше закончить
Будешь выглядеть как человек который употребляет слова, значения которых не понимает.
Нихуя не понятно, что ты реально хочешь. Сбрось весь код, а не обрывок. У xml есть два своих евента, на ошибку и получение. Зачем тебе еще что-то?
Да это понятно, что у него есть два евента. Я их испоьльзую чтобы менять переменные module. То есть ивенты работают с самим модулем и не трогают ничего снаружи. Но снаружи мне тоже нужно что-то делать в случае если случилась ошибка.
Опять ты со своим хромом и каунтом. Уже погуглил браузеры?
>Напишите ленивые map, reduce, filter, every, some, чтобы для цепочки вызовов этих методов, фактически происходила только одна итерация
Набор слов, лол
>как отлавливать onerror или onload вне модуля.
Передавать в него коллбеки.
Вообще, твой "модуль" - это именно что класс (сервис), а не модуль.
Разделение в JS довольно условно, но, тем не менее.
если я правильно тебя понял: если речь идет про ноду, то ты можешь создать свои кастомные ивенты, и вызывать их внутри ивента xml , то что подписанно будет при выстреливании ивента знать о выполнение или ошибке.
Если речь идет про js фреймворки react/angular/vue и т д, то гугли state managment. Если вдруг речь идет про чистый JS, то тут можно накатить чистый редакс
Да, набор слов. Из набора слов получаются предложения. Теперь посмотри на ютубе, как понимать семантику.
Кловен не затрагивай темы в которые ни ногой
В треде большая часть вкатывальщики, только наводишь смуту своим пердежом
>чистый редакс
Хуякс.
Vue можно накатить на чистый жс.
В том числе и просто в роли диспетчера событий.
Так ещё лучше.
Я сначала просто подумал, что промис ты уже сделал, и тебе помимо этого ещё что-то надо, но, сейчас прочитал повнимательнее.
>- Напишите ленивые map, reduce, filter, every, some, чтобы для цепочки вызовов этих методов, фактически происходила только одна итерация
https://jsfiddle.net/taknh8u4/
every и some уже сами допишете
Но ведь это ты в эти темы ни ногой. Ты понятия не имеешь, что означает вышеобозначенный "набор слов", ты на уровне маленького ребёнка, не умеющего читать, не способного воспринимать информацию. Это тебе нужно завалить своё киберебало.
>вопросы чисто на знание языка и его объектной модели
Чета уровня напиши простейшую реализацию редакса, ну там же 7 строчек, или apply, или каррируй функцию по памяти
>каррируй функцию по памяти
А тебе справочник для имплементации каррирования нужен, или стак оверфлоу?
ПЕРЕКАТ >>1870885 (OP)
ПЕРЕКАТ >>1870885 (OP)
ПЕРЕКАТ >>1870885 (OP)
ПЕРЕКАТ >>1870885 (OP)
ПЕРЕКАТ >>1870885 (OP)
ПЕРЕКАТ >>1870885 (OP)
ПЕРЕКАТ >>1870885 (OP)
ПЕРЕКАТ >>1870885 (OP)
ПЕРЕКАТ >>1870885 (OP)
DRY
>>70827
Кстати да, забыл что так тоже можно. Но только тогда не const n, всё-таки let
С другой стороны, когда while (true) сразу видно, что цикл потенциально бесконечный
>>70833
Если бы ты IRL на собесе так выебывался, то сразу стало бы понятно, что в вашей компании работают одни чсвшные мудаки
А если этот код планируется использовать несколько раз, то мне нужно обернуть его в функцию? И куда эту функцию девать то?
module.loadFile().then(
doSomething(file)
)
for (const x of y) выглядит как будто x не меняется от итерации к итерации, когда оно меняется
Представь, что тебе надо вытащить x за пределы области видимости цикла. С let такое прокатывает: let x ; for (x of y) { .. }, с const - нет. Поэтому если переменная принимает разные значения при итерировании, то логичнее писать let
>Представь
Ну иногда надо переменные переприсваивать, теперь и const не нужен? Ты слишком мудришь, анон. И да for (_ of _) - говнокод
>Если бы ты ...
Чувак, why so serious?
Просто я ожидал крутого кунфу, и был несколько разочарован, увидев генераторы (которые и дают ленивость). Т.е. "написать lazy" превратилось в "использовать lazy".
Но, это я исхожу из предположения, что ты и ставил эту задачу, а потом сам же и показал решение. Если же ты просто решил - то всё вообще охуенно.
>Объявлять переменную вне for of - говнокод
Теперь представь, что надо выполнить какое-то действие, если цикл ни разу не был выполнен. Вынос переменной вне цикла это решает, например
let x
for (x of y) { ... }
if (typeof x === 'undefined') {
// Роскоши в виде for (...) { ... } else { ... } в JS ещё не завезли
}
Тебя бьют за лишние переменные? Добавь флаг какой-нибудь. То что ты пишешь на js ещё не обязывает тебя писать wtf-код
> Добавь флаг какой-нибудь
let forOk = false
for (const x of y) {
forOk = true
// ...
}
if (!forOk) {
// ещё более говнокодисто
}
Пости на говнокод, пусть специалисты поголосуют
Эй ОРАЛЬНИК, кто потом за тобой говнокод разгребать будет. Пушкин?
пчел
Вы видите копию треда, сохраненную 22 апреля 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.