Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Погрузись в захватывающий фэнтезийный мир! Создай уникального мага и вступай в эпичные тактические сражения. Оттачивай навыки в динамичных онлайн-битвах . Всё это ждёт тебя в «Битве магов»!

Битва Магов

Хардкорные, Мидкорные, Ролевые

Играть

Топ прошлой недели

  • solenakrivetka solenakrivetka 7 постов
  • Animalrescueed Animalrescueed 53 поста
  • ia.panorama ia.panorama 12 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
maximz
maximz

Обычный рабочий день frontend разработчика⁠⁠

11 месяцев назад

Всем привет, окунитесь в обычный рабочий день frontend разработчика. Жена пикабушника делает листинг каталога для онлайн бронирования vr игр

Приятного просмотра, с удовольствием отвечу на все вопросы по теме

Показать полностью
[моё] Стримеры React IT Приложение Web-программирование Программирование Javascript Айтишники Сайт Frontend Разработчики Видео YouTube CSS
3
5
Nichteye121
Nichteye121
Программирование на python

Как выучить Numpy⁠⁠

11 месяцев назад
[моё] Программирование YouTube React Джанго Python Видео
3
cherkalexander
cherkalexander

Как мы мигрируем с JQuery на React⁠⁠

11 месяцев назад

В прошлом году я каким-то образом умудрился написать 6 статей. В этом же с трудом нашел силы на одну — Как мы мигрируем с JQuery на React.

Как мы мигрируем с JQuery на React



Во время миграции мы столкнулись со многими трудностями, поэтому я решил описать наш подход в виде статьи.

Из статьи вы узнаете:

1️⃣ как мы писали код до React
2️⃣ какой подход мы выбрали для миграции
3️⃣ как нам мешали пространства имён тайпскрипта
4️⃣ как конфигурировали webpack
5️⃣ что делать, если нужно использовать легаси код внутри React
6️⃣ как мы писали кастомный генератор типов
7️⃣ почему выбрали Zustand для управления состоянием

Обязательно переходите и читайте.
Буду признателен если сделаете репост или проголосуете за статью на Хабре, это поможет её продвижению 🔥. Кто-то поставил минус за обложку статьи, так что спасайте 😄

#article #react #habr

Показать полностью 1
Кросспостинг Pikabu Publish Bot React Habr Текст
4
pikabu.education
pikabu.education
Серия Программирование

Топ-5 курсов по разработке на React⁠⁠

1 год назад

В этой подборке представлены 5 образовательных программ по разработке на React, которые помогут вам освоить ключевые навыки для работы в этой области. Каждый курс охватывает актуальные темы и предоставляет поддержку, чтобы вы могли уверенно развиваться в профессии.

Мы тщательно анализируем плюсы и минусы каждого курса, опираясь на мнение пользователей как на нашей платформе, так и на других ресурсах. Изучите реальные отзывы студентов и найдите подходящий для вас курс на платформе Pikabu Курсы.

  • Курс «Специализация Frontend-разработчик» от Skillfactory

  • Курс «JavaScript Developer. Basic» от Otus

  • Курс «Frontend-разработчик» от Академия Eduson

  • Курс «Профессия Фронтенд-разработчик» от Skillbox

  • Курс «Web-разработчик» от ProductStar

Топ-5 курсов по разработке на React

Обзор курсов

1. Курс «Специализация Frontend-разработчик» от Skillfactory
Вы научитесь создавать современные веб-сайты и приложения с нуля. Освоите базовые технологии верстки (HTML и CSS), программирование на JavaScript, работу с библиотекой React и основы backend-разработки.

Топ-5 курсов по разработке на React

Цена: зависит от тарифа.
Длительность: 9 месяцев.
Подробности:

  • пошаговое обучение;

  • много практики;

  • техническое задание для финального проекта подготовлено сотрудниками компании СКАН;

  • работа с фреймворками Angular и Vue.js в дополнение к React;

  • высокая сложность на этапах изучения JavaScript и React;

  • только базовые знания Node.js;

  • программа трудоустройства;

  • доступ к материалам курса навсегда.

Посмотреть программу курса >>>


2. Курс «JavaScript Developer. Basic» от Otus
Вы научитесь основам и современным подходам разработки на JavaScript, включая использование TypeScript и библиотеки React. Поймете, как работать с системой контроля версий Git, тестировать код, создавать одностраничные приложения (SPA) и управлять состоянием с помощью Redux.

Топ-5 курсов по разработке на React

