Maxim Filanovich
Maxim Filanovich
  • Видео 16
  • Просмотров 71 520
Решаем задачу c LeetCode: Search a 2D Matrix. Разбор алгоритмической задачи
✅ Залетай в приватное сообщество и забирай:
1. Гайд "Как получить оффер в Яндекс на 300k+ RUB на позицию Front-End?”.
2. Разбор задач со всех 3-х этапов собеседования в Т-Банк.
3. Записи собеседований в бигтех и другие IT компании.
4. Видео-разборы live-coding задач.
Все это найдешь здесь: t.me/easy_jobinterivew_frontend_bot
⬥ Telegram-канал, где делюсь опытом в IT. t.me/maxim_webdev
⬥ Instagram. maxim_webdev
Описание
Всем привет! Сегодня разберем решение задачи с LeetCode. Она называется "Search a 2D Matrix".
Ссылка на задачу
leetcode.com/problems/search-a-2d-matrix
Таймкоды
00:00 - Условие задачи
00:49 - Обговариваем, как будем решать задачу
01:28 - Пишем код и решаем задачу
08:31 - Пров...
Просмотров: 112

Видео

Решаем задачу с собеседования в БИГТЕХ: Array.flat. Два способа решения: с рекурсией и без
Просмотров 20628 дней назад
✅ Залетай в приватное сообщество и забирай: 1. Гайд "Как получить оффер в Яндекс на 300k RUB на позицию Front-End?”. 2. Разбор задач со всех 3-х этапов собеседования в Т-Банк. 3. Записи собеседований в бигтех и другие IT компании. 4. Видео-разборы live-coding задач. Все это найдешь здесь: t.me/easy_jobinterivew_frontend_bot ⬥ Telegram-канал, где делюсь опытом в IT. t.me/maxim_webdev ⬥ Instagram...
Решаем задачу с собеседования в БИГТЕХ: reduсeString. Два способа: через reg exp и цикл
Просмотров 331Месяц назад
✅ Залетай в приватное сообщество и забирай: 1. Гайд "Как получить оффер в Яндекс на 300k RUB на позицию Front-End?”. 2. Разбор задач со всех 3-х этапов собеседования в Т-Банк. 3. Записи собеседований в бигтех и другие IT компании. 4. Видео-разборы live-coding задач. Все это найдешь здесь: t.me/easy_jobinterivew_frontend_bot ⬥ Telegram-канал, где делюсь опытом в IT. t.me/maxim_webdev ⬥ Instagram...
Решаем 3 алгоритмические задачи с собеседований в БИГТЕХ | Front-End | JavaScript
Просмотров 2,7 тыс.4 месяца назад
✅ Залетай в приватное сообщество и забирай: 1. Гайд "Как получить оффер в Яндекс на 300k RUB на позицию Front-End?”. 2. Разбор задач со всех 3-х этапов собеседования в Т-Банк. 3. Записи собеседований в бигтех и другие IT компании. 4. Видео-разборы live-coding задач. Все это найдешь здесь: t.me/easy_jobinterivew_frontend_bot ⬥ Telegram-канал, где делюсь опытом в IT. t.me/maxim_webdev ⬥ Instagram...
Решаем задачи на Event Loop с реальных собеседований | Front-End | JavaScript
Просмотров 4,1 тыс.4 месяца назад
✅ Залетай в приватное сообщество и забирай: 1. Гайд "Как получить оффер в Яндекс на 300k RUB на позицию Front-End?”. 2. Разбор задач со всех 3-х этапов собеседования в Т-Банк. 3. Записи собеседований в бигтех и другие IT компании. 4. Видео-разборы live-coding задач. Все это найдешь здесь: t.me/easy_jobinterivew_frontend_bot ⬥ Telegram-канал, где делюсь опытом в IT. t.me/maxim_webdev ⬥ Instagram...
Решаем 3 задачи с собеседования в ЯНДЕКС | Front-End | JavaScript
Просмотров 8 тыс.5 месяцев назад
✅ Залетай в приватное сообщество и забирай: 1. Гайд "Как получить оффер в Яндекс на 300k RUB на позицию Front-End?”. 2. Разбор задач со всех 3-х этапов собеседования в Т-Банк. 3. Записи собеседований в бигтех и другие IT компании. 4. Видео-разборы live-coding задач. Все это найдешь здесь: t.me/easy_jobinterivew_frontend_bot ⬥ Telegram-канал, где делюсь опытом в IT. t.me/maxim_webdev ⬥ Instagram...
Адаптивная верстка сайта с нуля для начинающих | HTML и SCSS (SASS)
Просмотров 1,3 тыс.Год назад
✅ Залетай в приватное сообщество и забирай: 1. Гайд "Как получить оффер в Яндекс на 300k RUB на позицию Front-End?”. 2. Разбор задач со всех 3-х этапов собеседования в Т-Банк. 3. Записи собеседований в бигтех и другие IT компании. 4. Видео-разборы live-coding задач. Все это найдешь здесь: t.me/easy_jobinterivew_frontend_bot ⬥Telegram-канал: t.me/maxim_webdev ⬥Instagram: maxim_webd...
Создаем NPM библиотеку UI компонентов. React, Typescript, Storybook. Публикуем на GitHub Packages
Просмотров 5 тыс.Год назад
✅ Залетай в приватное сообщество и забирай: 1. Гайд "Как получить оффер в Яндекс на 300k RUB на позицию Front-End?”. 2. Разбор задач со всех 3-х этапов собеседования в Т-Банк. 3. Записи собеседований в бигтех и другие IT компании. 4. Видео-разборы live-coding задач. Все это найдешь здесь: t.me/easy_jobinterivew_frontend_bot ⬥Telegram-канал: t.me/maxim_webdev ⬥Instagram: maxim_webd...
ВЕРСТКА САЙТА ИЗ FIGMA С НУЛЯ ДЛЯ НАЧИНАЮЩИХ | HTML, SCSS, FIGMA | ВЕРСТАЕМ САЙТ ДО КОНЦА | ЧАСТЬ 2
Просмотров 2,2 тыс.3 года назад
✅ Залетай в приватное сообщество и забирай: 1. Гайд "Как получить оффер в Яндекс на 300k RUB на позицию Front-End?”. 2. Разбор задач со всех 3-х этапов собеседования в Т-Банк. 3. Записи собеседований в бигтех и другие IT компании. 4. Видео-разборы live-coding задач. Все это найдешь здесь: t.me/easy_jobinterivew_frontend_bot ⬥Telegram-канал: t.me/maxim_webdev ⬥Instagram: maxim_webd...
ВЕРСТКА САЙТА ИЗ FIGMA С НУЛЯ ДЛЯ НАЧИНАЮЩИХ | HTML, SCSS, FLEXBOX, GIT | ЧАСТЬ 1
Просмотров 6 тыс.3 года назад
✅ Залетай в приватное сообщество и забирай: 1. Гайд "Как получить оффер в Яндекс на 300k RUB на позицию Front-End?”. 2. Разбор задач со всех 3-х этапов собеседования в Т-Банк. 3. Записи собеседований в бигтех и другие IT компании. 4. Видео-разборы live-coding задач. Все это найдешь здесь: t.me/easy_jobinterivew_frontend_bot ⬥Telegram-канал: t.me/maxim_webdev ⬥Instagram: maxim_webd...
ПИШЕМ SINGLE PAGE APPLICATION НА TYPESCRIPT (БЕЗ ФРЕЙМВОРКА) • SPA
Просмотров 21 тыс.3 года назад
✅ Залетай в приватное сообщество и забирай: 1. Гайд "Как получить оффер в Яндекс на 300k RUB на позицию Front-End?”. 2. Разбор задач со всех 3-х этапов собеседования в Т-Банк. 3. Записи собеседований в бигтех и другие IT компании. 4. Видео-разборы live-coding задач. Все это найдешь здесь: t.me/easy_jobinterivew_frontend_bot ⬥Telegram-канал: t.me/maxim_webdev ⬥Instagram: maxim_webd...
4 ПРИНЦИПА ООП В TYPESCRIPT: ИНКАПСУЛЯЦИЯ, НАСЛЕДОВАНИЕ, ПОЛИМОРФИЗМ И АБСТРАКЦИЯ
Просмотров 9 тыс.3 года назад
✅ Залетай в приватное сообщество и забирай: 1. Гайд "Как получить оффер в Яндекс на 300k RUB на позицию Front-End?”. 2. Разбор задач со всех 3-х этапов собеседования в Т-Банк. 3. Записи собеседований в бигтех и другие IT компании. 4. Видео-разборы live-coding задач. Все это найдешь здесь: t.me/easy_jobinterivew_frontend_bot ⬥Telegram-канал: t.me/maxim_webdev ⬥Instagram: maxim_webd...
ТОП-5 ОШИБОК НАЧИНАЮЩИХ FRONT-END РАЗРАБОТЧИКОВ В JAVASCRIPT-КОДЕ
Просмотров 1,9 тыс.3 года назад
✅ Залетай в приватное сообщество и забирай: 1. Гайд "Как получить оффер в Яндекс на 300k RUB на позицию Front-End?”. 2. Разбор задач со всех 3-х этапов собеседования в Т-Банк. 3. Записи собеседований в бигтех и другие IT компании. 4. Видео-разборы live-coding задач. Все это найдешь здесь: t.me/easy_jobinterivew_frontend_bot ⬥Telegram-канал: t.me/maxim_webdev ⬥Instagram: maxim_webd...
Топ-5 вопросов по JavaScript, которые задают Junior разработчику на собеседовании
Просмотров 3,8 тыс.3 года назад
✅ Залетай в приватное сообщество и забирай: 1. Гайд "Как получить оффер в Яндекс на 300k RUB на позицию Front-End?”. 2. Разбор задач со всех 3-х этапов собеседования в Т-Банк. 3. Записи собеседований в бигтех и другие IT компании. 4. Видео-разборы live-coding задач. Все это найдешь здесь: t.me/easy_jobinterivew_frontend_bot ⬥Telegram-канал: t.me/maxim_webdev ⬥Instagram: maxim_webd...
ТОП-5 ВОПРОСОВ НА АНГЛИЙСКОМ ЯЗЫКЕ, КОТОРЫЕ ЗАДАЮТ НА СОБЕСАХ ПРОГРАММИСТУ
Просмотров 5743 года назад
⬥Telegram-канал: t.me/maxim_webdev ⬥Instagram: maxim_webdev Привет! В этом видео мы с тобой рассмотрим, как не налажать на собеседовании на знание английского, даже если ты в нем очень силен. Разберем топ-5 часто задаваемых вопросов и как на них стоит отвечать: 1. How do you spend your free time? 2. Tell us about your last project. What was the hardest task in this project? 3. Ho...
Как войти в IT БЕСПЛАТНО? | Мой опыт учебы в Rolling Scopes
Просмотров 6 тыс.3 года назад
Как войти в IT БЕСПЛАТНО? | Мой опыт учебы в Rolling Scopes

