Category : javascript

javascript
Как обходится ограничение скорости скачивания с YouTube

Вы когда-нибудь пробовали скачивать видео с YouTube? Я имею в виду ручками, а не через такие софтины, как youtube-dl, yt-dlp или один из «этих» сайтов. Оказывается, это гораздо сложнее, чем можно было бы подумать. Youtube зарабатывает на показе рекламы пользователям. Поэтому с точки зрения платформы логично внедрить специальные ограничения, которые не позволяли бы скачивать видеоролики или даже просматривать их через неофициальный клиент, например YouTube Vanced. В этой статье будут пояснены т…

  • среда, 16 августа 2023 г. в 00:00:12
javascript
Получение данных виртуальной клавиатуры Android в web проекте

Написать что знаю несколько языков это одно, но действительно знать, понимать, и применять на практике это совсем другое, поэтому плохо зная свой сигнатурный язык мышления, полученный от социальной среды с рождения, буду рассказывать в статье как правильно собирать данные нажатия, виртуальной клавиатуры Android в web проекте, используя javascript. Классика, сам не умею научу других. Для чего это может понадобиться, если у вас возник такой вопрос, то вы явно новичок во всех "этих движения&#…

  • среда, 16 августа 2023 г. в 00:00:10
javascript
Как тестировать не-REST-бэкенд. Часть третья, gRPC

Итак, мы с вами добрались до третьей, самой «хардовой» части цикла. Сегодня поговорим про gRPC.Что такое gRPC? Сам RPC — удалённый вызов процедур (иногда вызов удалённых процедур; RPC от англ. remote procedure call) — класс технологий, позволяющих программам вызывать функции или процедуры других программ, делая это так, как если бы они находились в одном адресном пространстве. Буква g в названии — это гугловая реализация этих технологий.Разберем это все на примере.Допустим, что вы — программис…

  • вторник, 15 августа 2023 г. в 00:00:16
javascript
Design Patterns: прототип, прокси и обозреватель для фронтенд-разработчика

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

  • вторник, 15 августа 2023 г. в 00:00:15
javascript
Создание игры в стиле GameBoy в 13 КБ

В прошлом году я решил поучаствовать в гейм-джеме js13kgames. Это длящееся один месяц ежегодное соревнование по созданию с нуля игры на JavaScript, которая должна уместиться в 13 КБ (в zip). Места как будто не очень много, но с достаточным количеством креативности при таких ограничениях можно достичь многого. Просто взгляните на потрясающие примеры прошлых лет: Underrun (победитель в 2018 году); Ninja vs Evil-corp (победитель в 2020 году); Beat Rocks (второе место в 2021 году). Хотя в прош…

  • вторник, 15 августа 2023 г. в 00:00:15
javascript
createAsyncThunk.withTypes()

В этой статье разберем еще одну малоизвестную, но не менее полезную возможность @reduxjs/toolkitПредыдущая статья по redux и @reduxjs/toolkitДля начала разберем варианты и возможности типизации createAsyncThunkСанки можно типизировать как при помощи дженериков,createAsyncThunk<Returned, ThunkArg, ThunkApiConfig>()так и при помощи непосредственно аргументовcreateAsyncThunk( 'asyncThunkTypePrefix', (arg: ThunkArg, apiConfig: ThunkApiConfig) => {} )где:- Returned – тип возвра…

  • воскресенье, 13 августа 2023 г. в 00:00:34
javascript
DI в JS: идентификаторы зависимостей

В предыдущих публикациях (раз, два) я рассматривал возможности использования внедрения зависимостей в чистом JavaScript (без TypeScript, аннотаций и транспиляции). В данной публикации я продолжаю погружаться в вопросы использования DI в JS и более пристально рассматриваю роль идентификатора зависимости в создании объектов контейнером. Внимание! В данной публикации я не рассказываю, как надо программировать, я лишь показываю, как можно.ПредусловияКак уже было сказано в предыдущих публикациях, з…

  • суббота, 12 августа 2023 г. в 00:00:10
javascript
React vs Vue vs Angular. Часть 2

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

  • пятница, 11 августа 2023 г. в 00:00:16
javascript
Написание Vite плагина

Сборщик Vite предоставляет не только хороший функционал, но и удобный API для создания плагинов, позволяющих кастомизировать его практически под любую задачу. То есть, плагины можно писать не только для публикации их в npmjs.com репозитории, но и для автоматизации исключительно своих задач.Сложность написания плагина сравнима со сложностью написания сценария для Gulp или GitHub Actions. Для примера напишем плагин, который будет вставлять фрагменты кода в файл index.html. В зависимости от проек…

  • пятница, 11 августа 2023 г. в 00:00:16