Цена: 96 000 ₽
Цена со скидкой: 81 600 ₽
Длительность: 5 месяцев.
Подробности:

  • полный цикл обучения;

  • практическая направленность;

  • современные инструменты: работа с TypeScript, Redux, Git, тестовыми фреймворками;

  • фокус на реальной разработке;

  • высокая нагрузка для новичков;

  • в подарок видеокурс «JavaScript для начинающих» для самостоятельного прохождения;

  • налоговый вычет.

Посмотреть программу курса >>>

3. Курс «Frontend-разработчик» от Академия Eduson
Вы не только научитесь создавать сайты, но и освоите управление базами данных, проектирование API и принципы контейнеризации.

Топ-5 курсов по разработке на React

Цена: зависит от тарифа.
Длительность: зависит от тарифа.
Подробности:

  • обширная программа;

  • практическая направленность;

  • работа с популярными инструментами;

  • стажировка в IT-компании;

  • помощь в трудоустройстве;

  • доступ к курсу навсегда;

  • диплом о профессиональной переподготовке.

Посмотреть программу курса >>>


4. Курс «Профессия Фронтенд-разработчик» от Skillbox
Вы освоите HTML, CSS, JavaScript, TypeScript, а также популярные фреймворки React.js или Vue.js на выбор.

Топ-5 курсов по разработке на React

Цена: зависит от тарифа.
Длительность: 9 месяцев.
Подробности:

  • глубокая проработка тем;

  • выбор фреймворка: React.js или Vue.js;

  • большой объем практики;

  • обучение ключевым современным технологиям;.

  • высокая нагрузка;

  • курс обновлен в 2024 году;

  • помощь в трудоустройстве;

  • доступ навсегда;

  • налоговый вычет.

Посмотреть программу курса >>>


5. Курс «Web-разработчик» от ProductStar
Вы научитесь создавать современные веб-приложения с нуля, начиная с основ HTML и CSS и завершая продвинутыми технологиями, такими как JavaScript, React и TypeScript.

Топ-5 курсов по разработке на React

Цена: зависит от тарифа.
Длительность: 10 месяцев.
Подробности:

  • глубокое погружение в профессию;

  • практическая направленность;

  • высокая нагрузка;

  • отсутствие фокуса на одной специальности: для тех, кто хочет стать специалистом только во фронтенде или только в бэкенде, программа может быть слишком обширной;

  • курс обновлен в 2024 году;

  • помощь в трудоустройстве;

  • стажировки в компаниях-партнерах;

  • подписка на РБК на 6 месяцев;

  • 3 мини-курса в подарок;

  • интенсив на выбор.

Посмотреть программу курса >>>

Реклама. ООО Скилфэктори, ИНН 9702009530, ООО Отус онлайн-образование, ИНН 9705100963, ООО Эдюсон, ИНН 7729779476, ЧОУ ЧАСТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ДОПОЛНИТЕЛЬНОГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ ОБРАЗОВАТЕЛЬНЫЕ ТЕХНОЛОГИИ СКИЛБОКС (КОРОБКА НАВЫКОВ), ИНН 9704088880, ООО ТРИВИУМ, ИНН 7806297293.

Показать полностью 6
Учеба Обучение React Frontend Web-программирование Онлайн-курсы Длиннопост
22
1
cododelia
cododelia
Лига программистов

ЧЕТЫРЕ РАЗА! — ПЕРЕПИСЫВАЛ... проект! (Supabase, Strapi, AppWrite, Directus, FilamentPHP)⁠⁠

1 год назад
ЧЕТЫРЕ РАЗА! — ПЕРЕПИСЫВАЛ... проект! (Supabase, Strapi, AppWrite, Directus, FilamentPHP)

AppWrite, SupaBase, Directus, Strapi - не понравились

AppWrite

Есть всё, кроме массового импорта. Мощнейшая вещь.

Но настройка его сложна для новичка, и жрет о 2-4гб оперативки на сервере.

SupaBase

Крутая штука, не допёр как сделать авторизацию 🤣

И тоже с настройкой были траблы.

Плюс мне не нравится HTTP Basic Авторизация по захардкоженным credentials в конфиге прокси сервера.

За то импорт и экспорт нормальный есть

Directus

Очень крутая штука, особенно его Flows.

Стал сильно продуманнее за прошедшие полгода с моей встречи с ним.

Но все так же документация меня вымораживает. Много не раскрытых тем, и скрытых, не упомянутых ограничений.

Например условная нода логики в тех же Flow - не поддерживает тупую проверку входных данных на их наличие... Не уверен что мне когда-либо понравится это. И так же во flows много других ограничений, хотя задумка улетная.