Комментарии

  • @Mitnes17
    @Mitnes17 9 часов назад

    Честно говоря, самый неудачный разбор event loop задач, что я видел. Это надо постараться так запутать и коряво объяснить. Где стэк? Где очередь? Ужас! SetTimeout сразу в webAPI, минуя стэк попадает? Ощущение, что автор сам не до конца понимает, что происходит, но заучил и рассказывает.

  • @ВладимирТомилин-ш8ю

    Спасибо, узнал много нового 🎉

  • @Ramosok
    @Ramosok Месяц назад

    оч круто!

  • @dimayudin6945
    @dimayudin6945 2 месяца назад

    Новое инфоцыганство. Просишь решить задачу у GPT, снимаешь видео и толкаешь помощь с собесами в телеге с заголовком офер 300к

    • @MaximFilanovich
      @MaximFilanovich 2 месяца назад

      Вы бы сначала уточнили информацию, прежде чем разбрасываться словами. Все эти задачи мне лично попадались на собеседовании в Яндекс. И оффер в эту компанию я получил. Соответственно, все задачи из видео я решил во время собеседования без какого-либо Chat GPT. Далее, я поделился своим опытом в видео, чем помог многим людям. А вашего узкого кругозора хватило лишь на попсовое слово "инфоцыганство" :)

  • @homo-ergaster
    @homo-ergaster 2 месяца назад

    Хороший видос. Долго искал подходящий по этой теме, этот прямо все понятно объяснил и не устарел еще

    • @MaximFilanovich
      @MaximFilanovich 2 месяца назад

      Я когда создавал приватный npm пакет на коммерческом проекте, то тоже сильно удивлялся, когда не находил нужной информации по этой теме в интернете. Пришлось знатно попотеть, чтобы разобраться. В итоге решил сделать видео, чтобы и я не забыл, как делать npm пакет, и чтобы другие смогли без проблем найти и изучить информацию. Я очень рад, что тебе помогли мои труды! :)

    • @homo-ergaster
      @homo-ergaster 2 месяца назад

      @@MaximFilanovich Спасибо за спасибо )

  • @ЕвгенийКузнецов-щ1ю
    @ЕвгенийКузнецов-щ1ю 2 месяца назад

    почему на схеме 5 кол стеков? он ведь вроде 1, это так путает, как и setTimeout с задержкой 100 и обьяснением что по этому он выполнится третьим.. (идет ведь задержка и по этому третьим) очень странно, почему не сделать задержку 0 ? и тогда будет понятнее что не смотря на отсутствие задержки он все равно выполнится последним, очень странное обьяснение

    • @MaximFilanovich
      @MaximFilanovich 2 месяца назад

      по поводу 5 кол стеков. Он действительно один. Но на схеме я отобразил 5, чтобы показать шаги выполнения задач в кол-стеке. И про это я в видео говорю. И насчет setTimeout. Сожалею, что не смог вам объяснить эту тему. Не всем может зайти объяснение конкретного человека. Посмотрите другие видео по Event Loop либо почитайте статьи. Может вам будет так проще.

  • @aniamanson
    @aniamanson 2 месяца назад

    В первой задаче немного не верно, при сравнении массивов метод Object.keys(array) выведет индексы массива, и при одинаковой длине они всегда будут равны. Надо будет сделать проверку на массив Array.isArray(array), а потом просто сравнивать значения в цикле

    • @MaximFilanovich
      @MaximFilanovich 2 месяца назад

      Вы наверное говорите про вторую задачу deepEqual, а не про первую. В видео в задаче deepEqual сравниваются значения массива, а не ключи

  • @catsouls5345
    @catsouls5345 3 месяца назад

    а на какой уровень эти задачи? junior middle?

    • @MaximFilanovich
      @MaximFilanovich 3 месяца назад

      Сложно сказать, мне их давали на позицию middle. Не я не исключаю тот факт, что что-то подобное может попасться и на junior позицию

    • @sjdjjsjsjs3991
      @sjdjjsjsjs3991 3 месяца назад

      ​@@MaximFilanovichА меня на собесе по алгоритмам гоняли, хотя им требовался верстальщик 😂

  • @Happytoad42
    @Happytoad42 3 месяца назад

    UPD: Задача решена верно, это я был невнимателен, прошу прощения. Третья задача не решена до конца. В описании задачи указано, что функция createCodesGenerator должна возвращать функцию-генератор, которая в свою очередь будет при каждом вызове возвращать один уникальный код заданной длины, либо ошибку, если уникальные коды закончились. А в вашем решении generateCode возвращает перемешанный массив строк. Корректным способом проверить правильность решения этой задачи было бы создание генератора через createCodesGenerator и последовательный вызов функции generateCode N + 1 раз, где N это максимальное значение для числа-кода. Сама задача при этом используется, чтобы проверить знания кандидатом в том числе понятия замыканий и того, как они работают.

    • @MaximFilanovich
      @MaximFilanovich 3 месяца назад

      Так, давайте по порядку. 1. В описании задачи не указано, что createCodesGenerator должна возвращать функцию-генератор. Функция-генератор - это совсем другое learn.javascript.ru/generators#funktsiya-generator 2. Вы пишите "А в вашем решении generateCode возвращает перемешанный массив строк". Посмотрите внимательнее видео, generateCode возвращает строковое значение по индексу из массива codes ruclips.net/video/ilZiDZ_rXXo/видео.htmlsi=0cI26FVdnECBwZ5q&t=1341 3. Вы пишите "Сама задача при этом используется, чтобы проверить знания кандидатом в том числе понятия замыканий и того, как они работают". В этом вы абсолютно правы! Задача проверяет, как кандидат умеет работать с замыканиями и насколько оптимизировано пишет код (big O). И решение из видео все это в себе содержит. Задача решена с помощью замыканий и функция generateCode возвращает код за O(1). Возможно, у вас есть свое решение данной задачи. Буду рад посмотреть ваш код 😉

    • @Happytoad42
      @Happytoad42 3 месяца назад

      @@MaximFilanovich вы правы, видимо я невнимательно смотрел, действительно в вашем решении возвращается число, мое замечание некорректно. Прошу прощения.

    • @MaximFilanovich
      @MaximFilanovich 3 месяца назад

      @@Happytoad42 Все хорошо)

  • @NeoJohnSmit
    @NeoJohnSmit 3 месяца назад

    Вы наверно запамятовали о методе Object.hasOwn

  • @v.demchenko
    @v.demchenko 3 месяца назад

    React version should be above 18. Storybook have trouble with older versions.

  • @Ramosok
    @Ramosok 4 месяца назад

  • @MrStrangewow
    @MrStrangewow 4 месяца назад

    ушло много часов, но я понял)) через чат гпт прорешал подобные задачки. спасибо тебе

  • @димакулинич-щ9я
    @димакулинич-щ9я 4 месяца назад

    последнее решение слишком громосткое как по мне) я попроще сделал function merge(intervals){ let mas = [intervals[0]] for(let i = 1; i < intervals.length; i++){ const prev = mas.at(-1)[1] const cur = intervals[i][0] if(prev >= cur){ mas.at(-1)[1] = intervals[i][1] } else { mas.push(intervals[i]) } } return mas }

    • @MaximFilanovich
      @MaximFilanovich 3 месяца назад

      Молодец! Действительно получилось меньше кода) И попробуй все же все кейсы обработать, на leetcode после нажатия кнопки submit не проходят все тесты 😉 leetcode.com/problems/merge-intervals/description/

  • @evgenym.2137
    @evgenym.2137 4 месяца назад

    Просто лучший

  • @АлександрЧеремных-у2щ

    Спасибо. Очень полезно!!

  • @MaximFilanovich
    @MaximFilanovich 4 месяца назад

    ✅ Забирай гайд "Как получить оффер в ЯНДЕКС на 300k+ RUB на позицию Front-End?" и видео-разборы решения задач с реальных собеседований в приватном сообществе. t.me/easy_jobinterivew_frontend_bot

  • @rossmanov
    @rossmanov 4 месяца назад

    Отличный видос, незаслуженно мало аудитории на канале)

  • @fl1ckyyy155
    @fl1ckyyy155 4 месяца назад

    Я чуть не умер на 2 задаче, я еще не дошел до темы асинхронности и промисов, но понимаю что будет п****ц

    • @MaximFilanovich
      @MaximFilanovich 4 месяца назад

      Согласен, 2-я задача совсем не простая. Но зато, если разобраться подробно в ее решении, то потом более простые задачки будешь щелкать как орешки :)

    • @TMANandMAISON991
      @TMANandMAISON991 4 месяца назад

      то чувство когда работаешь уже полтора года и дичь с ивент лупом ни разу не пригодилась))

    • @fl1ckyyy155
      @fl1ckyyy155 4 месяца назад

      @@TMANandMAISON991 js на собесах и на работе - абсолютно разные вещи, как я часто слышу от многих девелоперов

    • @MaximFilanovich
      @MaximFilanovich 4 месяца назад

      @@TMANandMAISON991 ахахах, есть такое. Но на самом деле Event Loop нужно понимать, чтобы для тебя JS не выглядел магией

    • @MaximFilanovich
      @MaximFilanovich 4 месяца назад

      @@fl1ckyyy155 все правильно тебе говорят, действительно, задачи на собесах и на работе это две разные вселенные

  • @gerompauel
    @gerompauel 4 месяца назад

    Шикарное объяснение🔥1000👍

    • @MaximFilanovich
      @MaximFilanovich 4 месяца назад

      Рад, что помог разобраться! 🔥

  • @suslikest3708
    @suslikest3708 4 месяца назад

    Не собираюсь на собеседование, но посмотрел и сохранил в папку для собеседования пригодится еще😆👍

  • @Ramosok
    @Ramosok 4 месяца назад

    Очередное крутое видео!!! Класс!!!!!!

  • @MaximFilanovich
    @MaximFilanovich 4 месяца назад

    ✅ Забирай гайд "Как получить оффер в ЯНДЕКС на 300k+ RUB на позицию Front-End?" и видео-разборы решения задач с реальных собеседований в приватном сообществе. t.me/easy_jobinterivew_frontend_bot

  • @Ramosok
    @Ramosok 5 месяцев назад

    Круто! Спасибо Макс!

  • @MaximFilanovich
    @MaximFilanovich 5 месяцев назад

    ✅ Забирай гайд "Как получить оффер в ЯНДЕКС на 300k+ RUB на позицию Front-End?" в приватном сообществе. t.me/easy_jobinterivew_frontend_bot Также в сообществе вы получите видео-разборы live-coding задач с реальных собеседований, личную помощь в прохождении собеседований и ответы на вопросы в чате.

  • @vadim_romanov
    @vadim_romanov 6 месяцев назад

    крутой урок, спасибо подскажите, Максим, а в github packages чтобы установить библиотеку кому-либоу всегда нужен токен на чтение? или можно сделать библиотеку доступную для скачивания всем без токена просто через npm?

    • @MaximFilanovich
      @MaximFilanovich 6 месяцев назад

      Мы в видео создаем именно приватную библиотеку и для ее доступа необходим токен. Если делать публичную библиотеку, которая доступна для скачивания всем, то токен конечно же не нужен

    • @vadim_romanov
      @vadim_romanov 6 месяцев назад

      @@MaximFilanovich просто пытаюсь сделать публичную библиотеку, публикую её, она приватная, меняю видимость на публичную, пробую установить через npm и все равно требует токен(

    • @MaximFilanovich
      @MaximFilanovich 6 месяцев назад

      @@vadim_romanovчестно, не рассматривал как делать публичную библиотеку. В продуктовой разработке часто нужна именно приватная. Наверняка через GitHub Packages это можно сделать. Поищи в инете, какие там параметры нужно изменить для публичной

  • @inaf.2827
    @inaf.2827 6 месяцев назад

    Спасибо большое! Все четко! Вы мне очень помогли на старте!

  • @hellogoodbye2806
    @hellogoodbye2806 7 месяцев назад

    не понятно как разрабатывать сами компоненты библиотеки без дев режима с хот релоадом

    • @MaximFilanovich
      @MaximFilanovich 7 месяцев назад

      Я так понимаю, вы хотите сделать изменения в проекте библиотеки и моментально увидеть эти же правки в проекте, в который подключена библиотека. Я правильно понял?

  • @tabrisel
    @tabrisel 7 месяцев назад

    Спасибо за урок! Долго искала подобное видео по архитектуре SPA. Все очень понятно для новичка.

    • @MaximFilanovich
      @MaximFilanovich 7 месяцев назад

      Круто! Рад, что смог помочь!

    • @АнжеликаТурлак
      @АнжеликаТурлак 7 месяцев назад

      @@MaximFilanovich Спасибо Вам! И мне оооочень сильно помогли!

    • @MaximFilanovich
      @MaximFilanovich 7 месяцев назад

      @@АнжеликаТурлак🔥🔥🔥

  • @its_daim
    @its_daim 8 месяцев назад

    Привет, спасибо, крутой видос. Вопрос возник, вот мы используем токен для чтения что бы использовать нашу библиотеку, а как тогда мы устанавливаем допустим material ui без этого токена? Можешь пояснить пожалуйста в чем разница?)

    • @MaximFilanovich
      @MaximFilanovich 8 месяцев назад

      Привет! В видео мы разрабатываем приватную библиотеку, к которой есть доступ только у конкретной команды разработчиков. Material UI - это публичная библиотека, ее может установиться каждый. На коммерческих проектах чаще всего нужна именно приватная библиотека UI компонент. А для приватности необходим токен

  • @Ramosok
    @Ramosok 8 месяцев назад

    Круто!!!

  • @Элвис-л5я
    @Элвис-л5я 10 месяцев назад

    Проблема всех этих обучающих роликов в примерах. Какие то животные, машины, сотрудники... Если бы все эти примеры были из реальной жизни, где показывалась бы именно вся красота ООП - это было бы горрраздо лучше. П ,оказывалось бы вот вариант с ООП, а вот без ООП - посмотрите какая разница и как нам помогло ООП в читабельности и масштабируемости кода. Или например: есть вот такая задача. Как ее решить с помощью методов ООП. Еще ни разу таких примеров не встречал. Все какие то животное-> животное мышка -> животное красная мышка и т.д.

  • @Элвис-л5я
    @Элвис-л5я 10 месяцев назад

    Так и не понял, зачем может понадобиться абстракция.

  • @tonia2039
    @tonia2039 11 месяцев назад

    Отличное объяснение, спасибо!

  • @stasend
    @stasend Год назад

    Максим, спасибо за ролик! Подскажи, разве правильно, чтобы стили всей библиотеки приходили одним файлом? Возможно ли разбить итоговый результат таким образом, чтобы при импорте компонента, вместе с ним импортировались только стили этого компонента?

    • @MaximFilanovich
      @MaximFilanovich Год назад

      Не вижу никакой проблемы в одном файле index.scss для всей библиотеки. Не думаю, что при любом другом способе у тебя стили будут грузится намного быстрее. Для твоего кейса скорее всего можно использовать extract: false в плагине postcss. Благодаря этому параметру файл со стилями создаваться не будет, все стили будут прописаны внутри dist/index.js (скорее всего они будут прописаны через атрибут style, но это не точно)

    • @stasend
      @stasend Год назад

      @@MaximFilanovich например такой вариант: я использую библиотеку в проекте, где не все компоненты задействованы, зачем мне все стили?

    • @MaximFilanovich
      @MaximFilanovich Год назад

      @@stasend ну да, в данном случае действительно незачем. Но если твои компоненты не совсем большие по размеру и количество неиспользованных компонент мало, то, как по мне, не стоит запариваться по поводу оптимизации загрузки стилей для этих компонент. В любом случае, если тебе так сильно это нужно, то можешь попробовать параметр extract в postcss, думаю, должно помочь. А вообще можно попробовать твои компоненты выпилить через rollup. Я думаю у бандлеров (rollup, webpack) есть возможность исключить из билда некоторые компоненты. Только на вопрос как это сделать, я навряд ли отвечу. Нужно идти в Гугл :)

    • @awicone
      @awicone 10 месяцев назад

      ну и с типами такая же история, разбрались как селать билд с модульными типами, а не общими? Чтобы они хранились в папке с компонентом

  • @timu5038
    @timu5038 Год назад

    Говнокодить нужно и обязательно чтобы вас в это гавно тыкали

  • @prostonau
    @prostonau Год назад

    Хороший урок, спасибо

  • @НиколайРусакович

    Отличный практический урок! Разложил по полочкам. Очень доступно.

  • @dez1ess
    @dez1ess Год назад

    Так хорошо ООП еще не обьяснил никто, спасибо!

  • @alenache1
    @alenache1 Год назад

    не буду комментировать архитектуру:)) но отмечу важный момент: автор упустил из виду, что использование хеша не дает вам возможность использовать якоря на странице. А если они вам будут все-так нужны, то имейте ввиду, что роутинг без хеша будет перезагружать страницу, если не отменить действие браузера по умолчанию на нажатие ссылки и hashchange уже работать не будет.

  • @-Forever-Young-
    @-Forever-Young- Год назад

    Привет! Спасибо за урок!

  • @Danny-uc6kx
    @Danny-uc6kx Год назад

    единственный вопрос который остался, можно ли както избавиться импорта файла стилей каждый раз при использовании библиотеки, не очень удобно както

    • @MaximFilanovich
      @MaximFilanovich Год назад

      Импортировать файл стилей необходимо только один раз в проект (это частая практика для ui kit библиотек). В React приложении ты можешь просто сделать один импорт в index.js либо App.js. Но можно обойтись и без файла стилей, просто указав нужные настройки в плагине postcss. Там вроде как за это отвечает extract. Можешь поставить extract: false и файл со стилями создаваться не будет (но стили при этом должны примениться). Возможно, я в чем-то ошибаюсь, лучше перепроверь документацию плагина postcss: github.com/egoist/rollup-plugin-postcss#extract-css

    • @Danny-uc6kx
      @Danny-uc6kx Год назад

      @@MaximFilanovich да все верно, этот вопрос успел изучить) я правильно понимаю что такое решение с импортом картинок было использовано потому что rollup не умеет умеет работать с импортамт картинок в файлах стилей(background: url()), или это мне не удалось найти решение этой проблемы

    • @MaximFilanovich
      @MaximFilanovich Год назад

      ​@@Danny-uc6kxЧестно не знаю, умеет или нет. Но в любом случае, на практике лучше использовать тег img, а не background: url(). Могут быть исключительные кейсы, но они редкие. Если тебе так нужен background-image, то я думаю у rollup есть решение на этот счет. И скорее всего оно будет через postcss.

  • @sharkman6434
    @sharkman6434 Год назад

    оч классный урок единственно позволю себе посоветовать писать константы в enum вида MY_CONSTANT = 'My constant' ; потому что считаеться что штуки типа MyConstant это может быть как компонента так и некая функция , особенно в реакт где все компоненты так и пишуться

  • @Danny-uc6kx
    @Danny-uc6kx Год назад

    видос крутой, длинный но все понятно рассказано

  • @TheEasyflap
    @TheEasyflap Год назад

    Доступно, понятно. Спасибо большое за урок )

  • @alexvershkovich
    @alexvershkovich Год назад

    Молодец! Рассказал естественно, как есть. Без приукрашивания. Естественно. Молодец! Топи! Ты достигнешь больших высот в IT сфере

  • @ВалерийФилиппенков-к1ю

    devServer: { static: path.resolve(__dirname, 'dist') port: 8080 }

  • @annnukai9491
    @annnukai9491 Год назад

    Спасибо)

  • @AntonioBenderas
    @AntonioBenderas Год назад

    Дело в том, что такие макеты никто их реальных закэзчиков не даёт

  • @donalnoye4946
    @donalnoye4946 Год назад

    16:50 в run и render вместо append напишите appendChild, иначе вылазит ошибка