pomazkov.js | Frontend & more
3.45K subscribers
100 photos
7 videos
8 files
78 links
Senior Frontend dev, UK Global talent, ментор.
Пишу о любимом фронтенде и своей жизни. С юмором, конечно.

YouTube: https://youtube.com/@pomazkovjs
Download Telegram
А вы знаете разницу между авторизацией и аутентификацией?
Anonymous Poll
56%
Да
44%
Нет
7😁4👍2
На днях под видосом про библиотеку Grammy js получил вот такой вопрос. Он подкинул мне идею написать развернутый ответ и напомнить вам, в чем разница между авторизацией и аутентификацией.

Во-первых, давайте разберемся с терминами:
Аутентификация – это подтверждение личности пользователя, отвечаем на вопрос «кто ты?»
Авторизация – это проверка прав доступа пользователя к определенным ресурсам или функциям, «что тебе разрешено делать?»

Во-вторых, респект комментатору – в вопросе термин использован абсолютно верно: никакой аутентификации нам делать не надо, её за нас делает телеграм (человек вводит свой номер телефона, код из смс, и телеграм понимает, кто он). На сайтах это реализуется с помощью логина/пароля и дополнительных барьеров типа двухфакторной аутентификации (код в смс, на почту, Google Authenticator).
В результате аутентификации тг знает, кто использует приложение. Благодаря этому, наш бот вместе с сообщением от пользователя получает объект с информацией о юзере – его телеграм id, ник, имя.
Авторизация же в боте, действительно, лежит на нашей стороне. Она всегда происходит после аутентификации, так как чтобы выдать права доступа, нам нужно знать, кто перед нами. Обычно данные о пользователе мы храним в базе данных в виде объекта, и если у нас несколько уровней доступа, то мы добавляем в объект поле role и присваиваем ему значение в зависимости от условий. Если роли всего две (админ / юзер), то можно обойтись флагом isAdmin с булевым значением.
Например, мы делаем бота для оплаты подписки и отправки контента (аналог бусти). По команде /start сохраняем нового пользователя в БД, создавая ему поле subscriptionLevel: free. Как только он производит оплату и мы получаем по API ответ об успешной оплате, меняем free на paid, а если оплачена супер-подписка – на pro. Ну а когда пользователь отправляет команду /content, мы идем в БД, проверяем его уровень доступа и исходя из него отправляем контент.

Краткий итог: для авторизации в тг-боте нам надо где-то хранить информацию об уровнях доступа пользователей, а также предусмотреть условия изменения этих уровней.
Если задача у вас простая на уровне «дать себе доступ админа, а остальным базовый», то можно вообще обойтись без всяких БД: узнаёте свой тг id и в коде проверяете
if (userId === мой_тг_айди) {….}
else { sendResponse("У Вас нет доступа к этим функциям") }


А ответ конкретно на вопрос такой: если мы заранее знаем круг пользователей и никаких критичных данных не отдаем (не паримся за безопасность, в общем), то можно на серваке в папке с ботом создать файлик с константой-массивом с айди всех пользователей, и в коде проверять, включен ли айди юзера в этот список. Если да – даём доступ. Если хочется более безопасно, или юзеров много, или логика получения/удаления прав доступа нужна, то см ответ выше 👆🏻

❗️ВАЖНО:
Оба процесса всегда происходят на бэкенде, это важно, так как происходит получение доступа к чувствительной информации (логин/пароль пользователя, его уровень доступа)

А вы когда-нибудь писали сами логику аутентификации или авторизации?
Please open Telegram to view this post
VIEW IN TELEGRAM
34👍11🔥41🥰1
Тема блокировки/замедления ютуба уже где только не обсасывается, поэтому дам краткий апдейт о своих планах без мЕга аНаЛитиКи:

1️⃣ Я продолжу снимать и выкладывать контент на ютуб, как бы он ни работал. Кто-то продолжит смотреть из-за рубежа, кто-то с vpn, так что видео найдут своего зрителя
2️⃣ Возможно, в качестве плана Б выгружу ролики на локальные площадки рф. Подумываю о вк или дзене, к рутубу пока душа как-то не лежит (но кто знает, возможно, придется и переобуться в воздухе)). Честно сказать, я сам на них не сижу и специфики не знаю, поэтому и решения пока нет
3️⃣ Если звёзды сойдутся и я-таки проведу стрим, который сто лет назад еще анонсировал (🙏), то постараюсь стримить одновременно на твич и на ютуб, чтобы максимальное количество людей смогли прийти и пообщаться в лайве – всё-таки это главный кайф стримов