В остальном это комбайн для супер быстрого старта, толком даже без настроек, всё мышкой можно сделать.

Ограничения так же можно обойти, сделав простое расширение, я так пол логики в прошлом проекте сделал, но теряется весь шарм легкости и наглядности. 🥲

Думаю ребята в нужном направлении двигаются, и их время просто ещё не настало, держу звезду на гитзабе за них.

Strapi

HeadlessCMS, да. Крутая, да. Популярная? А вот хз-хз.

Вроде раньше много где встречал про неё статьи, и на гитхабе звезд куча насыпано.

НО КАК? Как может не быть у такой популярной CMS функционала для импорта/экспорта, хотя бы банального!?

Он справделивости ради есть в официальном маркете расширений, но... На прошлую версию 😖 Не без обратной совместимости 😩

Ну я его тоже оставил откисать.

FilamentPHP

Тяжелая артилерия из TALL Stack компонентов и не то что целой системы, а уже целой ЭКОсистемы для любого рода панелей, да еще и на базе Laravel 😤

Ну это козырь был.

Я пытался, честно, вот даже описал что меня останавило, и на каждый из вариантов я потратил минимум 4 часа времени.

Думал ребята допили свои проекты, обещающие супер быстрый старт, но везде какие-то проблемы...

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

Меня просто удивляет продуманность этого Filament. Баги есть, не без них, конечно. Как оказалось без ошибок ни то, что люди, роботы не справятся 🙃 (Отсылка к нейросетям)

Тут я за пару дней уложился извернуться и не сорвать сроки, а сделано:

  • Админка

  • Бизнес логика

  • Token Based Авторизация по API
    (пришлось потратить полдня, чтобы разобраться в этой теме, так как я её намеренно игнорировал последние 3 года)

  • API c аутентификацией по токену

  • Расширение для хрома на WXT + React (TanStack Router, Query, Store)

  • Для расширения хромовского - я вообще только с WXT работал и голым React, чисто для верстки.

К сожалению - опять не пригодился Background скрипт, так что всё ещё познать вполне не удастся разработку расширений...

Но с TanStack я не работал. Как-то раз для крипто проекта пытался его настроить и за целый день - так и не вышло. Сейчас же скажу - это мастхэв! Очень крутая штука!

Ну и отказался от Tailwind и SCSS в пользу CSS Modules в паре с clsx. И я не сказал бы, что стили писать долго. В моем случае я заказы беру вообще без дизайна и предпочтений, так что 50-80% от них пишет нейросеть, а я просто не претендую на произведение искусства 😆

Кто работал с этими комбайнами, опишите свой опыт, мб я чего не догоняю...
Конкретно с AppWrite - разбираться не стал в силу ограничения по срокам, а supabase по инерции последним выбыл.

Показать полностью
[моё] Программирование Javascript Backend Cms Mysql Postgresql IT Фриланс Длиннопост PHP Laravel Nodejs Typescript Личный опыт React
4
AlexeyPerfilev
AlexeyPerfilev

Битва титанов: Выбираем state менеджер для React (осторожно, можно подавиться попкорном от накала страстей!)⁠⁠

1 год назад

Привет, дорогие Пикабушники-разработчики и сочувствующие! Сегодня мы окунемся в пучину холиваров и попробуем разобраться, какой же state менеджер для React самый-самый. Пристегните ремни, будет жарко!

Раунд 1: Redux - дедушка, который ещё о-го-го!

Плюсы:

  • Предсказуемость состояния (если вы экстрасенс и можете предсказать, что произойдет после 20 действий)

  • Отличная документация (которую никто не читает)

  • Огромное комьюнити (в основном состоящее из людей, задающих вопрос "Зачем здесь столько кода?")

Минусы:

  • Многословность (пишешь 100 строк кода, чтобы изменить одну переменную)

  • Кривая обучения (напоминает американские горки, только вместо адреналина - отчаяние)

Раунд 2: MobX - хипстер в мире state менеджмента

Плюсы:

  • Меньше кода (настолько меньше, что иногда забываешь, что вообще что-то написал)

  • Реактивность из коробки (магия, не иначе!)

  • Удобство использования (если вы фанат декораторов и любите украшать свой код, как новогоднюю ёлку)

Минусы:

  • Может быть сложно отлаживать (где эта чертова переменная изменилась?!)

  • Менее предсказуемое поведение по сравнению с Redux (сюрприз за сюрпризом, прямо как в коробке конфет Forrest Gump)

