fa
Feedback
CodeRoll | Frontend

CodeRoll | Frontend

رفتن به کانال در Telegram

OZ — Лучшее для разработчика и дизайнера / IT инструменты, курсы и книги — Веб-разработка на JS, HTML, CSS, React, Vue,Angular Купить рекламу: https://telega.in/c/coderoll Чат: https://t.me/coderoll_chat По всем вопросам пишите сюда - @yankovsky_ads

نمایش بیشتر
4 229
مشترکین
-524 ساعت
-107 روز
-5130 روز
آرشیو پست ها
Хотел напомнить вам что у нас есть чат https://t.me/coderoll_chat

Event Loop. Мифы и реальность В сети есть довольно большое количество публикаций про Event loop и как он работает. Новые стат
Event Loop. Мифы и реальность В сети есть довольно большое количество публикаций про Event loop и как он работает. Новые статьи появляются на популярных ресурсах и по сей день, в том числе на Хабре. Однако, к сожалению, далеко не вся информация, представленная в этих материалах является проверенной или достоверной. В связи с чем, само понятие обросло рядом мифов и догадок. Порой, даже опытному разработчику требуется немало внимания и опыта, чтобы понять, где истина, а где, чистой воды, вымысел. В этой статье попробуем разобраться, где же, все таки, истина. Если вам кажется, что в статье имеется ошибка, неточность или чего-то не хватает, оставляйте свои комментарии, и мы попробуем совместно найти ответы на все возникающие сомнения и вопросы. Ссылка #js

Вёрстка — это не тупо Небольшая сводка ошибок которые встречались во Frontende и Вёрстке за время работы с разными проектами.
Вёрстка — это не тупо Небольшая сводка ошибок которые встречались во Frontende и Вёрстке за время работы с разными проектами. Конечно это очень малая часть и только те ошибки которые постоянно повторяются. Но всё же давайте пробежимся хотя бы по ним.Мб кому-то этого и не хватало)) UI / UX / Code, 2018-2022г Ссылка #статьи

Ищу помощницу по дизайну интерьеров. Пост для тех, кто хочет работать удаленно, занимаясь творческой профессией. Работа заклю
Ищу помощницу по дизайну интерьеров. Пост для тех, кто хочет работать удаленно, занимаясь творческой профессией. Работа заключается в создании уютных пространств и стильных интерьеров. Можно работать из дома за ноутбуком. - Для работы достаточно несколько часов в день, вам не придется сидеть в офисе с 9 до 17. - Высшее образование не требуется, всему научу сама. - На обучение достаточно 1-2 часа в день, так как вся информация структурирована и очень доступно изложена. Я помогу вам разобраться в профессии дизайнер интерьеров, объясню с чего начать и покажу весь процесс работы от и до. Дам первых клиентов и скрипты продаж. Учеников много не набираю, чтобы была возможность уделить внимание каждому. Успевайте зарегистрироваться, пока места еще есть. Начать обучение можно по ссылке «Зарегистрироваться». Зарегистрироваться #реклама udesignschool.ru О рекламодателе

Пояснение к предыдущему посту Первым аргументом, который получает метод reduce, является аккумулятором, в данном случае x. Второй аргумент - это текущее значение, y. С помощью метода reduce мы выполняем функцию обратного вызова для каждого элемента в массиве, что в конечном итоге может привести к единственному значению. В этом примере мы не возвращаем никаких значений, мы просто регистрируем значения аккумулятора и текущее значение. Значение аккумулятора равно ранее возвращенному значению функции обратного вызова. Если вы не передадите необязательный аргумент initialValue методу reduce, аккумулятор будет равен первому элементу при первом вызове. При первом вызове аккумулятор (x) равен 1, а текущее значение (y) равно 2. Мы не возвращаемся из функции обратного вызова, мы регистрируем аккумулятор и текущее значение: 1 и 2 регистрируются. Если вы не возвращаете значение из функции, она возвращает значение undefined. При следующем вызове аккумулятор равен undefined, а текущее значение равно 3. undefined и 3 будут зарегистрированы. При четвертом вызове мы снова не возвращаемся из функции обратного вызова. Аккумулятор снова равен undefined, а текущее значение равно 4. undefined и 4 будут зарегистрированы.

Какой будет вывод?
Anonymous voting

[1, 2, 3, 4].reduce((x, y) => console.log(x, y));

Улучшаем качество кода React-приложения с помощью Compound Components Если у вас есть компоненты с кучей условий, которые сло
Улучшаем качество кода React-приложения с помощью Compound Components Если у вас есть компоненты с кучей условий, которые сложно читать, ревьюить и понимать, что там происходит, то эта статья для вас. Здесь я поделюсь подходом, который поможет уменьшить большие и страшные React-компоненты. Ссылка #статьи

