Мы вам перезвоним

Мы вам перезвоним

@callforward

Выкладываю и разбираю вопросы, которые встречаются на собеседованиях по фронтендуВопросы присылайте @djamah

3 909подписчиков
🇷🇺

Похожие каналы

Все →

Последние посты

Мы вам перезвоним — пост в ТГ канале

Не вимикайте геолокаціюUpd. Так, можуть дивитись на гугл-карти, але якщо ви їх використовуєте, то вас і так видно. І звісно у військових можуть бути свої протоколи.Але якщо ви сидите в підвалі бомбосховища, геолокація вам загрожує менше ніж ліхтарик.Upd 2. Гугл вимкнув для України функцію Людне місцеUpd 3. Як правильно зазначають в коментарях, сам по собі включений мобільний телефон є джерелом сигналу. Якщо можете виключити телефон… але ж цього ніхто не зробить, так?)

26 февр. 2022 г.30 300В Telegram

В @zatelekom хорошая инструкция о том, что делать, если начинает отключаться интернет. Перевели на английский и украинский, чтобы смогли прочитать все

24 февр. 2022 г.16 100В Telegram

В этом выпуске ругаю айфон и хвалю Sidekick.https://youtu.be/CxF7rKPgaDI

31 янв. 2022 г.17 300В Telegram

Ну и чтобы новый год был легким, держите простенькую #Задачка_31, она в стиле старой доброй parseInt :) Что будет в консоли и почему?[42, 10, 1, 3].sort()Свои развернутые объяснения присылайте @voloshchenkoal

31 дек. 2021 г.16 100В Telegram

Итоги года и новостей по версии меня с коллегами.Пою оду флаттеру. Не верю в метаверс. И отказываюсь верить в документацию (ну почти).Хотя большинство моих теперешних коллег занимаются макос-разработкой, но обсуждаем мы темы скорее общеайтишные.По секрету еще скажу. На этом ютуб канале в следующем году будет новое шоу, а уже на следующей неделе оочень прикольный технический доклад. Все в этот канал не запостишь, потому очень надо подписываться)https://youtu.be/-TjGHP8o5_I

24 дек. 2021 г.15 400В Telegram
Мы вам перезвоним — пост в ТГ канале

В последнем регулярном выпуске ДОУ подкаста я говорил, что взрослым людям пора бы знать, сколько они денег хотят получать. Меня за это много критиковали. Но мой поинт был в том, что по большому счету, все ж все знают. Компании заказывают исследования рынка, а разработчики могут посмотреть результаты зарплатного опроса ДОУ.Опрос ДОУ не социологический, там нет никаких коррекций и всяких социологических штучек. Все очень просто, чем больше людей заполнит анкету, тем точнее данные.Все результаты анонимизируются и выкладываются на гитхаб.Заполняйте, если еще неhttps://dou.ua/goto/KPCyp. s. Мой прогноз: медианная зарплата выросла на процентов 10 за год, не больше

17 дек. 2021 г.10 900В Telegram

Третий выпуск подкаста, который я делаю с коллегами.Обсуждаем новости и работу.Новые макбуки обсудили прямо полностью. И договорили про Фаерфокс.Учитывая, что сюда на канал вернулись задачки, видосу можно и лайк поставить, а на ютубе подписаться)https://youtu.be/IfgnRoNbmFc

22 нояб. 2021 г.9 690В Telegram
Мы вам перезвоним — пост в ТГ канале

#Задачка_30 на верстку, пятница же.Нужно сверстать header как на скрине. Логотип расположен посередине шапки без учета кнопки меню. Но есть одно условие — нельзя использовать positionСнипеты кода шлите @voloshchenkoal, самый изящный вариант выложим сюда в канал.

19 нояб. 2021 г.9 090В Telegram