Раунд 3: Recoil - новичок, который хочет всех удивить

Плюсы:

  • Простота использования (настолько просто, что даже ваша бабушка смогла бы написать atom)

  • Оптимизация производительности (React, ускоряйся!)

  • Поддержка от Facebook (ну, вы знаете, те ребята, которые создали React и подарили нам бесконечные часы дебагинга)

Минусы:

  • Относительно новый (использовать в продакшене - все равно что прыгать с парашютом, сделанным из простыней)

  • Меньше экосистема (найти готовое решение сложнее, чем номер телефона на старой Nokia)

Раунд 4: Zustand - минималист, который пытается всех помирить

Плюсы:

  • Крошечный размер (настолько маленький, что можно случайно удалить, очищая корзину)

  • Простой API (настолько простой, что даже джуниор на собеседовании не запутается... наверное)

  • Отлично работает с TypeScript (наконец-то, можно перестать гадать, какого типа эта переменная!)

Минусы:

  • Может быть недостаточно для сложных приложений (как пытаться построить небоскреб из Lego)

  • Меньше встроенных функций (придется самим изобретать велосипед, но с квадратными колесами)

Итог: Кто же победил?

А победил... барабанная дробь... тот, кто подходит именно вашему проекту! Ведь в мире React, как и в мире покемонов, нужно выбирать своего стартовика с умом.

А теперь предлагаю всем высказаться в комментариях! Какой state менеджер вы предпочитаете и почему? Может быть, вы вообще используете useContext и useReducer и смеетесь над всеми этими библиотеками? Или, может, вы фанат Context API и считаете, что остальное - лишний геморрой?

Давайте устроим настоящую битву! Но помните: код до добра не доводит, а вот чувство юмора - запросто!

P.S. Если в процессе дискуссии вы увидите разработчика, катающегося по полу и кричащего "Да зачем вообще нужен state management?!", не пугайтесь. Просто дайте ему печеньку и почешите за ушком. Возможно, он пытался управлять состоянием большого приложения без специальных инструментов.

Показать полностью
[моё] React Разработка Программирование IT Текст
0
0
Ragnoboy
Ragnoboy
Серия BZC - просто о веб-технологиях

JavaScript - новое для себя⁠⁠

1 год назад

Приветствую всех фронтендеров, бекендеров и тех, кто потерялся где-то между async и await!

Сегодня поговорим о технология в JavaScript, которые заставляют нас сидеть на краю кресла и писать код, от которого либо "Вау!", либо "Ну всё, увольняюсь". JavaScript не стоит на месте, как и баги, которые он порождает. Давайте разберёмся, что сейчас в топе в этом великом и могучем языке. Поехали!

Приветствуем Server Components: когда React решил стать сервером

Server Components — это тот случай, когда React подумал: "А почему бы мне не попробовать роль сервера?" Представьте, что на вечеринке кто-то переоделся в официанта и начал раздавать напитки самостоятельно. Теперь компоненты рендерятся на сервере, а не у клиента, как раньше. Идея в том, чтобы снизить нагрузку на клиент и улучшить производительность. Потому что почему бы не добавить ещё больше серверной магии в клиентский код?

React Server Components — это как странный подарок на день рождения, который сначала вызывает вопросы, но потом ты понимаешь, что это именно то, что нужно, чтобы выжить в этом сумасшедшем мире фронтенда. Сервер рендерит, клиент расслабляется — идеальная экосистема.

TypeScript захватывает мир: безопасность на грани нервного срыва

TypeScript уже не просто надстройка над js — это обязательный атрибут любого уважающего себя разработчика, как большой запас кофе и немного отчаяния. ☕

Сначала был JavaScript, потом JavaScript с комментариями, а теперь TypeScript, который говорит: "Эй, я просто хочу, чтобы все знали, что это число, а не undefined".

Если раньше мы надеялись, что переменные окажутся тем, чем должны быть, то теперь TypeScript превращает этот процесс в уверенное "Ага, теперь это точно компилируется". Это как ходить по канату, но с ремнём безопасности, который кричит на тебя, если сделал шаг в сторону.

ES-модули: пора сказать "нет" require()

Когда-то мы не представляли жизнь без require(). Это был наш лучший друг, пока не появились ES-модули с их import и export, забирая всё внимание на себя. Теперь import — это не просто команда, а статусный символ: "Я пишу современный JavaScript, посмотрите на меня, мама!"

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

Astro: фреймворк, который не перегревает ваш ноутбук