Всем быстрого ютуба и доступа к бесконечным знаниям!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73🎄3
Плохая документация – ад для разработчика
Хорошая документация
– чистейший кайф 💆‍♂️
А если я скажу вам, что бывает еще круче? У создателей
🖼️ Next.js получилось: на оф. сайте можно найти ссылку на их собственный курс по этому фреймворку
Курс 100% бесплатный, в текстовом формате, очень подробный, состоит из 16 глав и проходится легко. Особенно кайфанул от их подхода: это не “создаем приложение с нуля”, а “берем проект с 80% написанного кода и допиливаем”.
Я вообще не против первого типа курсов, на старте они просто необходимы, НО. Когда ты и так на работе уже не первый год пилишь реакт-компоненты разной сложности, верстать очередной дэшборд на курсе желания нет совсем)
И тут как раз тебе дают кучу понятного кода и показывают, как дописать оставшиеся 20%, относящиеся именно к нексту.
В самом курсе написано так:
"В отличие от туториалов, где вам нужно писать код с нуля, большая часть кода для этого курса уже написана за вас. Это лучше отражает реальную разработку, где вы, вероятно, будете работать с существующей кодовой базой."

Красавцы 🤝

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

Если уверенно пишете на реакте и немного знакомы с бэком, смело проходите
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63🔥126
Это я и сценарии видосов на ютуб 😏
Please open Telegram to view this post
VIEW IN TELEGRAM
😁20🥰2👍1
Как автоматизировать деплой тг-бота 🤖
aka "чтоб пушить код в ветку, а бот на сервере сам подтягивал обновления и перезапускался"

Короткий ответ: берешь бота + сервер + Github Actions – и готово!
Подробный ответ – смотри в новом видео:
😉: https://youtu.be/JkTUqom-KvU
😄: https://vk.com/video-227261333_456239026

Посмотрев ролик, вы вспомните, как деплоить бота на сервер, а также:
– Научитесь подключаться к удаленному серверу по SSH из локальной командной строки
– Узнаете, как создавать SSH-ключи
– Откроете для себя Github Actions (GA)
– Поймёте, из чего состоит Workflow в GA и как писать его самому.
Готового бота для тренировки предоставлю 🤝

Всего 30 минут, а столько пользы!

И ещё:
Текстовая версия ролика тут
А развернуть IT-инфраструктуру для веб-проектов любой сложности можно тут

Приятного просмотра!
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍17🔥105👀3
main.yml
1.6 KB
Файл с Github Actions workflow для видео:
1👍7🔥6❤‍🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
Сергей Брин (основатель Google) на НТВ, 2008 год

Что-то ностальгия в глаз попала…
И хорошо, всё-таки, что web3 у нас в 2024 не про это. Надеюсь, и не будет
3👍34🔥5🤡2🍌2🫡2
Память GPT моделей 🧠
Если пропустили, еще в начале года OpenAI выкатили фичу “запоминания истории” чатов в ChatGPT: сохраняются факты из ваших переписок, которые в теории должны улучшить качество генерации путем персонализации ответов.

Честно сказать, какой-то особой персонализации я не заметил, но применение этой фиче-таки нашли: не так давно кто-то запустил волну всяких забавных вопросов к модели, типа “Исходя из моего профиля и истории чатов, на какого аниме-персонажа политического деятеля я больше всего похож личностными качествами?”
И вот новый трендовый запрос:
Основываясь на знаниях обо мне, нарисуй картинку того, как, по твоему мнению, выглядит моя жизнь сейчас


Я, конечно, мимо пройти не мог. Результат генерации прикеплен к посту, а в комменты закину свои мысли по поводу этой картинки

Если будете пробовать – кидайте в комменты результаты, будет интересно посмотреть)

P.S. Генерирует изображения DALL-E 3, ну и фича работает только если вы пользуетесь ChatGPT под своим акаунтом
Идею подглядел у канала @denissexy
2🔥11👍31
Что там в мире фронтенда?
Да ничего особенного, честно говоря.
Новые версии библиотек и фреймворков выходят, Next JS становится все популярнее, реакт на волне, как обычно (так что если вы откладывали изучение любого из них – это ваш знак начать или углубиться)

Лидера всех технических новостей вы и так знаете – это ИИ. Все сейчас пытаются его прикрутить себе, где-то к месту, где-то не очень, и я общий хайп разделяю

Простая мысль, которую я хочу до вас донести:
Обычных людей заменит не ИИ, их заменят люди, умеющие пользоваться ИИ