Разбор #Задачка_29 Первый вариантРешение через рекурсию от Артемаconst retry = async (fn, { retries }) => { try { return await fn(); } catch (e) { if (retries > 0) { return retry(fn, { retries: retries - 1 }); } throw e; }};Лаконичное решение, мне очень нравится. Но оно не совсем подходит для прода. Автор описал свои мысли почему:> Минусы решения в коде1. Надо добавить параметр timeoutMs в config2. Обрабатывать ошибку, которую может вернуть fn, возможно, не надо ретраить3. Вероятно добавить retryWhen колбэк параметром4. Нужны стратегии (линейная, инкрементальная и тд), через какое время делать ретрай5. Нужны логи и стратегии их отображения: когда и куда писать, например для дебага6. Описание, типы, тесты и валидация аргументов, конфига (все ли поля используем, или есть опечатки)> Минусы решения в подходе1. Переданная функция должна быть идемпотентной (если повезет - это at least once, явно не exact once)2. В случаи АПИ запроса - ретраить нужно не все статусы ответов, чтобы не заДДОситьПункты про стратегию повторных ретраев очень важны. Ведь без таких стратегий можно себя задедосить. Такое, например, было в Signal.Стратегию повторных ретраев с задержкой по времени принято называть экспоненциальной выдержкой или Exponential Backoff. Больше про нее можно прочитать здесьВторой вариантИз задачи #Задачка_28 мы знаем, что рекурсию можно заменить циклом. #Задачка_29 не исключениеРешение через цикл от aslanator:async function retry(callback, options = { retries: 0 }) { let { retries } = options; while (retries > 0) { try { return await callback(); } catch (e) { retries--; } } return await callback();}> Ход мысли тут достаточно прямолинейный, нам просто нужно отлавливать ошибку и заново запускать скрипт, пока не истекут попытки. Чтобы в конце вывести ошибку, я делаю повтором меньше на 1, а в конце просто отдаю callback.Вроде больше нечего сказать, несколько раз делал подобное в реальных проектах на раб

9 нояб. 2021 г.9 970В Telegram

#Задачка_29Нужно написать функцию retry, которая принимает два параметра: асинхронную функцию, которую будет вызывать и число попыток. Если при вызове переданная функция бросает исключение, то она вызывается повторно, но не больше, чем заданное количество раз во втором параметре.Пример кода:const getUserInfo = async () => { const response = await fetch('/api/for/user'); const userInfo = await response.json(); return userInfo;}retry(getUserInfo, { retries: 3 });Свои развернутые ответы присылайте @voloshchenkoal

26 окт. 2021 г.8 770В Telegram

Второй выпуск подкаста, который я делаю с коллегами.Обсуждаем новости и работу.Контент плотнее, картинка уютнее, звук чище)Ну и в начале меня уносит в краткую историю браузерного средневековья)Хотя здесь об этом все и так знают.Не забывайте подписаться на канал, чтобы не пропустить новое интересное.А лайк надо поставить, чтобы видео посмотрели побольше людей, нам это очень важно.https://youtu.be/3ZUx__Rvu9A

18 окт. 2021 г.9 500В Telegram

Разбор #Задачка_28 начинается с варианта для техлида, продолжается эвалом который лучше не надо, а дальше такое... А какое дальше, читайте здесь – https://gist.github.com/VoloshchenkoAl/e3bef6e66d3eef4bc81a3246dd027061

6 окт. 2021 г.9 050В Telegram

А пока Саша готовит разбор прошлой задачки (хороший будет разбор, я видел)), мы с другими коллегами записали подкаст. В нем будет много новостей и мнений. Не только про apple, но и про apple тоже.Планируем выйти на периодичность раз в месяц, так что подписывайтесь, не стесняйтесь)https://www.youtube.com/watch?v=4iwh5F7FkDA

29 сент. 2021 г.11 000В Telegram

#Задачка_28Думали здесь уже не будет задачек? А вот получите) Нужно реализовать функцию getWithPath, которая принимает object и строку path, а возвращает значение поля с object. Пример кода:const cat = { body: { paws: [{ type: 'top right' }]}};const propertyPath = 'body.paws[0].type';getWithPath(cat, propertyPath);// 'top right'Свои варианты решения присылайте @voloshchenkoal, он обещает почти всем ответить и до конца недели сделать разбор.Напоминаю, хороший ответ, это не кусок кода, а описание хода мысли который к этому коду привел) Кусок кода мы и сами можем с лодаша достать.

15 сент. 2021 г.10 100В Telegram

Тааак, кажется надо объяснить)Бот из прошлого поста вот для чего:Видите интересную новость или статью, прямо очень интересную, но если ее добавить в ридинг лист, то очередь до нее дойдет примерно никогда. Вы берете, бросаете ссылку в бот, он возвращает озвученную, вы слушаете со свободными руками и глазами. Почти как подкаст. Профит!!1)Бросить ссылку на главную яндекса, амазона, или новостного издания можно, но что там вам читать – решительно непонятно ;)Ссылки, которые доступны после авторизации, тоже особо ничего не покажут. Ну вы поняли)p.s. Спасибо Ульяне, она увидела, что википедию то я провтыкал( на выходных поправлю.

10 авг. 2021 г.11 200В Telegram