Astro — это тот дружелюбный сосед, который заглядывает с печеньками и предлагает оптимизировать ваш сайт.

Его фишка в том, что он строит сверхбыстрые сайты, рендеря только то, что действительно нужно. Все эти огромные фронтенд-фреймворки загружаются только тогда, когда они действительно нужны, а когда нет — "ничего не трогаем, работаем тихо".

Это как построить многоэтажный дом, но поднимать лифтом только одного человека, чтобы не перегружать систему. Astro — отличный выбор, если вы не хотите, чтобы пользователи засыпали в ожидании загрузки вашего сайта.

Vite — билд быстрее, чем вы успеете сказать "Webpack"

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

Это новый инструмент разработки, который позволяет начать работу практически мгновенно, потому что никто не хочет смотреть на загрузочный экран дольше, чем на Netflix.

Vite — это как пересесть со старенького трактора на Ferrari. Быстро, элегантно и больше никаких жалоб на то, что "пока проект собирается, можно успеть выпить кофе".

Оператор Nullish Coalescing: избавьтесь от `undefined` с комфортом

Сколько лет мы жили с ||, который в любой непонятной ситуации возвращает первое попавшееся значение. Но встречайте ?? — оператор, который проверяет значение на null или undefined и говорит: "Я верну замену только если значение действительно отсутствует". 🤝

Этот оператор — как хороший друг, который не бросает вас с вопросом "а вдруг", а решает проблему чётко и прямо. Если null или undefined — тогда замена; если что-то есть — оставляем. Надёжность, как у старого доброго друга, но в коде.

JavaScript без JavaScript: добро пожаловать в Edge Computing

С развитием Edge Computing теперь JavaScript можно выполнять прямо на "краю" — там, где пользователи и дата-центры настолько близки, что можно передавать сообщения шёпотом.

Смысл в том, чтобы не ждать ответа от сервера на другом конце света, а обработать всё как можно ближе к пользователю. Это как доставка еды дронами — минимальная задержка и максимальная скорость.

Технологии в JavaScript — это как бесконечная сага с новыми сериями "Звёздных войн": каждый год появляется что-то новенькое, и кажется, что теперь-то всё понятно, но в следующем году всё снова меняется.

Будь то React Server Components или очередной оператор, JavaScript напоминает нам, что обучение — процесс бесконечный.

Так что если вы чувствуете, что ваш код устарел, не переживайте. Помните, что главное — это любовь к коду, куча закладок на GitHub и умение посмеяться над тем, как JavaScript неожиданно делает то, что ему самому не свойственно.

Берегите себя и не забывайте: undefined — не значит, что жизнь кончена, это просто повод найти значение!

Понравилась статья? Подписывайтесь на мой Telegram-канал, где ещё больше весёлых и полезных материалов.

Показать полностью
[моё] Блог Рекомендации Javascript React Опыт Саморазвитие Текст
0
6
Proglib
Proglib
Серия Итоги недели в мире фронтенда и обзоры сервисов

Итоги недели в мире фронтенда и обзоры новых сервисов: 10 полезных JavaScript-трюков⁠⁠

1 год назад

🔮 10 полезных JavaScript-трюков

Деструктуризация с переименованием (алиасингом)

Деструктуризация – это способ извлечь значения из массивов или свойства из объектов и присвоить их отдельным переменным. Алиасинг (переименование) позволяет дать новые имена этим переменным в процессе деструктуризации:

Зачем это нужно:

  • Улучшает читаемость кода.

  • Помогает избежать конфликтов имен – если у вас уже есть переменная city, можно использовать hometown.

  • Пригодится при работе с API, если он возвращает данные с неподходящими для вашего кода именами.

Каррирование

Каррирование – техника преобразования функции с несколькими аргументами в серию функций, каждая из которых принимает только один аргумент. Это делает функции более гибкими и переиспользуемыми. Например, это обычная функция расчета скидки:

Та же функция, но с использованием каррирования:

Зачем это нужно:

  • Обеспечивает переиспользуемость функций.

  • Повышает читаемость и модульность кода.

  • Позволяет создавать новые функции на лету, используя уже существующие, например:

🤖🎓 Подтянуть свои знания по DS вы можете на нашем телеграм-канале «Библиотека DS для собеса»

debounce() и throttle()

Дебаунсинг и троттлинг – техники оптимизации, которые помогают контролировать частоту вызова функций. Они особенно полезны при работе с событиями, которые могут происходить очень часто, например, прокрутка страницы или ввод текста.

