Типичный программист
81.4K subscribers
2.55K photos
849 videos
8 files
7.39K links
Всё самое интересное по программированию

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

VK: vk.com/tproger

Другие проекты Tproger: https://tprg.ru/media
Download Telegram
​Ликбез по распространённым Client-Side уязвимостям

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

Начнем с Client Side-уязвимостей. Это слабые места или ошибки в ПО, работающем на стороне пользователя. Их можно использовать для хакерских атак или несанкционированного доступа к системе.

В статье — самые распространённые виды уязвимости на стороне клиента и некоторые методы Client-Side защиты: https://habr.com/ru/companies/bastion/articles/757590/

#безопасность #веб
Практикуемся в React, TypeScript и MobX

Небольшой гайд, как создать to-do лист с бесконечной вложенностью подзадач. Можно посмотреть код и попробовать результат в демо:

https://tproger.ru/articles/sozdanie-todo-list-beskonechnoj-vlozhennosti-react-typescript-mobx

#веб react #typescript #фронтенд
Стал ли пользователь ленивее?

У современных пользователей всё больше требований к сайтам и приложениям: они должны быть быстрыми, удобными, понятными и максимально простыми. Любой лишний клик, каждая дополнительная секунда или длинный скролл — и все, пользователь уходит с сайта или закрывает приложение.

Действительно ли пользователи стали ленивыми? Давайте разбираться: https://tproger.ru/articles/stal-li-polzovatel-lenivee-spojler-net-no-karty-emu-vsyo-ravno-nuzhny

#тренды #ux #веб
Как работает современный веб?

На картинке — краткая архитектура современного веба. А по ссылке до сих пор актуальная статья, которая поможет разобраться с тем, как это работает:

https://tproger.ru/translations/web-architecture-101/

#веб
httpx vs. requests vs. aiohttp: что лучше?

С библиотекой requests питонисты знакомятся в первый же год, ведь на взаимодействии программ с веб-приложениями держится очень многое. HTTP-запросы позволяют общаться с API всевозможных сервисов, автоматизировать сбор данных с веб-страниц и в целом дают всевозможным системам взаимодействовать на расстоянии.

Разобрали на примере, какая из библиотек справляется лучше и как асинхронность влияет на скорость исполнения массовых запросов: https://tproger.ru/articles/http-vs-requests-vs-aiohttp-kto-luchwe

#python #веб
Четыре новые функции CSS, которые обеспечивают плавную анимацию и переходы в новых версиях Chrome

Если у вас уже перестал дергаться глаз от времён, когда нужно было поддерживать IE, пришла пора обратить на новые фичи Chrome.

До них в CSS были пробелы в плавных анимациях. Это анимации для входа и выхода. И плавный переход на верхний уровень для закрываемых элементов, таких как диалоговые окна и всплывающие панели. В новых версиях 116 и 117 разработчики решили эти проблемы.

И вот как использовать новые фичи: https://tproger.ru/articles/chetyre-novye-funkcii-css-dlya-plavnoj-animacii-vhoda-i-vyhoda

#веб #chrome #фронтенд
Разработчики Node.js сообщили о выпуске версии 21

Что нового, вкратце:
— обновили JavaScript-движок V8 до 11.8,
— включили стабильные версии fetch и WebStreams,
— в конце октября Node.js 20 перейдёт в LTS,
— 21 версия будет поддерживаться следующие шесть месяцев.

Основные нововведения:
— fetch и WebStreams получили статус стабильных после недавнего обновления.
— Добавили экспериментальную имплементацию WebSocket, активируется флагом --experimental-websocket.
— Включили JavaScript-движок V8, который поддерживает новые функции и улучшенную производительность.
— Во время запуска тестов теперь можно использовать glob-выражения в параметрах --test.
— Новый экспериментальный флаг --experimental-default-type позволяет изменить систему модулей по умолчанию.
— Если передать флаг --experimental-wasm-modules, то файлы без расширений будут восприниматься как WebAssembly, если они начинаются на \0asm.
— Удалили поддержку globalPreload, вместо этого рекомендуется initialize для установки связи между потоками и register для отправки данных из потока приложения.

Подробнее о нововведениях: https://nodejs.org/en/blog/announcements/v21-release-announce

#javascript #веб #nodejs
А вот свежий путеводитель по фронтед-разработке от коммьюнити

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

В дорожной карте собраны все актуальные инструменты и технологии по мнению комьюнити. А у репозитория kamranahmedse/developer-roadmap, в котором публикуются обновления, уже больше 250 тысяч звёзд: https://github.com/kamranahmedse/developer-roadmap

#шпаргалка #фронтенд #веб
Разработчик придумал грубое наказание для сайтов, которые воруют его веб-игру при помощи iframe

Бесплатная игра Sqword — несложная головоломка, в которой нужно последовательно размещать буквы в сетке 5×5, чтобы получилось как можно больше слов.

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

Чтобы это исправить, Симмонс добавил в код пасхалку. Теперь, если сайт обнаружит, что игра загружается в iframe-окне, он отобразит goatse, старый NSFW-мем. Для посетителей сайта будет отображаться непристойное фото и сообщение: «Я краду чужой код, потому что я полное ничтожество».

Как минимум несколько сайтов до сих пор не заметили, что украденная ими игра заменилась на одну из самых неприятных картинок в интернете. Другие сайты просто заменили игру.

Веб-разработчики, будьте повнимательнее с iframe. Геймдевелоперы, к вам вопросов нет.

#кек #веб #gamedev
Вышла новая версия React-фреймворка Next.js 14

26 октября разработчики выпустили новый релиз Next.js. Из основных нововведений: релиз ускоряет время сборки в 2 раза, а Server Actions позволяет выполнять код на сервере.

Что ещё нового в Next 14:
— Ускоренный компилятор: Rust-based компилятор Turbopack обеспечивает стабильность и производительность.
— Fast Refresh ускоряет обновление кода до 94,7%.
— Введены маршруты API для упрощения создания внутренних эндпоинтов.
— Серверные действия позволяют определить функции, выполняемые на сервере и вызываемые из React-компонентов.
— Частичная предварительная отрисовка (Prerendering) оптимизирует отрисовку динамического контента.
— Улучшена обработка метаданных для более плавного пользовательского опыта и предотвращения проблем.
— Запущен новый бесплатный курс Next.js Learn для обучения разработчиков.

Подробнее: https://github.com/vercel/next.js/releases/tag/v14.0.0

#react #веб #фронтенд