Так что не игнорируйте прогресс:
скепсис мешает вам расти.
Я и сам себя на нем ловлю иногда, даже не смотря на искренний интерес к теме и ежедневное применение разных тулов.

Давайте интересоваться и пробовать – так будем впереди всех 💪🏼
1👍59💯116🔥3
Нужен ли Redux в Вашем React-приложении? 🖼️

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

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

Качайте английский и повторяйте Redux!
А если хочется по-русски, авто-перевод страницы вам в помощь (за качество такого перевода, правда, не ручаюсь)

Почитать тут: 🔗 Hashnode

P.S. Подписываться на Хэшноде не призываю, вряд ли в ближайшее время буду там что-то писать
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍24🔥21
В чем ключевое отличие Jr/Md от Senior и Team Lead позиции?

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


Речь пойдет про Продуктовое Видение 🧿

А в гостях у меня Валентин – Lead System engineer в Sumsub с огромным опытом в продуктовой разработке в финтех секторе, взаимодействии между командами и проектировании высоконагруженных систем

Чуть не забыл, в конце видео есть бонус – ищите его в следующем посте :)

Ссылки:
😉: https://youtu.be/gj32JEnOo78
💰: смотреть бесплатно на Бусти
😄: 🔤
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍32👏2
Product Vision Checklist | PomazkovJS.pdf
9.7 MB
📎 Чек-лист: изучаем задачу через призму продуктового видения
Файл с бонусом из видео, в котором Вы найдете вопросы для глубокой проработки и изучения любой своей задачи
→ с пояснениями и примерами разбора реальной задачи (!)

Мне б кто такое на старте карьеры дал...
1👍16🔥2
Расплываюсь в улыбке, читая сообщения в чате канала

Интенсиву больше года, но актуальности он не теряет, и это так радует! Не хочу хвастаться, но так и было задумано: он дает фундаментальные знания и навыки, которые пригождаются фронтенд-разработчикам каждый день.
Технологии меняются, библиотеки переписываются, а старый добрый JS – остается. Я же, со своей стороны, продолжаю следить за актуальностью ссылок в интенсиве, читать комменты и дописывать пояснения к урокам.
Как видите, всё не зря 🙂

И раз уж такое дело – не буду ждать, стартанем черную пятницу сегодня: по промокоду BF24 Вас ждёт очень приятная скидка ⚡️
Действует до среды 27.11 включительно

Если Вы уже прошли интенсив – моя благодарность и уважение. Если ещё нет – почитайте о нём по ссылке и не упустите шанс:

🔗 https://pomazkovjs-hangman.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍41👏1
😎 Пссс, бета-тест бота интересует?
Написать черновую версию приложения за 2 часа, а потом допиливать 2 месяца — haha, classic 😬

ChatGPT прямо у тебя в тг 😌
Может отвечать на текстовые запросы через GPT4o-mini и GPT4o + генерировать картинки
🔗: бот тут

Вы знаете моё отношение к ИИ. Ещё его знает моё окружение, кому я промываю мозги по поводу необходимости его внедрения в свою жизнь

Так появился этот бот: сначала сугубо для родных и друзей, кому лень / сложно / дорого юзать впн и официальный сервис, но постепенно он разросся из пэт-проекта до продакшн-версии. Более того, я сам стал замечать, что пользуюсь GPT с телефона именно через бота, хотя у меня есть купленная подписка оф сервиса – мне тупо лень, в тг проще))

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

🎁 Предлагаю и вам его потестить бесплатно, а чтобы было интереснее, даю 30 промокодов: TGBETA
(используйте команду /promocode в боте)


*см комменты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥21
Я сейчас на горнолыжке (олды помнят пост о том, как я на сноуборд вставал), и случайно заметил пугающую штуку

Вы знаете: чтобы скатиться с горы, надо на неё подняться, и в этом помогают телепорты подъемники. В моем случае подъем длится ~8 минут, и время тянется невероятно долго
Я брал с собой телефон, но в отсутствие наушников залипнуть никуда особо не мог, просто читал всякое, и каждые 2-3 минуты думал: "уже приехали? Нет? Долго…"
Но потом я забил на страх потерять белые эирподсы на склоне и стал брать их с собой, так что теперь мог смотреть рилсы во время подъема. И знаете, что?
Это гребаная черная дыра
БЕЗДОННАЯ
Бесконечный подъем стал проходить АБСОЛЮТНО незаметно
Зашел, один видос, второй… уже приехали?

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

Давайте будем осознаннее, что ли
И вам желаю, и себе
67👍233👏2
Я: может, встретить нг в Сеуле 🤔
Сеул:
😁20😱5🤣41