debounce() работает так:

  • Функция вызывается только после того, как прошло определенное время с момента последнего вызова.

  • Если функция вызывается снова до истечения этого времени, таймер сбрасывается.

В этом примере функция поиска будет вызвана только через 300 миллисекунд после того, как пользователь перестанет вводить текст. Это позволяет избежать лишних запросов к серверу при каждом нажатии клавиши:

throttle() работает так:

  • Функция вызывается не чаще, чем раз в заданный интервал времени.

  • Если попытка вызвать функцию происходит до истечения интервала, вызов игнорируется.

В этом примере функция handleScroll будет вызываться не чаще, чем раз в 300 миллисекунд, независимо от того, сколько раз пользователь прокрутил страницу за это время:

Мемоизация

Мемоизация – техника оптимизации, связанная с кэшированием промежуточных результатов сложных вычислений. Вместо того чтобы каждый раз заново решать сложную задачу, мы записываем ответ и в следующий раз просто смотрим в наш кэш:

  • Когда функция вызывается с определенными аргументами, мы сначала проверяем, вычисляли ли мы уже результат для этих аргументов.

  • Если да, мы возвращаем сохраненный результат.

  • Если нет, мы выполняем вычисление, сохраняем результат и возвращаем его.

Пример мемоизации при вычислении ряда Фибоначчи:

  • Без мемоизации вычисление fibonacci(40) заняло бы очень много времени, потому что функция вызывала бы себя рекурсивно миллионы раз, повторяя одни и те же вычисления.

  • С мемоизацией каждое число Фибоначчи вычисляется только один раз. При повторном запросе того же числа результат берется из кэша, что значительно ускоряет работу.

Когда использовать мемоизацию:

  • Для функций с очень сложными вычислениями.

  • Когда функция часто вызывается с одними и теми же аргументами.

  • Когда функция  возвращает один и тот же результат для одних и тех же входных данных.

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

🐘🧩 Интересные задачи по PHP для практики можно найти на нашем телеграм-канале «Библиотека задач по PHP»

Proxy

Proxy позволяет нам обернуть объект и контролировать взаимодействие с ним. Мы можем перехватывать и изменять основные операции – чтение свойств, их запись, вызов функций и т. д. Proxy особенно полезен, когда нужно добавить дополнительное поведение к объектам, не изменяя их напрямую: это может быть полезно для отладки, для реализации реактивных систем (как в Vue.js), для создания умных объектов и многого другого:

Для чего еще можно использовать Proxy:

  • Валидация – проверка данных перед их установкой в объект.

  • Логирование – отслеживание использования и изменений свойств объекта.

  • Создание вычисляемых на лету свойств.

  • Безопасность – можно контролировать доступ к свойствам объекта.

Генераторы

Генераторы – особый тип функций в JavaScript:

  • Могут приостанавливать свое выполнение и возобновлять его позже.

  • Сохраняют свое состояние между вызовами.

  • Используют ключевое слово yield для возврата значений.

Пример итерации по свойствам объекта:

Преимущества генераторов:

  • Ленивые вычисления – вычисляют значения, когда они действительно нужны.

  • Создание бесконечных последовательностей, не занимающих бесконечный объем памяти.

  • Упрощение асинхронного кода – можно сделать асинхронный код более похожим на синхронный.

  • Создание кастомных итераторов для сложных структур данных.

Эффективное использование консоли

Помимо console.log(), консоль предоставляет несколько более наглядных методов вывода информации.

  • Ошибки и предупреждения:

  • Вывод табличных данных:

  • Группировка логов:

  • Измерение времени выполнения:

  • Условное логирование:

  • Трассировка стека:

🐍🎓 Подтянуть свои знания по Python вы можете на нашем телеграм-канале «Библиотека Python для собеса»

Структурированное клонирование

Структурированное клонирование – метод создания полной (глубокой) копии объекта, включающей все вложенные объекты и структуры данных. Функция structuredClone позволяет выполнять такое клонирование просто и эффективно – в  отличие от JSON.parse(JSON.stringify()), structuredClone корректно обрабатывает Date, Map, Set и другие специальные типы JavaScript:

Структурированное клонирование стоит использовать, если:

  • Нужно создать полную, независимую копию сложного объекта.

  • Данные не должны изменяться (иммутабельность).

  • Необходимо избежать побочных эффектов при изменении данных.

Самовызывающиеся функции

