Category : javascript

javascript
Делаем import/require ясными и красивыми

Довольно часто в проектах встречается использование относительных import/require. Если это маленький проект, и подключается модуль из текущей папки, то это приемлемо, но при разрастании проекта и глубины вложенности папочной структуры без слез смотреть на это нельзя:import { User } from '../../user/model'; import { Article } from '../../article/model'; import { Cache } from '../../../../cache'; import { MongoDB } from '../../../../mongodb'; Основные минусы отно…

  • вторник, 5 сентября 2023 г. в 00:00:27
javascript
Blockchain-разработка глазами Backend-разработчика

Всем доброго времени суток! Я достаточно давно занимаюсь Backend разработкой и последние несколько лет, все больше и больше пишу разные блокчейн проекты (Solidity на EVM). Погружение в блокчейн мне давалось непросто и мой бэкендерский мозг несколько раз ломался, и я решил поделиться своим взглядом на погружение в блокчейн-разработку.У этого поста, также, есть видео - версия: https://youtu.be/1Rw9zKaU0McПост получился большой, поэтому начну с навигации:Коротко про сам блокчейн, что это такое в …

  • вторник, 5 сентября 2023 г. в 00:00:27
javascript
Абстрактные типы данных. Изложение для начинающих

«В компьютерной науке все проблемы могут быть решены с помощью дополнительного уровня косвенности,» — Дэвид УилерТипы данных  — это естественноЧеловек — существо с очень развитым образным мышлением. Именно наша способность к созданию абстракций и обобщению прожитого опыта стала ключом к развитию цивилизации. Мы пользуемся этими способностями с самого рождения, даже не задумываясь. Например, мы с детства работаем с различными типами данных, действуя скорее интуитивно, не давая им формального оп…

  • суббота, 2 сентября 2023 г. в 00:00:16
javascript
react-query vs SWR и избавимся ли мы от Redux?

react-query vs SWRДавайте сначала познакомимся с обоеми библиотеками, чтобы сравнить их и убедиться, что лучше. react-query и SWR — это две популярные библиотеки для управления состоянием данных в React-приложениях. Они обе предназначены для облегчения работы с данными, получаемыми с сервера, но имеют некоторые различия в функциональности и подходах.react-queryreact-query — это мощная библиотека для управления состоянием данных в React-приложениях. Она предоставляет простые и эффективные инстр…

  • суббота, 2 сентября 2023 г. в 00:00:16
javascript
Генерируем простой web интерфейс для просмотра таблиц PostgreSQL

В публикациях на хабре, чаще всего самое интересное в коментариях. Вот и в моем прошлом посте "Сгенерировать web интерфейс из БД или объектной модели не стало проще даже 10 лет спустя" я собрал джекпот из SharePoint, Vaadin и нескольких библиотек либо устаревших, либо поддерживаемых "одним автором".Что я пытался объяснить читателям, что на этапе проверки идей не нужна дополнительная сложность в виде фреймворков, серверной инфраструктуры только ради этой самой инфраструктуры и н…

  • пятница, 1 сентября 2023 г. в 00:00:18
javascript
Паттерны реактивности в современном JavaScript

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

  • четверг, 31 августа 2023 г. в 00:00:18
javascript
Ликбез по распространенным Client-Side уязвимостям

В этой статье мы покажем: как в разных ситуациях манипулировать веб-сайтом таким образом, чтобы он передавал пользователям вредоносный JavaScript. как скомпрометировать администратора сайта, отправив ему личное сообщение; как атаковать разом всех пользователей при помощи комментария под статьей; как заставить пользователя отправить запрос на действия, которые он не собирается выполнять; как прослушивать WebSocket-соединения; и коротко объясним, как предотвратить все эти безобразия. В общем…

  • среда, 30 августа 2023 г. в 00:00:16
javascript
Подробная настройка Content Security Policy (CSP)

Content Security Policy (CSP) - это механизм безопасности веб-приложений, который используется для сокращения рисков, связанных с атаками, такими как внедрение скриптов (XSS) и выполнение нежелательного кода (инъекция). CSP позволяет веб-разработчикам указывать браузерам, из каких источников разрешено загружать ресурсы, такие как скрипты, стили, изображения, шрифты и другие элементы.С помощью CSP можно определить набор допустимых источников для каждого типа ресурса, а браузеры будут блокироват…

  • вторник, 29 августа 2023 г. в 00:00:16
javascript
Примеры Telegram ботов для личных автоматизаций

Telegram-ботами уже никого не удивить. Недавно Telegram отметил 10-летие, и я решил сделать текстовую версию своего ролика. Идея простая — иногда возникают сложности с тем, чтобы придумать о чем писать Telegram бота, и я решил поделиться подборкой ботов, которых разработал и использую в своей жизни я.Причем это будут не прям боты, а скорее способы использования telegram-bot-api для решения разных задач.Отправка уведомленийПервый самый простой пример использования Telegram - это отправка уведом…

  • вторник, 29 августа 2023 г. в 00:00:16