- 123
- 845 603
Евгений Паромов | Front-end
เข้าร่วมเมื่อ 16 ก.พ. 2016
JWT Аутентификация. HMAC. Как устроен JWT. В чём его преимущество?
Подробнее о сообществе:
paromovevg.ru/evolution-community
Курс по React паттернам:
evocomm.space/course/react-patterns
Мой telegram канал:
t.me/cleanfrontend
Исходники:
github.com/clean-frontend/jwt
Миро доска:
miro.com/app/board/uXjVLqq9l4o=/?share_link_id=354228758104
Как доказать стражнику, что сообщение от главаря бандитов не поддельное?
Конечно с помощью КРИПТОГРАФИИ)
Создаём JWT токен и получаем доступ к СОКРОВИЩАМ
00:00:00:00 - Вступление
00:00:30:04 - HMAC и история гнома
00:09:20:12 - Как работает JWT
00:25:46:10 - Практика
paromovevg.ru/evolution-community
Курс по React паттернам:
evocomm.space/course/react-patterns
Мой telegram канал:
t.me/cleanfrontend
Исходники:
github.com/clean-frontend/jwt
Миро доска:
miro.com/app/board/uXjVLqq9l4o=/?share_link_id=354228758104
Как доказать стражнику, что сообщение от главаря бандитов не поддельное?
Конечно с помощью КРИПТОГРАФИИ)
Создаём JWT токен и получаем доступ к СОКРОВИЩАМ
00:00:00:00 - Вступление
00:00:30:04 - HMAC и история гнома
00:09:20:12 - Как работает JWT
00:25:46:10 - Практика
มุมมอง: 3 184
วีดีโอ
Пишем todo list на React 19 с нуля! Suspence, use hook, useTranstion, useActionState, useOptimistic
มุมมอง 8Kหลายเดือนก่อน
Подробнее о курсе: evocomm.space/course/react-patterns Подробнее о сообществе: paromovevg.ru/evolution-community Мой telegram канал: t.me/cleanfrontend Исходники: github.com/clean-frontend/react-19-todo React 19 вышел, мы на него посмотрели и сказали "Очень интересно, ничего не понятно" Вышло несколько очень мощных хуков, использование которых оказалось не настолько очевидным как нам бы хотелос...
ТОП 7 Антипаттернов React. Ошибки, которые УГРОБЯТ твой проект
มุมมอง 12Kหลายเดือนก่อน
Подробнее о курсе: evocomm.space/course/react-patterns Подробнее о сообществе: paromovevg.ru/evolution-community Мой telegram канал: t.me/cleanfrontend Исходники: github.com/EvgenyParomov/react-antipatterns Миро доска: miro.com/app/board/uXjVL5cIrnI=/?share_link_id=993615239811 Это видео - первые 7 уроков моего курса по React, который начнётся в понедельник. Здесь мы рассмотрим ВАЖНЕЙШИЕ ошибки...
Админка внутри Next.js 15 проекта. Пробуем Payloadсms 3
มุมมอง 3.8K2 หลายเดือนก่อน
Формат этого видео экспериментальный. Будем рады любой обратной связи и вашим советам! Подробнее о сообществе: paromovevg.ru/evolution-community Карта контента: evocomm.space/map Мой telegram канал: t.me/cleanfrontend Исходники: github.com/EvgenyParomov/payload-3 В этом видео мы с ребятами из сообщества пробуем payloadcms 3. Это новая версия headless cms, которая встраивается прямо в твоё next....
Релиз FSD 2.1! Обсуждаем с кор-тимой FSD плюсы и минусы
มุมมอง 4K2 หลายเดือนก่อน
Последние изменения в FSD вызвали достаточно жаркие споры и обсуждения. На этом стриме мы попытаемся понять причину этих изменений и дальнейшее направление развития FSD Мой telegram канал: t.me/cleanfrontend Наш гость: github.com/illright Чат FSD: t.me/feature_sliced Подробнее о моем сообществе: paromovevg.ru/evolution-community
Fullstack разработка с нуля на Next 15, React 19, FSD, Prisma, RabbitMQ
มุมมอง 21K2 หลายเดือนก่อน
Подробнее о сообществе: paromovevg.ru/evolution-community Карта контента: evocomm.space/map Мой telegram канал: t.me/cleanfrontend Исходники: github.com/EvgenyParomov/tik-tak-toe-online-next В этом видео мы с нуля разработаем игру крестики нолики онлайн. С поддержкой, регистрации и авторизации, подписки на список игр. Всё это будем писать использованием FSD подобной архитектуры 00:00:00 - 0 Вве...
Что учить, чтобы стать КРУТЫМ разработчиком
มุมมอง 5K2 หลายเดือนก่อน
Подробнее о сообществе: paromovevg.ru/evolution-community Карта контента: evocomm.space/map Мой telegram канал: t.me/cleanfrontend Расскажу, какие ошибки делают люди при обучении программированию. И как научиться писать "поддерживаемый" код
Tanstack query (react-query) полный курс 2024
มุมมอง 23K3 หลายเดือนก่อน
Подробнее о сообществе: paromovevg.ru/evolution-community Карта контента: evocomm.space/map Мой telegram канал: t.me/cleanfrontend Исходники: github.com/EvgenyParomov/tanstack-query-course Это самый полный курс по tanstack query на русскоязычном youtube. В этом видео мы разберём: Как делать запросы, пагинацию, infinity scroll, optimistic update, обновлять после мутаций, как интегрировать с Redu...
Selfhosted замена Vercel | Деплой React/Express приложения на VPS
มุมมอง 3.5K3 หลายเดือนก่อน
Подробнее о сообществе: paromovevg.ru/evolution-community Карта контента: evocomm.space/map Мой telegram канал: t.me/cleanfrontend В этом видео мы задеплоим на VPS простое приложение состоящее из Express сервера и клиента на React. Посмотрим как с помощью coolify можно сделать тестовый деплой на pull request и деплой на пуш в main с помощью пары кликов мышью
React, Typescript | Senior комментирует 3 реализации todo-list
มุมมอง 4.4K4 หลายเดือนก่อน
Подробнее о сообществе: paromovevg.ru/evolution-community Мой telegram канал: t.me/cleanfrontend В этом видео я посмотрю 3 реализации тудулиста от junior и middle разработчиков. И прокомментирую основные моменты, как можно было сделать лучше. Это видео мы записали с ребятами из сообщества 📗evolution-community.
Архитектура на паттернах FSD | Пробуем evolution-design linter
มุมมอง 3.3K4 หลายเดือนก่อน
Следи за развитием проекта evolution design: github.com/ep-community/evolution-design Инструмент находится в альфе. Будем рады любым issues Вступить в сообщество: paromovevg.ru/evolution-community Мой telegram канал: t.me/cleanfrontend Не хочется использовать все слои fsd, но хочется использовать линтер архитектурных правил? Смотри пример, как evolution-desing linter может тебе помочь)
Почему FSD/SOLID/ООП не работает? Как писать хороший код?
มุมมอง 7K4 หลายเดือนก่อน
Следи за развитием проекта evolution design: github.com/ep-community/evolution-design Вступить в сообщество: paromovevg.ru/evolution-community Мой telegram канал: t.me/cleanfrontend В этом видео поговорим о том, почему стандартные правила "хорошего" кода, очень часто приводят не туда. Выбрал FSD и зашёл не в ту дверь И как я предлагаю решить эту проблему
Правильная интеграция React query + Mobx | Объединяй, а не выбирай
มุมมอง 4K5 หลายเดือนก่อน
Исходники урока в моём сообществе t.me/welcome_paromovevg_bot Мой telegram канал: t.me/cleanfrontend В этом видео мы рассмотрим лучшую интеграцию двух мощных стейт менеджеров. react-query и mobx. Их можно и нужно интегрировать вместе. И здесь я покажу самый удобный и правильный способ это делать
Скажи НЕТ власти бэкендеров | Пишем swagger сами | Лучший процесс работы с REST API
มุมมอง 8K6 หลายเดือนก่อน
Мой telegram канал: t.me/cleanfrontend Miro с полезными ссылками и код снипетами: miro.com/app/board/uXjVKxoy3aM=/?share_link_id=758895689263 Исходники: github.com/EvgenyParomov/api-first В этом видео мы посмотрим на практике самый удобный процесс разработки приложений с REST API. Сначала мы напишем Open API (Swagger) схему руками, с использованием swagger editror Потом мы сгенерируем client на...
3 Главные Проблемы Redux и их решения | Продвинутый полный курс | Часть 3
มุมมอง 6K6 หลายเดือนก่อน
Курс по Архитектуре Redux paromovevg.ru/redux-architecture 🙂 Курс по FSD paromovevg.ru/courses/fsd 🙂 Исходники: github.com/EvgenyParomov/redux-fundamental/tree/video-3 Мой telegram канал: t.me/cleanfrontend Это третья заключительная часть моего фундаментального курса по Redux. В ней мы изучим самые болезненные части Redux и научимся их исправлять. Посмотрим как делать модульный Redux, как выстр...
Правила быстрого обучения, которые ТЕБЕ НЕ ПОНРАВЯТСЯ
มุมมอง 10K7 หลายเดือนก่อน
Правила быстрого обучения, которые ТЕБЕ НЕ ПОНРАВЯТСЯ
RTK Query, Thunk, createAsyncThunk | Продвинутый полный курс | Часть 2
มุมมอง 15K7 หลายเดือนก่อน
RTK Query, Thunk, createAsyncThunk | Продвинутый полный курс | Часть 2
Redux + Redux Toolkit | Продвинутый полный курс | Часть 1
มุมมอง 47K8 หลายเดือนก่อน
Redux Redux Toolkit | Продвинутый полный курс | Часть 1
Full-stack билдер Админки за 2.5 часа | Next.js | Drizzle | shadcn
มุมมอง 8K8 หลายเดือนก่อน
Full-stack билдер Админки за 2.5 часа | Next.js | Drizzle | shadcn
Dependency Inversion - главный инструмент Архитектора
มุมมอง 7K8 หลายเดือนก่อน
Dependency Inversion - главный инструмент Архитектора
Как Zod лечит РОДОВУЮ травму Typescript
มุมมอง 7K11 หลายเดือนก่อน
Как Zod лечит РОДОВУЮ травму Typescript
Мощная CMS на Next.js 14, yaml, json-schema, mdx и git
มุมมอง 7Kปีที่แล้ว
Мощная CMS на Next.js 14, yaml, json-schema, mdx и git
Авторизация и профиль на Next.js | server actions, OAuth, отправка email, s3, тёмная тема
มุมมอง 20Kปีที่แล้ว
Авторизация и профиль на Next.js | server actions, OAuth, отправка email, s3, тёмная тема
Next.js setup: Деплой на VPS | Jest | Playwright | CI/CD | Sentry
มุมมอง 35Kปีที่แล้ว
Next.js setup: Деплой на VPS | Jest | Playwright | CI/CD | Sentry
React Todo list с P2P синхронизацией на Yjs и WebRTC
มุมมอง 2.9Kปีที่แล้ว
React Todo list с P2P синхронизацией на Yjs и WebRTC
Разбираем частый вопрос учеников | event loop
มุมมอง 2.9Kปีที่แล้ว
Разбираем частый вопрос учеников | event loop
Весь современный стек в одном видео! | Блок сайт на Nest.js, Next.js и FSD
มุมมอง 52Kปีที่แล้ว
Весь современный стек в одном видео! | Блок сайт на Nest.js, Next.js и FSD
Как использовать useDeferredValue и useQuery вместе. Показываю на практике
มุมมอง 2.7Kปีที่แล้ว
Как использовать useDeferredValue и useQuery вместе. Показываю на практике
Zod: Защищаем приложение от пользователя и нерадивых бекендеров
มุมมอง 5Kปีที่แล้ว
Zod: Защищаем приложение от пользователя и нерадивых бекендеров
ты крутой, спасибо за труды
Автор крутой:) Спасибо за прекрасный материал!
откуда мне додумывать стили, которые ты не показал? вручную заманался переписывать по скринам
так а где код? или нам списывать его с браузера? или просто учится смотря, но самому не делая??
Ребята, если например вам надо объединять классы под условиями не обязательно устанавливать ClassNames в таилвинд есть twMerge и twJoin
а так спасибо за видео такой большой видос снять это очень много сил и времени надо потратить
34:17 общие типы выносят отдельно потому что это проще в поддержке кода. Одинаковые типы в инлайне могут относиться к разным сущностям, что может привести к путанице при чтении кода и изменениях. В случае же банального дублирования - нужно писать больше кода, что тоже не имеет большого смысла. Ну и разработчики имеют тенденцию не рефакторить такие типы, вынося их при расширении, а просто расширяют их на месте, что опять же снижает читабельность.
В styled-components та же тема есть - через attrs создается новый компонент на базе имеющегося.
Херь какая тот а не курс
Всем привет, посмотрел этот ролик, огонь просто!!! Подскажите ещё такой момент, уже знаю что такое useState, получается что данные в нем хранятся, а потом делаем периодически запрос к нему и меняем эти данные, т.е. в принципе с этими знаниями можно устроиться? Допустим на самую низкую должность, ведь база работы с данными уже есть. Плюс ко всему сейчас изучаю useEffect.
Евгений, есть вопрос. Если я буду уделять твоему курсу 4 часа в день 6 дней в неделю, сколько времени, на вскидку, мне потребуется для изучения твоего материала?
Это топ! Лучшая подача материала! Ээээээй, супер важная тема, прошуу выложи все целиком)
Ну ничего страшного
Евгений, подскажите, почему когда я запускаю дев сервер, в консоли бесконечно висит Starting..., а при переходе на локалхост в браузере крутится загрузка и ничего не отображается?
const compareElements = indexes => indexes.every((el) => cells[el] && cells[el] === cells[indexes[0]]); кажется, так будет проще)
4:10 Если тип не экспортируется и добавлена приставка Props, то он уж точно нигде не переиспользуется. А когда пропсы большие или сложные что-то в виде дженерика... Лучше всё же вынести выше
Не проще ли выше компонента создать константу с new Array(n).fill(nanoid())?
Классная подача мне понравилось предисловие! Женя можешь как нибудь рассказать про такую штуку как Payload CMS. Видел у тебя на канале свежий видос но там не совсем все было понятно. На ру сегменте нету видео по этой теме. Смотрю тебя уже давно и нравится как ты доносишь информацию
к большому сожалению, если всеми другими роликами я восхищался, то этот явно вышел неудачным: обзор поверхностный, изложение скомканное, термины на слух не воспринимаются вообще никак, хотелось бы более детального обзора каждого из перечисленного Suspence, use hook, useTranstion, useActionState, useOptimistic , но увы, что есть - то есть
Это не в упрек и относиться не только в автору. Как не посмотришь обучающие видео не только по реакт но и по верстке, все такие, да все ровно эти пору пикселей. НО я из практики говорю, что не всем все ровно на пару пискелей и привыкать так верстать нельзя, потому что надоест потом переделывать, нужно стремиться к пиксель перфект всегда. Да это нудно и долго, но в будущем это вам очень поможет
топ!
fetch попадает в Task Queue, когда мы выполняем fetch таску то сталкиваемся с микрозадачей которая лежит в Promise Queue и пока оно не выполнится то задача fetch не пойдет выполняться дальше
Эй) Выклалывай все полностью!)
Вообще, по сути алгоритм можно было бы сильно оптимизировать и пофиксить, если в момент записи фигуры в клеточку фиксировать её индекс в массиве cells и передавать в функцию (например через key), а после этого, чтобы работали варианты с четным количеством фигур для побед пройтись по разным сторонам двумя указателями (тут плюс еще весомый есть, что мы можем не двигать указатель, если следующий символ либо пуcтой либо отличается, то есть по сути проверять только на одинаковые символы, а одинаковым символом тут всегда будет являться тот, которым ходит игрок в данный момент), тут же можно наставить ограничений на индекс символа, а то алгоритм ломается, когда пользователь ставит символ на границе)))))
evo умер получается? ни кто не коммитит в репу
эй эй, блин, вообще важная супер тема, давай выкладывай всё полностью
эй-эй, блин, вообще важная супер тема. давай выкладывай все полностью )
Прикол
А про обновление токена
Женя, давай полную версию! Чем больше годноты от тебя выходит, где я вижу прям готовые решения, тем выше вероятность что я пойду покупать подписочку 🔥 Еще бы полный разбор uml диаграмм, где было бы подробное описание построения архитектуры, где ты подробно бы объяснил принципы solid и чистой архитектуры, а именно DI. А за такой формат видео - лайк, все круто, просто и понятно!
Для совсем маленьких.....
За Орду!!! 🥳
Про WoW оценил ❤ Играешь еще ?
Жили были!
И как заставить ИИ написать такую штуку?
Хотелось бы посмотреть Next 15 FSD Prisma какой-nj не простой сайт который покрывает частые фичи, на реальных примерах.
мелко же не видно
Курс нравится, все очень круто, но код не рабочий еще с прошлого видео, а в конце происходит магия монтажа))) проблема решается в один пропс но все же забавно что об этом все молчат
Проблема пет проектов в том что, как сказано в видео, идем по легкому пути. Но эта же проблема решается иначе. Сделайте большой пет проект, например аналог 1с. Конечно не в том объеме - вы просто не сможете, но в каком то минимальном. Выделите для себя что хотите сделать такие то модули и чтобы они друг с другом взаимодействовали и попробуйте архитектурно заложить расширяемость. Тогда у вас и появятся задачи и реальные требования которые надо будет решать. Просто вы же хотите раз раз и в дамки. Типа полгода отучились и все. Я делал один проект но переписывал его несколько раз с нуля потому что в какой то момент просто понимал что все - дальше никак и так по кругу где то полтора года. Но сейчас когда у меня уже пара лет опыта реальной разработки я бы да - переписал полностью абсолютно все.
На 4-ом видеоролике понял, что рановато мне этот курс смотреть) Вернусь как подучу базу Реакт
Ты еще не смотрел его видео про redux toolkit. Там вообще завянешь.... Как я)))
Оч крутой видос, прям сказка Мне кажется можно как-то запарится и не делать мутации через thunk, а через: 1) кастомные хуки с возвратом функции, которая будет делать всё вместе. +) отписаться от инвалидами можно просто передачей булевого значения или своих тегов где уже в query.mutation isInvalidate ? [ "List" ] : [] Всё же как не посмотришь, вызов query внутри thunk выглядит ужастно) Явно под это разрабы не пилили свой функционал. Можно мб передавать функции мутаций в thunk, но это гемор Можно вообще свой интерфейс сделать над initiate. Передавать ключ ендпоинта функции, которая initiate вызывает)) Также Optimistic апдейт можно делать и в мутации. В принципе почти то же самое + этот апдейт можно отменять updateCart: builder.mutation<Cart, Partial<Cart>>({ query: (updatedCart) => ({ url: '/cart', method: 'PUT', body: updatedCart, }), // Here we can use a callback to update the cache directly onQueryStarted: async (updatedCart, { queryFulfilled, dispatch }) => { // Optimistically update the cart in the cache const patchResult = dispatch( api.util.updateQueryData('getCart', undefined, (draft) => { Object.assign(draft, updatedCart); // Merge the updated values }) ); try { // Wait for the mutation to complete await queryFulfilled; } catch { // Roll back if the mutation fails patchResult.undo(); } }, }),
Видео явно не для начинающих, а уже для более продвинутых
Спасибо за объяснение темы и отличные примеры. Это как раз то, что я искал
Спасибо! Как раз нужно было разобраться с этой библиотекой
Ещё ничью можно было таким вариантом проверить - const isDraw = cells.every(cell => cell !== null) && !winnerSequence;
!cells.some(c => c === null) тогда уж
Спустя 2 суток получилось забилдить маленький лендинг с этой cms на VDS с 4gb оперативы и 1 gb файлом подкачки ))) Место на диске потребовалось около 6 gb. Причем процессор должен быть не из старых, а то не будет поддержки функций для работы graphql. Это конечно ужас. На такой конфигурации VDS можно большой магазины на php запускать.
Я рад, что открыл для себя этот канал. Качество контента на очень высоком уровне - всё понятно и без воды!
Спасибо за огромное за обучающий материал, но кто нибудь может помочь какие техники нужно купить в timeweb, что развернуть данное приложение я так понял что нужно купить домен и облачный сервер, и что еще нужно? и сервер можно самый просто на ubuntu же взять? и нужны ли вот эти вот публичные Ip?
супер курс !
Более полезный видос, расставляющий всё по своим местам, ещё нужно поискать
а расширение завернуть не через react а через vue невозможно ?