Самовызывающиеся функции (IIFE) выполняются автоматически сразу после их создания. Они создают временную область видимости, в которой можно безопасно определять переменные и функции, не беспокоясь о том, что они будут конфликтовать с другими частями кода и загрязнять глобальную область видимости. Эта техника особенно полезна в старых средах JavaScript, где блочная область видимости (let и const) недоступна, или в сценариях, где требуется немедленное выполнение для инициализации:

Теговые шаблоны

Теговые шаблоны позволяют разбирать шаблонные литералы с помощью функции. Первый аргумент такой функции содержит массив строковых значений, а остальные содержат выражения из подстановок. Здесь, например, функция sanitize заменяет опасные символы на их безопасные HTML-сущности, предотвращая выполнение нежелательного кода:

Как можно использовать теговые шаблоны:

  • Автоматически обрабатывать пользовательский ввод, предотвращая XSS-атаки.

  • Форматировать числа, даты и т. д.

  • Безопасно формировать SQL-запросы, экранируя ввод.

  • Создавать теги для автоматического перевода строк с одного языка на другой.

🤖🧩 Интересные задачи по DS для практики можно найти на нашем телеграм-канале «Библиотека задач по DS»

📐 Единицы измерения высоты и ширины экрана в современном CSS

На протяжении многих лет разработчики использовали vh и vw, чтобы задавать размеры элементов в процентах от высоты и ширины экрана. Например, чтобы заполнить весь экран элементом, его размеры можно задать как 100vh на 100vw. Однако эти единицы могут работать ненадежно в некоторых случаях, например, при изменении видимой области экрана на мобильных устройствах из-за скрытия адресной строки браузера при прокрутке. Сейчас CSS предлагает новые единицы измерения, которые учитывают динамические изменения интерфейса браузера.

Large Viewport Units (lvh, lvw)

Эти единицы задаются относительно максимального размера видимой области, когда интерфейс браузера минимизирован (например, скрыты панели). По сути, они ведут себя аналогично классическим vh и vw, но с учетом возможных изменений интерфейса. Этот элемент будет занимать весь экран независимо от состояния интерфейса браузера:

.full-page-element {
height: 100lvh;
width: 100lvw;
z-index: -1
background: #f51;
}

Small Viewport Units (svh, svw)

Эти единицы рассчитываются относительно минимального размера видимой области, когда интерфейс браузера максимально расширен (например, когда панели видимы). Пример – статичный заголовок, занимающий 10% от минимальной видимой области:

.header {
height: 10svh;
background-color: #642;
}

Dynamic Viewport Units (dvh, dvw)

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

.adjustable-element {
height: calc(100dvh - 10svh);
}

Привет!

Мы запустили еженедельную email-рассылку, посвященную последним новостям и тенденциям в мире фронтенда. В наших еженедельных рассылках ты найдешь:

  • Современные JavaScript-фреймворки и библиотеки

  • HTML5 и CSS3: новые возможности и трюки

  • Оптимизация производительности веб-приложений

  • Тестирование и отладка кода

  • Лучшие практики UX/UI

  • Новые веб-стандарты и браузерные технологии

  • Тренды в веб-дизайне и интерфейсах

  • Прогрессивные веб-приложения (PWA)

📧 Подпишись, чтобы быть в числе первых, кто получит дайджест

✍️ 50 лучших ресурсов с бесплатными HTML/CSS/JS-шаблонами

  • HTMLrev – крупнейшая бесплатная библиотека шаблонов, созданных с использованием всех существующих технологий, включая HTML/CSS/JS, Bootstrap, Tailwind, Bulma, Angular, React, Vue, Next.js, Nuxt, Svelte, Astro, Laravel, Django, Gatsby, Hugo, Jekyll и BCMS.

  • HTML5 UP – бесплатная коллекция HTML-шаблонов с уникальным дизайном и высоким качеством кода.

  • StyleShout предлагает широкий выбор шаблонов для различных целей, включая SaaS, мобильные приложения, блоги, лендинги, портфолио и агентства.

  • One Page Lovе включает шаблоны на Bootstrap, Next.js, Tailwind, Carrd и Framer.

  • Cruip предлагает шаблоны на Tailwind, React, Vue, Next.js и Laravel.

