Webdev сохраненки
13 subscribers
135 photos
17 videos
7 files
348 links
Tips and tricks и прочие полезности из области веб-разработки, а также репосты понравившихся материалов
Download Telegram
Forwarded from CodeCamp
Фронтендеры, это вам — нашёл гигантскую библиотеку из 4000+ иконок в SVG и React.

Есть GitHub и сайт с быстрым доступом.
🎁 Telegram Bot API для PHP

Библиотека для удобной работы с Telegram Bot API от Сергея Предводителева, одного из разработчиков Yii3.

⭐️ Полная поддержка API

Полностью поддерживается самая актуальная на текущий момент версия Telegram Bot API 7.7 от 7 июля 2024 года.

⭐️ Лёгкость подключения

Из коробки идёт PSR-клиент, но при желании, можно использовать свой, сделав реализацию интерфейса TelegramClientInterface.

// Telegram bot authentication token
$token = '110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw';

// Dependencies
$streamFactory = new StreamFactory();
$responseFactory = new ResponseFactory();
$requestFactory = new RequestFactory();
$client = new Client($responseFactory, $streamFactory);

// API
$api = new TelegramBotApi(
new PsrTelegramClient(
$token,
$client,
$requestFactory,
$streamFactory,
),
);


⭐️ Типизация

Типизированные PHP-классы для всех типов и методов. Результатом вызова методов API будут соответствующие объекты. Например, в результате отправки сообщения получаем объект Message.

$message = $api->sendMessage(
chatId: 22351,
text: 'Hello, world!',
);


⭐️ Объект Update для обработки вебхука

Update можно создать из PSR-запроса или из JSON-строки:

$update = Update::fromServerRequest($request);
$update = Update::fromJson($jsonString);


⭐️ Логирование

Для логирования запросов к API, результатов ответов и ошибок можно использовать любой PSR-совместимый логгер. Например, Monolog или Yii Log.

/**
* @var TelegramClientInterface $telegramClient
* @var LoggerInterface $logger
*/
$api = new TelegramBotApi(
$telegramClient,
$logger,
);


⭐️ Одобрено разработчиками Telegram

Пакет одобрен разработчиками Telegram и добавлен на сайт telegram.org.
Please open Telegram to view this post
VIEW IN TELEGRAM
Современный способ глубокого клонирования объектов

Подробнее — Отличная статья

👉 Гайды по JavaScript | #theory
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Как занять первое место в поисковой выдаче: добавляем SSR в Vue 3 + Vite приложение

При разработке на реактивных фреймворках многие забывают о том, что итоговое приложение – это что-то ближе к SPA, а не классический сайт как «на Wordpress». И когда дело доходит до SEO-продвижения, многие хватаются за голову, потому что поисковые системы плохо работают с такими ресурсами. Поэтому давайте сегодня познакомимся с технологией SSR, которая решит данную проблему.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Frontender's notes [ru]
👩‍💻 Как написать правильный API-клиент на Typescript

В этой статье я подробно расскажу о реализации API-клиента на языке TypeScript для работы как со сторонними API, так и со своими собственными. Клиент может работать с публичными и защищенными эндпойнтами и не привязан к конкретному фреймворку, что делает его пригодным для использования в React, Vue, Svelte и других фреймворках.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
💡Полезный сниппет, позволяющий скрыть контент, но оставить его доступным для скрин-ридеров

➡️ Поиграть можно здесь

#css #tip by Shripal Soni
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 ES13 Cheat Sheet: 6 современных возможностей JavaScript

👉 Источник

#cheatsheet
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Метод утёнка
Шпаргалка по релизу мобильного приложения

#шпаргалка #mobidev
Использование монад в JavaScript для управления состоянием и побочными эффектами

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

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

В примере мы создаем класс Maybe, который является реализацией монады. Методы map, chain и join позволяют нам преобразовать значение внутри монады, сохраняя при этом семантику отсутствующего значения. Также мы используем монаду Maybe для извлечения адреса пользователя по его идентификатору. Благодаря монаде мы избегаем проблемы "пробрасывания" null или undefined, и можем безопасно извлечь значение адреса без проверки на наличие всех промежуточных объектов.
Gun.js

Gun.js — это библиотека JavaScript, предназначенная для создания децентрализованных графовых баз данных, поддерживающих работу в реальном времени. Gun.js используется для разработки приложений, которые могут синхронизироваться между разными устройствами без необходимости наличия центрального сервера, что делает её полезной для создания P2P-приложений и оффлайн-функциональности.

👉 @sWebDev
Forwarded from CodeCamp
Полезное-ночное: нашёл огромный репозитарий, до отказа забитый Bash-скриптами.

До отказа — значит, что их там больше тысячи на все случаи жизни:

AWS, GCP, Kubernetes, Docker, CI/CD, APIs, SQL, PostgreSQL, MySQL, Hive, Impala, Kafka, Hadoop, Jenkins, GitHub, GitLab, BitBucket, Azure DevOps, TeamCity, Spotify, MP3, LDAP, Code/Build Linting, pkg mgmt для Linux, Mac, Python, Perl, Ruby, NodeJS, Golang, .bashrc, .vimrc, .gitconfig, .screenrc, tmux...
Forwarded from Вайб кодинг
👋Как повысить скорость работы веб-приложения: советы для фронтенд-разработчика

⬅️ Источник

➡️ @tips_frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Веб-страница
Vue.js и Vite — что нового в 2024 году?

Evan You на VueConf US 2024 рассказал о свежих обновлениях в экосистеме Vue и Vite.

Хотите узнать, что изменилось в любимом фреймворке? Посмотрите выступление и изучите актуальные фичи:

https://youtu.be/A9MSFp9Fs8k?si=h3O-zli5G35HXXEQ