Вопросы с собеседования: Promise.all Очень часто на собеседованиях любят давать заданию что бы собеседуемый написал свою реализацию Promise.all, эту задачу я встречал во многих крупных компаниях. И хотелось бы поделиться с вами решением этой задачи с подробным объяснением. Для начала вспомним работу оригинального Promise.all. Он принимает коллекцию промисов, начинает одновременно их выполнять и возвращает новый промис. Если все переданные промисы выполнятся, возвращаемый промис тоже выполнится и в нём будет лежать массив результатов, причём в том же порядке. Но! Если какой-то промис вылетел с ошибкой, то Promise.all прекращает работу раньше и возвращаемый промис будет отклонён. Таким образом у нас есть два сценария: Позитивный: Когда все промисы завершились успешно. Тут в ответ придёт массив результатов с сохранением очерёдности. Негативный: Когда какой-то промис завершился с ошибкой. Тут Promise.all не будет ждать завершение оставшихся, а сразу перейдёт в состояние rejected с полученной ошибкой. Сначала попробуйте решить самостоятельно, можете написать свое решение в комментариях Случай, когда у нас произошла ошибка, обрабатывать отдельно не нужно — возвращаемый промис автоматически перейдёт в состояние rejected.
// На вход к нам приходит массив промисов
Promise.all = (promises) => {
  // Здесь будем хранить результаты успешно завершенных промисов
  const results = []

  // Количество промисов, которые осталось выполнить
  // На данный момент не выполнился еще ни один промис!
  let rest = promises.length

  // Возвращаем, естественно, новый промис
  return new Promise((resolve) => {
    // Проходимся по списочку
    promises.forEach((promise, index) => {
      promise
        // Если промис завершается успешно
        .then((result) => {

          // Кладём его в наше хранилище
          // Причём сохраняем индекс, под которым он был в массиве `promises`
          results[index] = result

          // На один невыполненный промис стало меньше!
          rest -= 1

          // Если активных промисов больше нет, то резолвим результат
          if (rest === 0) resolve(results)
        })
    })
  })
}

Сжатие css классов. Как сделать веб Ещё быстрее. next.js Долгие годы шли споры, как лучше именовать классы - по бэму, по целя
Сжатие css классов. Как сделать веб Ещё быстрее. next.js Долгие годы шли споры, как лучше именовать классы - по бэму, по целям, по компонентам или как угодно, но с добавлением хеша. И это действительно важный вопрос, какой способ будет комфортен в разработке большого и развивающегося проекта. Но, что эти способы означают для пользователя, нужны ли ему эти классы и как они связанны с его опытом? Порою, заходя в стили проектов, я невольно пугаюсь сложившейся длине имён - модуль, блок, элемент, подэлемент, модификатор 1, модификатор 2. БЭМ действительно великолепен и я не собираюсь его отрицать, но его размеры оставляют желать лучшего. Ссылка #статьи

React-lens — эффективное управление состоянием в приложениях в ReactJs Во многих разрабатываемых программах мы сталкиваемся с
React-lens — эффективное управление состоянием в приложениях в ReactJs Во многих разрабатываемых программах мы сталкиваемся с необходимостью организации работы с данными. Такие задачи могут быть самыми разными: хранение, актуализация, масштабирование и т. п. А ещё приходится реализовывать взаимодействие различных библиотек. Рассмотрим один из способов решения этих проблем при помощи React Lens. Ссылка #react

‼️Всем кодерам посвящается‼️ Code ready — лучшие подборки эффектов, анимаций и многое другое для твоих проектов, сразу с готовым кодом и примером их использования. 🪩 Расставь приоритеты, добавь лёгкости в свою работу и становись лучше с @code_ready

‼️Всем кодерам посвящается‼️ Code ready — лучшие подборки эффектов, анимаций и многое другое для твоих проектов, сразу с готовым кодом и примером их использования. 🪩 Расставь приоритеты, добавь лёгкости в свою работу и становись лучше с @code_ready

Какой контент хотели бы видеть на канале ? пишите в комментариях свои варианты ⬇️

Пояснение к предыдущему посту Можно комбинировать объекты с помощью оператора распространения .... Это позволяет создавать копии пар ключ/значение одного объекта и добавлять их в другой объект. В этом случае мы создаем копии объекта user и добавляем их в объект admin. Объект admin теперь содержит скопированные пары ключ/значение, что приводит к {admin: true, name: "Lydia", age: 21}.

Какой будет вывод?
Anonymous voting

const user = { name: 'Lydia', age: 21 };
const admin = { admin: true, ...user };

console.log(admin);

ECMAScript 6+ vs TypeScript Минули те времена, когда разработчики писали Frontend на «чистом» JavaScript (вплоть до ECMAScrip
ECMAScript 6+ vs TypeScript Минули те времена, когда разработчики писали Frontend на «чистом» JavaScript (вплоть до ECMAScript 5). Все изменилось с выходом в свет версии ECMAScript 6 в 2015-м году. Это событие стало, по истине значимым в мировой Frontend разработке. Предыдущие 6 лет до этого, язык практически не менялся. Годом ранее, в 2014-м, компания Microsoft опубликовала TypeScript 1.0 и предоставила встроенную поддержку языка в своей IDE VisualStudio 2013. На самом деле, официально, TypeScript был выпущен еще в 2012 (версия 0.8), однако, популярностью он не пользовался в виду практически полного отсутствия поддержки со стороны существующих, на тот момент, IDE. Ссылка #js

Cache API — кэшируем данные на стороне клиента Cache API - сравнительно старый API для управления хранилищем кэша, доступный
Cache API — кэшируем данные на стороне клиента Cache API - сравнительно старый API для управления хранилищем кэша, доступный уже во всех современных браузерах и являющийся частью ServiceWorker. Ссылка #статьи

Оператор delete возвращает логическое значение: true при успешном удалении, иначе он вернет false. Однако переменные, объявленные с ключевым словом var, const или let, не могут быть удалены с помощью оператора delete. Переменная name была объявлена ​​с ключевым словом const, поэтому ее удаление не было успешным: возвращается false. Когда мы устанавливаем age равным 21, мы фактически добавляем свойство с именем age к глобальному объекту. Вы можете успешно удалить свойства из объектов, в том числе из глобального объекта, поэтому delete age возвращает true.