🐍🧩 Интересные задачи по Python для практики можно найти на нашем телеграм-канале «Библиотека задач по Python»

  • Templatemo – огромная коллекция бесплатных Bootstrap-шаблонов.

  • ThemeSelection – библиотека бесплатных и платных шаблонов на Vue, Next.js, Nuxt и Laravel. Специализируется на административных панелях и UI-китах.

  • Creative Tim – шаблоны на Bootstrap, Tailwind, Angular, React, Vue, Next.js, Nuxt, Svelte, Laravel, Django и Astro.

  • Themesberg предлагает широкий выбор шаблонов для административных панелей, лендингов, дизайн-систем и UI-китов.

  • TemplateDeck – небольшая библиотека креативных Bootstrap-шаблонов высокого качества.

  • Flout UI – коллекция компонентов Tailwind и готовых шаблонов Next.js.

  • Michael Andreuzza – бесплатная подборка шаблонов Astro, созданная опытным и креативным разработчиком.

  • Just Good UI – собрание бесплатных и платных шаблонов Astro.

  • Startup Landing – подборка бесплатных шаблонов Next.js и Gatsby.

  • Web3Templates – красивые шаблоны Tailwind, Astro и Next.js, оптимизированные для конверсий.

  • Landify – красивые и современные шаблоны Gatsby.

  • Nextjs Templates – широкий выбор шаблонов для разных целей, включая SaaS, стартапы, бизнес, программное обеспечение и блоги.

  • LayoutFlow – отличные шаблоны для агентств, портфолио и сайтов услуг.

  • Template Foundation – шаблоны, ориентированные на портфолио и личные сайты.

  • Templated – продуманные шаблоны на HTML/CSS и Bootstrap.

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

  • Start Bootstrap – широкий выбор профессиональных шаблонов для стартапов, агентств, портфолио, личных сайтов и блогов.

  • MonsterOne – современные шаблоны с несколькими страницами.

  • TemplatesJungle – шаблоны для бизнеса, агентств, сервисов, портфолио, электронной коммерции и других целей.

  • 3rd Wave Media – коллекция высококачественных шаблонов, ориентированных на ИТ-сферу.

  • Tooplate – большая коллекция стильных и современных Bootstrap-шаблонов.

  • Pixel Rocket – качественные Bootstrap- и Tailwind-шаблоны.

  • HTML Codex – широкий выбор шаблонов для бизнеса, курсов, продуктов, агентств, сервисов, портфолио, резюме и других целей.

  • W3Layouts отличается широким выбором шаблонов для бизнеса.

  • Bootstrapious – шаблоны с хорошим дизайном и продвинутыми компонентами.

  • Untree – стильные шаблоны со сложными элементами.

  • Tailwind Toolbox – красивые шаблоны с продуманной структурой.

  • Pixelcave – современные шаблоны для сайтов и административных интерфейсов.

  • Themefisher – коллекция шаблонов для бизнеса, SaaS, блогов и других целей.

  • Tailspark – Tailwind-шаблоны для SaaS-сайтов и лендингов.

  • Red Pixel Themes – шаблоны с  хорошим дизайном и многими полезными компонентами.

  • Ari Budin – уникальные шаблоны для портфолио, агентств, журналов и дизайн-систем.

  • Treact – бесплатная библиотека React-шаблонов.

  • DesignToCodes – шаблоны для стартапов, агентств, портфолио и административных панелей.

  • UI Lib – библиотека Bootstrap-, Tailwind-, Angular-, React- и Vue-шаблонов.

  • AdminMart – профессиональные шаблоны со множеством секций и компонентов.

  • WrapPixel – специализируется на административных панелях и UI-китах, предлагает широкий выбор шаблонов с разным дизайном и структурой.

  • Tabler – бесплатная библиотека Bootstrap-шаблонов, специализируется на административных панелях.

  • KeenThemes – современные шаблоны для админ-панелей со множеством компонентов.

🎮 Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека разработчика игр | Gamedev, Unity, Unreal Engine»

  • EaseTemplate – подборка современных Bootstrap-шаблонов.

  • BootstrapDash – шаблоны с несколькими страницами и продвинутыми компонентами.

  • CodedThemes – профессиональные Bootstrap-, Angular-, React- и Vue-шаблоны с красивым дизайном.

  • Salvia Kit предлагает коллекцию Angular-, React-, Vue-, Nuxt- и Svelte-шаблонов. Отличается широким выбором шаблонов для административных панелей.

  • JustBoil – Tailwind-, React-, Vue-, Next.js-, Nuxt- и Laravel-шаблоны для сайтов и админ-панелей.

  • Iqonic Design – библиотека React- и Vue-шаблонов, предлагает несколько бесплатных пакетов для создания современных интерфейсов.

Автор рассылки: Наталья Кайда

📧 Подписаться на рассылку

Показать полностью 24
Программирование Разработка Шаблон Angular Bootstrap CSS Frontend Gatsby HTML IT Javascript Laravel React Vue Длиннопост
1
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии