Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: что я хочу получить, что я для этого делаю, что я вместо этого получаю. Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Ты СОВЕРШЕННО не понимаешь в чем суть JavaScript. JavaScript это не раби «о, привет чуваки, зацените я слепил три гема и получился блог, гыгы». JavaScript это не псевдофункциональный код питона. JavaScript это не C#, Джава или ПХП. JavaScript это язык, на котором люди могут побыть программистами-творцами — ужасными, поехавшими, ненормальными чудовищами, которыми они на самом деле и являются. Добавили промисы, а мы смеемся. Присыпали сахаром прототипы и назвали классами, а мы смеемся. Три тимлида прыгнули с крыши 16-этажного дома, взявшись за руки после попытки разгрести код с тридцатикратной вложенностью, а мы смеемся и просим еще. Прототипы, колбэки, асинки/авайты — мы смеемся. Модульность, асинхронность, непрерывная интеграция, юнит-тестирование, key-value хранилища, два десятка фреймворков на любой вкус — мы смеемся. GitHub позволил писать приложения на десктопе, запихивая в каждый хеллоуворлд отдельный браузер — мы смеемся. Мы бездушно подпишемся под чем угодно, наши предпочтения не основаны на здравом смысле, бесцельные споры — наша стихия, мы — истинное лицо современного IT.
Скажите, правильно ли я понял суть работы Редакса:
Сначала создаешь какой-нибудь инишл стейт, он может быть вообще пустым. Потом выполняется какой-нибудь экшн, внутри него может происходить все что угодно, главное, чтобы после его исполнения ты передавл в диспатч ТИП действия, и объект(т.е. по сути результат работы экшена), а сам диспатч уже передает редьюсеру этот самый объект в соответствующий ТИП и в соотвествующее поле payload. И потом Редух просто происзводит перезапись глобал стейта и всё? Я только не пойму, а нахуя нужен этот самый ТИП? По тригерру этого типа потом происходит перерисовка данных на странице? И если бы тип был один единственный на всё, то все, что хранится в сторе каждый раз перерисовывало бы все компоненты которые от него тригерятся? Сильно не бейте только пожалуйста.
>>1867534 Ну ты даже в 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/
>>1867543 Блять, как же я проигрываю с этого зоопарка хуйни связанной с реактом. Редакс, экшн, редюсер, хуки, глобал стейт, зачем вам всё это? Попробуй ангуляр и поймешь, что рект забивал тебе голову ненужным дерьмом.
>>1867543 >Сначала создаешь какой-нибудь инишл стейт, он может быть вообще пустым. Нет. Ты ничего не создаешь, ты просто прописываешь дефолтное значение, которое возвращает редьюсер, а при инициализации редакс диспатчит пустой экшен с типом @@INIT и тем самым собирает начальный стейт.
>Потом выполняется какой-нибудь экшн Диспатчится, а не выполняется.
>и объект(т.е. по сути результат работы экшена) Чего? Диспатчится только экшен, какой еще результат?
>сам диспатч уже передает редьюсеру этот самый объект в соответствующий ТИП и в соотвествующее поле payload. Это тебе приснилось.
>И потом Редух просто происзводит перезапись глобал стейта и всё? Чому же все. Еще рассылает всем подписанным на него компонентам сообщение что стейт обновился.
>Я только не пойму, а нахуя нужен этот самый ТИП? Чтобы в редьюсере понять что вообще делать с экшеном.
>По тригерру этого типа потом происходит перерисовка данных на странице? И если бы тип был один единственный на всё, то все, что хранится в сторе каждый раз перерисовывало бы все компоненты которые от него тригерятся? Это все тебе тоже приснилось. Экшен никакого отношения к перерисовке страницы не имеет. Как и редакс в целом, кстати.
Удивительно, конечно, что простая функция (state, action) => nextState может может вызывать столько вопросов.
Сап, аноны. Имеется ли библиотека для вывода комментариев в подходящем стиле? Что я имею в ввиду: у меня есть текст комментария, где присутствуют различные теги, вроде <b></b>, <i></i>, >, и мне нужно, чтобы в комментарии текст, окруженный этим тегом, был жирным, курсивом, или >зеленым.
>>1867574 Всё правильно ты пишешь про Реакт - это реально позорище. Только вот в Ангуляре хуйни ничуть не меньше. Vue - вот Ангуляр здорового человека.
>>1867759 В ангуляре всё просто и понятно. Есть шаблон, есть стили, есть компонент. Нужен глобал стейт - создаешь сервис. Этого набора хватит на любой случай, им удобно пользоваться. А вуе это тот же реакт, только более прилизанный.
>>1867793 Нет, Vue - это именно то, что ты описал как "ангуляр". Кроме сервисов - они оставили это на усмотрение разработчика, решили не делать всеобъемлющий фреймворк.
Но, есть ещё Vuex, который ещё и не надо инжектить в каждый компонент, а достаточно 1 раз прописать в корне. И это вполне канает за сервисы + глобальный стейт.
Vue - это Ангуляр, из которого убрали весь bloat, а то, что осталось - сильно улучшили.
Недостаток - Vuex - не типизированный. Но, если мне будет нужен типизированный механизм сервисов - я напишу его сам, для меня это проще, чем выбирать кукурузные зёрнышки из кучи ангуляро-говна.
С реактом у Vue нет практически ничего общего, кроме идеи о том, что есть лёгкие компоненты, которые имеют пропсы и стейт. И есть однонаправленная передача данных parent-child, а обратно идут события. Но, реализация этой идеи совершенно иная.
>>1867793 >>1867798 Добавлю ещё, что Ангуляр - это такой готовый набор кубиков на все случаи жизни. Это очень большой набор. И нужно очень много времени, чтобы даже просто познакомиться с ним.
А Vue - это 3D принтер, который быстро печатает тебе любые кубики под твою задачу.
Что лучше? Это зависит и от задачи, и от того, кто ты, и как устроен твой мозг, и какой у тебя предыдущий опыт проектирования.
В прошлом треде был вопрос, как скрывать части формы, сделанной через FormGroup (>>1866573 →). В Vue такой вопрос просто не возник бы, по причине отсутствия FormGroup и прочей подобной машинерии. Это всё делается проще и быстрее.
>>1867759 Реакт — не фреймворк, а библиотека, на голом реакте писать не имеет смысла. Vue и angular — фреймворки, их правильнее сравнивать с каким-нибудь фреймворком на реакте, например с next. Vue — говно, ангуляр норм, но здоровенный. А надо писать на нативе безо всей этой ебанины, тогда рок, тогда блюз в стране пойдёт.
>>1867845 Ты талант. Умудрился вместить в очень короткий коммент полный набор долбоёбских стереотипов в сочетании с банальностью про то, что реакт - не фреймворк. И vue говно, и на нативе надо писать, лол.
Чувак, я в курсе про то, что такое реакт. И, когда я говорю "реакт", то имею в виду всю современную экосистему вокруг реакта. И это всё - именно, что позорище. Гейпарад, натурально. Новое платье короля.
Маленькая библиотека, построенная на немасштабируемых подходах, породила вокруг себя кучу сумбурной немасштабируемой хуйни, разваливающейся под собственным весом.
Причём, этим долбоёбам ещё в 2015-м говрорили, что не надо мешать водку с портвейном html и javascript, а они - "коктейль, коктейль", лол.
Как вообще обычно функционируют веб-приложения написанный на ванильном жс? Я видел только одно. Это одностраничное приложение, функции вызывались как методы объектов (было создано несколько крупных объектов в зависимости от назначения) - там была манипуляция с DOM и отсылка запросов на бэк, то есть основная бизнес-логика, помимо этого был глобальный массив с объектами VisitSession, для которого был обозначен прототип и стало быть создавалась куча объектов со схожим интерфейсом. В каждой такой VisitSession хранилась информация о странице, которую надо было отрисовать, когда юзер проводил некоторые действия на странице, то вынималась VisitSession с нужным айдишником и эта информация передавалась в методы тех объектов, отвечавшие за бизнес-логику
>>1867897 >ванильном жс Да нормально совершенно, основная логика всё равно в классах самописных. Работа с DOM не сложна, чтобы html генерить можно nunjucks использовать, точно так же, как это на бэкенде делается.
Заставить фреймворки делать что-то сильно не стандартное то ещё удовольствие.
>>1867950 А мы вам - нет, лол. Они действительно могут функционировать как угодно.
>>1867942 Чувак, я тебе уже отвечал: >>1867508 → Или ты хочешь, чтобы я это ещё и сделал за тебя? Там нехуй делать, что на Vue, что на чём угодно вообще.
>>1867892 Ну, если под "нативом" мы имеем в виду "чистый жс" - то это - чистый долбоебизм. А почему - потому же, почему не пишут на голом ассемблере или в машинных кодах, или даже на "чистом" Си, а юзают библиотеки, вот почему.
>>1867985 Читая книгу - ты думаешь мозгом. Включаешь фантазию. А смотря видео - нет. И читать книгу - быстрее, чем смотреть видео. И ты можешь получать информацию в удобном тебе темпе.
Вообще, сильно возросшее в последние годы число долбоёбов (в мире в целом) - это результат того, что люди смотрят кино вместо чтения книг.
>>1867987 Не, я имел ввиду апи браузеров, не язык. На жэ писать не надо. Библиотеки использовать можно, а вот фреймворки ограничивают. >>1867989 Нет, это ты, смотря видео, не думаешь мозгом, и не включаешь фантазию. А я думаю, и включаю. Дядя Боб охуенно понятно рассказывает содержание СВОИХ ЖЕ книг. Немчинский тоже не плохо. Вся эта тема про "читай, а не смотри" пошла от старших поколений, у которых смотреть было нечего.
>>1867987 Так используй библиотеки, в чём проблема? Nunjucks например, и разное другое.
JS высокоуровневый язык, если не пытаться поддерживать ископаемое говно в духе IE11 (2013 год, на минуточку), а использовать современные стандарты JS, то писать очень даже комфортно. Без проблем делать сложную логику.
>>1868024 Какие ещё нахуй "шаблоны"? Паттерны, что-ли? Посмотри в словаре, что значит слово pattern. Желательно в Оксфордском, а не в англо-русском.
Это русские надмозги его упорно переводят как "шаблон", им похуй вообще. В русском языке слово "паттерн" появилось сильно раньше, чем широкие массы населения начали программировать, а деревенские долбоёбы начали переводить книги про это.
>>1868052 >Желательно в Оксфордском Сорян, у меня нет оксфордского словаря, дай ссылку, если не сложно. Гугл транслейт и яндекс переводчик оба переводят "pattern" как "шаблон". И заодно, если не затруднит, на этимологию в русском, а то у Ожегова тоже нет "паттерна". Может, как-то не так ищу... >таки, в основном про ООП А только ООП и нужно.
>>1868012 Паттерны там на классик ооп. Очевидно, если ты не пишешь на TS в классик ооп стиле - практически бесполезно. Клин код - занюхивание своего пердежа во время тупой дрочки на какое-то из направлений. Страничная рофляночка "worse is better" 30 лет назад обоссала mitшные инфоцыганские рожи, но икспертные мантры пиарщиков продолжают цеплять вкатунов и делюженол дрочил.
>>1868069 >у Ожегова В Слове о Полку Игореве посмотри ещё, лол.
В русском языке это до программирования использовалось в контексте психологии и психотерапии - паттерны поведения и т.п.
Гугл транслейт да, так переводит. Потому, что широким массам быдла так понятнее. Но, если ты нажмёшь так такие стрелочки <--> (реверс перевод), то увидишь, что слово "шаблон" он переводит как template, почему-то.
По этой же причине так переводят переводчики. Но, мне кажется, было бы лучше просто пояснять это в сноске.
>>1868099 "the regular way in which something happens or is done" — это и есть шаблон. В словосочетании "паттерны поведения" просто поленились переводить, по-русски будет "шаблоны поведения".
Как же я вас всех ненавижу. Мерзкие вкатуны. Из-за ваc я не могу вкатить, вы мешаете. Всегда найдется задротище, который из дома не выходит и салом уже закрыл все надписи на своей клавиатуре, а жопой стер обивку стула В следующий раз, когда увижу вас шарящими своими мышками в фигма макете - выебу ваших мам.
>>1868101 Там смысловые противоречия в тексте, ты их видишь? "Шаблон не являтеся законченным образцом ...". Но, "шаблон" именно что является законченным образцом, штампом.
Да, разница достаточно тонкая (а русский язык вообще не столь тонок), поэтому, чтобы всем было понятно, переводят как "шаблон", ибо это слово все выучили ещё в начале 20 века. Но, у нас же тут типа профессионалы собрались, да? И мы можем себе позволить употреблять правильные слова?
>>1868123 Это всё началось 100 лет назад, со школ рабочей молодёжи и прочего подобного. Когда надо было резко окультурить 100 миллионов мужиков. Пришлось опустить планку пониже, иначе не получалось.
>>1868117 Если ты уверен в своей правоте докажи это внеся правки в википедию. Все, что тебе нужно - это аргументировать свою правоту, не так ли? В противном случае твои кукареки не имеют смысла и правильный термин остается - шаблон, ( паттерн всего-лишь его англицизм), а ты остаешься долбоебом в собственном манямире.
Слово "шаблон" - немецкого происхождения (как и многие технические слова в русском языке). Зайдите в гугл транслейт, и сделайте перевод с английского на немецкий. template = Schablone (2-е значение) pattern = Schema (2-е значение), Schablone (6-е значение) Т.е. паттерн - это, скорее, схема, чем шаблон. Это достаточно убедительно?
Т.е., эти слова вполне взаимозаменяемы, но, разница есть и она совершенно понятна. Но, в контексте программирования "шаблон" - это такая хуита, на которую накладываются данные и получается результат (т.е. template). А "паттерн" - это паттерн проектирования.
Подозреваю, что такая же тонкая разница есть и в психотерапии, иначе никто бы не стал тащить новое иностранное слово взамен уже имеющегося, и тоже иностранного. Но, читать труды немецких псхотерапевтов в оригинале, и искать доказательства, мне лень.
Почему может быть такое, что у меня в Редаксе обновляется стейт, но компонент не обновляет рендер? Причем в классовых компонентах все работает нормально, а в функциональном я ничего не получают. Т.е. есть изначальное количество страниц : "0", потом туда приходит количество страниц равное 20. Но компонент изначально показывает только "0" и всё. При том что mapStateToProps сделан точно так же как и в других компонентах, с единственным отличием, что все они классовые компоненты, а этот функциональный. Нужно хуки использовать, или у меня что-то не так работает?
Есть массив с двумя объектами. Создал метод массива. Почему если подключить файл в репле ноды, то при вызове метода получаю is not a function? Если выполять как файл, то все в порядке. Кроме того такую же ошибку выдает на выражение (x == 2) && (y == 3)
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); };
Какие хорошие отладчики для Ангуляра посоветует? Если выбрасывается Exception то показывается стектрейс с ванильным жс - то есть с теми файлами, в которые скомпилился TypeScript, есть ли возможность отслеживания ошибки прямиком в ангуляровских файлах?
Хелп ми аут броус, нуб репортин ин У меня есть два вопроса: 1. Нахуя создают Aux или Auxiliary обертку, если можно просто оберунуть дивом при рендере jsx? 2. Что значит при импорте "./Hui/Hui" вот эта одна точка со слешем? Понятно что две значит, а одна что? На один уровень выше? Та же папка?
>>1868375 Блядь, а можно как-то метод или функцию какую-то впилить в расширение браузера, чтобы запись на диск и чтение с диска поддерживало, как на NodeJS, но client-side?
>>1867808 >Пиздец! У вас в массив можно что угодно засунуть! В JS массив - объект. Примитивы тоже объекты. Не забывай, что JS основан на семантике Scheme (Лисп). В Лиспе все есть объект. Этим он и хорош.
Играю в одну игру, там при старте приходится выполнять определенные действия (150+ пунктов в списке). Захотелось вот на react + redux написать приложуху, которая бы выводила список, считала автоматически лвл исходя из того сколько действий было сделано. Позволяла бы "чекать" пункты, добавлять свои пункты, удалять существующие. Короче я думаю так: в инишиал стейт засунуть весь готовый список, который представляет из себя массив объектов, каждый объект - строка из таблицы. Еще засунуть сумму экспы (0) и пользовательские пункты (пустой массив). А дальше вы наверное подумаете, что я очень тупой, но как лучше сделать вот такую хуйню: Пользователь добавляет в список между 1м и 2м свой пункт, или удаляет 10й пункт. Как мне лучше "подвинуть" весь массив так, чтобы айди у каждой строки перезаписались на новые? В цикле проходить по всему массиву, чекать у объектов свойство айди, сравнивать с предыдущим и следующим и изменять?
>>1868426 А как я узнаю блять, какой там предыдущий будет, а какой следующий, если пользовательские пункты залетают в отдельный массив? Чет сложно блять. А даже если в один, то как?
>>1868393 > вскукарек хачкель-дауна Даже нет смысла это комментировать, потому что вся современная индустрия информационных технологий так или иначе опирается на жаваскрипт, поскольку это самый универсальный язык, даже более универсальный чем Java, в плане охвата платформ
>>1868442 >вся современная индустрия информационных технологий так или иначе опирается на жаваскрипт Пиздец. Это как слушать ватана, утверждающего что весь мир живет на достижениях Россиюшки
>>1868380 Чтобы влить туда 200 метров прона, вместо радужных таблиц, и потихоньку выкачивать нужный прон, при отдаче с клиентов. >>1868383 Спасибо, знатно подрочил.
>>1868481 Это не кортеж. Кортеж нужен для конкретных задач. Например, вернуть из функции несколько аргументов в ожидаемом виде, или служить ключём для элементов словаря.
Если ты наделяешь его дополнительными свойствами, ты не облегчаешь работу, а создаёшь дополнительные проблемы.
Поэтому и нужны разные типы - кортежи, списки (aka нумерованные списки), словари.
Ничего этого в JS, впрочем, в нормальном виде нет. И это проблема JS.
>>1868488 Тут ещё такой момент, что кортеж не имеет смысла без типизации. Потому, что это такой ad-hoc класс. Всегда удивлялся, нахуа они в питоне их сделали.
>>1868501 >нахуа они в питоне их сделали. Чтобы не писать сложно тогда, когда можно написать просто. Плюс для производительности.
Вот очень критично, когда из функции несколько значений возвращаешь, чтобы лишнее не писать. Даже в статически типизированном Го это поддержано, возврат нескольких значений это те же кортежи без декларации.
>>1868513 Смысл делать лишние декларации и лишние слои абстракции, чтобы после этого ещё уронить производительность?
Кортежи в питоне работают очень быстро, примерно как одиночные значения. Очень быстрые операции свёртки-развёртки кортежа. Если ты используешь класс вместо кортежа, то под капотом делается очень много лишних операций, поскольку обращение к части кортежа это уже реально обращение к словарю и т.п. Это реально криво.
При этом кортежи в некоторых задачах используются очень-очень активно.
>>1868501 В питоне есть namedtuple (догадайся что это), а также есть dataclasses - типизация и там и там есть. Если нужно сделать форсированный чек с типами то надо накатить сторонних либ, правда в динамикодрисне это в любом случае не имеет смысла
>>1868535 namedtuple фактически обычный объект, а не tuple. И они значительно более тормознутые по сравнению с обычными кортежами.
Немного тупиковая ветвь, проще уж или просто объекты создавать, или же работать с обычными кортежами, при этом можно в функции задекларировать возвращаемый тип, что работает и как документация, и отловит какие-то ошибки анализаторами, при этом без накладных расходов в рантайме.
>>1868541 >Нахуй типизировать динамический язык? Самое главное, что ты типизируешь там, где актуально - библиотечные функции, опасные места. Что работает, как документация.
И ты можешь не типизировать там, где тебе требуется динамическое поведение, либо там, где в этом нет необходимости, какой-нибудь внутренний очевидный код, который лучше разгрузить от всего лишнего.
>>1868295 GetType по твоему откуда тип берет, мань? Храни по адресу void структуру с типом, на здоровье. Можешь тип в самом указателе зашифровать. Хотя, нет. Не сможешь. Ты же тупой.
Гайз, как вы работаете с изображениями при верстке, вот допустим вы взяли из дизайна изображение png которое весит мегабайт, какие вы тулы используете что бы его порезать под все разрешения и уменьшить размер? Мне бы какую-нибудь статейку, что бы понимать как сжимать под какое разрешение экрана будет лучше всего, включая ретину. Сэнкз.
>>1868575 Насколько я понял из беглого знакомства, namedtuple - это не tuple, а такой dataclass для бедных из Python 2. С появлением нормальных dataclass'ов он стал не нужен.
>>1868652 Главная фишка namedtuple это совместимость с обычными кортежами по синтаксису, то есть ты можешь по-прежнему писать x, y = named_tuple и это корректно будет работать. Не важно, named_tuple это просто tuple, или namedtuple
А самая главная фишка tuple, это что ты так может возвращать несколько значений из функции, чего очень-очень не хватает в том же JS. Вторая фишка это индексация в словарях, но это не так критично. В JS для этого просто строки-ключи из нескольких значений собирают, криво, но работает вполне себе.
Именно для структур данных namedtuple неудобны, громоздки и ограничены. Все придумывали себе велосипеды разных конструкций, в принципе не сложно. Фактически dataclasses лишь один из вариантов таких велосипедов со стороны, но внесённый в стандартную библиотеку.
При этом они с tuple несовместимы, хотя ты dataclass можешь легко преобразовать к кортежу, и заполнять dataclass элементарно из кортежа. Решение новое, вошло только в версии 3.7, что вышла летом 2018.
В JS объекты в принципе ближе к dataclass питона из коробки просто, но вот кортежей не хватает очень сильно.
>>1868867 >>1868395 >Современный веб по сложности превосходит все остальное.
Вот двачую блядь, главная ловушка простоты JS состоит как раз в том, что сам по себе язык ты можешь вообще нахуй не учить, и при это все равно потратить кучу времени на изучение всего того, что находится вокруг него
Есть редакс, есть данные с сервера, есть пагинация. Получаешь количество страниц с сервера, делаешь из них массив, и дальше из этого массива делается пагинация. В данном примере переключение страниц (setPageNumber) ничего не делает, просто выводит текущую страницу в консоль, это просто временная функция.
Когда в этот компонент я руками вписываю в movieList.total_pages количество страниц, пагинация работает, т.е. отображается вписанное количество страниц. Когда данные приходят в виде пропсов, но без редакса, все работает, у пагинации есть реальное кол-во страниц, т.е. тот же самый код работает правильно. Само количество страниц тоже обновляется, если просто {movieList.total_pages} выводить в виде текста на страницу или в консоль. Ну и сами данные реально тоже обновляются, когда они приходят с сервера, в логе показано сколько страниц пришло после SUCCESS. Самый пиздец, что если я в webstorm где-то в коде просто добавлю пустую строку, пагинация получает новое количество страниц, и начинает их отображать, видимо это просто такой хардрелоад компонента с новыми данными, так что это не важно.
Проблема в том, что в initialstate у меня total_pages изначально равно пустой строке :"". Компонент получает эту пустую строку, пустой массив разумеется не отображает ни единой страницы и ВСЁ, больше он не хочет перерисовываться с новыми данными. Видимо проблема где-то в useEffect, что он ничего не хочет делать второй раз с новыми данными. Я просто недавно начал учиться только и не понимаю что это за хуйня. Пробовал переписать компонент полностью на классовый, там проблема была та же самая. Пробовал передавать данные не через хук, а черезе connect, по классике, там все точно так же, разницы никакой. Видимо где-то проблема у useEffect, где? Сразу извиняюсь, что хуйню понаписал, но хочется как-то добить эту задачу и получить skills
>>1869017 Пиздец закостылил, просто сделал так, что компонент получает данные от родительского компонента, и если данные еще не пришли, то рисует null, а когда пришли, рисует этот компонент с данными. Хоть это и решило проблему, я все равно не понял почему он эти же самые данные сам у себя обновлять не хочет?
>>1869017 Алсо, я в твоем коде особо не разбирался, там дебри какие-то, но тебе useEffect-то нужен вообще? Ты там зачем-то императивно меняешь номер выбранной кнопки, хотя это наверняка можно вычислить из имеющихся данных. У тебя же номер страницы в сторе или в урле хранится, не?
>>1869022 Я не понимаю как поставить его - Note: If you're using Create React App, please use react-scripts >= 3 instead of adding it directly. ? Я через npm install все ставлю, блядь еще после этого кто-то будет говорить, что js просто язык, столько хуетристики, которая даже с языком не связана
>>1869017 >>1869030 Ну и мне консолька все показывает React Hook useEffect has a missing dependency: 'arrOfCurrButtons', только я не могу включить другой хук в useEffect же, заебала эта ошибка
>>1869030 В JS очень много молодых людей. Тот же Абрамов, например, и все его друзья. Посмотрите на средний возраст авторов книг по реакту - он не больше 25, я думаю.
И большинство из них не имеют опыта серьёзного программирования вне JS экосистемы. Математику выучили, и вперёд. У них мозг ещё не сформировался, а они уже учат других жить. Создают opinionated, блядь, фреймворки.
Какую, архитектуру они могут создать? Правильно, только такую, которая падает под собственной тяжестью. Ну, и вот.
>>1869030 >>1869017 Язык это язык, остально придумали непойми кто. Ты можешь просто это говно не использовать. Мне не нравится реакт, я не использую его.
>>1869037 Ты абсолютно прав. Один хакер переписал сетевые модули для ноды. Сокеты и более верхнеуровневые абстракции. Нода стала на его ноуте держать 2 миллиона вебсокет соединений. Памяти жрала всего ничего для такой емкости. Все потому, что опыт. В JS экосистеме к сожалению почти только один юнцы. Ссылки на того чувака ниже. Почитай и другие его статьи на медиуме. Он на рапсбери миллион вебсокет соединений захерачил. Еще он переписал сериализатор json в Go. Его версия быстрее что то вроде в 3-5 раз.
>>1869053 а ещё он сделал hmr. Он же сам пишет в био на твитере - не создатель реакта, просто чувак очень медийный и умеет инетерсно писать всякую хуету.
>>1869032 И что тебе мешает добавить эту переменную в зависимости? Если после этого будет бесконечный цикл рендеров — поздравляю, твоя логика говно.
>Note: If you're using Create React App, please use react-scripts >= 3 instead of adding it directly. Что в этой фразе неясного? С какого-то момента хук включили в CRA.
>>1869093 node-sass это плюсовая либа и под твою ОС нет готовой скомпиленной версии. Как это решать я хз, это одна из причин почему я давно съебал с sass.
>>1869107 >Что в этой фразе неясного? С какого-то момента хук включили в CRA. Я не понимаю что значит use react-scripts, там не показано что и куда вписать в этом случае, осталньые примеры там для установки через npm, и загуглив я не нашел ничего про такой способ установки/настройки
>>1869124 >react-scripts Это npm-пакет в котором собсна содержится вся начинка CRA. Обновляется, как ни странно, как и все остальные пакеты — через package.json.
>>1869127 Т.е. если у меня react-scripts версии выше 4, то у меня уже установлен этот пакет? У меня он уже подсвечивал проблему с useeffect, но я думал это другое
>>1869138 >Там же пишется правило в подсказке. Конкретно это игнорить и обходить нельзя — в 90% случаев себе же хуже сделаешь. Да, я так в итоге и понял, что хуйню сделал
>>1869146 Он ответил на твой вопрос. Алсо, хз что там у тебя за Aux, сейчас для того чтобы вернуть несколько нод из компонента используют фрагменты — <React.Fragment> или просто <>.
>>1869108 >>1869093 Короче, я почитал лог внимательно и раздуплился. Надо python2. Ток не совсем понятно чего он требует второй некро питухон вместо третьего?
>>1869162 Наверное, потому, что под 3-й питон до сих пор некоторых либ нет.
Вообще, долбоёб Гвидо свой питон чуть не угробил этим мудрым решением выкатить несовместимую 3-ю версию. Удивительно, что он выжил вообще, видимо из-за data sciense, за уши вытащили, практически. Но, тем не менее, позиции он сильно сдал. Я, в итоге, совсем с него слез, например.
>>1869148 Извини за грубость с моей стороны, просто почти все программисты или разработчики, которые мне попадаются - токсичные уебаны, и я не знаю почему. Спасибо за ответ на вопрос.
Уже страшно блять писать что-то, ведь могут доебаться до слова и поднять на смех тебя за малейшую промашку или неточность.
>>1869149 Спасибо. Это я смотрел в курсе какого-то немца, Udemi, он там строит бургер какой-то и, типа, чтобы вместе рендерить два соседствующих нода он пишет stateless component Aux, где просто отдает props.children, а потом оборачивает этим Aux два дива. Я понимаю, что реакт требует обертки, чтобы зарендерить, но нахуя он целый компонент пишет? А также нахуя отдельный хук, если можно в див обернуть эти соседствующие ноды? Я что-то недопонимаю, видать... Учусь
Пикрил - пример применения немцем. Может это какой-то костыль для старых версий реакта?
>>1869171 >Может это какой-то костыль для старых версий реакта? Именно. Я же написал про фрагменты. Это лучше чем div, не нужно создавать отдельную html-ноду. Код на пике выглядит так себе бтв, думаю тебе стоит курс поновее поискать.
>>1869166 >Наверное, потому, что под 3-й питон до сих пор некоторых либ нет. Значит просто либа сдохла, не нужна и никто её не поддерживает. Иначе бы переписали.
>Вообще, долбоёб Гвидо свой питон чуть не угробил этим мудрым решением выкатить несовместимую 3-ю версию. Было дело, причём зачастую на ровном месте, причём не дав механизма для перехода, хотя спустя несколько лет что-то добавили, чтобы упростить миграцию и совместимость. Долбы, это да.
Но это было давно, переход начался 10 лет назад, несколько лет были очень болезненными. Сейчас это уже в прошлом, питон взлетел обратно и сейчас в трендах. Подогнали в язык огромную массу всего необходимого в серьёзно индустрии, современный третий питон это уже совсем другой уровень, чем третья ветка, как-то даже сравнивать несерьёзно.
>>1869183 >это уже совсем другой уровень, чем третья ветка, как-то даже сравнивать несерьёзно. В общем, да. По моим ощущениям, в последние пару лет всё заметно продвинулось в питоне. Даже появилось желание снова что-нибудь на нём сделать.
Ковырял реакт с 2017 чето прямо доставляла хуйня эта но щас сижу представляю как буду пилить свой энтрипейж и понимаю как даже со всеми дропнутами отбитостями типа willrecieveprops и добавленными хуками ебли не уменьшилось Сегодня навернул бы какого-нибудь ангулара или совсем нежсного фронта
>>1869226 Я тоже повелся на крики макак про ангуляр и реакт. Долбоебы нахваливают реакт, потому что популярный и кричат что ангуляр сложный и хуевый, даже не попробовав на практике. На деле всё оказалось наоборот, про реакт теперь как про страшный сон вспоминаю.
Пиздос, пригласили сразу на два собеса, я конечно не реакте запилил пару говнопроектов чуть сложнее тудушки, но я даже жса толком не знаю, я конечно пройду оба интервью, просто посмотреть насколько жестко ебать будут, но вангую что проебусь 100%. Одна из компаний вообще пиздец какая крупная, я даже чет ору немного с этого
>>1869240 Справедливости ради может раньше ангулар и вправду был каким-то хуевым и толком непрописанным С около нулевой базой на реакте я порвал жопу и начал чето лепить за месяц, в ангуларе (4-6 какой-то там вроде) не понял вообще ничего
Пиздец, хром умный. ты только создаёшь инпуты с наводящими именами, а он тебе сам авто подстановку запиливает еще замечал красивый эффект с плавной сменой одной картинки на другую. ( тоже само запиливает)
Делаю чятик на vue. Получаю ввод пользователя в переменную, но как теперь дальше вывести ее как новый независимый параграф на страницу?
К примеру, пользователь что то написал какой то текст в форму, я получил его через v-model. Ок. А как мне теперь создать новый параграф с текстом из этой переменной?
На джава скрипте я бы ебанул document.createElement, а как здесь такое провернуть непонятно.
>>1869338 >как будет по-немецки "купаться"? Также, как и по-русски - разделся, и в воду.
У тебя должны быть параграфы (посты или хуй знает, то там у тебя) в модели - массив. И должен быть шаблон, который разворачивает этот массив, и показывает параграфы.
Ты получил новый парграф, должно возникнуть событие, текст у тебя уже есть в модели, нужно в обработчике события взять этот текст и добавить в модель (массив) параграфов. И, вуаля - он появится.
ИЧСХ, примерно так это делается что на Vue, что на Ангуляре, что на Реакте.
>>1869400 >>1869384 Сложноватонадеюсь пока что, но в целом вижу, что ты добавляешь посты в массив, а потом просто циклом его в параграфами выводишь, правильно?
В принципе, можно даже объектом ебануть, добавить туда помимо текста еще время.
На странице есть скрытый элемент. Есть кнопка. Нажимаю на кнопу - появляется элемент. Содержимое под элементом сдвигается вниз, чтобы освободить место элементу.
Суть в том, что нужно сделать так, чтобы как-бы сдвигалось вверх содержимое над элементом (и обратно, когда скрывается элемент), когда скрытый элемент появляется выше текущего положения страницы. То есть если ты на странице ниже элемента, при добавлении его вверху это не было заметно (содержимое для тебя не двигалось бы).
Единственная идея - двигать viewport через scrollBy при появлении\удалении элемента. Или есть что-то проще?
>>1869439 Суть не в добавлении в массив, а в том что ты это сообщение должен отправлять на сервер. На стороне клиента ты должен получать сообщения от сервера и уже в зависимости от них добавлять что-либо в массив и выводить на экран.
>>1869439 Чего сложновато? Непривычно, может быть? Картинка на экране (html) - снимок состояния модели. Изменил модель - изменилась картинка, хули тут сложного.
Ну и да, на сервер это тоже надо отправлять. Но, судя по твоим вопросам, тебе лучше сначала так сделать. А ещё лучше - TODO list, чтобы понять, что и как. Ты, ведь, не сделал его, а сразу полез чятик лепить, да?
>>1869476 >Ты, ведь, не сделал его, а сразу полез чятик лепить, да? Естественно
>>1869474 >>1869463 Возьму на заметку. Посоветуйте что такого читануть/посмотреть что бы как то плавно все понять, потому что я не знаю за что хвататся со всеми этими стилями, препроцессорами, js, фреймворками, библиотеками итд.
>>1869588 Из движков есть Phaser который за хз сколько лет вышел на хоть отдалённо узабельный без тонны костылей уровень, только перепроверяй, чтобы гайды\экзамполы были к последниму релизу https://phaser.io/examples/v3 На мдн был генерик гайд с канвасами по написанию breakthrough, можешь погуглеть Есть одна изометрическая песочница) на обычном жсе запакованная в nw, даже в стиме вышла и сейчас бесплатная, сорсы можешь глянуть прямо в папке с игрой
Подсмотрел тута у ангулярщиков коллег в проекте для i18n пишут или генирируют какието xlf файлы c переводом на разные языки, какойто лютый XML файл, это что вобще такое, как они их генирируют, есть ли такое для реакта?
Я пока учу фронт на реакте, столкнулся с двумя проблемами:
1. Я не достаточно хорошо знаю чистый js, т.е. его по сути я учил только очень условно и поверхностно, не писал ни единого сайта на нём, а сразу начал учить реакт, пока получается довольно неплохо, могу даже что-то более-менее сложное запилить. Насколько это вообще важно если я все равно могу загуглить нужное решение, посмотреть на гитхабе? Стоит ли посвятить отдельное время изучению чистого js? Особенно взаимодействие его с DOM. Т.е. вопрос здесь исключительно в том, зачем уметь писать на чистом js, если ты на нем вчистую писать все равно не будешь? Ну по крайней мере пока не планирую и ищу работу только по реакту
2. Мне во время создания тестовых проектов часто не хватает бэкенда, у меня есть желание учить ноду, но боюсь что я просто не справлюсь с одновременным изучением сразу двух областей. Собственно вопрос - нода сильно сложная? Я как-то проходил простейший курс, но там совсем основы были по MERN, ничего сложного не делал, буквально принимал запрос и записывал что-то там в mongoDB. Изучить ноду на каком-то базовом уровне это сильно сложнее реакта? Там ведь много ебалы наверняка именно с сетевым окружением, серверами, апишками и т.п.
Я так понимаю хуки можно использовать там, где у тебя не очень много логики в компоненте и всё? Это по сути единственный смысл хуков? Никакой разницы или приемущества между классовыми и функциональными компонентами нет?
>>1869757 1. JS надо знать, DOM API по большому счету можно скипнуть. Хотя там ничего особо сложного нет. И вообще не очень понятно что значит «учить» применительно к API.
2. Нода не сильно сложнее, но ты заебешься с хостингом сервера и бд. Используй публичные API.
>>1869767 Смысл хуков в том, чтобы использовать стейт и сайд-эффекты в функциональных компонентах. Ты можешь продолжать использовать классы, просто функции писать короче.
>>1869793 >не очень понятно что значит «учить» применительно к API. Ну типа работать именно c голым хтмл и жс, вот это всё Но в целом я тебя понял, спасибо.
>>1869794 Вот как раз когда до сайт эффектов доходит, я перекрещиваюсь и переписываю все в классы.
>>1869869 >роцесс деплоя на 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. Например в яндекс, даже на фронт позицию ты без знаний алгоритмов не пройдешь, увы и ах.
>>1869988 Сортировка, обход структур. Всё тоже что и на фронте, ну может требования чуть послабее, зачтут ответ за правильный если сложность алгоритма будет O(n2) при возможной O(n log n)
>>1869999 Если чел на собесе на дефолтного фронта спрашивает алгоритмы, значит он не знает что спросить, а это в свою очередь говорит что в компании нет нормальных спецов на фронте. Все очень просто. Исключение разве что Яндекс где надо отсеивать огромное количество людей.
>>1870003 Ты можешь думать и говорить всё что угодно, но вот работы тебе твои мысли и слова не предоставят, так и будешь на двачах рассуждать о челах на собесе.
>>1869971 Охуенно расписал, схоронил, но тащемта мне не то, чтобы очень много нужно доучивать, т.е. по сути осталось подучить бэк со всей той ебалой, что ты описал, и разумеется как следует задрочить JS. А так видимо я сам того не понимая все изначально сделал правильно и вполне уверенно чувствую себя в реакте и особых проблем с ним не испытываю уже сейчас.
>Например в яндекс, даже на фронт позицию ты без знаний алгоритмов не пройдешь, увы и ах. Ну сейчас фронтенд уже больше на написание приложух похож, так что это понятно.
Я пока только "Грокаем алгоритмы" прочел, есть какие-то особые алгоритмы для фронтендщиковс отставанием в развитии или просто в целом подтягивать знания в этом? Понятно что той книжки маловато будет. Но опять же многое я просто из практики подчерпываю и ковырясь в опенсурсахъ. Особенно паттерны разные оттуда хорошо выучиваются.
>>1870012 >Ну это несерьёзно. Я собирался бугуртеть из-за кч-деревьев
Манюнь, деревья тоже для сортировки можно использовать, а ты и не знал.
>Можно чего-нибудь для примера?
Чего тебе для примера? Любую структуру которая приходит тебе с сервера нужно обходить и делать это оптимально возможным способом.
Никто тебе на бэке не будет сортировать ответы от сторонних API, так как нет смысла тратить ресурсы сервера, когда сортировку можно сделать на стороне клиента. Максимум что сделают на бэке, так это уберут неиспользуемые данные.
>>1870012 > >обход структур > Можно чего-нибудь для примера? Ну рекурсивно json отривовать с н-вложеностью. Такое довольно часто встречается. Если рисуешь на канвасе или вообще 3д используешь - там и деревья балансить может придется.
>>1870077 >нормальные вопросы для верификации опыта выше туду? - что такое browser reflow - что такое function hoisting - как сделать замыкание - чем отличается XHR от fetch - CORS/CSRF
- Напишите аналог функции console.count но вовзращающая число в виде результата, а не выводящая его в консоль - Напишите ленивые map, reduce, filter, every, some, чтобы для цепочки вызовов этих методов, фактически происходила только одна итерация - Напишите range(start, end, step) где step может быть нецелым, start и end как положительным так и отрицательным, и бесконечным в том числе - Напишите класс итерируемой слабой коллекции, напримиер WeakSet, который был бы наследником оригинального WeakSet, имплементировал все его методы, но при этом по элементам множества можно было бы итерироваться.
>>1870109 А кого? Это вопросы чисто на знание языка и его объектной модели. Тут никаких мидлловских и сениорских вопросов нет. Мидлы и сениоры - это люди с опытм, их спрашивают уже не про язык и как он устроен, а про решение реальных задач, и архитектуру.
>>1870111 >вопросы чисто на знание языка Вместо этой писанины можно просто спросить про генераторы и как сделать какой-то объект итерируемым через for of
>>1870109 Спрашивают про алгоритмы >ррряя ахуели нахуй это надо все написано мы тут не математики Спрашивают про архитектуру >ррряя у джунов опыта нет, какая архитектура Спрашивают про устройство языка >ррря сложна джуны это знать не должны и вообще в реальных задачах такого не встречается
Пора перестать себя переоценивать и смотреть на мир в розовых очках. Вопросы про что такое замыкание и какиетипы данных есть в жс - это не джуновские вопросы, а трейни. Джун должен прекрасно знать язык, и что самое главное его объектную модель. Джунов как раз и надо спрашивать про теоретическое, но глубокое знание. И при этом если не спрашивать про асимпотамику и не заставлть дрочить деревья, то нате распишитесь и будьте добры понимать что такое генераторы, финализаторы, и как устроено управление потоком выполнения
>>1870112 Это ты скриниг описываешь, а есть еще техническое собеседование, где вполне себе дают задачи, которые могут просить решать прямо при интервьювере, так и оставлять тебя на какое-то время.
>>1870115 Чтобы услышать >ну бее мее кароче это самое И кучу ахинее с неправильной терминологией и употреблением технических терминов не к месту и в неправильном значении.
>>1870088 Нет, ебаная хуйня. Нет магических вопросов, которые бы позволил отделить джуна от сеньора. Нужно смотреть на проекты которые делал человек, вместе обсуждать его код, выяснять почему и как он решал определенный задачи и т.д.
Но ты наглядно показываешь пример, когда кого-то случайного ставят на собес и он там какой-то экзамен на частные фичи языка устраивает. Кому просто кого-нибудь поэкзаменовать хочется, а не кто занят поиском нужных людей.
Зачем? Что ТЕБЕ покажут эти ответы? Вот иначе, если ты себе в команду искал человека, что бы ты в этом случае стал спрашивать?
>>1870124 Можешь рассказать, как может получиться, чтобы человек знал как в жс работают слабые ссылки, генераторы и стек вызовов, но при этом не имел понятия про эвентлуп, замыкания, прототипное наследование и чем примитив от объекта отличается, которое необходимо в повседневной работе?
>>1870118 > генераторы, финализаторы, и как устроено управление потоком выполнения Это чисто теоретическая алгоритмистика с дрочем ради дроча или где-то перечисленное тоже применяется? Если последнее, то где именно? мимо другой анон
>>1870134 А тебе не приходила светлая мысль, что если в реальной работе применимы знания про эвентлуп, замыкания, прототипное наследование и то, чем примитив от объекта отличается, то можно про них и спрашивать, а не про всякую отвлеченную хуиту?
>>1870097 >- Напишите класс итерируемой слабой коллекции, напримиер WeakSet, который был бы наследником оригинального WeakSet, имплементировал все его методы, но при этом по элементам множества можно было бы итерироваться. Я может чего-то не понимаю, но по элементам WeakSet можно итерироваться и так.
>>1870138 Конечно приходила и раньше именно так мы и делали. Лет 10. И люди ходят собирают эти вопросы, и надрачиваются отвечать на них,Ю по факту не понимая ни-ху-я. Зайди в любой жс чатик с постоянной активностью и понаблюдай за контингентом (да-да, там сидят именно те, кто по собесам и ходят). Тебе любой педагог объяснит, что существуют вопросы, которые способны одним заменить 20 и при этом показать, понимает ли человек что-то на самом деле, или онет.
Я 15 лет провожу собесы. Если бы я не видел, что творится в индустрии, я бы вам такой хуйни не рассказывал.
>>1870142 Ну хуй знает. Я на последней работе отсобеседовал около больше сотни человек и около десятка в итоге взял в команду. Эт за 4 года примерно. Доволен был всеми. Подобного не спрашивал ни у кого и вообще код не заставлял писать — только обсуждение их кода и небольшая задача на архитектуру http-кеша. Меня самого такие вопросы бесят. Особенно в Яндекс было злоебучее собеседование, с кручением бинарных деревьев и разложением на множители.
Все таки блядь уже с хайпом вокруг js сильно переборщили, раз при вкате вместо него питон спрашивают. Скоро будут вопросы по теорверу задавать, чтобы легионы кандидатов отсеивать.
>>1870118 Ты хуйню написал. Глубокие знания нельзя получить, не работая практически. Это как в совке на рубеже 90-х учили программирование без компьютеров.
Вообще, совковая деревенщина любит выёбываться и умничать. "Высшее" "образование" на должность уборщицы требовать и т.п. Это всё отличные маркеры совка.
>>1870124 >Очень важные и применимые в каждодневной работе задачи. У всех остальных специальностей есть профильное обучение с дипломом на конце, декларирующий то, что они прошли обучение, чтобы получить который, необходимо насдавать кучу экзаменов с теорией, которая лишь косвенно нужна в работе. С чего ты решил, что людей, претендующих на позицию джунов, должны спрашивать вопросы из реальной работы, которой у них еще не было, вместо знание инструмента и базовых теоретических знаний. Кто экзаменует людей, которые вкатываются в программирование с улицы? Ты когда-нибудь работал с мартышками, которые научились компоненты реакта описывать, но при этом встают в ступор, когда у них хэндлер на событие не срабатывает, потому что они его вынесли за предел замыкания? Ты не представляешь сколько людей пытаются в программирование неприходя в сознание.
>>1870150 Так у этого анона как раз нет никаких бинарных деревьев и вообще ничего на алгоритмы. Чистое знание концепций языка, не более. Что тебе не нравится конкретно?
>>1870121 >Нет магических вопросов, которые бы позволил отделить джуна от сеньора. Так мы тут помидора ищем или отсеиваем адекватных джунов от умеющих одно туду вкатунов?
>>1870120 Хз, там достаточно ответа в одно предложение, в котором есть слова Symbol, итератор и генератор. Абсолютно ничего сложного, но если чел это знает, то уже не все плохо
>>1870119 Ну да, именно скрининг. Опять же спрашивали про вопросы, а не про задачи. Алсо если уж давать какие-то задачи на написание кода, то ставить туда приближенные к реальным таскам это полное фуфло. Вот это дерьмо с Lazy-списками звучит как будто ты просишь ещё не работающего у вас человека решить рабочую задачу, чтобы потом стырить его код в проект. Не надо так
>>1870152 Он привел список задач, решить которые можно только имея глубокое знание жс, при этом не требующих никакого реального программирования, хотя бы потому, что как тут уже озвучили все эти вопросы носят чисто характер каты и в реальной работе не применяется. При этом эти каты интересны именно тем, что они не на алгоритмы, а на сам язык.
>>1870156 А почему ты с теоретического WeakSet вдруг на практическое "хэндлер на событие не срабатывает" перескочил? Ты их при приеме на работу про хэндлеры и замыкания спрашивал? другой анон
>>1870161 Потому что если человек умеет в теоретический WeakSet, который можно итерировать, то я готов жопу поставить, что он понимает, что такое замыкание.
>>1870150 >Особенно в Яндекс было злоебучее собеседование, с кручением бинарных деревьев и разложением на множители. Там работают дурачки из физтехов и бауманок. Которые умеют в математику, но не умеют в архитектуру и дизайн. А в современных реалиях должно быть наоборот.
И вот эти дурачки реально не знают о чём спросить, чтобы отсеять тупых. И спрашивают "матан", бессмысленный и беспощадный. Совок стайл, как он есть.
>>1870160 Я отвечал на это: >Джунов как раз и надо спрашивать про теоретическое, но глубокое знание. Какое может быть глубокое теоретическое _знание_, блядь, у джуна? Он тебе как попугай только может повторить то, что где-то читал.
>>1870162 Т.е. ты НЕ спрашиваешь что такое замыкания и хэндлеры, которые блядь и исп в реальной работе, но ты спрашиваешь теоретические вещи в плане WeakSet. И у тебя в итоге сидят те кто знают что такое WeakSet, но не знают что такое замыкание. Тебя в этой ситуации ничего не смущает?
Пиздец уебища в треде саботируют вкатывальщиков, советуя тратить тонну времени на изучение хуиты, которая нужна для прохождения 5% собеседований у таких же поехавших
>>1870162 Во первых, не "замыкание", а "кложура". Если слова не имеют под собой почвы, то дела не могут совершаться. Closure - это "заключение", "закрытие", "захват", но не "замыкание". Замыкание - это когда два пальца в розетку.
Во вторых - это действительно сложно для ньюфага, но, никакой weakset для проверки не нужен.
>>1870168 Мне тоже не понятно. Такие специфичные вещи, как WeakSet, можно знать и помнить, если постоянно ими пользоваться, но всё-таки это нишевая вещь.
Я в JS никогда не пользовался, в питоне да, но в питоне WeakSet, к слову, итерируется. И в питоне это тоже довольно нишевая вещь.
В то время как замыкания это довольно базовая концепция, особенно для JS, где замыкания в принципе очень активно используются в силу большой любви к callback-функциям.
>>1870185 Последовательно, ты хотел сказать? Ну, у паяльника у самого нехилое сопротивление + у человеческой кожи тоже. Поэтому, _короткого_ замыкания не получилось.
>>1870168 > И у тебя в итоге сидят те кто знают что такое WeakSet, но не знают что такое замыкание Нет, ты же долбоеб неумеющий читать, иди перечитывай. Там написано совсем обратное.
>>1870195 Это ты блядь долбоеб а не я. ТЫ сука спрашиваешь то что у вас на проектах нет и никогда не будет. Не спрашиваешь по практическим вещам, а по теории причем из других языков. Ты вот просто реально концентрированный абсолютно конченный долбоеб. Я просто хуею с тебя.
>>1870191 Джун должен много знать, но ещё пока мало уметь.
То есть ты сначала много учишь разную теорию, по алгоритмам, структурам данных, как что устроено и т.п., а потом уже на этом фундаменте начинаешь работать, забывая ненужное и доучивая нужное.
Это разумно, очень сложно теорию подтягивать, когда уже работаешь. Но конкретно решения вроде WeakSet мне кажутся всё-таки скорее очень прикладными, нишевыми, чем базовой теорией.
>>1870204 > Но конкретно решения вроде WeakSet мне кажутся всё-таки скорее очень прикладными, нишевыми, чем базовой теорией. Просто ты сам не можешь решить, вот и бесишься.
Но спич о том, что есть какие-то самые общие для языка вещи, вот замыкания в случае JS, а есть нишевые частные вещи, которые знаешь, если ими занимался, или их читал зачем-то. А если с ними не работаешь, то скорее всего забудешь, а в случае необходимости прочитаешь и за день освоишь.
Довольно глупо делать выводы и принимать решения по подобным тестам.
>>1870245 А ты уверен, что ты знаешь, как устроены замыкания в жс? Сможешь рассказать, как устроено наследование областей видимости, какие именно переменные импортируются и экспортируются в каждое замыкание и при каких обстоятельствах могут быть исключения? Я вот думаю, что вояд ли, в отличии от человнка, который уже осилил фиеализаторы - которые не то что в жс какая-то нишевая вещь, а это такая де базовая абстракция во всем программировании, как и замыкания. Не понимаю чего вы тут сложного нашли. Но спасибо тому анону, показал хороший срез местного контингента.
>>1870283 >думает что смартфон напрягется от сортировки структуры размером в несколько сотен Зависит от процессора, а они в смартфонах как 1/10 от десктопа. Из-за веб-макак ебаных, которые все делают через жопу да еще и на стороне клиента, каждый второй сайт на смартфоне тормозит, вплоть до подвисаний на полминуты.
>>1870245 Я со времен учебы не решал математические уравнения, вообще. Но до сих пор знаю как это делается. Хотя прошло больше 10 лет. Как можно забыть то, что ты понял?
>>1870294 Это ответ уровня "хорошо прогать и не писать говнокода". Давай типа практическую задачу с тобой обсудим. Есть морда - большой на 200 позиций список конских дилдаков в секс-шопе на продажу. Пока он грузиться с бека должен отображаться красивый спинер загрузки (т.е. колесико загрузки) нарисованный десигнером. По итогу запуска морды оказалось что смартфон с 1 гектар озу давиться. Как ты предлагаешь это с помощью алгоритмов пофиксить?
>>1870297 И каким это образом влияет на то что от фронтендера требуют знаний алгоритмов? >>1870307 Не грузить по 200 позиций за раз, а подгружать по 10-20 и отображать в виртуализированном списке. Спинеры загрузки отображать в виде svg.
>>1870316 >И каким это образом влияет на то что от фронтендера требуют знаний алгоритмов? Таким, что алгоритмы могут на порядок увеличить производительность. Я не про верчение деревьев, а про базовые вещи - знать сложность алгоритмов и часто используемые структуры данных.
>>1870336 Мань, ты не в ту сторону воюешь, я тоже говорю, что алгоритмы знать нужно и их спрашивают на собеседованиях. Всё как раз и началось с вскукарека дебила который сказал, что алгоритмы только в яндексе спрашивают, что было правдой, но только лет 5 назад.
>>1870308 Если ты понимаешь, что такое вычислительная сложность, умеешь прикидывать на разных алгоритмах, когда и что оптимально, тогда ты и в прикладных задачах будешь об этом задумываться.
Если кодер только знает функции sort, select и т.п., для него нормально будет там что-то поштучно вставлять или вынимать куда-нибудь, не понимая, что на каждую такую операцию приходится дикий объём по перестройке дерева и т.п.
То есть смысл в том, что человек, понимающий, что такое сложность, может думать такими категориями. А обычный кодер просто не умеет. Вообще. В том числе для этого и надо изучать алгоритмы всем, чтобы понимать, что ты делаешь и во что это обходится.
Господа девелоперы, что насчет freecodecamp? Стоит оно того? За спиной пройдены курсы code-basics и начальный курс Хекслита. Думаю сейчас какой проходить дальше. Посмотрел несколько видео The Complete Guide 2020 от Udemy - по мне как-то слишком затяжно и нудно.
Как охуенно бабахнуло у местных жс-макак от вопросов на знание языка, сразу вскрылся весь гной.
>>1870152 >Глубокие знания нельзя получить, не работая практически. >>1870166 >Какое может быть глубокое теоретическое _знание_, блядь, у джуна? 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.
>>1870531 Итишной измерение человекочасов на итоговый продукт во фронте является единственным Ставь create-react-app, а лучше ангуларовский бандлер, и серь рожу для чатиков. Потом к фронту прикрути какой-нибудь экспресс, а лучше нест, и заливать на гитхаб Всё
>>1870547 Что мне делать если я сделал create-react-app, высрал базовую приложуху для работы с апи, прикрутил к ней экспресс? Из хуков использовал только юз стейт и реакт квери. И один раз юз эффект, лол другой_вкатывальщик
>>1870504 У большинства тех, кто обоссался здесь при виде заданий для ждунов на знание собственного языка, как раз таки твой "практический опыт". Не программисты, а чмошники, грязь подноготная.
>>1870555 Ну поздравляю ёпты жс открыл тебе дверь в настоящее программирование, поскольку уже имеешь продукт, который можно кому-нибудь втюхать Большая часть индусов уже на этой стадии пиздуют на фриланс биржи Ну а хули тебе делать зависит от твоих целей Запили очередной женерик екоммерс сайт, исопльзуя штуки, которые не использовал (углубись во фреймворки \ начни щупать фигму \ научись писать тесты \ пользуйся гитом \ заворачивай всё в контейнеры)
В этом модуле есть асинхронный xml запрос.Я хочу понять как отлавливать onerror или onload вне модуля. Нужно чтобы loadfile возвращал промис или нужно передавать callback в onload и onerror?
>>1870678 Нихуя не понятно, что ты реально хочешь. Сбрось весь код, а не обрывок. У xml есть два своих евента, на ошибку и получение. Зачем тебе еще что-то?
>>1870698 Да это понятно, что у него есть два евента. Я их испоьльзую чтобы менять переменные module. То есть ивенты работают с самим модулем и не трогают ничего снаружи. Но снаружи мне тоже нужно что-то делать в случае если случилась ошибка.
>>1870097 >Напишите ленивые map, reduce, filter, every, some, чтобы для цепочки вызовов этих методов, фактически происходила только одна итерация Набор слов, лол
>>1870706 если я правильно тебя понял: если речь идет про ноду, то ты можешь создать свои кастомные ивенты, и вызывать их внутри ивента xml , то что подписанно будет при выстреливании ивента знать о выполнение или ошибке.
Если речь идет про js фреймворки react/angular/vue и т д, то гугли state managment. Если вдруг речь идет про чистый JS, то тут можно накатить чистый редакс
>>1870793 Но ведь это ты в эти темы ни ногой. Ты понятия не имеешь, что означает вышеобозначенный "набор слов", ты на уровне маленького ребёнка, не умеющего читать, не способного воспринимать информацию. Это тебе нужно завалить своё киберебало.
Так блядь, у меня router ни в какую не хочет моментально присваивать параметру query значение из url, типа ?query=chtonibud, и сначала оно undefined, а после обновления уже что-то там из него можно вычесть. Если я этот query буду брать банально из роутинга, там где ты параметры передаешь в компонент типа /search/:query , так можно? На самом деле я так уже сделал и это уже работает, но не знаю почему чел у коготорого я спиздил код на гитхабе сделал это по другому Или есть какой-то сакральный смысл именно в том, чтобы чтобы брать значение для поиска из урла именно из присвоенного значения ?qyery=somevalue ? На сервер однохуйственно ссылка своя в итоге передается. Или вообще похуй откуда компонент получает данные с использованием роутера, главное чтобы ссылка работала? Единственная разница для меня в итоге, что url принимает вид website.com/search/value, вместо website.com/search?query=value. Это на что-нибудь вообще влияет?
>>1870799 А если этот код планируется использовать несколько раз, то мне нужно обернуть его в функцию? И куда эту функцию девать то? module.loadFile().then( doSomething(file) )
>>1870905 Представь, что тебе надо вытащить x за пределы области видимости цикла. С let такое прокатывает: let x ; for (x of y) { .. }, с const - нет. Поэтому если переменная принимает разные значения при итерировании, то логичнее писать let
Просто я ожидал крутого кунфу, и был несколько разочарован, увидев генераторы (которые и дают ленивость). Т.е. "написать lazy" превратилось в "использовать lazy". Но, это я исхожу из предположения, что ты и ставил эту задачу, а потом сам же и показал решение. Если же ты просто решил - то всё вообще охуенно.
>>1870947 >Просто я ожидал крутого кунфу Плагин для бабеля, который из функции будет объекты с автоматоми строить? >>1870954 Объявлять переменную вне for of - говнокод.
>>1870959 >Объявлять переменную вне for of - говнокод Теперь представь, что надо выполнить какое-то действие, если цикл ни разу не был выполнен. Вынос переменной вне цикла это решает, например
let x for (x of y) { ... } if (typeof x === 'undefined') { // Роскоши в виде for (...) { ... } else { ... } в JS ещё не завезли }
У меня асинхронная функция делающая xmlrequset и вызывающая промис. В случае fullfilled делает одно, в случае rejected делает другое. И вот проблема. Я могу в процессе выполнения сделать xmlrequest.abort() и промис вернёт rejected. Но в случае если я остановил реквест, нужно делать совсем другое.